Single Sign-On Configuration

WSO2 Identity Server supports SAML2 based Single Sign-on. This implementation complies to the SAML2 Web Browser SSO profile and Single Logout Profile.

Figure 1: SSO Configuration

This page is used for Single Sign-on configuration. Service Providers can be added and removed from this page. Following points should be taken into consideration when adding a service provider.

How to configure Single Sign-On across different Carbon Servers

With the SAML2 relying party capabilities of Carbon, it is possible to set up Single Sign-On between different Carbon instances where Identity Server acts as the Identity Provider while other Carbon Servers act as the relying party. Following is a guide to setup SSO between different Carbon Servers.

1. Installing the SAML2 relying party(SAML2 SSO Authenticator) feature in a Carbon Server.

SAML2 relying party components are not shipped with the default Carbon distribution. But these bundles are packages as a feature, which is available in the online hosted P2 repository. So it is possible to install this feature through the Carbon Feature Manager without much effort.

2. Configuring the Carbon Server to use the SAML2 based authentication instead of default username/password based authentication

After installing the SAML2 relying party components(SAML2 SSO authenticator), it is required to configure it to communicate with the Identity Server for user authentication.

This can be configured in the authenticators.xml file which is available in {$CARBON_HOME}/repository/conf/advanced directory.

This file will contain configurations for different authenticators. By default, it is shipped with a sample configuration for SAML2 SSO authenticator which requires minor modifications to get the setup working.

    <Authenticator name="SAML2SSOAuthenticator">
        <Priority>10</Priority>
        <Config>
            <Parameter name="LoginPage">/carbon/admin/login.jsp</Parameter>
            <Parameter name="ServiceProviderID">carbonServer</Parameter>
            <Parameter name="IdentityProviderSSOServiceURL">https://localhost:9443/samlsso</Parameter>
        </Config>
    </Authenticator>

Priority - Priority of the authenticator. In the Carbon Runtime, the authenticator with the highest priority will be picked up. This value should be greater than 5 in order to supersede the default username/password based authenticator.

[Parameter] LoginPage - This is the default login page URL of Carbon. All the requests coming to this page will be intercepted for authentication. It is not required to change this value from the value given in the sample configuration.

[Parameter] ServiceProviderID - This is unique identifier for this Carbon Server in a SSO Set up. This value should be used as the value of Issuer at the identity Server configuration.

[Parameter] IdentityProviderSSOServiceURL - This is the Identity Server URL to which the users will be redirected for the authentication. It is of the form, https://{host-name}:{port}/samlsso

3. Configuring the Identity Server as the single sign-on provider

Finally, it is required to configure the Identity Server to act as the Single Sign-on provider. Each relying party should be registered as a service provider at the Identity Server end. Following is a sample configuration for registering a Carbon server as a service provider.

Figure 3: Registering the relying party as a service provider

Issuer : This should be equal to the ServiceProviderID value mentioned in the authenticators.xml of the relying party Carbon server.

Assertion Consumer URL : This is the URL to which the browser should be redirected after the authentication is successful. This is of the form https://{host-name}:{port}/acs

Select 'Enable Assertion Signing' to sign the SAML2 Assertions returned after the authentication. SAML2 Relying party components expect these assertions to be signed by the Identity Server.

Select 'Enable Single Logout' so that all the sessions will be terminated once the user signs out from one server.