Duo Single Sign-On for Snowflake
Last updated:
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 Snowflake 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 Snowflake.
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 Snowflake. Duo checks the user, device, and network against an application's policy before allowing access to the application.
Configure Single Sign-On
Before configuring Snowflake with Duo SSO using Security Assertion Markup Language (SAML) 2.0 authentication you'll first need to configure a working authentication source.
Once you have your SSO authentication source working, continue to the next step of creating the Snowflake application in Duo.
Create the Snowflake Application in Duo
-
Log in to the Duo Admin Panel and navigate to Applications → Application Catalog.
-
Locate the entry for Snowflake with the "SSO" label in the catalog. Click the + Add button to start configuring Snowflake. See Protecting Applications for more information about protecting applications with Duo and additional application options. You'll need the information on the Snowflake page under Downloads later.
-
No active Duo users can log in to new applications until you grant access. Update the User access setting to grant access to this application to users in selected Duo groups, or to all users. Learn more about user access to applications. If you do not change this setting now, be sure to update it so that your test user has access before you test your setup.
This setting only applies to users who exist in Duo with "Active" status. This does not affect application access for existing users with "Bypass" status, existing users for whom the effective Authentication Policy for the application specifies "Bypass 2FA" or "Skip MFA", or users who do not exist in Duo when the effective New User Policy for the application allows access to users unknown to Duo without MFA. -
Snowflake uses the Mail attribute when authenticating. We've mapped the <Email Address> attribute to external authentication source attributes as follows:
Default Attribute Active Directory SAML IdP <Email Address> mail Email If you are using a non-standard email attribute for your authentication source, check the Custom attributes box and enter the name of the attribute you wish to use instead.
-
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.
-
Keep the Duo Admin Panel tab 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 |
![]() |
![]() |
We've already updated the Duo Snowflake 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 Snowflake application before March 2024, you can activate the Universal Prompt experience for users from the Duo Admin Panel. Snowflake applications created after March 2024 have the Universal Prompt activated by default.
If you created your Snowflake 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.

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.
Enable Snowflake for SSO
-
Log into Snowflake as an administrative user and switch your role to ACCOUNTADMIN.
-
Navigate to Projects → Workspaces. If your organization hasn't switched to Workspaces yet, navigate to Projects → Worksheets.
-
In Workspaces, click + Add New and select SQL File. Give the new SQL file any name you wish. In Worksheets, click + to create a new SQL worksheet.
-
Paste this SQL command into the file or worksheet.
CREATE SECURITY INTEGRATION duo_sso TYPE = saml2 ENABLED = true SAML2_ISSUER = 'duo_identity_provider_issuer_url' SAML2_SSO_URL = 'duo_identity_provider_sso_url' SAML2_PROVIDER = 'Custom' SAML2_X509_CERT = 'my_x509_certificate' SAML2_ENABLE_SP_INITIATED = true SAML2_SP_INITIATED_LOGIN_PAGE_LABEL = 'Duo_SSO'; -
Make the following changes to the
CREATE SECURITY INTEGRATIONSQL command you pasted:-
Change the name of the security integration from the example value
duo_ssoon line 1 of the SQL command if you wish. -
Return to the Duo Admin Panel with the Snowflake application open. Copy the Identity Provider Issuer URL and paste it over the text
duo_identity_provider_issuer_urlon line 4 of the SQL command. -
Return to the Duo Admin Panel. Copy the Identity Provider SSO URL and paste it over the text
duo_identity_provider_sso_urlon line 5 of the SQL command. -
Return to the Duo Admin Panel. Under "Downloads", click Copy certificate. Return to Snowflake and paste the certificate file text over
my_x509_certificateon line 7 of the SQL command. Delete the-----BEGIN CERTIFICATE-----and-----END CERTIFICATE-----lines from the pasted certificate text. -
Change the security integration's login page label from the example value
Duo_SSOon line 9 if you wish.
Your edited SQL command should look like this:
CREATE SECURITY INTEGRATION duo_sso TYPE = saml2 ENABLED = true SAML2_ISSUER = 'https://sso-abc1def2.sso.duosecurity.com/saml2/sp/DIABC123678901234567/metadata' SAML2_SSO_URL = 'https://sso-abc1def2.sso.duosecurity.com/saml2/sp/DIABC123678901234567/sso' SAML2_PROVIDER = 'Custom' SAML2_X509_CERT = 'MIIDDTCCAfWgAwIBAgIUThCNupFx2HqMJZOg0Vu5mIn9UbwwDQYJKoZIhvcNAQEL BQAwFjEUMBIGA1UEAwwLSSBsb3ZlIER1byEwHhcNMjYwNDA5MTk0MzI0WhcNMjcw NDA5MTk0MzI0WjAWMRQwEgYDVQQDDAtJIGxvdmUgRHVvITCCASIwDQYJKoZIhvcN AQEBBQADggEPADCCAQoCggEBALe7hM6KbqazZlwSbVSkqCUgzRIEear1XmTlXE7E DDELSzAA/M/7n0xEhxyYqKTTenyUbALejiJd82gAMUZRN1F6J8lMCtbbP5nlKG8g bTYHbpk/Iwvl0oznkLlhJJEs1W7zMXtjMlO0R8RkPDy62iEk/WHms1qqKGZeFyWg dTIzHlyB0WziC1QVzJxStR5APiXg8+Amzog/BaQB9+zC/WfUtbo9hAsi38J1CPTY 0YtFHSsycNVh203UxRuNx7KokSFZsMOSgDdMOumCBYw1+BCmzC6NUWS1mQeHBVs8 ANOdwxSk+6hdOybLPV+WzNHUY6eUlDuXY1AJ4TbcDKdlBgcCAwEAAaNTMFEwHQYD VR0OBBYEFFvYJlGvEBBZr0N+l6sza1Zk5E8jMB8GA1UdIwQYMBaAFFvYJlGvEBBZ r0N+l6sza1Zk5E8jMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEB ACeRx+0li+6xc/CSrleAeFThsME1MvpbS0eqXS4jn1sdYDq+R9ZIa0foY0jvWzQP 0oU3hFwRPj6nXYsM3kokFUgJ4ZNhQNnJVRnZEaBt4MKCcr4F4gZi557AfTmiCDAq 6sepDwIy6CkHaOvBUFKEn9Yu3ZVg+tqKZIBvvfOwjU7qblMyw0DYS+uStCZpfWOu wDOv8u1Cd1+FY4lduEoatoP6KQsSmtyZnwyAlhHHLKg/UE93y5D0xz2FsFA3rCEN ATuXMSN8Ur958Vv0ClOENIw6lDtQR1E8zhgduXkyP5TSEJeLWorU93lxgnIoioxz I+bVernL8tFPGyG+QmFBpxI=' SAML2_ENABLE_SP_INITIATED = true SAML2_SP_INITIATED_LOGIN_PAGE_LABEL = 'Duo_SSO'; -
-
Click the arrow button to run the SQL command and create the security integration.
-
Create another SQL file and enter
desc security integration duo_sso;, replacingduo_ssowith the name you used to create the Duo SAML security integration. -
Click the arrow button to run the SQL command.
-
Locate SAML2_SNOWFLAKE_METADATA in the SQL results. Click the cell in the "property_value" column. The "As property_value" field opens to the right of the results table.
-
Hover your mouse cursor over the "As property_value" field and click the Expand icon to view the data.
-
Copy the "entityID" URL and paste it into the Duo Admin Panel Snowflake Issuer URL field.
-
Return to your Snowflake account page and scroll to the bottom of the "As property_value" field. Copy the "Location" URL and paste it into the Duo Admin Panel Snowflake ACS URL field.
-
In the Duo Admin Panel, scroll to the bottom of the page and click Save.
Learn more about Snowflake SSO at Snowflake Documentation.
Using SSO
You can log on to Snowflake by navigating to your Snowflake SSO page e.g., https://example-example.snowflakecomputing.com/. Click Sign in using Example 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.
Enter the AD primary password and click or tap Log in to continue.
Enable Duo Passwordless to log in to Duo SSO backed by Active Directory authentication without entering a password in the future.
SAML Login
The SAML login experience depends on your Duo SSO routing rules configuration.
With another SAML identity provider as the only enabled Duo SSO authentication source and the default routing rule in place, Duo SSO immediately redirects the login attempt to that SAML IdP for primary authentication. Users do not see the Duo SSO primary login screen.
If you have multiple enabled SAML authentication sources or custom routing rules in place, then users enter their primary username (email address) on the Duo SSO login page and then will be redirected to the correct external SAML identity provider.
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 Snowflake to complete the login process.
* Universal Prompt experience shown.
You can also log into Snowflake using Duo Central, our cloud-hosted portal which allows users to access all of their applications in one spot. Link to Snowflake 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 Snowflake.
Congratulations! Your Snowflake 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.
Grant Access to Users
If you did not already grant user access to the Duo users you want to use this application be sure to do that before inviting or requiring them to log in with Duo.
Enable Remembered Devices
To minimize additional Duo two-factor prompts when switching between Snowflake and your other Duo Single Sign-On SAML applications, be sure to apply a shared "Remembered Devices" policy to your SAML applications.
Automated Provisioning
You may be able to create, manage, and delete users and groups in this application automatically from Duo using SCIM 2.0 provisioning. See Automated Provisioning to learn how.
Troubleshooting
Need some help? Try searching our Knowledge Base articles or Community discussions. For further assistance, contact Support.

