Setting Up the SAML Web Browser SSO Feature

This section provides information about setting up the SAML Web Browser SSO feature, including planning, installation, setup steps in Policy Manager and Community Manager, and testing.

Note: Once you have everything set up, any change made in the Akana Platform that affects the URLs used for sending and receiving messages related to SAML will require update in the Service Provider account configuration with the Identity Provider. For information on updating, see Modifying an Existing SAML Installation.

Table of Contents

  1. Requirements for the SAML domain to work in Community Manager
  2. Step 1: Download and install the plug-ins to support SAML web browser SSO
  3. Step 2: Gather information
  4. Step 3: Determine setup sequence
  5. Step 4: Configure the domain in Policy Manager
  6. Step 5: Configure the service provider account with the identity provider
  7. Step 6: Community Manager configuration
  8. Step 7: Test

Requirements for the SAML domain to work in Community Manager

At a high level, to set up a domain that uses SAML Web Browser SSO to provide single sign-on services in Community Manager, you must complete the steps below.

Note: This document assumes that you've already created an account with your selected Identity Provider.

To set up the SAML Web Browser SSO feature: high-level procedure
  1. Download the plug-ins relating to the SAML Web Browser SSO feature and install them in the correct containers. See Step 1: Download and install the plug-ins to support SAML web browser SSO.
  2. Gather the information you'll need to provide in the configuration steps. See Step 2: Gather Information.
  3. Determine setup sequence. Whether it's best to do the Policy Manager setup first, or the Identity Provider setup first, depends on which Identity Provider you are using. See Step 3: Determine setup sequence.
  4. In Policy Manager, set up the SAML domain, with the values relating to your SAML installation (gathered in Step 2). See Step 4: Configure the domain in Policy Manager.
  5. In your Identity Provider account, set up the Service Provider connection, using the values you gathered in Step 2. The specific steps will vary depending on the Identity Provider you're using. Examples for specific IdPs:

    Note: Depending on your specific setup and the Identity Provider you are using, it might be more efficient to do the setup in the Identity Provider (Step 4) first. In either case, the important thing is to make sure that the applicable values are set up correctly in both places.

  6. In Community Manager, complete the setup by following the applicable procedure, depending on how you will be using the SAML domain:
  7. In Community Manager, test to make sure your domain that uses the SAML Web Browser SSO feature works correctly:

Back to top

Step 1: Download and install the plug-ins to support SAML web browser SSO

To get support for the SAML Web Browser SSO feature, you'll first need to download and install the saml-web-sso option pack from the Akana Library (https://library.akana.com/display/MAIN/Akana+Library. On the left, click Downloads. Choose your Akana API Platform version, click in to the OptionPacks folder, and download the ZIP file.

As part of your production installation, install the ZIP file after the Akana Platform and Akana API Platform main files and any updates. For installation sequence and details, refer to the installation documentation for your version: for example, for 8.4, see Step 2: Unzip files into the installation folder in the correct sequence in the API Platform installation doc.

Then, install the following optional plug-ins:

In the Akana Administration Console for the Policy Manager container:

  • Akana SAML 2.0 Web Browser SSO Service Provider UI

In the Akana Administration Console for all other containers:

  • Akana SAML 2.0 Web Browser SSO Service Provider

Which plug-ins you would need to install depends on the container, as follows:

  • In the Policy Manager Console container: #2 above, SSO Service Provider UI.
  • In every other container (Community Manager or OAuth Provider): #1 above, SSO Service Provider.

Back to top

Step 2: Gather information

When registering with the SAML Identity Provider, the terminology used or the organization of information might be a little different, depending on the specific provider, However, you can expect to be asked for the following pieces of information. Before setup, gather this information and have it ready when completing the configuration steps in Policy Manager and your Identity Provider:

  • The request SAML binding you will be using (HTTP POST or HTTP Redirect).
  • The response SAML binding you will be using (HTTP POST or HTTP Artifact).
  • Security key information for your request messages.
  • If you are using HTTP Artifact binding for the response, security key information for encryption of the artifact.
  • Your SAML Service Provider Entity ID (see Entity ID). This value is determined by you, but must be set up with the Identity Provider and must be unique for that Identity Provider.

    Note: The Service Provider's entity ID, along with the certificate and private key, bind both sides together so that information can be exchanged securely.

  • Optional attributes, such as firstname, lastname, and email address, to be sent in the SAML Assertion. For more information, see Attributes.
  • The base URL for your implementation: {protocol_scheme}://{host}:{port}. For more information, see Base URL.
  • Metadata information for the Service Provider (the platform). This is created as a result of Identity System setup in Policy Manager.
  • Security keys and certificates.

Back to top

Step 3: Determine setup sequence

For the SAML Browser Web SSO feature to work, you must set up certain values on the platform side, in Policy Manager, and the same values on the Identity Provider (IdP) side, in your Service Provider (SP) account setup. These values enable the exchange of information between the SP and the IdP.

