Stacking Authentication Providers and Combining Results
Implement multiple authentication providers to provide a security solution that meets complex security requirements.
SAP recommends stacking providers as a means of eliciting more precise results, especially for production environments that require different authentication schemes for administrators, push notifications, and so on. Stacking is implemented with a controlFlag attribute that controls overall behavior when you enable multiple providers. Set the controlFlag on a specific provider to refine how results are processed.
For example, if your administrative users (smpAdmin in a default installation) are not users in a back-end system like SAP, and they are authenticated with the default security configuration, they cannot also authenticate with the HTTP/HTTPS Authentication provider, which is used for SSO2Token retrieval. In this case, you would stack a second authentication provider with controlFlag=sufficient for your administrative users.
In a custom security profile (recommended), a technical user, who is not an SAP user, can send for push notifications. Technical users do not need SSO, because they do not access data; however, they must be authenticated by SAP Mobile Platform Server. To enable a technical user to log in, add another authentication provider.
- Use Management Cockpit to create a security profile and add multiple providers as required for authentication.
- Assign priority to multiple providers by selecting an authentication provider, and clicking the
up or down arrows to position the provider correctly in the list.The order of the list determines the order in which authentication results are evaluated.
- For each provider:
- Select the provider name.
- Set the controlFlag property to the appropriate value: Required, Requisite,
Sufficient, or Optional.See controlFlag Attribute Values for descriptions of each value.
- Configure any other common security properties as required.
- Click Save.
ExampleIf you have sorted these authentication providers in the following order, and used the corresponding controlFlag values, the results are processed as follows:
|Provider||controlFlag Value||Authentication Result|
|Directory Service (LDAP/AD)||Required||succeed||succeed||succeed||succeed||fail||fail||fail||fail|
|System Login (Admin Only)||Requisite||*||succeed||succeed||fail||*||succeed||succeed||fail|
|X.509 User Certificate||Optional||*||succeed||fail||*||*||succeed||fail||*|
- In the third column of the table, because both Directory Service (LDAP/AD) and HTTP/HTTPS Authentication succeed, the controlFlag settings for System Login (Admin Only) and X.509 User Certificate are such that they need not be invoked.
- In the fourth column, HTTP/HTTPS Authentication is set to Sufficient and it fails, so the System Login (Admin Only) provider is invoked.
- If authentication succeeds and either the Kerberos or Principal Propagation provider is in the stack, it is always invoked to add SSO credentials.
For more detailed information on JAAS providers, see the Java Authentication and Authorization Service (JAAS) Reference Guide.