SSO Login into Magento using Drupal as OAuth / OpenID Connect Provider
Overview
Drupal SSO integration will allow the users to log in to the Magento using the Drupal site Credentials. This SSO integration is achieved by the miniOrange OAuth / OpenID Connect server module which uses the OAuth 2.0 and OpenID Connect protocol. The module is compatible with all OAuth / OpenID Connect clients and is available for Drupal 7, Drupal 8, Drupal 9, and Drupal 10.
In this setup guide, we will help you configure the Single Sign-on login using the OAuth protocol between the Drupal site and the Magento.
Configuration Steps
Setup Magento as OAuth Client:
- Download the miniOrange OAuth Client plugin zip.
- Go to the Magento root directory.
- Create the new directories MiniOrange/OAuth inside the app/code directory.
- Unzip all contents of the zip inside the MiniOrange/OAuth directory.
- Run the following commands on the command prompt to enable the plugin:
php bin/magento setup:upgrade
php bin/magento setup:di:compile - Once the module is installed, navigate to the OAuth Client -> OAuth Settings tab of the module and copy the Callback URL.
Configure Drupal as an OAuth Server:
Note: Please ensure that the Drupal site is hosted on a server accessible from Magento.
- On the Drupal site, go to the Configuration → miniOrange OAuth server configuration → OAuth Client
- Click on the Add Client button.
- Enter the Application Name under the Application Name text field.
- Paste the copied Callback URL under the Callback/Redirect URL text field.
- Multiple Callback URLs can be added by clicking on the Add More button next to the text field.
- Click on the Save button and copy the Client ID and Client Secret.
Integrating Magento with Drupal:
- Navigate to the Magento dashboard.
- Under the OAuth Provider Name, enter the OAuth Server Name (Drupal) and paste the copied Client ID and Client Secret into the respective text field.
- Navigate to the Drupal site. Scroll down to the Scope and Endpoints section and copy the Scope.
- Return to the Magento dashboard console and paste the copied Scope under the Scope text field.
- Select the Enter Endpoints option from the OAuth Endpoints radio button.
- Add the Endpoints as specified in the table below (You can also get the same from the Scope & Endpoints section of the Drupal site → Configuration → miniOrange OAuth server configuration → OAuth Client):
Scope | profile openid email |
---|---|
Authorization Endpoint | {base_url_of_the_drupal_site}/mo/oauth2/authorize |
Token Endpoint | {base_url_of_the_drupal_site}/mo/oauth2/token |
Get User Information Endpoint | {base_url_of_the_drupal_site}/mo/oauth2/userinfo |
- Click on the Save button to save your configurations.
Test Connection between Magento and Drupal:
- Click on the Test Configuration button to confirm if the configurations are correct.
- Navigate to the Sign-in Settings tab.
- Enable the Show the Login Link on the default customer login page checkbox and click on the Save button.
You have successfully configured Magento as an OAuth Client and Drupal as an OAuth server.
Let’s see how this works:
- Open a new window/private browser and navigate to the login page of the Magento website.
- Click on the Login with Drupal button.
- Enter the Drupal credentials and click on the Log in button.
- On successful authentication, browser will be redirected with successful login into the Magento.
You have successfully performed the SSO between Magento and Drupal!
Need Assistance?
If you face any issues during the configuration or if you want some additional features, please contact us at drupalsupport@xecurify.com.
Additional Features:
- Add multiple Callback/Redirect URL
- Add custom user attributes to be sent in response
- Use enable asymmetric signing algorithm
- Enable single logout