Whether it's better to do Policy Manager setup first, or do the setup at the IdP first, depends on the IdP your installation is using. Each Identity Provider has a different user interface. In addition, there are different versions. This document includes generic instructions and also setup examples for two Identity Providers:

  • Identity Provider Configuration Example: SSO Circle

    With SSO Circle, it's easiest to do the Policy Manager setup first. SSO Circle publishes a generic metadata file, so you can easily provide a link to the file, or upload it to Policy Manager, and Policy Manager prefills many of the values needed for the setup wizard. Policy Manager then generates the Service Provider metadata file, and you can then paste the contents of this file into SSO Circle.

  • Identity Provider Configuration Example: PingFederate

    With PingFederate, you could do it either way. It's more efficient to get the couple of values needed to set up Policy Manager in the PingFederate account, then export the XML and import it to Policy Manager. However, you could also configure Policy Manager manually.

The sequence is not as important as the fact that the values must match on both sides.

Back to top

Step 4: Configure the domain in Policy Manager

This section provides general information about the setup steps you'll need to complete in Policy Manager, including the basic procedure and an overview of the wizard.

To configure the SAML Web Browser SSO Domain in Policy Manager
  1. Log in to the Policy Manager Console.
  2. Click Configure > Security > Identity Systems.
  3. Click Add Identity System to access the Add Identity System wizard.
  4. Provide the values on each page of the wizard. For details about the wizard and significant fields and values, see SSO Domain Configuration Wizard below.
  5. Click Finish.

The Service Provider metadata file is generated and is available at the following URL: {protocol_scheme}://{host}:{port}/saml/{sp_domain_name}/metadata.

SSO Domain Configuration Wizard

The SSO Domain Configuration wizard takes you through setting up the values needed to create a SAML Web Browser SSO domain in Policy Manager. The information below is general to all Identity Providers.

Summary of pages:

Add Identity System Wizard

Add Identity System Wizard

Provide initial values:

  • From the drop-down list, choose SAML Web Browser SSO
  • Provide a domain name and description.

Note: the domain name is part of the path for the Service Provider metadata file Policy Manager generates when the wizard is finished. Also, the first letter of the domain name is used by Community Manager as the default for the login button. So, for example, if your IdP is PingFederate and your domain name is PingFederate domain, users will see a button labeled P at login.

Select SAML Identity Provider Configuration Method

Select SAML Identity Provider Configuration Method page

Choose a configuration method out of the three options:

  • Configure by using the metadata document / URL: Provide the IdP metadata URL so the wizard can import it.
  • Configure by using the metadata document / Upload: Upload the IdP metadata.xml file.
  • Choose to configure the IdP manually.

SAML Identity Provider Configuration

SAML Identity Provider Configuration

Specify values if configuring manually, or verify if uploading metadata.xml file:

  • SAML Entity ID for the Identity Provider.
  • Authentication URLs: Choose the binding you will be using, either HTTP POST or HTTP Redirect, and put in the applicable URL from your Identity Provider account.
  • If you're using HTTP Artifact for the SAML response messages, provide details of the Artifact Resolution Service.

Service Provider Configuration

SAML Service Provider Configuration page

