Skip navigation
Documentation

Duo Single Sign-On for Drupal

Last Updated: January 11th, 2024

Add two-factor authentication and flexible security policies to Drupal SAML 2.0 logins with Duo Single-Sign On. Our cloud-hosted SSO identity provider offers inline user enrollment, self-service device management, and support for a variety of authentication methods — such as passkeys and security keys, Duo Push, or Verified Duo Push — in the Universal Prompt.

Overview

As business applications move from on-premises to cloud hosted solutions, users experience password fatigue due to disparate logons for different applications. Single sign-on (SSO) technologies seek to unify identities across systems and reduce the number of different credentials a user has to remember or input to gain access to resources.

While SSO is convenient for users, it presents new security challenges. If a user's primary password is compromised, attackers may be able to gain access to multiple resources. In addition, as sensitive information makes its way to cloud-hosted services it is even more important to secure access by implementing two-factor authentication and zero-trust policies.

About Duo Single Sign-On

Duo Single Sign-On is our cloud-hosted SSO product which layers Duo's strong authentication and flexible policy engine on top of Drupal logins. Duo Single Sign-On acts as an identity provider (IdP), authenticating your users using existing on-premises Active Directory (AD) or another SSO IdP. Duo SSO prompts users for two-factor authentication and performs endpoint assessment and verification before permitting access to Drupal.

Duo Single Sign-On is available in Duo Premier, Duo Advantage, and Duo Essentials plans, which also include the ability to define policies that enforce unique controls for each individual SSO application. For example, you can require that Salesforce users complete two-factor authentication at every login, but only once every seven days when accessing Drupal. Duo checks the user, device, and network against an application's policy before allowing access to the application.

Configure Single Sign-On

Before configuring Drupal with Duo SSO using Security Assertion Markup Language (SAML) 2.0 authentication you'll first need to enable Duo Single Sign-On for your Duo account and configure a working authentication source.

Once you have your SSO authentication source working, continue to the next step of creating the Drupal application in Duo.

Create the Drupal Application in Duo

  1. Log on to the Duo Admin Panel and navigate to Applications.

  2. Click Protect an Application and locate the entry for Drupal with a protection type of "2FA with SSO hosted by Duo (Single Sign-On)" in the applications list. Click Protect to the far-right to start configuring Drupal. See Protecting Applications for more information about protecting applications in Duo and additional application options. You'll need the information on the Drupal page under Downloads later.

  3. Drupal uses the Mail attribute, Username attribute, First name attribute, and Last name attribute when authenticating. We've mapped the bridge attributes to Duo Single Sign-On supported authentication source attributes as follows:

    Bridge Attribute Active Directory SAML IdP
    <Email Address> mail Email
    <Username> sAMAccountName Username
    <First Name> givenName FirstName
    <Last Name> sn LastName

    If you are using non-standard attributes for your authentication source, check the Custom attributes box and enter the name of the attributes you wish to use instead.

  4. You can adjust additional settings for your new SAML application at this time — like changing the application's name from the default value, enabling self-service, or assigning a group policy.

  5. Keep the Duo Admin Panel tab open. You will come back to it later.

Duo Universal Prompt

The new Universal Prompt provides a simplified and accessible Duo login experience for web-based applications, offering a redesigned visual interface with security and usability enhancements.

Universal Prompt Traditional Prompt
 Duo Push in Universal Prompt  Duo Push in Traditional Prompt

We've already updated the Duo Drupal application hosted in Duo's service to support the Universal Prompt, so there's no action required on your part to update the application itself. You can activate the Universal Prompt experience for users of new and existing Duo Drupal applications from the Duo Admin Panel.

Before you activate the Universal Prompt for your application, it's a good idea to read the Universal Prompt Update Guide for more information about the update process and the new login experience for users.

Activate Universal Prompt

Activation of the Universal Prompt is a per-application change. Activating it for one application does not change the login experience for your other Duo applications.

The "Universal Prompt" area of the application details page shows that this application is "Ready to activate", with these activation control options:

  • Show traditional prompt: (Default) Your users experience Duo's traditional prompt via redirect when logging in to this application.
  • Show new Universal Prompt: Your users experience the Universal Prompt via redirect when logging in to this application.

Universal Prompt Info - Application Ready for Universal Prompt

Enable the Universal Prompt experience by selecting Show new Universal Prompt, and then scrolling to the bottom of the page to click Save.

