Add two-factor authentication and flexible security policies to Cisco ASA AnyConnect 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.
Duo's SAML SSO for ASA supports inline self-service enrollment and the Duo Prompt for AnyConnect and web-based SSL VPN logins. This deployment option requires that you have a SAML 2.0 identity provider (IdP) in place that features Duo authentication, like Duo Single Sign-On. Primary and Duo secondary authentication occur at the identity provider, not at the ASA itself.
Cisco ASA SSO requires ASA version of 9.7.1.24, 9.8.2.28, 9.9.2.1, or higher of these releases, or 9.10 and later, plus AnyConnect 4.6 or later. Prior versions of ASA firmware and AnyConnect do not support SAML login or use a different browser experience. Add Duo protection to earlier ASA versions with our ASA LDAPS SSL VPN or ASA RADIUS with AnyConnect configurations.
Familiarize yourself with the limitations of ASA SAML 2.0 authentication by reviewing the Use Single Sign-On with Clientless SSL VPN documentation in the Cisco ASA Series VPN CLI Configuration Guide.
Be aware of these AnyConnect client minimum version requirements for Duo's Trusted Endpoints certificate detection.
Operating System | AnyConnect Version |
---|---|
Windows | AnyConnect 4.7.04056 or later |
macOS | AnyConnect 4.8.00175 or later |
iOS | AnyConnect 4.8.00807 or later |
Trusted Endpoints detection which does not rely on certificates has no dependency on a specific AnyConnect app version.
The ASA SAML login experience supports use of Duo WebAuthn authentication methods like Touch ID and security keys for AnyConnect client logins under the following conditions:
With all requirements in place, ASA VPN SSO logins launch in the client's external browser instead of an embedded browser, allowing WebAuthn functionality in the Duo Universal Prompt. This also extends Duo Passwordless to AnyConnect client logins.
Duo Single Sign-On is our cloud-hosted SSO product which layers Duo's strong authentication and flexible policy engine on top of Cisco ASA 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 Cisco ASA.
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 Cisco ASA. Duo checks the user, device, and network against an application's policy before allowing access to the application.
Before configuring Cisco ASA 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 Cisco ASA application in Duo.
Log on to the Duo Admin Panel and navigate to Applications.
Click Protect an Application and locate the entry for Cisco ASA 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 Cisco ASA. See Protecting Applications for more information about protecting applications in Duo and additional application options. You'll need the information on the Cisco ASA page under Metadata later.
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 |
![]() |
![]() |
We've already updated the Duo Cisco ASA 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 Cisco ASA 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.
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 "New Prompt Ready", with these activation control options:
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 "Update 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.
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 in-scope for Universal Prompt support. 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.
Add Duo Single Sign-On to Cisco ASA as a new single sign-on provider. The Cisco ASA can be configured through the Cisco Adaptive Security Device Manager (ASDM) or the command-line interface (CLI).
Click Download certificate next to "Identity Provider Certificate" under Downloads on the details page for your application in the Duo Admin Panel to download the Duo Single Sign-On certificate file.
Connect to your Cisco ASA through your ASDM and log in as an administrative user.
Click on the Configuration button at the top of the screen.
Click Device Management in the bottom left-hand side of the screen.
In the navigation bar on the left side expand Certificate Management and then click CA Certificates
On the "CA Certificates" page click Add. A new window will pop-up.
On the "Install Certificate" page type Duo_Single_SignOn into the "Trustpoint Name" field.
While the "Install from a file" option is selected click Browse…. A new window will pop-up.
Navigate to the location where you saved the certificate file.
Click Install Certificate. You’ll see a pop-up that says "Certificate installed Successfully". Click OK.
Click Save at the top of the screen.
While logged into the Cisco ASDM click Remote Access VPN at the bottom of the screen.
On the left-hand navigation expand Network (Client) Access and click on AnyConnect Connection Profiles.
Under "Connection Profiles" double-click the Tunnel Group you'd like to protect with SSO. A new window will pop-up.
Make sure the Tunnel Group has an Alias set.
Under "Authentication" click the drop-down next to "Method" and select SAML.
Under "SAML Identity Provider" click Manage… next to "SAML Server**. A new window will pop-up.
On the "Configure SSO Servers SAML" screen click Add. A new window will pop-up.
On the "Add SSO Server" page copy the Entity ID from the Duo Admin Panel Metadata section and paste it into the Cisco ASA IDP Entity ID field.
Example: https://sso-abc1def2.sso.duosecurity.com/saml2/sp/DIABC123678901234567/metadata
Next to Sign In URL select https from the drop-down. Copy the Sign In URL from the Duo Admin Panel Metadata section and paste it into the Cisco ASA Sign In URL field. Remove the https:// from the pasted URL.
Example: sso-abc1def2.sso.duosecurity.com/saml2/sp/DIABC123678901234567/sso
Next to Sign Out URL select https from the drop-down. Copy the Sign Out URL from the Duo Admin Panel Metadata section and paste it into the Cisco ASA Sign Out URL field. Remove the https:// from the pasted URL.
Example: sso-abc1def2.sso.duosecurity.com/saml2/sp/DIABC123678901234567/slo
Next to Base URL select https from the drop-down. Enter the publicly resolvable hostname of your Cisco ASA into the field.
Example: vpn.example.com
Select Duo_Single_SignOn from the drop-down next to Identity Provider Certificate.
Select the SSL certificate used for the Cisco ASA itself from the drop-down next to Service Provider Certificate.
Leave the Request Signature set to None.
Type 300 into the Request Timeout field.
Leave all other options at their default setting.
Click OK to return to the "Configure SSO Servers SAML" page.
Click OK to return to the "Add AnyConnect Connection Profile" page.
Make sure the Entity ID of the SSO Server you just configured is selected in the drop-down next to SAML Server.
Continue filling out the page and click OK.
Click Apply.
Click Save to write all changes to the ASA device memory.
Learn more about Cisco ASA SSO at Cisco Support.
Click Download certificate next to "Identity Provider Certificate" under Downloads on the details page for your application in the Duo Admin Panel to download the Duo Single Sign-On certificate file.
SSH into your ASA and access the config terminal.
login as: asaadmin
asaadmin@ciscoasa's password:
Type help or '?' for a list of available commands.
ciscoasa> enable
Password: ********
ciscoasa# configure terminal
ciscoasa(config)#
Enter the following to begin uploading the Duo Single Sign-On certificate:
ciscoasa(config)#crypto ca trustpoint Duo_Single_SignOn
ciscoasa(config-ca-trustpoint)#
Enter the commands below. When prompted 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 text into your terminal. Type quit on its own line and then hit return.
ciscoasa(config-ca-trustpoint)# enrollment terminal
ciscoasa(config-ca-trustpoint)# crypto ca authenticate Duo_Single_SignOn
Enter the base 64 encoded CA certificate. End with the word "quit" on a line by itself
-----BEGIN CERTIFICATE-----
MIIDDTCCAfWgAwIBAgIUEkFOP84CnkHz016GOcgiqbqqZzQwDQYJKoZIhvcNAQEL
BQAwNjEVMBMGA1UECgwMRHVvIFNlY3VyaXR5MR0wGwYDVQQDDBRESUdHUDNCSlFQ
OVRJWDM5N0NXVjAeFw0yMDAzMDUxNDE3MzlaFw0zODAxMTkwMzE0MDdaMDYxFTAT
BgNVBAoMDER1byBTZWN1cml0eTEdMBsGA1UEAwwURElHR1AzQkpRUDlUSVgzOTdD
V1YwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC0Uvap+tymeCVLo6ed
kQ8Jg+eBUyaSZGRmAHOtuKZR+KJZ+N02ew+P5fA6P7Oli9ppT3LLp3L4Tx40lZwi
i7dC8oSVPMFgQFy/bUW/+rcF6yz1AZVGTJmAriDO8AlCOmevBNTczJnsSrJ2Kol+
bc7A1wm1ffb6M2LsHpKrdipokMeqztYTMOdNoxAxJk7M7DsItHoatyYd5fXm3HHb
ce0bISNq3Nt7QEq9TPbAk6gJ8SpIY96s60qZ1YpZvIO4UrdkTFXXC3VklK7xpxEc
JwlZf1IFgoAczo3wPO71A9zZPNAU34qAm4S/y05WUyzusbvISlMfNfgoLn0EeXiW
Gvs/AgMBAAGjEzARMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEB
AGVK+GEjcycIKEKLxfXEghvra2Yq8pPNCdFIJGvgbj50EG9EGW1EB/Orj8MQ8Z+k
5GDdo4kHvWajc2LCnVIL4cn008A838pXXDRLq50Hdy4+RcAbkNRB0pBB2PaE7lzo
euK89oj3oSTLKs6juvMZFJxBnrCLKFLuR62aWzVjwiYItnfu4t1mtaCqeNrmM50Y
Ba1GL/+O6ROghuGJuFK9fIhTbvz/ipKAC/b2tOUgRvU7izcdELkDER+vmXU4ji/a
NwTj+2Edi4Z6yV1bxILblkvkcpvof+o+XiIgQArV8qoXnB5wAWwEe3qnvrz1q/m3
Hm13Z1Hr1/P00/6v1uIN20o=
-----END CERTIFICATE-----
quit
You will be asked to accept the certificate. Type yes.
INFO: Certificate has the following attributes:
Fingerprint: ca20076b b1daa7f8 76d535c6 8e404ccd
Do you accept this certificate? [yes/no]: yes
Trustpoint CA certificate accepted.
% Certificate successfully imported
ciscoasa(config)#
Enter the following command to print a list of all the certificates uploaded to the Cisco ASA. Locate the Trustpoint certificate used to serve SSL for your Cisco ASA. Make note of it as you'll need it later.
ciscoasa(config)# show crypto ca trustpoints
Trustpoint SSL_Cert_For_Site:
Subject Name:
cn=COMODO RSA Domain Validation Secure Server CA
o=COMODO CA Limited
l=Salford
st=Greater Manchester
c=GB
Serial Number: 1a2b3ccd4556788d123a4bcda56bc78
Certificate configured.
Trustpoint Duo_Single_SignOn:
Subject Name:
cn=DIGGP3BJQP9TIX397CWV
o=Duo Security
Serial Number: 12414e3fce029e41f3d35e8639c822a9baaa6734
Certificate configured.
Enter config-webvpn and then copy the Entity ID from the Duo Admin Panel Metadata section and paste it into the server like the exmaple below.
Example: https://sso-abc1def2.sso.duosecurity.com/saml2/sp/DIABC123678901234567/metadata
ciscoasa(config)# webvpn
ciscoasa(config-webvpn)# saml idp https://sso-abc1def2.sso.duosecurity.com/saml2/sp/DIABC123678901234567/metadata
ciscoasa(config-webvpnsaml-idp)#
Copy the Sign In URL from the Duo Admin Panel Metadata section and enter it as the url sign-in.
Example: https://sso-abc1def2.sso.duosecurity.com/saml2/sp/DIABC123678901234567/sso
ciscoasa(config-webvpnsaml-idp)# url sign-in https://sso-abc1def2.sso.duosecurity.com/saml2/sp/DIABC123678901234567/sso
Copy the Sign Out URL from the Duo Admin Panel Metadata section and enter it as the url sign-out.
Example: https://sso-abc1def2.sso.duosecurity.com/saml2/sp/DIABC123678901234567/slo
ciscoasa(config-webvpnsaml-idp)# url sign-out https://sso-abc1def2.sso.duosecurity.com/saml2/sp/DIABC123678901234567/slo
Configure the Base URL of your Cisco ASA.
Example: vpn.example.com.
ciscoasa(config-webvpn-saml-idp)# base-url https://vpn.example.com
Set the trustpoint certificate you uploaded earlier for the SSO server.
ciscoasa(config-webvpn-saml-idp)# trustpoint idp Duo_Single_SignOn
ciscoasa(config-webvpn-saml-idp)# trustpoint sp SSL_Cert_For_Site
ciscoasa(config-webvpn-saml-idp)#
Set the timeout for when a pending SSO login is no longer valid. We recommend setting it to 300 seconds.
ciscoasa(config-webvpn-saml-idp)# timeout assertion 300
Set Force Re-Authentication to false.
ciscoasa(config-webvpn-saml-idp)# no force re-authentication
Exit saml-idp mode and verify that your configuration looks like the example below.
ciscoasa(config-webvpn-saml-idp)# exit
ciscoasa(config-webvpn)# show webvpn saml idp
saml idp https://sso-abc1def2.sso.duosecurity.com/saml2/sp/DIABC123678901234567/metadata
url sign-in https://sso-abc1def2.sso.duosecurity.com/saml2/sp/DIABC123678901234567/sso
url sign-out https://sso-abc1def2.sso.duosecurity.com/saml2/sp/DIABC123678901234567/slo
base-url https://vpn.example.com
trustpoint idp Duo_Single_SignOn
trustpoint sp SSL_Cert_For_Site
no signature
no force re-authentication
timeout assertion 300
ciscoasa(config-webvpn)#
Now that you've added Duo Single Sign-On as an SSO server in Cisco ASA you need to set a tunnel group to use Duo Single Sign-On for authentication.
Create a tunnel group that will be used for SSO by using the commands below:
ciscoasa(config) webvpn
ciscoasa(config-webvpn)# tunnel-group-list enable
ciscoasa(config-webvpn)# tunnel-group cloud-idp-sso type remote-access
ciscoasa(config)# tunnel-group cloud-idp-sso webvpn-attributes
ciscoasa(config-tunnel-webvpn)# authentication saml
ciscoasa(config-tunnel-webvpn)# group-alias cloud_idp enable
ciscoasa(config-tunnel-webvpn)# saml identity-provider https://sso-abc1def2.sso.duosecurity.com/saml2/sp/DIABC123678901234567/metadata
Continue configuring your new tunnel group with any additional settings.
Learn more about Cisco ASA SSO at Cisco Support.
Return to the Duo Admin Panel with the Cisco ASA application open. Find the Service Provider section.
Enter the base URL of your Cisco ASA that you entered above as the Base URL hostname. For example, if your Cisco ASA base URL is https://vpn.example.com then enter vpn.example.com.
Enter the tunnel group of your Cisco ASA that you entered above as the Tunnel Group. The tunnel group name is case-sensitive and must match. For example, if your tunnel group is cloud-idp-sso then enter cloud-idp-sso.
Cisco ASA uses the Mail attribute when authenticating. We've mapped the <Email Address> bridge attribute to Duo Single Sign-On supported authentication source attributes as follows:
Bridge Attribute | Active Directory | SAML IdP |
---|---|---|
<Email Address> |
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.
Scroll to the bottom of the page and click the Save button.
You can log into your Cisco ASA using your organization’s login page e.g. https://vpn.example.com. Select the tunnel group and click Login. This redirects you to Duo Single Sign-On to begin authentication.
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.
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.
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 Cisco ASA to complete the login process.
* Universal Prompt experience shown.
You can also log into Cisco ASA using Duo Central, our cloud-hosted portal which allows users to access all of their applications in one spot. Link to Cisco ASA 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 Cisco ASA.
Cisco AnyConnect mobile or desktop apps require version 4.6 or higher. Select your tunnel group from your AnyConnect client and click Login. You will be redirected to authenticate to Duo Single Sign-On.
Congratulations! Your Cisco ASA 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.
To minimize additional Duo two-factor prompts when switching between Cisco ASA and your other Duo Single Sign-On SAML applications, be sure to apply a shared "Remembered Devices" policy to your SAML applications.
Video shows the Duo Admin Panel experience prior to August 2023.
Need some help? Try searching our Knowledge Base articles or Community discussions. For further assistance, contact Support.