Enter Service Provider configuration values:

  • Entity ID: A unique ID that you define yourself, to identify your Service Provider in the SAML authentication request messages. When setting up your account with the Identity Provider you must specify the Entity ID, which must be unique within the IdP so that the IdP can identify your Service Provider; then, you set up the same value in Policy Manager.
  • Base URL: used to construct the default Assertion Consumer Service (ACS) endpoint, the endpoint where the Service Provider will receive SAML assertions from the Identity Provider. Must be the container address of the container where the SAML Web Browser SSO feature is initialized ({protocol_scheme}://{host}:{port}). For more information, see Base URL.
  • Authentication Request: Generally, you would choose to sign authentication requests.
  • Authentication Response: choose from the two supported bindings.
  • Metadata Configuration: Choose whether or not to sign the metadata.
  • Supported Name-ID formats: all are checked by default.

Manage PKI Keys

Manage PKI Keys page

Set up information about the keys you will use to sign SAML authentication request messages. Outgoing messages are signed with the private key; the public key is published in the metadata file generated at the end of the wizard. The Identity Provider needs this key to verify the signature on the SAML authentication request messages.

Choose to generate or import keys. If you choose Generate, provide values in the Certificate Details section. If you choose Import, you'll need to choose a key management option and provide keystore details.

Identity Mapping

Policy Manager: Identity Mapping page

Specify attribute information:

  • User Identifier location: Choose whether to send the NameID as the subject of the SAML assertion, or to use an attribute: if needed, define the subject attribute name.
  • Subject Attribute Name: In general, the subject would be part of the NameID. However, in some cases, such as Google, the IdP does not send the subject directly. Instead, they send a unique NameID, a lengthy string. In those cases, the IdP can be configured to send the actual subject, the username, in the attribute.
  • Attribute Mapping: make sure the attribute names set up here exactly match the values you have in your account with the Identity Provider. These are the attributes the IdP will send in the response.

Back to top

Step 5: Configure the service provider account with the identity provider

Identity Provider user interfaces vary, but all essentially gather the same information that is needed for your SAML Web Browser SSO feature to work.

Provide the values you collected in Step 2: Gather Information.

Be ready with the metadata file generated by Policy Manager in Step 4: Configure the domain in Policy Manager. Make sure you get the correct file for the scenario:

  • If the domain will be used for Community Manager login: the metadata.xml file for the container that has Community Manager installed.
  • If the domain will be used for Community Manager OAuth domain, for resource owner authentication for at least one OAuth Provider: the metadata.xml file for the container that has the OAuth Provider feature installed.

If needed, you could refer to the two examples provided later in this publication:

Back to top

Step 6: Community Manager configuration

This section includes procedures in Community Manager to complete the setup. It includes:

To enable a SAML login domain in Community Manager
  1. In Community Manager, log in as the Site Admin.
  2. Go to Administration > Config > Logins.
  3. Find the domain on the list, and click Enable.
To configure a SAML OAuth Provider domain in Community Manager
  1. In Community Manager, log in as the Site Admin.
  2. Go to Administration > Config > Domains.
  3. Click Add Domain and choose OAuth Provider or External OAuth Provider. The wizard opens.
  4. On the Details page, provide name and description, and click Next.
  5. On the Grant Types page, select grant types and choose the SAML domain, as shown below, and then click Next.

    Developer Portal: Grant Types page

  6. OpenID Connect page: Here, you'll set up the necessary values if you want your OAuth Provider domain to use an OpenID Connect Identity Provider for authentication. Specify values as needed, and then click Next. If your SAML implementation doesn't use OpenID Connect (for example, if it uses PingFederate), skip this page.
  7. On the Branding page, provide the Authorization Server URL, as shown below, and click Save. The domain is created.

    Developer Portal: Branding page

Note: When you create a new OAuth Provider Domain, you must also add the authorization server URL to your account with your SAML Identity Provider if it isn't already there. See Adding a New OAuth Provider Domain: Manual IdP Configuration.

Back to top

Step 7: Test

Once you've completed the setup steps, it's important to test to make sure everything is working properly. Depending on how you're using the SAML Web Browser SSO functionality, complete either or both of the following:

Testing the SAML domain as a Login Domain

To test the login domain, follow the steps below.

To test the SAML login domain
  1. Log out
  2. Log in via your new login domain and verify that it works.

If you encounter any issues, check to make sure that the values in your IdP account and your SAML Web Browser SSO domain match.

You can also refer to the Troubleshooting section: see Troubleshooting.

Testing the SAML domain as an OAuth Provider Domain

This section provides the steps you'll need to complete in Community Manager, after setting up a SAML domain as the OAuth Provider domain, to verify that the domain is correctly set up as the OAuth Provider domain and is working. A high-level overview of the steps is given below. In some cases, a separate procedure is provided; in other cases it is not. If you need more information, refer to the Community Manager online help for domains.

To test the SAML OAuth Provider domain: high-level procedure
  1. Create an API that uses the SAML domain as the OAuth Provider. See: Create API and specify OAuth Details.
  2. Create an app. See: Create App.
  3. Create a contract for the app with the API. See: Request App/API Contract and Approve App/API Contract.
  4. Test the app in Test Client to verify that the SSO Login screen is presented and the token is passed. See: In Community Manager, Test in Test Client.

If you encounter any issues, check to make sure that the values in your IdP account and your SAML Web Browser SSO domain match.

You can also refer to the Troubleshooting section: see Troubleshooting.

Create API and specify OAuth Details
  1. In Community Manager, select Add a New API.
  2. Create the API, making sure you attach the following policies:
    • OAuth Security Policy
    • Detailed Auditing policy

    For more information, refer to the Community Manager online help.

  3. Save the API and then, at the API Details page, click OAuth Details to access the API OAuth wizard, as shown below.

    Developer Portal: API OAuth Details page

  4. Select the SAML domain as the OAuth provider, and click Next.
  5. In the Resource Mapping page, choose either API-Wide Mapping or Operation-Specific Mapping, specify scopes, and then click Save.

    Developer Portal: API OAuth Resource Mapping page

Create App
  1. In Community Manager, select Add a New App.
  2. Provide app details and then click Save.
Request App/API Contract
  1. In Community Manager, search for the API you created, and click Access.
  2. Choose the app you created, and complete the API Access wizard.
Approve App/API Contract

Unless you set up the API for auto-approval, you'll need to approve the API access request.

  1. Go to your notifications and find the API access request you just made.
  2. Approve the request.
In Community Manager, Test in Test Client
  1. Go to the App Details page and click Test Client.
  2. Choose the API and click the Security button to view the security settings, as shown below.

    Test Client, Security Settings page

  3. Choose the OAuth version and then click Get Token. The SSO login screen opens. An example is shown below.

    Test Client: OAuth Authentication page

  4. Provide username and password, and click Sign On. The Authorization window opens, as shown below.

    Test Client: OAuth Authorization page

  5. Click Authorize. The token is retrieved, as shown below.

    Test Client: OAuth token retrieved

  6. In Test Client, click Run it. The API request is authorized, and runs successfully, as shown in the example below.

    Developer Portal, Test Client: Run It

Back to top