This article describes how to implement Cognito in Elvis 6 with Cognito also acting as the identity provider.
Note: For information about using Cognito in combination with an external identity provider, see Implementing single sign-on in Elvis 6 using Amazon Cognito with an external SAML identity provider.
Using Cognito in Elvis 6 requires the following:
- Elvis 6.40 or higher
- When using Elvis in InDesign: the Elvis InDesign client 3.7 or higher
Before you start
Before you start, make sure that:
- You have an active Amazon AWS account.
- The Elvis Server environment in which Cognito is implemented has a fully working Elvis server and fully working client applications.
- When making use of LDAP, disable it.
The implementation consists of the following steps:
This involves the following steps:
- Creating a user pool and app client
- Modifying the app client settings
- Setting up groups
Step 1. On the AWS Management Console page, enter Cognito in the Find Services list and click the found result.
The Amazon Cognito page appears.
Step 2. Click Manage User Pools.
The User Pools page appears.
Step 3. In the top right corner, click Create a users pool.
Setting up a users pool involves various steps. Each step has its own page. Refer to the navigation menu on the left side of the page.
- Name. Enter a pool name and click Step through settings.
- Attributes. Use this page to set up how you want your end users to sign in. When done, click Next step.
- Set up the following pages as required:
- MFA and verifications
- Message customizations
For more information about these pages, see the Amazon documentation.
- App clients. Click Add an app client, add a name and set the other options to your needs. When done, click Create app client:
- Review. Review your settings and click Create pool.
Step 1. In the menu under App integration, click App client settings and set up the page as outlined below. When done, click Save changes.
Note: All URLs need to be in HTTPS format; the only exception is localhost.
- Enabled Identity Providers. Select Cognito User Pool.
- Sign in and sign out URLs:
- Callback URL: This URL consists of 2 parts: the URL of Elvis Server followed by /openid/callback
- Sign out URL: The URL of your Elvis Server.
Tip: Concatenate multiple URLs by separating them with a comma.
- OAuth 2.0:
- Allowed OAuth Flows: select Authorization code grant.
- Allowed OAuth Scopes: select all options:
Step 2. In the menu under App integration, click Domain name and follow the instructions on the page. When done, click Save changes.
Step 1. Go to Users & groups, followed by Groups. Click Create group. Enter a name, leave the other fields to the default settings. When done, click Create group.
Note: Names of groups cannot contain spaces.
Step 2. Create as many groups as needed.
In Elvis Server, a connection to the Elvis application in Cognito needs to be configured.
For this, we need information from Cognito.
Step 1. In Cognito, do the following:
- Under App integration, click Domain name and note down the full Cognito domain name.
- Under General settings, click App clients followed by Show details. Note down the App client id and the App client secret.
Step 2. In the Elvis Management Console, access the Single sign-on page and fill in all fields. When done, click Activate in the top right corner.
- SSO provider: Cognito
- Provider URL: the full Cognito domain name.
- Client ID: the Cognito App Client ID.
- Client Secret code: the Cognito App Client Secret.
- Redirect URL: the Elvis URL.
Note: Should you at this stage log out of Elvis Server, the activated SSO implementation is in use which is not yet fully operational. To log back in to the Management Console, use the following URL: <your Elvis Server URL>/app/#/signin.
This involves the following steps:
- In Elvis: Setting up permissions for the user groups created in Cognito
- In Cognito: Creating users, inviting them and adding them to a group
Step 2. In Cognito, go to Users & groups, followed by Users. Click Create user. Set up the fields as needed. When done, click Create user.
Step 3. For the user in Cognito, click Add to group and select the group that the user should be part of. When done, click Add to group.
Test the implementation by logging in to Elvis using the various applications:
- The Pro client
- The Brand portal
- The Management Console
- Elvis in InDesign
Test the scenario where the user is not yet logged in to Cognito and where the user is already logged in to Cognito. Follow the steps on screen.