SAMLAuthenticationParameters
public struct SAMLAuthenticationParameters
extension SAMLAuthenticationParameters: DiscoveryServiceConfigurable
This struct contains the necessary parameters to conduct a SAML authentication using a web view.
This is used with the SAMLAuthenticator
class.
-
The URL to navigate to for authentication in case of a SAML challange. This URL will be set as the initial URL in a web view.
Declaration
Swift
public let authorizationEndpointURL: URL
-
The URL, which when encountered indicates the SAML authentication flow’s end. During the SAML authentication process there could be multiple redirections to different URLs.
Declaration
Swift
public let finishEndpointURL: URL
-
Determines the header name which indicates a SAML challenge.
Declaration
Swift
public let challengeHeaderName: String
-
Determines the header name which indicates a SAML challenge.
Declaration
Swift
public let challengeHeaderValue: String
-
Instantiates the SAMLAuthenticationParameters
Declaration
Swift
public init(authorizationEndpointURL: URL, finishEndpointURL: URL, challengeHeaderName: String = SAMLChallengeHeaderName, challengeHeaderValue: String = SAMLChallengeHeaderValue)
Parameters
authorizationEndpointURL
The URL to navigate to for authentication in case of a SAML challange. This URL will be set as the initial URL in a web view.
finishEndpointURL
The URL, which when encountered indicates the SAML authentication flow’s end. During the SAML authentication process there could be multiple redirections to different URLs.
-
Instantiates the
SAMLAuthenticationParameters
from theSAPcpmsSettingsParameters
. The constructed parameters have the following structure:- authorizationEndpointURL: https://<#backend URL#>/SAMLAuthLauncher
- finishEndpointURL: https://<#backend URL#>/SAMLAuthLauncher?finishEndpointParam=someUnusedValue
- challengeHeaderName: com.sap.cloud.security.login
challengeHeaderValue: login-request
Declaration
Swift
public init(settingsParameters: SAPcpmsSettingsParameters)
Parameters
settingsParameters
The
SAPcpmsSettingsParameters
contaning the backend URL. -
Instantiates the SAMLAuthenticationParameters from the Discovery Service configuration object. Example Discovery Service configuration structure contaning a SAML configuration:
{ "auth": [{ "type": "saml2.web.post", "config": { "saml2.web.post.authchallengeheader.name": "com.sap.cloud.security.login", "saml2.web.post.finish.endpoint.uri": "/SAMLAuthLauncher", "saml2.web.post.finish.endpoint.redirectparam": "finishEndpointParam" } }], "host": "<#host URL string#>", "port": 443, "protocol": "https" }
Will use the corresponding auth-type if there are multiple auths.
The backend URL is constructed using the ‘host’, ‘port’ and ‘protocol’ parameters. The constructed URL must be valid according to RFC 3986: https://www.ietf.org/rfc/rfc3986.txt otherwise an error is thrown.
Throws
ConfigurationError if a key is missing or the object has invalid structureDeclaration
Swift
public init(discoveryServiceConfig config: Any) throws
Parameters
config
The Disovery Service configuration object.
-
Instantiates the SAMLAuthenticationParameters from the corresponding sub-configuration of the Discovery Service configuration object. Example SAML sub-configuration structure in a Discovery Service configuration object:
{ "saml2.web.post.authchallengeheader.name": "com.sap.cloud.security.login", "saml2.web.post.finish.endpoint.uri": "/SAMLAuthLauncher", "saml2.web.post.finish.endpoint.redirectparam": "finishEndpointParam" }
Throws
ConfigurationError if a key is missing or the object has invalid structureDeclaration
Swift
public init(backendURL: URL, config: Any) throws
Parameters
backendURL
The base URL used to construct the SAML authentication URLs.
config
The SAML sub-configuration object of the Disovery Service configuration object.