If you want users to login to your WordPress site using their AWS cognito credentials, you can simply do it using our WP OAuth Client plugin. Once you configure the AWS cognito with WordPress plugin, you can allow users to SSO to your WordPress site using AWS cognito .
Similarly, you can map your WordPress roles based on your AWS cognito attributes/groups. To know more about other features we provide in WP OAuth Client plugin, you can click here.
You can download OAuth Client plugin using the following link.
Download And Installation
Log into your WordPress instance as an admin.
Go to the WordPress Dashboard -> Plugins and click on Add New.
Seach for a WordPress OAuth Single Sign On plugin and click on Install Now.
Once installed click on Activate.
Step 1: Setup Amazon Cognito as OAuth Provider
First of all, go to Amazon Console and sign up/login in your account to Configure AWS Cognito.
Search for Cognito in the AWS Services search bar as shown below.
Click on Mange User Pools button to see the list of your user pools.
Click on Create a user pool to create a new user pool.
Add a Pool Name and click on the Review Defaults button to continue.
Scroll down and click on the Add App Client option in front of App Clients.
Click on Add an App Client. Enter an App Client Name and click on Create app client to create an App client.
Click on Return to Pool Details to come back to your configuration.
Click on Create Pool button to save your settings and create a user pool.
In the navigation bar present on the left side, click on the App Client Settings option under the App Integration menu.
Enter your Callback/Redirect URL which you will get from your miniOrange plugin present on your Client side under the CallBack URLs text-field. Select Authorization code grant checkbox under the Allowed OAuth Flows and also select openid and profile checkboxes under the Allowed OAuth Scopes option (Please refer to the image below). Click on the Save Changes button to save your configurations.
Click on Choose Domain Name option to set a domain name for your app.
Enter your Domain Name under the Domain Prefix text-field and click on the Save Changes button to save your domain name.
Click on App Clients option under the General Settings menu in the left side navigation bar. Then, click on the Show Details button to see your App details like Client ID, Client secret etc.
Copy the Client App ID and Client App Secret text field values and save them under your miniOrange plugin present on the client side under the Client Id and the Client Secret text fields respectively.
Click on Users and groups option under the General Settings menu in the left side navigation bar. Then, click on the Create user button to add a new user.
Fill all the required details and click on Create user.
https://<cognito-app-domain>/logout?client_id=<Client-ID>&logout_uri=<Sign out URL configured in Cognito Portal>
Step 2: Setup WordPress as OAuth Client
After Plugin is activated, go to the plugin and search for AWS Cognito. Select AWS Cognito from the OAuth Providers list.
Go to Configure OAuth tab and configure App Name, Client ID, Client Secret from provided Endpoints.
openid is already filled but if it doesn't work then configure scope as User.Read and for fetching group info use scope is Directory.read.all.
Click on Save Settings to save the configuration.
Step 3: User Attribute Mapping.
User Attribute Mapping is mandatory for enabling users to successfully login into WordPress. We will be setting up user profile attributes for WordPress using below settings.
Finding user attributes
Go to Configure OAuth tab. Scroll down and click on Test Configuration.
You will see all the values returned by your OAuth Provider to WordPress in a table. If you don't see value for First Name, Last Name, Email or Username, make the required settings in your OAuth Provider to return this information.
Once you see all the values in Test Configuration, go to Attribute / Role Mapping tab, select attributes from Username dropdown and click on Save.
Step 4: Login Settings / Sign In Settings.
The settings in SSO Settings tab define the user experience for Single Sign On. To add a login widget on your WordPress page, you need to follow below steps.
Sign In Settings
Go to WordPress Left Panel > Appearances > Widgets.
Select miniOrange OAuth. Drag and drop to your favourite location and save.
Open your WordPress page and you can see the login button there. You can test the SSO now.