Once you activate the Universal Prompt, the application's Universal Prompt status shows "Activation complete" here and on the Universal Prompt Update Progress report.

Universal Prompt Info - Universal Prompt Activation Complete

Should you ever want to roll back to the traditional prompt, you can return to this setting and change it back to Show traditional prompt. However, this will still deliver the Duo prompt via redirect, not in an iframe.

Universal Update Progress

Click the See Update Progress link to view the Universal Prompt Update Progress report. This report shows the update availability and migration progress for all your Duo applications. You can also activate the new prompt experience for multiple supported applications from the report page instead of visiting the individual details pages for each application.

SAML Authentication Plugin

Before you enable Drupal for SSO, go to SAML Authentication to install the Drupal plugin. You will need to install the plugin before going to the next section.

Enable Drupal for SSO

To enable and use Drupal for SSO, do the steps in each section below in the order they appear.

SAML Authentication

  1. Log into your Drupal account as an administrator.

  2. In the top left corner of the page, click Manage to open the navigation bar.

  3. In the navigation bar, click the Configuration tab. The "Configuration" page opens.

  4. In the "People" section, click SAML authentication. The "SAML authentication" page opens.

  5. Scroll down to the Service Provider section. Click Service Provider to expand the section, if necessary.

  6. Copy the Assertion Consumer Service URL and paste it into the Duo Admin Panel Assertion Consumer Service field, under "Service Provider".

  7. Return to the Drupal Service Provider section. Enter a unique identifier into the Entity ID field.

  8. Copy the created Entity ID and paste it into the Duo Admin Panel Entity ID field.

    Duo Drupal Service Provider Fields
  9. Return to the Drupal Service Provider section. Click the Type of values to save for the key/certificate drop-down menu and select Configuration.

  10. For instructions on how to add the Private Key and X.509 Certificate, go to the Service Provider section of the Drupal SAML authentication module.

  11. Scroll down to the Identity Provider section. Click Identity Provider to expand the section, if necessary.

  12. Return to the Duo Admin Panel. Under "Metadata", copy the Entity ID and paste it into the Drupal Entity ID field.

  13. Return to the Duo Admin Panel. Copy the Single Sign On Service URL and paste it into the Drupal Single Sign On Service field.

    Duo Drupal Metadata URLs
  14. In the Drupal Identity Provider section, click the Type of values to save for the certificate(s) drop-down menu and select Configuration.

  15. Return to the Duo Admin Panel. Under "Downloads", click Download certificate. Open the certificate file in a text editor (like Notepad) and copy the entire contents of the file, including the -----BEGIN CERTIFICATE----- and -----END CERTIFICATE----- lines. Paste the certificate file text into the Drupal X.509 Certificate(s) field, in the Identity Provider section.

  16. Return to the Duo Admin Panel. Scroll to the bottom of the page and click Save.

User Information and Fields

  1. Return to Drupal. Scroll down to the User Info and Syncing section. Click User Info and Syncing to expand the section, if necessary.

  2. In the Unique ID attribute field, enter mail.

  3. Click Attempt to link SAML data to existing local users to expand the sub-section, if necessary.

  4. In the Attempt to link SAML data to existing local users sub-section, click the Enable custom matching and Enable matching on email checkboxes.

  5. Click the Create users from SAML data checkbox.

  6. Click the Synchronize email address on every login checkbox.

  7. In the User name attribute field, enter cn.

  8. In the **User email attribute field, enter mail.

  9. Scroll down to the bottom of the page and click Save configuration.

  10. In the navigation bar at the top of the page, click the Configuration tab. The "Configuration" page opens.

  11. In the "People" section, click Account settings. The "Account settings" page opens.

  12. Click the Manage fields tab. The "Manage fields" page opens.

  13. Click Create a new field. The "Add field" page opens.

  14. Click the Add a new field drop-down menu and select Text (plain).

  15. In the Label field, enter first name and then click Save and continue. The "first name" page opens.

  16. Click Save field settings. The "first name settings for User" page opens. Click Save settings.

  17. Click Create a new field. The "Add field" page opens.

  18. Click the Add a new field drop-down menu and select Text (plain).

  19. In the Label field, enter Last Name and then click Save and continue. The "Last Name" page opens.

  20. Click Save field settings. The "Last Name settings for User" page opens. Click Save settings.

  21. In the navigation bar at the top of the page, click the Configuration tab. The "Configuration" page opens.

  22. In the "People" section, click SAML authentication. The "SAML authentication" page opens.

  23. On the "SAML authentication" page, click the User field mapping tab. The "SAML user fields attribute mapping" page opens.

  24. Click Add mapping. The "Add" page opens.

  25. In the SAML Attribute field, enter field_first_name.

  26. Click the User Field drop-down menu and select first name.

  27. In the Link user? field, enter 1.

  28. Click Submit.

  29. Click Add mapping.

  30. In the SAML Attribute field, enter field_last_name.

  31. Click the User Field drop-down menu and select Last Name.

  32. Click Submit.

  33. In the "Configuration for linking" section, click the Link first user if multiple found checkbox.

  34. At the bottom of the page, click Save configuration.

