This site contains the documentation that is relevant to older WSO2 product versions and offerings.
For the latest WSO2 documentation, go to https://wso2.com/documentation/.

Adding and Configuring a Service Provider

This topic provides instructions on how to add a new service provider. You must provide configuration details to add this service provider in the WSO2 Identity Server so that the authentication and/or provisioning happens as expected. For more information on how the service provider fits in to the WSO2 IS architecture, see Architecture.

The responsibility of the service provider configuration is to represent external service providers. The service provider configurations cover the following:

  • Define how the service provider talks to the Identity Server 
    This is via inbound authenticators. When you register a service provider, you need to associate one or more inbound authenticators with it.
  • Define how to authenticate users
    This can be via a local authenticator, request-path authenticator or federated authenticator. Based on this configuration, the Identity Server knows how to authenticate the user when it receives an authentication request (via an inbound authenticator) and based on the service provider who initiates it.
  • Maintain claim mapping
    This is to map the service provider's own set of claims to the Identity Server's claims, for example in your profile in the identity server has claim called work email (http://wso2.org/claims/emails.work) but your service provider application expect this to send this as email this will be done via claim mappings. When the authentication framework hands over a set of claims (which it gets from the local user store or from an external identity provider) to the response builder of the inbound authenticator, the framework talks to the service provider configuration component, find the claim mapping and do the claim conversion. See Configuring Inbound Authentication for a Service Provider for more information about response builder. Now the response builder will receive the claims in a manner understood by the corresponding service provider. Please read more about WSO2 IS claim management.

This topic contains the following sections.

Adding a service provider

Note: This section only describes how to add a service provider using the Management Console. Instead of adding a service provider via the management console, it is also possible to add a service provider using a configuration file as described  here .

  1. Log in to the Management Console
  2. Navigate to the Main menu to access the Identity menu. Click Add under Service Providers.
  3. Fill in the Service Provider Name and provide a brief Description of the service provider. Only Service Provider Name is a required field.

    The Service Provider Name should not contain any special characters except for fullstops (.), hyphens (-), underscores (_) and spaces.
    The 20th January 2018(2018-1-21)WUM update provides a better user experience to manage application certificates. These certificates are used to validate the signatures in the messages (e.g., SAML requests) that come from the applications. In WSO2 IS these applications are known as service providers.
    The WUM update provides the following improvements:
    • Allows the Identity administrator to add the application certificate to the service provider creation User Interface (UI) of the management console.
      Previously, when configuring the service provider the Identity administrator needs to add the certificate to the keystore and then specify the certificate alias name.
    • Stores the certificates in the database instead of the keystore file.
      Previously, after adding a new certificate, you need to start WSO2 IS since the keystore file was used to store the certificates.
    Follow the steps given below to enable the feature:
    1. WUM update your product to 20th January 2018 or beyond..  For more information on updating WSO2 Identity Server, see  Updating WSO2 Products .
    2. Add the database schema to store the certificates.
      Please refer the update summary PDF document that is in the <WUM_UPDATE_PRODUCT_ARCHIVE>/updates/summary-<DATE> directory, to get the details of the SQL queries.
      Once the schema change is done, the feature is available on your WSO2 IS 5.3.0 WUM updated pack.

    Adding a service provider after enabling the feature:

    1. Click Add under Service Providers.
    2. Add a name and description for the service provider.
    3. Copy the content in your .pem certificate and paste it as the value for Application Certificate.

    4. Click Register.

    Example:

    It is not mandatory to WUM update your WSO2 IS 5.3.0 pack and enable this new feature.
    If you do WUM update the pack, WSO2 IS 5.3.0 is backward compatible and follows the previously implementation to locate the certificates in the keystore if the certificate is not added via the management console.
    For example, if it is a SAML SSO flow, the certificate alias mentioned in SAML inbound authentication configuration is used when the certificate is not updated via the management console. If it is an OIDC request object signature validation, the thumb print in the JWT is used.




  4. Click Register to add the new service provider.

    Note: The service provider you create can be viewed by any user within your tenant domain in the Main view of the management console by clicking List under the Service Provider section. However, you must keep in mind that when a service provider is created, it is assigned to a "Internal" role. All users in the tenant domain must be assigned to this role in order to view the service provider created. See Configuring Roles for guidance on how to do this.

  5. The Service Providers screen appears. Here you have the option of selecting if the service provider is a SaaS Application or not. The SaaS Application configuration defines which users you want to be able to log into your web application.

    Tip: By default, the SaaS Application checkbox is disabled, which means the web application is not shared among tenants so only users in the current tenant (the one you use to define the service provider) will be allowed to log into the web application. Alternatively, if you enabled the SaaS Application checkbox, that means this web application is shared among tenants so users from any tenant will be allowed to log into the web application. For example, if there are three tenants, namely TA, TB and TC and the service provider is registered and configured only in TA.

    • If the SaaS Application configuration is disabled, only users in TA are able to log into the web application.

    • If the SaaS Application configuration is enabled, all TA, TB, TC users are able to log into the web application.

    • For more information on creating and managing tenants, see Creating and Managing Tenants.
  6. In the resulting screen, click the arrow buttons to expand the forms available to update.

     Click here for details on how to configure claims

    Claim mapping for a service provider involves mapping claims that are used by the service provider to the claims local to the WSO2 Identity Server. In situations where a service provider needs some information of the user from the Identity Server where the service provider authenticates, the claim mapping is useful. Once the user is authenticated, the service provider can use these received claim details to provide its service. See the Identity Server Architecture for more information on how claim mapping fits into the overall scheme of things.

    Claim mapping

    1. In the Claim Configuration form, select the claim mapping dialect by either choosing to use a local claim dialect or define your own custom claim dialect.
      • If you choose to Use Local Claim Dialect, you need to fill in the following details.
        1. Fill in your requested claims by clicking the Add Claim URI button.
        2. Choose your Local Claim from the drop-down. Select whether this claim is a Mandatory Claim for the Service Provider using the checkbox.
      • If you choose to Define Custom Claim Dialect, you need to do the following. 
        1. Add a custom claim URI by clicking on the Add Claim URI button. Clicking this button again enables you to map more claims.

        2. Add the Service Provider Claim and choose the corresponding Local Claim from the drop-down. Select whether you want the claim to be a Requested Claim and whether this claim is a Mandatory Claim for the service provider, using the relevant checkboxes.

           Click to view vital information when configuring claims for an OpenID Connect Service Provider

          Note: When mapping custom claims for a service provider configured with OpenID Connect, ensure to map the custom claims in the SP configuration as seen in the screenshot above AND also add the custom claims to a scope value in the oidc file.

          Why?

          This is required because OpenIDConnect claim scopes are supported from WSO2 IS 5.2.0 onwards. This means that when you request for an OIDC token, you can specify a single scope value that is bound to a set of multiple claims. When that OIDC token is sent to the UserInfo endpoint, only the claims which are common in both the OIDC scope config file and the SP claim configuration (i.e., the intersection of claims in both these configurations) will be returned.

          To do this,

          1. Click on Browse under Registry on the Main tab of the management console.
          2. Navigate to /_system/config/ and click on the oidc file. Expand the Properties section.
          3. Add the custom claims to the existing default scope openid by clicking on Edit. Alternatively, add a new scope for the custom claims by clicking on Add New Property and send it when getting the OIDC token along with the mandatory openid scope.
           Click to view vital information when configuring claims for an SAML2 Service Provider

          Note: When mapping custom claims for a service provider configured with SAML2, ensure to select both "Enable Attribute Profile" and " Include Attributes in the Response Always" from the SAML2 service provider configuration as follows.

          Why?

          This is required since Identity Server include user claims in the SAML2 response only if SAML2 attribute profile is enabled.

          Information on mapping claims

          The Local Claim list includes a set of standard claim values which are local to the WSO2 Identity Server. When adding a service provider, it is necessary to map the values of the claims local to the service provider with those provided in this dropdown list which are local to the Identity Server. This should be done for all values in the service provider unless they use the same claim name.

          Marking a claim as a Mandatory Claim would ensure that the WSO2 Identity Server will definitely send a value for this claim to the service provider.  When a user logs into this service provider, if the identity provider does not provide a value for any of the mandatory claims, the user will be prompted to provide them at the time of login as shown in the image below.
           

           Expand for steps to test out mandatory claims

          Testing mandatory claims

          To test out mandatory claims,

          1. Configure the travelocity sample application by following the steps in the Configuring Single Sign-On topic.

          2. Configure a few claims and select the checkbox for mandatory claims.

          3. Ensure that there are one or more claims which are missing in the user profile of the user you wish to login with.

          4. Run the travelocity sample and try the SAML login.

          5. Log in with the user credentials of the user who has a few mandatory claims missing, and click Submit.
          6. A claim request will be prompted, similar to the image below. At this point, the mandatory claim rule is enforced and you cannot proceed without providing the necessary claim values. Provide the necessary claim values and click Submit.
          7. You will be successfully logged in to the application.


          Marking a mapped claim as a Requested Claim would ensure that the service provider definitely sends this claim to the Identity Server. This is useful particularly in cases where there are hundreds of claims and only specific ones need to be sent to the Identity Server.

    2. Select the Subject Claim URI and the Role Claim URI (for custom claims) from the drop-down. The claims you mapped are listed in the drop-down and you can choose among these claims.

      • Subject Claim URI defines the authenticated user identifier which will return with the authentication response to the service provider.
      • Role Claim URI defines the role claim for the service provider. This is useful if you use a different claim as the role claim or if you define a custom claim mapping for the service provider.
    Related Topics

     Click here for details on how to configure roles and permissions

    You can configure the roles and permissions of the service provider.

    To configure roles and permissions for a service provider, do the following.

    1. Expand the Role/Permission Configuration section and the Permission and Role Mapping forms.
    2. Click the Add Permission button. Clicking this button again will enable you to add another entry.
    3. Add the Service Provider Specific Permissions. You can delete entries by clicking the Delete button.

      Once the service provider details have been added/updated, the permissions added here are listed out in the permissions available when adding roles in the Identity Server.

    4. Click the Add Role Mapping button. Clicking this button again will enable you to add another entry.
    5. Enter the Local Role and the Service Provider Role. You can delete entries by clicking the Delete button.

      Here you can map the exact role name available in the Identity Server with the role in the service provider.

     Click here for details on how to configure inbound authentication

    The responsibility of the inbound authenticator component is to identify and parse all the incoming authentication requests and then build the corresponding response. A given inbound authenticator has two parts:

    • Request Processor
    • Response Builder

    For each protocol supported by the WSO2 Identity Server, there should be an inbound authenticator. The Identity Server includes inbound authenticators for SAML 2.0, OpenID, OpenID Connect, OAuth 2.0, Kerberos KDC, WS-Trust STS and WS-Federation (passive). The responsibility of the SAML 2.0 request processor is to accept a SAML request from a service provider, validate the SAML request and then build a common object model understood by the authentication framework and handover the request to it. The responsibility of the SAML response builder is to accept a common object model from the authentication framework and build a SAML response out of it.

    Both the request processors and the response builders are protocol aware, while the authentication framework is not coupled to any protocol. See Architecture for more information on the complete flow where inbound authenticators come into play.

    You can configure the following for inbound authentication.

    Deprecated Feature!

    OpenID 2.0 is deprecated in this release (WSO2 Identity Server 5.3.0) as it is now an obsolete specification and has been superseded by OpenID Connect. Alternatively, we recommend that you use OpenID Connect. This is still available for use in WSO2 IS 5.3.0 but will be removed from the base product in WSO2 IS 5.4.0.

     SAML2 Web SSO Configuration

    1. Expand the SAML2 Web SSO Configuration and click Configure.
    2. Select one of the following modes:

    Metadata and URL configuration

    When configuring a service provider (SP) or a federated identity provider (Federated IdP), the user is required to enter configuration data to facilitate exchanging authentication and authorization data between entities in a standard way. Apart from manual entering of configuration data, WSO2 IS allows you to upload configuration data using a metadata XML file or refer to a metadata XML file located in a predetermined URL. These two methods of uploading configuration data enable faster entry of configuration data because it allows the user to use the same metadata xml file for multiple instances of entity configuration. In addition to SAML metadata upload, WSO2 IS also supports SAML metadata download for the resident identity provider.

    Manual configuration

    1. Select Manual Configuration and fill in the form that appears.
    2. Click Register.

    The following points should be taken into consideration when filling the above New Service Provider form. 

    FieldDescriptionSample value
    IssuerSpecify the Issuer. This is the <saml:Issuer> element that contains the unique identifier of the service provider. This is also the issuer value specified in the SAML Authentication Request issued by the service provider. When configuring single-sign-on across Carbon servers, ensure that this value is equal to the ServiceProviderID value mentioned in the <IS_HOME>/repository/conf/security/authenticators.xml file of the relying party Carbon server.travelocity.com
    Assertion Consumer URLsSpecify the Assertion Consumer URLs. This is the URL to which the browser should be redirected to after the authentication is successful. 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. It should have this format: https://(host-name):(port)/acs. You can add multiple assertion consumer URLs for the service provider by entering the URL and clicking the Add button.http://wso2is.local:8080/travelocity.com/home.jsp
    Default Assertion Consumer URL

    Since there can be multiple assertion consumer URLs, you must define a Default Assertion Consumer URL in case you are unable to retrieve it from the authentication request.

    Tip: In a service provider initiated single sign-on setup, the following needs to be considered.

    • If no ACS URL is given in the <AuthnRequest>, the Identity Server sends the response to the default ACS URL of the service provider (whether the request is signed or not).
    • If the ACS URL in <AuthnRequest> matches with one of the registered URLs, the Identity Server sends the response to the matched one. 
    • If the ACS URL in <AuthnRequest> does not match any of the registered ACS URLs and if the request is signed, the Identity Server sends the response to the ACS URL in the request only if the signature is valid. Alternatively, the <AuthnRequest> is rejected.

    In an identity provider initiated single sign-on setup, the following needs to be considered.

    • If the “acs” query parameter is not present in the request, the Identity Server sends the response to default ACS URL of the service provider.
    • If the "acs” parameter is present and the value of that parameter matches with any of the registered ACS URLs of the service provider, then the Identity Server sends the response to the matched one.
    http://wso2is.local:8080/travelocity.com/home.jsp
    NameID format

    Specify the NameID format. This defines the name identifier formats supported by the identity provider. The 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. Name identifiers are used to provide information regarding a user. 

    About NameID formats

    For SSO interactions, you can use the following types of NameID formats.

    • urn:oasis:names:tc:SAML:2.0:nameid-format:persistent
    • urn:oasis:names:tc:SAML:2.0:nameid-format:transient
    • urn:oasis:names:tc:SAML:1.1:nameid-format:
    • emailAddressurn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
    • urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName
    • urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName
    • urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos
    • urn:oasis:names:tc:SAML:2.0:nameid-format:entity

    This specifies the name identifier format that the Identity Server wants to receive in the subject of an assertion from a particular identity provider. The following is the default format used by the identity provider.

    • urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress

    urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress

    Certificate Alias

    Select the Certificate Alias from thedropdown. This is used to validate the signature of SAML2 requests and is used to generate encryption.Basically the service provider’s certificate must be selected here. Note that this can also be the Identity Server tenant's public certificate in a scenario where you are doing atenant specific configuration.

     
    wso2carbon
    Response Signing Algorithm

    Specifies 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.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#rsa­sha1.

    http://www.w3.org/2000/09/xmldsig#rsa­sha1
    Response Digest Algorithm

    Specifies 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.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
    Enable Response SigningSelect Enable Response Signing to sign the SAML2 Responses returned after the authentication process.Selected
    Enable SignatureValidation inAuthentication Requests and Logout Requests Select Enable Signature Validation in Authentication Requests and Logout Requests if you need this functionality configured. This specifies whether the identity provider must validate the signature of the SAML2 authentication request and the SAML2 logout request thatare sent by the service provider. Unselected
    Enable Assertion EncryptionEnable Assertion Encryption, if you wish to encrypt the assertion.Unselected
    Enable Single Logout

    Select Enable Single Logout so that all sessions are terminated once the user signs out from one server. If single logout is enabled, the identity provider sends logout requests to all service providers. Basically, the identity provider acts according to the single logout profile. If the service provider supports a different URL for logout, you can enter a SLO Response URL and SLO Request URL for logging out. These URLs indicate where the request and response should go to. If you do not specify this URL, the identity provider uses the Assertion Consumer Service (ACS) URL. 

    To configure SAML Back-Channel Logout and SAML Front-Channel Logout described below, apply the 3904 WUM update to WSO2 IS 5.3.0 using the WSO2 Update Manager (WUM). To deploy a WUM update into production, you need to have a paid subscription. If you do not have a paid subscription, you can use this feature with the next version of WSO2 Identity Server when it is released. For more information on updating WSO2 Identity Server using WUM, see Getting Started with WUM in the WSO2 Administration Guide.

    WSO2 Identity Server supports both SAML Back-Channel Logout and SAML Front-Channel Logout methods. By default, when you select Enable Single Logout the Back-Channel Logout is enabled. In order to enable SAML Front-Channel Logout, you can either select Front-Channel Logout (HTTP Redirect Binding) or Front-Channel Logout (HTTP POST Binding).

    Selected
    Enable Attribute Profile Select Enable Attribute Profile to enable this and add a claim by entering the claim link and clicking the Add Claim button. The Identity Server provides support for a basic attribute profile where the identity provider can include the user’s attributes in the SAML Assertions as part of the attribute statement. Once you select the checkbox to Include Attributes in the Response Always, the identity provider always includes the attribute values related to the selected claims in the SAML attribute statement.Unselected
    Enable Audience RestrictionSelect Enable Audience Restriction to restrict the audience. You may add audience members using the Audience text box and clicking the Add button.Unselected
    Enable Recipient Validation Select this if you require validation from the recipient of the response.Unselected
    Enable IdP Initiated SSOSelect the Enable IdP Initiated SSO checkbox to enable this functionality. When this is enabled, the service provider is not required to send the SAML2 request. Unselected
    Enable IdP Initiated SLOSelect the Enable IdP Initiated SLO checkbox to enable this functionality. You must specify the URL.Unselected
    Enable Assertion Query Request ProfileSelect the Enable Assertion Query Request Profile checkboxto query assertions that are persisted to the database when you loginto the service provider application. For more information, see Querying SAML Assertions.Unselected

    Metadata file configuration

    This option allows you to provide the configuration data required for configuring SAML2, by uploading a metadata .xml file instead of having to manually enter the values. This enables faster entry of configuration data and allows the user to use the same metadata XML file for multiple instances of entity configuration. 

    1. Select Metadata File Configuration.
    2. Click Choose File, and select the .xml file containing the metadata for the service provider SAML configuration. 
    3. Click Upload

       Click here to view a sample of the metadata configuration file
      Service provider metadata file
      <EntityDescriptor
      xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
      entityID="sample.com">
      <SPSSODescriptor
      AuthnRequestsSigned="false"
      WantAssertionsSigned="false"
      protocolSupportEnumeration= "urn:oasis:names:tc:SAML:2.0:protocol">
      <KeyDescriptor use="signing">
      <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
      <X509Data>
      <X509Certificate>
      
      
      MIIC+jCCAmOgAwIBAgIJAParOnPwEkKjMA0GCSqGSIb3DQEBBQUAMIGKMQswCQYD
      VQQGEwJMSzEQMA4GA1UECBMHV2VzdGVybjEQMA4GA1UEBxMHQ29sb21ibzEWMBQG
      A1UEChMNU29mdHdhcmUgVmlldzERMA8GA1UECxMIVHJhaW5pbmcxLDAqBgNVBAMT
      I1NvZnR3YXJlIFZpZXcgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTEwMDcxMDA2
      MzMwM1oXDTI0MDMxODA2MzMwM1owdjELMAkGA1UEBhMCTEsxEDAOBgNVBAgTB1dl
      c3Rlcm4xEDAOBgNVBAcTB0NvbG9tYm8xFjAUBgNVBAoTDVNvZnR3YXJlIFZpZXcx
      ETAPBgNVBAsTCFRyYWluaW5nMRgwFgYDVQQDEw9NeSBUZXN0IFNlcnZpY2UwgZ8w
      DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAN6bi0llFz+R+93nLLK5BmnuF48tbODp
      MBH7yGZ1/ESVUZoYm0GaPzg/ai3rX3r8BEr4TUrhhpKUKBpFxZvb2q+yREIeDEkD
      bHJuyVdS6hvtfa89WMJtwc7gwYYkY8AoVJ94gU54GP2B6XyNpgDTXPd0d3aH/Zt6
      69xGAVoe/0iPAgMBAAGjezB5MAkGA1UdEwQCMAAwHQYDVR0OBBYEFNAwSamhuJSw
      XG0SJnWdIVF1PkW9MB8GA1UdIwQYMBaAFNa3YmhDO7BOwbUqmYU1k/U6p/UUMCwG
      CWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTANBgkq
      hkiG9w0BAQUFAAOBgQBwwC5H+U0a+ps4tDCicHQfC2SXRTgF7PlAu2rLfmJ7jyoD
      X+lFEoWDUoE5qkTpMjsR1q/+2j9eTyi9xGj5sby4yFvmXf8jS5L6zMkkezSb6QAv
      tSHcLfefKeidq6NDBJ8DhWHi/zvC9YbT0KkCToEgvCTBpRZgdSFxTJcUksqoFA==
      
      
      </X509Certificate>
      </X509Data>
      </KeyInfo>
      </KeyDescriptor>
      <KeyDescriptor use="encryption">
      <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
      <X509Data>
      <X509Certificate>
      
      
      MIIC+jCCAmOgAwIBAgIJAParOnPwEkKjMA0GCSqGSIb3DQEBBQUAMIGKMQswCQYD
      VQQGEwJMSzEQMA4GA1UECBMHV2VzdGVybjEQMA4GA1UEBxMHQ29sb21ibzEWMBQG
      A1UEChMNU29mdHdhcmUgVmlldzERMA8GA1UECxMIVHJhaW5pbmcxLDAqBgNVBAMT
      I1NvZnR3YXJlIFZpZXcgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTEwMDcxMDA2
      MzMwM1oXDTI0MDMxODA2MzMwM1owdjELMAkGA1UEBhMCTEsxEDAOBgNVBAgTB1dl
      c3Rlcm4xEDAOBgNVBAcTB0NvbG9tYm8xFjAUBgNVBAoTDVNvZnR3YXJlIFZpZXcx
      ETAPBgNVBAsTCFRyYWluaW5nMRgwFgYDVQQDEw9NeSBUZXN0IFNlcnZpY2UwgZ8w
      DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAN6bi0llFz+R+93nLLK5BmnuF48tbODp
      MBH7yGZ1/ESVUZoYm0GaPzg/ai3rX3r8BEr4TUrhhpKUKBpFxZvb2q+yREIeDEkD
      bHJuyVdS6hvtfa89WMJtwc7gwYYkY8AoVJ94gU54GP2B6XyNpgDTXPd0d3aH/Zt6
      69xGAVoe/0iPAgMBAAGjezB5MAkGA1UdEwQCMAAwHQYDVR0OBBYEFNAwSamhuJSw
      XG0SJnWdIVF1PkW9MB8GA1UdIwQYMBaAFNa3YmhDO7BOwbUqmYU1k/U6p/UUMCwG
      CWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTANBgkq
      hkiG9w0BAQUFAAOBgQBwwC5H+U0a+ps4tDCicHQfC2SXRTgF7PlAu2rLfmJ7jyoD
      X+lFEoWDUoE5qkTpMjsR1q/+2j9eTyi9xGj5sby4yFvmXf8jS5L6zMkkezSb6QAv
      tSHcLfefKeidq6NDBJ8DhWHi/zvC9YbT0KkCToEgvCTBpRZgdSFxTJcUksqoFA==
      
      
      </X509Certificate>
      </X509Data>
      </KeyInfo>
      <EncryptionMethod Algorithm= "https://www.w3.org/2001/04/xmlenc#aes128-cbc">
      <KeySize xmlns="https://www.w3.org/2001/04/xmlenc#">128</KeySize>
      </EncryptionMethod>
      </KeyDescriptor>
      <SingleLogoutService
      Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"
      Location="https:/sample.com:3443/federation/SPSloRedirect/metaAlias/sp"
      ResponseLocation="https://sample.com:3443/
      federation/SPSloRedirect/metaAlias/sp"/>
      <SingleLogoutService
      Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP"
      Location="https://sample.com:3443/federation/SPSloSoap/metaAlias/sp"/>
      <ManageNameIDService
      Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"
      Location="https://sample.com:3443/federation/SPMniRedirect/metaAlias/sp" 
      ResponseLocation="https://sample.com:3443/federation/SPMniRedirect/metaAlias/sp"/>
      <ManageNameIDService
      Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP"
      Location="https:/sample.com:3443/federation/SPMniSoap/metaAlias/sp"
      ResponseLocation="https://sample.com:3443/federation/SPMniSoap/metaAlias/sp"/>
      <NameIDFormat>
      urn:oasis:names:tc:SAML:2.0:nameid-format:persistent
      </NameIDFormat>
      <NameIDFormat>
      urn:oasis:names:tc:SAML:2.0:nameid-format:transient
      </NameIDFormat>
      <AssertionConsumerService
      isDefault="true"
      index="0"
      Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact"
      Location="https://sample.com:3443/federation/Consumer/metaAlias/sp"/>
      <AssertionConsumerService
      index="1"
      Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
      Location="https://sample.com:3443/federation/Consumer/metaAlias/sp"/>
      </SPSSODescriptor>
      </EntityDescriptor>

    URL configuration

    Metadata for a service provider may be published in a well known location via a URI. This option allows you to provide the configuration data required for configuring SAML2, by providing a URI(Ex: "https://spconfigs.com/sample-sp.xml") instead of having to manually enter the values. This enables faster entry of configuration data and allows the user to use the same metadata XML file for multiple instances of entity configuration. 

    1. Select URL Configuration and enter the URL containing the service provider metadata. 
    2. Click Upload

    Additional configurations

    •  Click here to expand for more information on signature algorithms.

      The following table provides the list of signature algorithms available and their respective URI.

      Signature algorithm nameSignature algorithm URI
      DSA with SHA1  http://www.w3.org/2000/09/xmldsig#dsasha1
      ECDSA with SHA1  http://www.w3.org/2001/04/xmldsigmore#ecdsasha1
      ECDSA with SHA256  http://www.w3.org/2001/04/xmldsigmore#ecdsasha256
      ECDSA with SHA384  http://www.w3.org/2001/04/xmldsigmore#ecdsasha384
      ECDSA with SHA512  http://www.w3.org/2001/04/xmldsigmore#ecdsasha512
      RSA with MD5  http://www.w3.org/2001/04/xmldsigmore#rsamd5
      RSA with RIPEMD160  http://www.w3.org/2001/04/xmldsigmore#rsaripemd160
      RSA with SHA1  http://www.w3.org/2000/09/xmldsig#rsasha1
      RSA with SHA256 http://www.w3.org/2001/04/xmldsigmore#rsasha256
      RSA with SHA384  http://www.w3.org/2001/04/xmldsigmore#rsasha384
      RSA with SHA512  http://www.w3.org/2001/04/xmldsigmore#rsasha512
    •  Click here to expand for more information on digest algorithms.

      The following table provides the list of digest algorithms available and their respective URI.

      Digest algorithm nameDigest algorithm URI
      MD5  http://www.w3.org/2001/04/xmldsigmore#md5
      RIPEMD160 http://www.w3.org/2001/04/xmlenc#ripemd160
      SHA1 http://www.w3.org/2000/09/xmldsig#sha1
      SHA256 http://www.w3.org/2001/04/xmlenc#sha256
      SHA384  http://www.w3.org/2001/04/xmldsigmore#sha384
      SHA512 http://www.w3.org/2001/04/xmlenc#sha512
    • If you need to sign the SAML response using an authenticated user's tenant keystore, please add the following configuration. (By default, the response is signed using the certificate that belongs to the tenant where the service provider is registered). This property must be added if the SAML authenticator version in the WSO2 Carbon products that you are using is 4.2.2 or higher (org.wso2.carbon.identity.authenticator.saml2.sso_4.2.2.jar).

      Add the <UseAuthenticatedUserDomainCrypto> property available in the <IS_HOME>/repository/conf/identity.xml file as shown below.

      <SSOService>
      ...
      	<UseAuthenticatedUserDomainCrypto>true<UseAuthenticatedUserDomainCrypto>
      </SSOService>
    Related Topics

    See SAML 2.0 Web SSO for more information on SAML2 single-sign-on and see the following topics for samples of configuring single-sign-on using SAML2.

    See Using the SAML2 Toolkit for support on debugging issues with SAML2 configurations.

     OAuth/OpenID Connect Configuration

    OAuth 2.0 has three main phases. They are;  requesting an Authorization Grant,  exchanging the Authorization Grant for an Access Token and accessing the resources using this Access Token.  OpenID Connect is another identity layer on top of OAuth 2.0. OAuth applications can get authentication event information over the IDToken and can get the extra claims of the authenticated user from the OpenID Connect UserInfo endpoint.

    To enable OAuth support for your client application, you must first register your application. Follow the instructions below to add a new application.

    1. Expand the Inbound Authentication Configuration section and then expand OAuth/OpenID Connect Configuration. Click Configure.
    2. Fill in the form that appears. For the Allowed Grant Types you can disable the ones you do not require or wish to block.

      Note: The grant type highlighted below is a custom grant type. This will only appear on the UI if you have configured the JWT grant type. The value specified in the <GrantTypeName> property of the identity.xml file when creating the custom grant type is the value that will appear on the UI. For more information on writing a custom grant type, see Writing a Custom OAuth 2.0 Grant Type.


      When filling out the New Application form, the following details should be taken into consideration.

      FieldNotes
      OAuth Version

      Selecting OAuth Version as 1.0a removes all the configurable Allowed Grant Types. This is because this version of OAuth does not support grant types.

      Callback Url

      This is the exact location in the service provider's application where an access token would be sent. This is a required field (if the grant type is anything other than 'Code' or 'Implicit') and it is important to configure, as it is imperative that the service provider receives the access token. This is necessary for security purposes to ensure that the token is not compromised.

      Configure multiple callback URLs

      From IS 5.2.0 onwards, regex based consumer URLs are supported when defining the callback URL. This enables you to configure multiple callback URLs for one application by entering a regex pattern as the value for the callback URL field.
      For example, if you have two service providers that use the same application, you can now define a regex pattern which will work for both callback URLs instead of having to configure two different applications for the two service providers. Assume the two callback URLs for your two service providers are as follows:

      • https://myapp.com/callback
      • https://testapp:8080/callback

      To configure the callback URL to work for both of these URLs, set it using a regex pattern as follows:

      regexp=(https://myapp.com/callback|https://testapp:8000/callback)

      To send a request with multiple callback URLs, click here.

      You must have the prefix 'regexp=' before your regex pattern. To define a normal URL, you can specify the callback URL without this prefix.

      You can also configure a regex pattern that contains dynamic values as seen below

      regexp=https://mchcon.clance.local\?id=(.*)
      Allowed Grant Types - The following are the grant types that are used to get the access token:
      Code

      Entering the user name and password required at the service provider will result in a code being generated. This code can be used to obtain the access token. For more information on this grant type, see this Authorization Code specification.

      Implicit

      This is similar to the code grant type, but instead of generating a code, this directly provides the access token. For more information on this grant type, see this Implicit Grant specification.

      Password

      This authenticates the user using the password provided and the access token is provided. For more information on this grant type, see this Resource Owner Password Credentials Grant specification.

      Client CredentialThis is the grant type for the client key and client secret. If these two items are provided correctly by the service provider, the access token is sent. For more information on this grant type, see this Client Credentials specification.
      Refresh Token This will enable the user to obtain an access token by using the refresh token once the originally provided access token is used up. For more information on this grant type, see this Refresh Token specification.
      SAML 

      This uses SAML assertion to obtain the access token. For more information on this grant type, see this SAML2 Bearer specification.

      IWA-NTLMThis is similar to the password grant type, but it is specific to Microsoft Windows users.
      urn:ietf:params:oauth: grant-type:jwt-bearer This is a custom grant type. It uses a JWT token to obtain the access token. For more information about this grant type, see this JWT specification.
      PKCE Mandatory Select this if you are using the Code grant type. PKCE is a recommended security measure used to mitigate a code interception attack. See Mitigating Authorization Code Interception Attacks for more information.
      Support PKCE 'Plain' Transform Algorithm Select this if you are using PKCE.

    3. Click Add. The following information is added for your service provider.
      • OAuth Client Key - This is the client key of the service provider, which will be checked for authentication by the Identity Server before providing the access token.
      • OAuth Client Secret - This is the client secret of the service provider, which will be checked for authentication by the Identity Server before providing the access token. Click the Show button to view the exact value of this.
      • Actions - 
        • Edit: Click to edit the OAuth/OpenID Connect Configurations

        • Revoke: Click to revoke (deactivate) the OAuth application. This action revokes all tokens issued for this application. In order to activate the application, you have to regenerate the consumer secret. 

        • Regenerate Secret: Click to regenerate the secret key of the OAuth application. 

        • Delete: Click to delete the OAuth/OpenID Connect Configurations.

      Tip: The OAuth client key and client secret are stored in plain text. To encrypt the client secret, access token and refresh token, do the following:

      Open the identity.xml file found in the <IS_HOME>/repository/conf/identity directory and change the <TokenPersistenceProcessor> property as follows:

      <TokenPersistenceProcessor>org.wso2.carbon.identity.oauth.tokenprocessor.EncryptionDecryptionPersistenceProcessor</TokenPersistenceProcessor>

      After updating the configuration, make sure to restart the server for the changes to be applied on WSO2 IS.

      WSO2 Identity Server enables defining OAuth token validity periods for all OAuth service providers as well as for a particular service provider.  


     WS-Federation (Passive) Configuration

    WSO2 Identity Server's passive security token service (Passive STS) is used as the WS-Federation implementation. The Passive STS is capable of issuing SAML 1.1 and 2.0 security tokens.

    To request a SAML 2.0 security token, the Request Security Token (RST) should be sent to the passive STS endpoint with the TokenType 'SAMLV2.0' when sending the token request. If there is no RST specified, the WSO2 Identity Server will issue a SAML 1.1 token by default.

    Configuring passive STS

    1. See here for details on adding a service provider. 
    2. Expand the Inbound Authentication Configuration followed by the WS-Federation (Passive) Configuration section and provide the following values. 

      • Passive STS Realm - This should be an unique identifier for the web app. Provide the same realm name given to the web app you are configuring WS-Federation for.
      • Passive STS WReply URL - Provide the URL of the web app you are configuring WS-Federation for.  This endpoint URL will handle the token response.

        Tip

        If you want to configure an expiration time for the security token, you need to add the following configuration in the <IS_HOME>/repository/conf/carbon.xml file, under the <Server> element:

        <STSTimeToLive>1800000</STSTimeToLive>

        Here, the expiration time should be specified in milliseconds.

    3. Expand the Claim Configuration section and map the relevant claims. See Configuring Claims for a Service Provider for more information. 
    4. Click Update to save changes. 

    Currently the signing algorithm used for passive STS by default is rsa-sha1 and the digest algorithm used is sha1. To change the default algorithms, add the following configuration under the <security> tag in the carbon.xml file found in the <IS_HOME>/repository/conf directory. The example given below sets the signing algorithm to rsa-sha256 and the digest algorithm to sha256.

    <STSSignatureAlgorithm>http://www.w3.org/2001/04/xmldsig-more#rsa-sha256</STSSignatureAlgorithm>
    <STSDigestAlgorithm>http://www.w3.org/2001/04/xmlenc#sha256</STSDigestAlgorithm>

    To configure this, apply the 3758 WUM update to WSO2 IS 5.6.0 using the WSO2 Update Manager (WUM). To deploy a WUM update into production, you need to have a paid subscription. If you do not have a paid subscription, you can use this feature with the next version of WSO2 Identity Server when it is released. For more information on updating WSO2 Identity Server using WUM, see Getting Started with WUM in the WSO2 Administration Guide.

    Related Topics

     WS-Trust Security Token Service Configuration

    WSO2 Identity Server's security token service (STS) is used as the WS-Trust implementation. The STS is capable of issuing SAML 1.1 and 2.0 security tokens and has a SOAP/XML API for token issuance. This API can be secured with the UserNameToken or with any other WS-Security mechanism as explained below. 

    Securing the Security Token Service

    According to the Trust Brokering model defined in the WS-Trust specification, the users should authenticate themselves to the STS before obtaining a token. STS may use this authentication information when constructing the security token. For example, STS may populate the required claims based on the user name provided by the subject. Therefore, the STS service needs to be secured.

    STS is configured under the Resident Identity Provider section of the Identity Server Management Console. Follow the instructions below to secure the Security Token Service by logging into the management console.

    1. Log in as an admin to access the management console.
    2. Configure the Resident Identity Provider. See here for more detailed information on how to do this.
    3. In the Resident Identity Provider page, expand the Inbound Authentication Configuration section along with the Security Token Service Configuration section.
    4. Click Apply Security Policy.
    5. Select Yes in the Enable Security? dropdown and select a pre-configured security scenario according to your requirements. In this case, we will use UsernameToken under the Basic Scenarios section. 

      You can find further details about the security policy scenarios from the view scenario option.

    6. Click Next.

      Next steps may vary as per the security scenario that you have chosen under point (5) above. Below, is for UsernameToken scenario.

    7. Select ALL-USER-STORE-DOMAINS from the drop-down.
    8. In the resulting page, select the role you created, to grant permission to access secured service. In this example, admin role is used. Next, click Finish.

      The Select Domain drop-down lists many domains. The listed User Groups can vary depending on the domain selected.


    9. Click Ok on the confirmation dialog window that appears.
    10. Click Update to complete the process.

    Now, STS is configured and secured with a username and password. Only the users with the Admin role can consume the service.

    The next step is to add a service provider to consume the STS.

    Adding a service provider for the STS client

    Do the following steps if you are using a Holder of Key subject confirmation method. See Configuring STS for Obtaining Tokens with Holder-Of-Key Subject Confirmation for more information.

    The Subject confirmation methods define how a relying party (RP), which is the end service, can make sure a particular security token issued by an STS is brought by the legitimate subject. If this is not done, a third party can take the token from the wire and send any request it wants including that token. The RP trusts that illegitimate party.

    1. See Configuring a Service Provider for details on adding a service provider. 
    2. Expand the Inbound Authentication Configuration section and the WS-Trust Security Token Service Configuration section. Click Configure.
    3. In the resulting screen, enter the trusted relying party's endpoint address that is the endpoint address of the Security Token Service. For more information, see Broker Trust Relationship with WSO2 Identity Server and upload the public certificate of the trusted relying party. 

      You need to add the certificate of the relying party to the truststore. For more information on how to create the certificate and add it to the truststore, see here.

      The endpoint must be used as the service URL to which the token gets delivered by the STS client. Then select the public certificate imported. Tokens issued are encrypted using the public certificate of the trusted relying party. Therefore, the consumer who obtains this token, to invoke the RP service won't be able to see the token. 

    4. Click Update to save the changes made to the service provider.

      Related Topics

      Run the STS client after configuring the service provider. See Running an STS Client to try out a sample STS client.

    Related Topics

    See Single Sign-On for details on configuring single sign-on for a service provider using inbound authentication. See the following topics for samples of configuring single sign-on:

    For more information on Kerberos and how it works with the WSO2 Identity Server, see Kerberos Security.

     Click here for details on how to configure local and outbound authentication

    The responsibility of the local authenticators is to authenticate the user with locally available credentials. This can be either username/password or even IWA (Integrated Windows Authentication) or FIDO (Fast IDentity Online). Local authenticators are decoupled from the Inbound Authenticators. Once the initial request is handed over to the authentication framework from an inbound authenticator, the authentication framework talks to the service provider configuration component to find the set of local authenticators registered with the service provider corresponding to the current authentication request.

    Once the local authentication is successfully completed, the local authenticator will notify the framework. The framework will now decide no more authentication is needed and hand over the control to the corresponding response builder of the inbound authenticator. See Architecture for more information on this.

    You can configure the following for local and outbound authentication.

    1. Expand Local & Outbound Authentication Configuration.

      • Assert identity using mapped local subject identifier: This option will use the local subject identifier when asserting the identity.
      • Always send back the authenticated list of identity providers: This option will send back the list of identity providers that the current user is authenticated by.
      • Use tenant domain in local subject identifier: This option will append the tenant domain to the local subject identifier.
      • Use user store domain in local subject identifier: This option will append the user store domain that the user resides in the local subject identifier.
      • Enable Authorization: This option enables you to engage authorization policies for the service provider. For more information, see Configuring Access Control Policy for a Service Provider.
    2. Select the Authentication Type you require from the available options. This is a required field.
      • If you choose Local Authentication, you need to select the local authentication option from the dropdown list.
      • If you choose Federated Authentication, you need to select the identity provider from the dropdown list.
      • If you choose Advanced Configurations, you can configure additional authentication steps and additional authentication options.
        1. There are two types of multi-factor authentication that can be configured here.
          1. Multi-step authentication: Click Add Authentication Step. Clicking this again will enable you to create another authentication step.
          2. Multi-option authentication: Click Add Authenticator to add either a Local or Federated authenticator after selecting it from the dropdown. Adding more than one of these within a single step enables multi-option authentication.
        2. Select whether to Use subject identifier from this step, Use attributes from this step or both. In the case of multiple steps, you can have only one step to use subject identifier from this step and one to use attributes from this step.
          For example lets say, We configure 1st step as Facebook and enable Use subject identifier from this step. Then configure Google for 2nd step and enable Use attributes from this step. Once authentication is complete subject id will be taken from the Facebook claims and Google claims will be used as users attributes.
        3. Click the plus button to add a Local Authenticator. You can choose the type of authenticator using the dropdown. Clicking the plus button again will enable you to add a second local authenticator. Basic authentication allows you to authenticate users from the enterprise user store.
        4. Click the plus button to add a Federated Authenticator. You can choose the type of authenticator using the dropdown. Clicking the plus button again will enable you to add a second federated authenticator.
        5. Click the Update button. This will return you to the previous screen with your newly configured authentication steps.
    3. Add a local authenticator under Request Path Authentication Configuration by clicking the Add button. Clicking the Add button again enables you to add another local authenticator. The two types of local authenticators available are as follows.
      • OAuthRequestPathAuthenticator
      • BasicAuthRequestPathAuthenticator

    Look through the following for more details on the various authentication types. 

    Authentication TypeDetails
    Default

    This is the default authenticator sequence for a configured service provider in the Identity Server. This sequence can be modified by updating following section in the <IS_HOME>/repository/conf/identity/application-authentication.xml file.

    <Sequences>
    	<!-- Default Sequence. This is mandatory -->
    	<Sequence appId="default">
    		<Step order="1">
    			<Authenticator name="BasicAuthenticator"/>
    		</Step>
    	</Sequence>
    </Sequences>
    LocalAuthentication

    In this case, Identity Server itself authenticate the user. There are three types of local authenticators OOTB in a fresh Identity Server pack.

    • The basic authenticator is used to authenticate the user using the credentials available in the Identity Server.
    • IWA stands for Integrated Windows Authentication and involves automatically authenticating users using their Windows credentials.
    • FIDO authenticator is a local authenticator that comes with the WSO2 Identity Server. This will handle FIDO authentication requests related key validation against stored keys, the public key,keyhandler, and the counter, attestation certificate of FIDO registered users.
    FederatedAuthenticationIn this case, Identity Server trust third-party Identity provider to perform the user authentication. These Identity providers use various protocols to transfer authentication/authorization related messages. Currently, the Identity Server only supports the following federated authenticators OOTB.
    • SAML2 Web SSO
    • OAuth2/OpenID Connect
    • WS-Federation (Passive)
    • Facebook
    • Microsoft (Hotmail, MSN, Live)
    • Google
    • SMS OTP
    • Email OTP
    • Twitter
    • Yahoo
    • IWA Kerberos
    • Office365
    Advanced ConfigurationAdvanced configurations enable you to add multiple options or steps in authentication. When multiple authentication steps exist, the user is authenticated based on each and every one of these steps. If only one step is added then the user is only authenticated based on the local and/or federated authenticators added in a single step. However, in the case of local and/or federated authenticators, the authentication happens based on any one of the available authenticators.

    Request path authenticators

    A request path authenticator will get executed only if the initial authentication request brings the applicable set of credentials with it. See Request Path Authentication for more details.

    Related Topics

     Click here for details on how to configure inbound provisioning

    See Inbound Provisioning for more information on inbound provisioning. To configure inbound provisioning for the service provider, follow the steps below. 

    Do the following to configure inbound provisioning.

    1. Expand the Inbound Provisioning Configuration section and expand the SCIM/SOAP Configuration form.
    2. Select the user store domain name from the drop down list to provision users and groups.
    Related Topics

     Click here for details on how to configure outbound provisioning

    You might want to outbound provision users that self-register to your applications (service provider) to other entities, such as Google or Salesforce. This section guides you on how to configure outbound provisioning for a service provider.

    Scenario

    For example, your organization has a registration portal to add new employees and a registration portal to add customers to your system. WSO2 Identity Server acts as your Identity Provider. You want the newly added users to be provisioned to Google and Salesforce because Gmail and Salesforce are used for day to day activities in the organization. The customer details only need to be stored in the WSO2 Identity Server's user store. Therefore, you configure the Service Provider that was created for the employees' registration application to handle outbound provisioning too.

    Do the following to configure outbound provisioning.

    1. Expand the Outbound Provisioning Configuration. For this section to be configurable, you should already have added an identity provider and enabled an outbound provisioning connector (Google, Salesforce, SCIM, SPML, etc.).
    2. Choose the identity provider you require from the drop-down and click

    3. Click Update to save your changes.

      • If you select Blocking, the authentication flow is blocked until the provisioning finishes. If Blocking is not selected, provisioning happens in a different thread. In the blocking mode, the authentication flow will be blocked till the provisioning finishes while in the non-blocking mode, provisioning happens in a different thread. If you want to allow a user to access your application only if the user is authenticated as well as provisioned then you have to use blocking mode, in other words, if you don't care whether the user gets provisioned or not in order to access your application you can use non-blocking mode.

      • If you select Enable JIT Outbound, the users are provisioned to the WSO2 IS user store on-the-fly as and when they are authenticated using just-in-time provisioning. To enable this, you need to configure JIT provisioning for the Identity Provider. For more information, see Configuring Just-In-Time Provisioning.
      • If you select Enable Rules, the users are provisioned based on the pre-defined XACML rules. For more information, see Rule Based Provisioning.
      • The Delete button to remove the identity provider you added.
    Related Topics
    • See Outbound Provisioning for more information on configuring user stores and service providers for outbound provisioning.

  7. Click the Update button to update the details of the service provider.

Configuring a resident service provider

WSO2 Identity Server can mediate authentication requests between service providers and identity providers. At the same time, the Identity Server itself can act as a service provider and an identity provider. When it acts as a service provider it is known as the resident service provider.

The Identity Server mainly acts as a resident service provider while adding users to the system. You can enable provisioning configurations for the resident service provider. For example, if you try to add users to the system via the SCIM API ( You must use a privileged local account to invoke the API to authenticate with HTTP Basic Authentication.), the system will read the provisioning configurations from the resident service provider.

At the same time, if you want to configure outbound provisioning for any user management operation done via the management console, SOAP API or the SCIM API, you must configure outbound provisioning identity providers against the resident service provider. So, based on the outbound configuration, users added from the management console will also be provisioned to external systems like Salesforce and Google Apps.

Follow the instructions below to configure a resident service provider in the WSO2 Identity Server.

  1. Sign in. Enter your username and password to log on to the Management Console.
  2. Click Resident under the Service Providers on the Main tab. 
  3. The Resident Service Provider page appears.
    1. Select the user store domain to provision users and groups for inbound authentication for SCIM or SOAP requests.
    2. For outbound provisioning configurations, select the identity provider from the dropdown list available and click the plus button to add this identity provider for provisioning. For an identity provider to appear on this list you have to add the identity provider in the Identity Server. The following are the names that would appear for each type of provisioning connector.
      • Google provisioning connector - Google and googleapps
      • Salesforce provisioning connector - salesforce.com and salesforce
      • SCIM provisioning configuration - scim
      • SPML provisioning configuration - spml
  4. Click Update.

Managing service providers

This topic provides instructions on how to manage service providers once they are created.

Viewing service providers

Follow the instructions below to view the list of service providers added in the WSO2 Identity Server.

  1. Sign in. Enter your username and password to log on to the Management Console.
  2. In the Main menu under the Identity section, click List under Service Providers. The list of service providers you added appears.

Editing service providers

Follow the instructions below to edit a service provider's details.

  1. Sign in. Enter your username and password to log on to the Management Console.
  2. In the Main menu under the Identity section, click List under Service Providers. The list of service providers you added appears.
  3. Locate the service provider you want to edit and click on the corresponding Edit link.
  4. You are directed to the edit screen. See here for details on the editable form.

Deleting service providers

Follow the instructions below to delete a service provider.

  1. Sign in. Enter your username and password to log on to the Management Console.
  2. In the Main menu under the Identity section, click List under Service Providers. The list of service providers you added appears.
  3. Locate the service provider you want to delete and click on the corresponding Delete link.
  4. Confirm your request in the WSO2 Carbon window. Click the Yes button.
Related Topics

See the following topics for information on configuring service providers using different specifications.

  • See the Single Sign-On topic for details on how to configure a service provider for single sign-on using different specifications.
  • See Identity Provisioning for information on configuring inbound and outbound provisioning with a service provider.

See the following topics to configure different applications as service providers in Identity Server.