Drupal SAML Single Sign On using Keycloak as Identity Provider
Overview
The Drupal SAML integration using the miniOrange SAML SP module establishes seamless SSO between Keycloak and the Drupal site. The users will be able to log in to the Drupal site using their Keycloak credentials. This document will walk you through the steps to configure Single Sign-On - SSO between Drupal as a Service Provider (SP) and Keycloak as an Identity Provider (IdP). The module is compatible with Drupal 7, Drupal 8, Drupal 9, and Drupal 10 and Drupal 11.
Installation Steps
- Using Composer
- Using Drush
- Manual Installation
Configuration Steps
Drupal SAML SP Metadata
- Go to Configuration → People → SAML Login Configuration in the Administration menu. (/admin/config/people/miniorange_saml/idp_setup)
- Navigate to the Service Provider Metadata tab, click on the Download XML Metadata button. (This is required to configure Keycloak as an Identity Provider).
Configure SAML Single Sign-On Application in Keycloak:
- Log in to the Keycloak Admin console and select Create Realm.
- Enter the Realm name in the text field and click on the Create button.
- Select Clients from the left navigation menu and click on the Import Client button.
- Click on the Browse button and upload the metadata from the Drupal. Enter the client name in the Name text field and click on Save button.
- Scroll down to the SAML Capabilities and select email as Name ID format from the dropdown.
- Turn on the Force name ID format button, then click on the Save button.
- Click on the Users form the left navigation menu. Click on the Create new user button.
- Enter the Username and Email of a user in the respective text fields. Enable the Email verified button and click on the Create button.
- Navigate to the Realm settings in left navigation menu and click on the SAML 2.0 Identity Provider Metadata link.
- Copy the URL of the Metadata page and keep it handy. (This is required to configure Drupal as a Service Provider)
Configure Drupal as SAML Service Provider:
- Navigate to the Service Provider Setup tab of the Drupal site and click on Upload IDP Metadata.
- Paste the previously copied Keycloak Metadata URL into the Upload Metadata URL text field. Click on the Fetch Metadata button.
- Under Action, select the Edit.
- Enter Keycloak in the Identity Provider Name text field.
- Scroll down and click on the Save Configuration button.
- Click on the Test link to test the connection between Drupal and Keycloak.
- On a Test Configuration popup sign in using Keycloak credentials (if an active session is not present). After successful authentication, a list of attributes that are received from Keycloak will be displayed. Click on the Done.
Congratulations! you have successfully configure Keycloak as SAML Identity Provider (IdP) and Drupal as SAML Service Provider.
How does SAML SSO login work?
- Open a new browser/private window and navigate to the Drupal site login page.
- Click the Login using Identity Provider (Keycloak) link.
- You will be redirected to the Keycloak login page. Enter the Keycloak credentials. After successful authentication, the user will be redirected back to the Drupal site.