Skip navigation
Documentation

Duo Single Sign-On for AWS Verified Access

Last Updated: October 31st, 2024

Add two-factor authentication and flexible security policies to your AWS Verified Access logins with Duo Single-Sign On. Our cloud-hosted OpenID 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.

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 AWS Verified Access logins using the Security Assertion Markup Language (SAML) 2.0 or OpenID Connect (OIDC) authentication standards. Duo Single Sign-On acts as an OpenID provider (OP), authenticating your users using existing on-premises Active Directory (AD) or any SAML 2.0 IdP and prompting for two-factor authentication before permitting access to AWS Verified Access.

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 AWS Verified Access. Duo checks the user, device, and network against an application's policy before allowing access to the application.

Configure Single Sign-On

Before configuring AWS Verified Access with Duo SSO using OpenID Connect (OIDC) 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 AWS Verified Access application in Duo.

When configuring an application to be protected with Duo Single Sign-On you'll need to send attributes from Duo Single Sign-On to the application. Active Directory will work with no additional setup, but if you used a SAML idenity provider as your authentication source please verify that you configured it to send the correct SAML attributes.

Below you can see the default bridge attributes that automatically map certain attributes from your authentication source.

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

Create the AWS Verified Access Application in Duo

  1. Log on to the Duo Admin Panel and navigate to ApplicationsProtect an Application.

  2. Locate the entry for AWS Verified Access 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 AWS Verified Access. See Protecting Applications for more information about protecting applications with Duo and additional application options. You'll need the information on the AWS Verified Access page under Metadata later.

  3. The Metadata section contains OpenID provider information about Duo Single Sign-On that you will provide to AWS Verified Access at a later configuration step.

  4. Scopes are used by AWS Verified Access during authentication to authorize access to a user's details. Each scope returns a set of user attributes (claims) that must be mapped to IdP attributes. When an application sends an OIDC request to Duo SSO, the response sends only the claims from the requested scopes.

    We've automatically enabled the following scopes and mapped the listed attributes. You can change the attribute sent from your authentication source by modifying the IdP Attribute name related to each claim:

    • Profile Scope:

      IdP Attribute Claim
      <First Name> given_name
      <Last Name> family_name
      <Display Name> name
    • Email Scope:

      IdP Attribute Claim
      <Email> email
    Duo AWS Verified Access OIDC Response Section
  5. You can adjust additional settings for your new SSO application at this time — like changing the application's name from the default value, enabling self-service, or assigning a group policy.

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

Duo Universal Prompt

The Duo 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 AWS Verified Access 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. If you created your AWS Verified Access application before March 2024, you can activate the Universal Prompt experience for users from the Duo Admin Panel. AWS Verified Access applications created after March 2024 have the Universal Prompt activated by default.

If you created your AWS Verified Access application before March 2024, 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, before you activate the Universal Prompt for your application.

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: Your users experience Duo's traditional prompt via redirect when logging in to this application.
  • Show new Universal Prompt: (Default) Your users experience the Universal Prompt via redirect when logging in to this application.

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. Keep in mind that support for the traditional Duo prompt ended for the majority of applications in March 2024.

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.

AWS Verified Access Prerequisites

Before you configure AWS Verified Access, you need to complete the prerequisites listed in the "Prerequisites" section of the AWS Verified Access Integration with 3rd party identity providers document.

Configure AWS Verified Access

To configure and use AWS Verified Access for SSO, do the steps in each section below in the order they appear.

Create a Trust Provider

  1. In the AWS console, type VPC into the Search bar at the top of the page.

  2. In the search results, click VPC. The "VPC dashboard" opens.

  3. In the left menu sidebar, navigate to AWS Verified AccessVerified Access trust providers. The "Verified Access trust providers" page opens.

  4. In the top right corner of the page, click Create Verified Access trust provider. The "Create Verified Access trust provider" page opens.

  5. In the "Details" section, enter a unique name for your trust provider into the Name tag field.

  6. Copy your trust provider name and paste it into the Policy reference name field, in the "Trust provider information" section.

  7. Click the User trust provider radio button.

  8. Click the OIDC (OpenID Connect) radio button.

  9. Return to the Duo Admin Panel. Under "Metadata", copy the Issuer URL and paste it into the AWS Verified Access Issuer field.

  10. Return to the Duo Admin Panel. Copy the Authorization URL and paste it into the AWS Verified Access Authorization endpoint field.

  11. Return to the Duo Admin Panel. Copy the Token URL and paste it into the AWS Verified Access Token endpoint field.

  12. Return to the Duo Admin Panel. Copy the UserInfo URL and paste it into the AWS Verified Access User endpoint field.

  13. Return to the Duo Admin Panel. Copy the Client ID and paste it into the AWS Verified Access Client ID field.

  14. Return to the Duo Admin Panel. Copy the Client Secret and paste it into the AWS Verified Access Client secret field.

    Duo AWS Verified Access Metadata URLs
  15. In AWS Verified Access, type openid profile email into the Scope field. Make sure to use all lowercase.

  16. Scroll to the bottom of the page and click Create Verified Access trust provider.

  17. In your trust provider "Details" section at the bottom of the page, make a note of the trust provider Policy reference name. You will need it later in the "Create a Group Policy" section below.

