This documentation is for WSO2 Identity Server 5.6.0 . View documentation for the latest release.

All docs This doc

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Start the Identity Server and access the management console using https://localhost:9443/carbon/
  2. Log in to the Identity Server using default administrator credentials (the username and password are both admin). If you need to create the service provider in a tenant space, you need to login with tenants user.
  3. Select the Main menu that is on the left side of the management console and click Add under S ervice Provider
  4. Enter travelocity.com as the value for the Service Provider Name field and click Register
  5. The Service Providers screen appears. Copy the content in the .pem file of your service provider application certificate and paste it as the value for Application Certificate. In WSO2 IS versions prior to WSO2 IS 5.5.0, the certificates were stored in the keystore file. From 5.5.0 onwards, the certificate is stored in the database and can be directly added via the management console using the Application Certificate field.  

    Tip

    Note:  If the Application Certificate field is left blank, WSO2 IS is backward compatible and follows the previous implementation to locate the certificates in the keystore.
    This means that in the SAML SSO flow, the certificate alias mentioned in SAML inbound authentication configuration is used if the Application Certificate field is left blank.

    Info
    titleMore on Application Certificate

    For more information on Application Certificate and its usage, click here.

  6. Expand the Inbound Authentication Configuration section and then expand SAML2 Web SSO Configuration
  7. Click Configure.

  8. Select Manual Configuration.
  9. Register the new service provider by providing the following values. See the table below for more information about the fields in this form.

    Panel
    borderColor#EC8B4C
    bgColor#ffffff
    borderWidth1
    Expand
    titleClick here for more information on each attribute
    FieldDescriptionSample Value
    Issuer

    This is the entity ID for the SAML2 service provider

    Info

    This value should be same as the SAML2.SPEntityId value specified inside the travelocity.com/WEB-INF/classes/travelocity.properties file.

    travelocity.com
    Assertion Consumer URLs

    This is the Assertion Consumer Service (ACS) URL of the service provider. The identity provider redirects the SAML2 response to this ACS URL. However, if the SAML2 request is signed and SAML2 request contains the ACS URL, the Identity Server will honor the ACS URL of the SAML2 request. 

    Info

    This value should be same as the SAML2.AssertionConsumerURL value mentioned inside the travelocity.com/WEB-INF/classes/travelocity.properties file.

    Enter this value: http://wso2is.local:8080/travelocity.com/home.jsp and click Add.
    Default Assertion Consumer URLThis must be the same value defined above. If you have defined multiple Assertion Consumer URLs, this value must be the same as the SAML2.AssertionConsumerURL value mentioned inside the  travelocity.com/WEB-INF/classes/travelocity.properties  file as that is the default.
    NameID formatThe service provider and identity provider usually communicate with each other regarding a specific subject. That subject should be identified through a Name-Identifier (NameID) , which should be in some format so that It is easy for the other party to identify it based on the format. There are some formats that are defined by SAML2 specification. Enter the default value of this format (urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress )urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
    Certificate Alias

    This is used to validate the signature of SAML2 requests and is used to generate encryption.

    Tip

    From WSO2 IS 5.5.0 onwards, the .pem certificate can be updated via the Service Provider screen in the management console UI using the Application Certificate field. If the certificate has been entered in the Application Certifiate field, the system will use the certificate given there and override the certificate alias field.

    However, if the Application Certificate field has been left blank, the certificate specified in Certificate Alias will be used.

    Select wso2carbon

    In a tenant : Select the Certificate Alias with tenant domain name

    Response Signing AlgorithmSpecifies the ‘SignatureMethod’ algorithm to be used in the ‘Signature’ element in POST binding.

    The default value can be configured in the<IS_HOME>/repository/conf/identity/identity.xml file, in the SSOService element with SAMLDefaultSigningAlgorithmURI tag. If it is not provided, the default algorithm is RSA­SHA 1, at URI ‘ http://www.w3.org/2000/09/xmldsig#rsasha1 ’.
    http://www.w3.org/2000/09/xmldsig#rsasha1
    Response Digest AlgorithmSpecifies the ‘DigestMethod’ algorithm to be used in the ‘Signature’ element in POST binding.

    The default value can be configured in the<IS_HOME>/repository/conf/identity/identity.xml file, in the SSOService element with SAMLDefaultDigestAlgorithmURI tag. If it is not provided the default algorithm is SHA 1, at URI ‘ http://www.w3.org/2000/09/xmldsig#sha1 ’.
    http://www.w3.org/2000/09/xmldsig#sha1
    Assertion Encryption Algorithm AlgorithmThe algorithm that the SAML2 assertion is encrypted.

    The default value can be configured in the<IS_HOME>/repository/conf/identity/identity.xml  file, in the SSOService  element with the SAMLDefaultAssertionEncryptionAlgorithmURI tag. If it is not provided the default algorithm is aes256-cbc, at URI http://www.w3.org/2001/04/xmlenc#aes256-cbc .
    http://www.w3.org/2001/04/xmlenc#aes256-cbc
    Key Encryption AlgorithmThe algorithm that the SAML2 key is encrypted.   The default value can be configured in the <IS_HOME>/repository/conf/identity/identity.xml file, in the SSOService element with the SAMLDefaultKeyEncryptionAlgorithmURI
    tag. If it is not provided the default algorithm is rsa-oaep-mgf1, at URI http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p.
    http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p
    Enable Response Signing

    This is used to sign the SAML2 Responses returned after the authentication process is complete.


    Set as true by selecting the checkbox
    Enable Signature Validation in Authentication Requests and Logout RequestsThis specifies whether the identity provider must validate the signature of the SAML2 authentication request and the SAML2 logout request that are sent by the service provider. Leave unchecked for travelocity sample
    Enable Assertion EncryptionThis defines whether the SAML2 assertion must be encrypted or not. Leave unchecked for travelocity sample
    Enable Single LogoutEnable this to ensure that all sessions are terminated once the user signs out from one server.Set this as true by selecting the checkbox
    SLO Response URLIf the service provider has a different endpoint which accepts single logout response other than the assertion consumer URL, you can provide that endpoint value here.
    SLO Request URLIf the service provider has a different endpoint which accepts single logout requests from the identity server other than the assertion consumer URL, you can provide that endpoint value here.
    Enable Attribute ProfileThe Identity Server supports a basic attribute profile where the identity provider can include the user’s attributes in the SAML Assertions as an attribute statement. You can define the claims that must be included under service provider claim configurations. Also, once you select the “Include Attributes in the Response Always” checkbox, the identity provider always includes the attribute values related to selected claims in the SAML Attribute statement.Leave unchecked for travelocity sample
    Enable Audience RestrictionYou can define multiple audiences in the SAML Assertion. Configured audiences would be added into the SAML2 Assertion.Leave unchecked for travelocity sample
    Enable IdP Initiated SSO

    Depending on your application flow you can choose whether to enable IdP initiated SSO.  The IdP initiated SSO profile enables to start an authentication flow by sending a GET request to the Identity server with the following format.

    https://{Hostname}:{Port}/samlsso?spEntityID={SAML2 SSO Issuer name}
    Note

    If your SAML2 SSO issuer has been configured in any other separate tenant other than super tenant, then you need to append the tenantDomain  parameter as well.

    If the tenant domain is soasecurity.org, the GET request would be as follows: https://localhost:9443/samlsso?spEntityID=travelocity.com&tenantDomain=soasecurity.org


    Leave unchecked for travelocity sample

    Enable IdP initiated SLO

    The Identity Server facilitates IdP initiated SAML2 single logout requests.  This This is useful if the application can not manage the session index received with the SAML response and still wants to perform log out. The following parameters can be used with the IdP initiated SLO request:

    • slo (mandatory parameter) - Must have the value true to mark the request as an IdP initiated log out request
    • spEntityID (optional) - Value of the parameter should be the SAML issuer name as in the Issuer field in the SAML service provider configuration UI.
    • returnTo (optional) - Value of the parameter should be the URL that the user needs to be redirected to after the logout.

      Note

      If this parameter is present in the request, the spEntityID parameter must also be present.
      Since this needs to be a trusted location, the value that comes with the request must match with one of the assertion consumer URLs or returnTo ULRs of the service provider.

      Example of a returnTo URL:  https://wso2is.local:8080/avs.com/slo

    Leave unchecked for travelocity sample
    Enable Assertion Query Request ProfileEnable Assertion Query Request Profile can used for query assertions following SAML2.0 specification. This can query assertions that are persisted to the database when you login to the service provider application. For more information, see Querying SAML Assertions.Leave unchecked for travelocity sample
    Info

    Note: To add the correct tenant domain with the username as the subject identifier in tenant mode,

    Expand the Local & Outbound Authentication Configuration section and do the following. 

    • Select Use tenant domain in local subject identifier to append the tenant domain to the local subject identifier.
    • Select Use user store domain in local subject identifier to append the user store domain that the user resides in the local subject identifier.
    Warning

    For super tenant mode, this step is not required and the two options mentioned above should remain disabled by default.

  10. Click Update to register. 