Drupal SSO Login

To configure the link for your Drupal SSO login, do the following:

  1. On the Drupal "SAML authentication" page, click the Configuration tab.

  2. Click Login / Logout to expand the section, if necessary.

  3. In the Note at the top of the Login / Logout section, click the may want to enable link. The "Edit menu User account menu" page opens.

  4. Click Add link. The "Add menu link" page opens.

  5. Enter a unique name for your menu link into the Menu link title field. This is the name users will click to log into Drupal SSO.

  6. Enter /saml/login into the Link field.

  7. Enter a brief description about your menu link into the Description field. This is what users will see when they hover their cursor over your menu link.

  8. Scroll down to the bottom of the page and click Save.

Group Mapping

You have the option to map Duo groups to different roles in Drupal. To map Duo groups, do the following:

  1. Log into your Drupal account as an administrator.

  2. In the navigation bar, click the People tab. The "People" page opens.

  3. Click the Roles tab. The "Roles" page opens.

  4. You can map an existing role or map a new role to Duo. To map a new role, click Add role and follow the on-screen instructions.

  5. On the "Roles" page, click Edit next to your role to view the machine name. You will need the machine name later. In the example below, the Content editor role was used.

    Drupal Role and Machine Name
  6. In the navigation bar, click the Configuration tab. The "Configuration" page opens.

  7. In the "People" section, click SAML authentication. The "SAML authentication" page opens.

  8. Click the User roles tab. The "SAML user roles" page opens.

  9. Enter http://schemas.xmlsoap.org/claims/Group into the SAML attribute field.

  10. Enter the machine name and the role name into the Value conversions field as shown in the example below. Make sure the machine name and role name are separated using the pipe character | with no spaces.

    Drupal Value Conversions Field
  11. Click Save configuration.

  12. Return to the Duo Admin Panel. Under "Service Provider", enter your machine name into the Drupal Group field.

  13. Select the applicable Duo group from the Duo groups drop-down menu.

    Duo Drupal Group Mapping Fields
  14. Scroll to the bottom of the page and click Save.

Learn more about Drupal SSO at Drupal Documentation.

Using SSO

You can log on to Drupal by navigating to your Drupal SSO page e.g., https://yourdomain.com. Click the menu link you created earlier in the "Drupal SSO Login" section to be redirected to Duo Single Sign-On to begin authentication.

Active Directory Login

With Active Directory as the Duo SSO authentication source, enter the primary username (email address) on the Duo SSO login page and click or tap Next.

Duo Single Sign-On Login

Enter the AD primary password and click or tap Log in to continue.

Duo Single Sign-On Password

SAML Login

With another SAML identity provider as the Duo SSO authentication source, Duo SSO immediately redirects the login attempt to that SAML IdP for primary authentication. Users do not see the Duo SSO primary login screen.

Duo Authentication

Successful verification of your primary credentials by Active Directory or a SAML IdP redirects back to Duo. Complete Duo two-factor authentication when prompted and then you'll return to Drupal to complete the login process.

Duo Universal Prompt

* Universal Prompt experience shown.

You can also log into Drupal using Duo Central, our cloud-hosted portal which allows users to access all of their applications in one spot. Link to Drupal in Duo Central by adding it as an application tile. Once the tile has been added, log into Duo Central and click the tile for IdP-initiated authentication to Drupal.

Congratulations! Your Drupal users now authenticate using Duo Single Sign-On.

See the full user login experience, including expired password reset (available for Active Directory authentication sources in the Duo End User Guide for SSO.

Enable Remembered Devices

To minimize additional Duo two-factor prompts when switching between Drupal and your other Duo Single Sign-On SAML applications, be sure to apply a shared "Remembered Devices" policy to your SAML applications.

Troubleshooting

Need some help? Try searching our Knowledge Base articles or Community discussions. For further assistance, contact Support.