Create an Access Instance

  1. In the left menu sidebar, navigate to AWS Verified AccessVerified Access instances. The "Verified Access instances" page opens.

  2. In the top right corner of the page, click Create Verified Access instance. The "Create Verified Access instance" page opens.

  3. In the "Details" section, enter a unique name for your instance into the Name tag field.

  4. In the "Attach Verified Access trust provider" section, click the Verified Access trust provider drop-down menu and select your trust provider.

  5. Scroll to the bottom of the page and click Create Verified Access instance.

Create an Access Group

  1. In the left menu sidebar, navigate to AWS Verified AccessVerified Access groups. The "Verified Access groups" page opens.

  2. In the top right corner of the page, click Create Verified Access group. The "Create Verified Access group" page opens.

  3. In the "Details" section, enter a unique name for your group into the Name tag field.

  4. In the "Verified Access instance" section, click the Verified Access instance drop-down menu and select your instance.

  5. Scroll to the bottom of the page and click Create Verified Access group.

Create an Access Endpoint

  1. In the left menu sidebar, navigate to AWS Verified AccessVerified Access endpoints. The "Verified Access endpoints" page opens.

  2. In the top right corner of the page, click Create Verified Access endpoint. The "Create Verified Access endpoint" page opens.

  3. In the "Details" section, enter a unique name for your endpoint into the Name tag field.

  4. In the "Verified Access group details" section, click the Verified Access group drop-down menu and select your group.

  5. In the "Application details" section, enter your application domain name into the Application domain field. Make a note of your application domain name. You will need it later.

  6. Return to the Duo Admin Panel. In the "Relying Party" section, you can change the Access Token Lifetime to a value between 5 to 60 minutes. Default is 60 minutes.

  7. Optionally, you can configure refresh tokens by checking the box next to Refresh Tokens. You can then modify the following lifetimes:

    • Refresh Token Absolute Lifetime: The length of time after an original user authentication that refresh tokens can be exchanged for additional tokens. Once this time has been exceeded, the user will need to authenticate again. The lifetime can be 60 minutes to 180 days. Default is 30 days.
    • Refresh Token Inactivity Lifetime: The length of time an individual unused refresh token will be valid before it expires. The lifetime can be 5 minutes to 7 days. Default is 24 hours.
  8. In the Sign-In Redirect URLs field, type https://secure.example.com/oauth2/idpresponse. Replace secure.example.com with the domain name you noted earlier, as highlighted in the image below.

    Duo AWS Verified Access Sign-In Redirect URL
  9. Scroll down to the bottom of the page and click Save.

  10. Return to AWS Verified Access. Click the Domain certificate ARN drop-down menu and select your domain certificate.

  11. In the "Endpoint details" section, click the Attachment type drop-down menu and select VPC.

  12. Click the Security groups drop-down menu and select the security groups for your endpoint. Traffic from the AWS Verified Access endpoint that enters your load balancer will be associated with this security group.

  13. Enter your application domain prefix into the Endpoint domain prefix field.

    Example: If your application domain name is secure.example.com, then your domain prefix is secure.

  14. Click the Endpoint type drop-down menu and select Load balancer.

  15. Click the HTTP radio button.

  16. Type 80 into the Port field.

  17. Click the Load balancer ARN drop-down menu and select your load balancer.

  18. Click the Subnet drop-down menu and select the subnets associated with your load balancer.

  19. Scroll to the bottom of the page and click Create Verified Access endpoint.

  20. In your endpoint "Details" section at the bottom of the page, copy the Endpoint domain and add it as a CNAME record to your application domain name on your existing DNS server.

Create a Group Policy

  1. In the left menu sidebar, navigate to AWS Verified AccessVerified Access groups. The "Verified Access groups" page opens.

  2. Click the radio button next to your group. Your group details are displayed at the bottom of the page.

  3. Click the Policy tab. The "Policy details" section opens.

  4. Click Modify Verified Access group policy. The "Modify Verified Access group policy" page opens.

  5. In the "Policy details" section, click the Enable policy toggle switch.

  6. On line 1 in the Policy field, type permit(principal,action,resource) as shown in the image below.

  7. On line 2, type when { as shown in the image below.

  8. On line 3, enter three spaces and then type context.example_trust.email like "*@example.com". Replace example_trust with the trust provider policy reference name that you noted earlier, and replace example.com with your domain, as highlighted in the image below.

  9. On line 4, type }; as shown in the image below.

    AWS Verified Access Policy Syntax
  10. Scroll to the bottom of the page and click Modify Verified Access group policy.

Go to the AWS Verified Access policies document for more information on how to create a policy.

Learn more about AWS Verified Access SSO at AWS Blogs.

Using SSO

In your web address bar, go to the domain name that you noted earlier 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

Enable Duo Passwordless to log in to Duo SSO backed by Active Directory authentication without entering a password in the future.

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 AWS Verified Access to complete the login process.

Duo Universal Prompt

* Universal Prompt experience shown.

AWS Verified Access supports SP-initiated authentication only, meaning that you must start your SSO login from that application's sign-in page. You won't be able to add as an application tile in Duo Central for IdP-initiated logins.

Congratulations! Your AWS Verified Access 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 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.