...

  1. Configure claims for the service provider. To do this, do the following. For more information on configuring this, see Configuring Claims for a Service Provider.
    1. Expand the Claim Configuration section in the service provider form. 
    2. You can select the claims that must be sent to the service provider. If you just want to send them as claim URIs, select Use Local Claim Dialect.
    3. Alternatively, if you want to define new claim URIs for the attributes that are sent, you can define any values for them and map these values with the claim URIs local to WSO2. 

      For example, you want to set the email address of the user as  http://serviceprovider.org/claims/emailaddress  claim URI, you can define it here and map it in to  http://wso2.org/claims/emailaddress. To specify this, select the Define Custom Claim Dialect option and click Add Claim URI. Enter the Service Provider Claim URIs and select the matching local claim from the dropdown. You can also mark them as a Requested Claim or a Mandatory Claim. For more information, see Configuring Claims for a Service Provider
  2. Configure outbound authentication as Default authentication type. This specifies that the identity provider authenticates the users with the username/password by validating with the identity provider's user store.
  3. After providing the above information, click Register.

...

  1. Visit http://wso2is.local:8080/travelocity.com. You are directed to the following page:
  2. Since you need to use SAML2 for this sample, click the first link, i.e., Click here to login with SAML from Identity Server. You are redirected to the Identity Server for authentication.
  3. Enter the default admin credentials (admin/admin).
  4. Once you have provided the correct credentials, you are redirected to the consent request screen for approval. 

    Tip

    Note: This screen will appear at this point if WSO2 Identity Server has all the mandatory claim values of the user in the system. If not, the user will be redirected to the relevant screen and prompted to provide the missing mandatory claim values before providing consent.

    For more information about user consent in the SSO authentication flow, see Consent Management with Single-Sign-On.

    Image Modified

  5. Select the claims that you consent to share with the Travelocity application and click Approve. You have to provide consent for all the mandatory claims at a minimum to complete authentication. 

  6. After providing consent, you are redirected to the travelocity application home page.

Note
  1. If you need to view the SAML request and response, add the following debug log to the log4j.properties file found inside <PRODUCT_HOME>/repository/conf.

    Code Block
    log4j.logger.org.wso2.carbon.identity=DEBUG
  2. Since single log out is enabled, if you click the logout button in the travelocity.com home page, you will successfully log out.
Panel
titleRelated Topics