From 0ff64dc2cd3a15b4204a477ad2eb5219d66e6110 Mon Sep 17 00:00:00 2001 From: "Kowalski, Kamil" Date: Fri, 12 Jul 2019 09:59:11 +0200 Subject: Auth methods configuration Added Oem extension for AccountService allowing user to configure which authentication methods should be enabled. User is now able to turn on and off authentication methods like BasicAuth, XToken, etc. User is not allowed to turn off all of the methods at once - at least one method has to be active to prevent lock-out. This configuration is persistent, will be saved on file-system and will be loaded on bmcweb's restart. Tested: No regression found in manual testing. By default everything works as before, and disabling auth method prevents user to authenticate by it. Tested that user is not allowed to disable all the methods - either in one PATCH or by disabling them one at a time. ServiceValidator run with success. Change-Id: I3a775d783ac05998d17b8e91800962bffd8cab52 Signed-off-by: Kowalski, Kamil Signed-off-by: Zbigniew Kurzynski --- static/redfish/v1/$metadata/index.xml | 4 + .../v1/JsonSchemas/OemAccountService/index.json | 102 +++++++++++++++++++++ static/redfish/v1/schema/OemAccountService.xml | 71 ++++++++++++++ 3 files changed, 177 insertions(+) create mode 100644 static/redfish/v1/JsonSchemas/OemAccountService/index.json create mode 100644 static/redfish/v1/schema/OemAccountService.xml (limited to 'static/redfish/v1') diff --git a/static/redfish/v1/$metadata/index.xml b/static/redfish/v1/$metadata/index.xml index 73833652d7..4804e48024 100644 --- a/static/redfish/v1/$metadata/index.xml +++ b/static/redfish/v1/$metadata/index.xml @@ -1045,6 +1045,10 @@ + + + + diff --git a/static/redfish/v1/JsonSchemas/OemAccountService/index.json b/static/redfish/v1/JsonSchemas/OemAccountService/index.json new file mode 100644 index 0000000000..528317086c --- /dev/null +++ b/static/redfish/v1/JsonSchemas/OemAccountService/index.json @@ -0,0 +1,102 @@ +{ + "$id": "http://redfish.dmtf.org/schemas/v1/OemAccountService.v1_0_0.json", + "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json", + "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright", + "definitions": { + "AccountService": { + "additionalProperties": false, + "description": "OEM Extension for AccountService", + "longDescription": "OEM Extension for AccountService providing info about TLS Auth.", + "patternProperties": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { + "description": "This property shall specify a valid odata or Redfish property.", + "type": [ + "array", + "boolean", + "integer", + "number", + "null", + "object", + "string" + ] + } + }, + "properties": { + "AuthMethods": { + "anyOf": [ + { + "$ref": "#/definitions/AuthMethodsConfig" + }, + { + "type": "null" + } + ], + "description": "Authorization Methods configuration.", + "longDescription": "Configuration describing which auth methods are enabled." + } + }, + "type": "object" + }, + "AuthMethodsConfig": { + "additionalProperties": false, + "description": "Authorization Methods configuration.", + "longDescription": "Configuration describing which auth methods are enabled.", + "patternProperties": { + "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": { + "description": "This property shall specify a valid odata or Redfish property.", + "type": [ + "array", + "boolean", + "integer", + "number", + "null", + "object", + "string" + ] + } + }, + "properties": { + "BasicAuth": { + "description": "Indicates whether BasicAuth authorization is enabled.", + "longDescription": "The value of this property shall be a boolean indicating whether BasicAuth authorization is enabled.", + "readonly": false, + "type": [ + "boolean", + "null" + ] + }, + "Cookie": { + "description": "Indicates whether Cookie authorization is enabled.", + "longDescription": "The value of this property shall be a boolean indicating whether Cookie authorization is enabled.", + "readonly": false, + "type": [ + "boolean", + "null" + ] + }, + "SessionToken": { + "description": "Indicates whether SessionToken authorization is enabled.", + "longDescription": "The value of this property shall be a boolean indicating whether SessionToken authorization is enabled.", + "readonly": false, + "type": [ + "boolean", + "null" + ] + }, + "XToken": { + "description": "Indicates whether XToken authorization is enabled.", + "longDescription": "The value of this property shall be a boolean indicating whether XToken authorization is enabled.", + "readonly": false, + "type": [ + "boolean", + "null" + ] + } + }, + "type": "object" + } + }, + "owningEntity": "OpenBMC", + "release": "1.0", + "title": "#OemAccountService.v1_0_0" +} \ No newline at end of file diff --git a/static/redfish/v1/schema/OemAccountService.xml b/static/redfish/v1/schema/OemAccountService.xml new file mode 100644 index 0000000000..626097b3c8 --- /dev/null +++ b/static/redfish/v1/schema/OemAccountService.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.2.3