Single Sign-On (SSO) allows users, who are authenticated against one application, to gain access to multiple other related applications without having to repeatedly authenticate themselves. It also allows the web applications to gain access to a set of back-end services with the logged-in user's access rights, and the back-end services can authorize the user based on different claims like the user role. An Identity Provider (IDP) is responsible for issuing identification information and authenticating users by using security tokens. WSO2 API Cloud uses WSO2 Identity Server as the default Identity provider (IDP). An organization can have it’s own IDP that provides authentication for internal users. In such scenarios, the organization can link their IDP to WSO2 Identity Cloud to provide SSO based authentication for API Cloud apps.
The diagram below shows how an external IDP based SSO is configured.
User visits API Cloud application.
A SAML authentication request is sent to the Identity cloud.
Identity cloud is configured to forward the authentication requests received for particular organization to an external IDP.
The organization’s IDP prompts the login window and user submits the credentials.
Authentication success response is sent back to the Identity cloud.
Identity cloud sends a SAML response to the corresponding API Cloud app. Before sending the response, Identity cloud stores (provisions) the permission information of the authenticated user in an internal user store. API Cloud applications refer to this user store for authorization.
- Log in to WSO2 API Cloud. Click Support in the top menu bar, and submit a support request. To configure an external identity provider, you need to provide the name of your preferred identity provider.
The WSO2 team will contact you and get the required information and configure your IDP in the Identity cloud.
The users in your user store can have different roles. You may want to restrict the access to the API Cloud apps for the users in your user store. In such cases, you can send a roles attribute with the IDP authentication response and we will map it with the cloud related roles. This capability depends on your IDP.
When the role information is not present in the response (ex- Google OpenID-Connect), Identity cloud maps the authenticated user to organization’s default internal role. We can assign subscribe/create/publish/admin permissions to this role. All the authenticated users will have the same role and the same set of permissions. Permissions should be determined based on your organizational needs.
WSO2 supports only the email address as the user ID. Therefore, your IDP Will have to send the email address in the response.
Configure custom URLs for SSO login
API Cloud applications identify secondary user-store configured organizations based on a specific custom header. When the header is available in the request, the application executes the secondary user-store based authentication flow. If the header unavailable, the default authentication flow is executed. This custom header is sent through custom URL configurations. Let’s say we have configured a load balancer to send the custom header with
api.cloud.wso2.com/publisherwhich does not have a custom header will be executed with the default authentication flow. But,
api.customdomain.organization.com/publisherwhich includes a custom header secondary user store based authentication flow.
For details on how to configure a custom URL for API Cloud Store, see Customize Cloud URLs.
Configuring a custom URL for API Publisher and Admin Apps
To configure custom URLs for API Cloud Publisher and Admin apps you have to submit a support request as described in step 2 (This will be supported through a UI in the future).
Provide the following information to configure custom URLs :
- SSL Certificates
- SSL Key and Chain Files
You can always use the default cloud URLs and login to your cloud account for administrative tasks.
WSO2 will inform you once the configurations are completed. You will be able to create, publish, subscribe and invoke APIs after completion.