Bobcares

Drupal Keycloak OpenID Connect | How to Integrate

by | Jan 16, 2024

Learn how to integrate Drupal with Keycloak via OpenID Connect. Our Drupal Support team is here to help you with your questions and concerns.

Integrate Drupal with Keycloak via OpenID Connect

SSO, short for Single Sign-On has become a critical feature for boosting user experiences in recent times.

Integrate Drupal with Keycloak via OpenID Connect

Today, we are going to explore integrating Drupal and Keycloak with a focus on SSO via the OpenID Connect module.

This will let our users login effortlessly using their Keycloak credentials.

Module Installation with Composer and Drush

We begin with installing the OAuth/OpenID Connect module for Drupal. Here are the steps for Composer and Drush:

  • Using Composer
    1. Open a terminal and run this command to download the module:

      composer require 'drupal/miniorange_oauth_client'

    2. Then, go to the Extend menu on the Drupal admin console and search for “miniOrange OAuth Client Configuration.”
    3. Then, enable the module.
  • Using Drush
    1. Install the module with these commands:

      drush en drupal/miniorange_oauth_client
      drush cr

    2. Then, enable the module from the Extend menu in the Drupal admin console.

Alternatively, we can opt for manual installation:

  1. First, head to the Extend menu in the Drupal admin console.
  2. Then, click on “Install new module” and install the OAuth & OpenID Connect Login module.
  3. Now, enable the module and configure it at {BaseURL}/admin/config/people/miniorange_oauth_client/config_clc.

Setting Up Drupal as OAuth Client

After the module is installed, we have to set up Drupal as an OAuth client.

  1. Go to Configuration > miniOrange OAuth Client Configuration > Configure OAuth tab.
  2. Then, select “Keycloak” from the Select Application dropdown.
  3. Next, copy the Callback/Redirect URL for later use.

Create OAuth/OpenID Single Sign-On Application in Keycloak

With Drupal ready, let’s configure Keycloak for OAuth/OpenID integration:

  1. Log into the Keycloak administrator console and create a new realm. Then enter the realm name.
  2. Now, head to Clients > Clients list > Create client.
  3. Then, enter enter the Client ID under General Settings.
  4. Next, enable Client authentication under Capability Configuration.
  5. Finally, paste the Callback/Redirect URL into Valid redirect URIs in Login settings, and save.

Integrating Drupal with Keycloak

  1. First, copy the Client ID from Keycloak’s Settings tab.
  2. Then, paste the Client ID into the respective field in Drupal’s Configure OAuth tab.
  3. Next, copy the Client secret from Keycloak’s Credentials tab.
  4. Now, go to Drupal’s Configure OAuth tab and paste the Client secret into the respective field.
  5. Then, go to the Keycloak Administrator console.
  6. At this point, head to General under Realm settings and copy the Realm ID.
  7. Then replace the copied Realm ID”realm-name” in the Authorize Endpoint, Access Token Endpoint, and Get User Info Endpoint text fields, respectively.
  8. Now, head to the Keycloak Administrator console and copy the Keycloak domain URL.
  9. We have to replace “Keycloak_base_URL” with the copied Keycloak domain URL in the Authorize Endpoint, Access Token Endpoint, and Get User Info Endpoint text fields in Drupal’s Configure OAuth tab.
  10. Finally, click Save Configuration.

After saving the configuration, we can test it by clicking on the “Perform Test Configuration” button. This results in a successful connection between Drupal and Keycloak.

During the test configuration, select the Email Attribute from the dropdown menu to obtain the user’s email ID. Save the configuration.

Alternate Method: Using openid_connect module and IPTables

  1. Install the openid_connect module using Drush:

    cd /var/www/sites/all/
    drush dl openid_connect && drush en openid_connect

  2. Setup IPTables to allow Docker containers to access the host machine:

    sudo iptables -A INPUT -i docker0 -j ACCEPT

  3. Configure Keycloak and Drupal.

As seen above, integrating Drupal with Keycloak for seamless OAuth/OpenID Connect SSO opens up new possibilities for user authentication.

[Need assistance with a different issue? Our team is available 24/7.]

Conclusion

In brief, our Support Experts demonstrated how to integrate Drupal and Keycloak via OpenID.

PREVENT YOUR SERVER FROM CRASHING!

Never again lose customers to poor server speed! Let us help you.

Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.

GET STARTED

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *

Never again lose customers to poor
server speed! Let us help you.

Privacy Preference Center

Necessary

Necessary cookies help make a website usable by enabling basic functions like page navigation and access to secure areas of the website. The website cannot function properly without these cookies.

PHPSESSID - Preserves user session state across page requests.

gdpr[consent_types] - Used to store user consents.

gdpr[allowed_cookies] - Used to store user allowed cookies.

PHPSESSID, gdpr[consent_types], gdpr[allowed_cookies]
PHPSESSID
WHMCSpKDlPzh2chML

Statistics

Statistic cookies help website owners to understand how visitors interact with websites by collecting and reporting information anonymously.

_ga - Preserves user session state across page requests.

_gat - Used by Google Analytics to throttle request rate

_gid - Registers a unique ID that is used to generate statistical data on how you use the website.

smartlookCookie - Used to collect user device and location information of the site visitors to improve the websites User Experience.

_ga, _gat, _gid
_ga, _gat, _gid
smartlookCookie
_clck, _clsk, CLID, ANONCHK, MR, MUID, SM

Marketing

Marketing cookies are used to track visitors across websites. The intention is to display ads that are relevant and engaging for the individual user and thereby more valuable for publishers and third party advertisers.

IDE - Used by Google DoubleClick to register and report the website user's actions after viewing or clicking one of the advertiser's ads with the purpose of measuring the efficacy of an ad and to present targeted ads to the user.

test_cookie - Used to check if the user's browser supports cookies.

1P_JAR - Google cookie. These cookies are used to collect website statistics and track conversion rates.

NID - Registers a unique ID that identifies a returning user's device. The ID is used for serving ads that are most relevant to the user.

DV - Google ad personalisation

_reb2bgeo - The visitor's geographical location

_reb2bloaded - Whether or not the script loaded for the visitor

_reb2bref - The referring URL for the visit

_reb2bsessionID - The visitor's RB2B session ID

_reb2buid - The visitor's RB2B user ID

IDE, test_cookie, 1P_JAR, NID, DV, NID
IDE, test_cookie
1P_JAR, NID, DV
NID
hblid
_reb2bgeo, _reb2bloaded, _reb2bref, _reb2bsessionID, _reb2buid

Security

These are essential site cookies, used by the google reCAPTCHA. These cookies use an unique identifier to verify if a visitor is human or a bot.

SID, APISID, HSID, NID, PREF
SID, APISID, HSID, NID, PREF