Skip navigation
Documentation

Duo Single Sign-On for Cisco ASA with AnyConnect

Last Updated: March 16th, 2020

Duo offers a variety of methods for adding two-factor authentication and flexible security policies to Cisco ASA SSO logins, complete with inline self-service enrollment and Duo Prompt.

Overview

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.

Duo Beyond customers should 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 on Android does not rely on certificates, so there is no dependency on a specific AnyConnect app version.

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.

Duo Single Sign-On

Duo Single Sign-On, our cloud-hosted SSO product, layers Duo's strong authentication and flexible policy engine on top of Cisco ASA logins using the Security Assertion Markup Language (SAML) 2.0 authentication standard. Duo Single Sign-On acts as an identity provider (IdP), 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 Cisco ASA.

Duo Single Sign-On is included in the Duo Beyond, Duo Access, and Duo MFA 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.

Configure Single Sign-On

Before configuring Cisco ASA you'll first need to configure Duo Single Sign-On with a working an authentication source.

Create the Cisco ASA Application in Duo

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

  2. Click Protect an Application and locate the "Single Sign-On (hosted by Duo)" entry for Cisco ASA 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.

Configure Cisco ASA SSO

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).

Cisco Adaptive Security Device Manager (ASDM)

Upload Certificate

  1. Click Download certificate next to "Identity Provider Certificate" on the Duo Admin Panel under Downloads to download the Duo Single Sign-On certificate file.

  2. Connect to your Cisco ASA through your ASDM and log in as an administrative user.

  3. Click on the Configuration button at the top of the screen.

  4. Click Device Management in the bottom left-hand side of the screen.

  5. In the navigation bar on the left side expand Certificate Management and then click CA Certificates

  6. On the “CA Certificates” page click Add. A new window will pop-up.

  7. On the “Install Certificate” page type Duo_Single_SignOn into the “Trustpoint Name* field.

  8. While the “Install from a file” option is selected click Browse…. A new window will pop-up.

  9. Navigate to the location where you saved the certificate file.

  10. Click Install Certificate. You’ll see a pop-up that says “Certificate installed Successfully”. Click OK.

    Cisco ASA ASDM Install Certificate

  11. Click Save at the top of the screen.

Configure AnyConnect Connection Profile

  1. While logged into the Cisco ASDM click Remote Access VPN at the bottom of the screen.

  2. On the left-hand navigation expand Network (Client) Access and click on AnyConnect Connection Profiles.

  3. Under “Connection Profiles” click select the Tunnel Group you'd like to protect with SSO. A new window will pop-up.

  4. Make sure the Tunnel Group has an Alias set.

  5. Under “Authentication” click the drop-down next to “Method” and select SAML.

  6. Under “SAML Identity Provider” click Manage… next to “SAML Server**. A new window will pop-up.

  7. On the “Configure SSO Servers SAML” screen click Add. A new window will pop-up.

  8. 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

  9. 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

  10. 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

  11. 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

  12. Select Duo_Single_SignOn from the drop-down next to Identity Provider Certificate.

  13. Select the SSL certificate used for the Cisco ASA itself from the drop-down next to Service Provider Certificate.

    Important: You may need to update this selection when your SSL certificate expires or you change your Cisco ASA to use a new certificate.

  14. Leave the Request Signature set to None.

  15. Type 300 into the Request Timeout field.

  16. Leave all other options at their default setting.

  17. Click OK to be returned to the “Configure SSO Servers SAML” page.

    Cisco ASA SSO Identity Provider Setup

  18. Click OK to be returned to the “Add AnyConnect Connection Profile” page.

  19. Make sure the Entity ID of the SSO Server you just configured is selected in the drop-down next to SAML Server.

  20. Continue filling out the page and click OK.

  21. Click Apply.

  22. Click Save to write all changes to the ASA device memory.

Learn more about Cisco ASA SSO at Cisco Support.

Command Line Interface (CLI)

Upload Trustpoint Certificate

  1. Click Download certificate next to "Identity Provider Certificate" on the Duo Admin Panel under Downloads to download the Duo Single Sign-On certificate file.

  2. 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)#
    
  3. Enter the following to begin uploading the Duo Single Sign-On certificate:

    ciscoasa(config)#crypto ca trustpoint Duo_Single_SignOn
    ciscoasa(config-ca-trustpoint)#
    
  4. 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
    
  5. 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)#
    

Find SSL Certificate

  1. 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.
    

Add Duo Single Sign-On as an SSO Server

  1. 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)#
    
  2. 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
    
  3. 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
    
  4. Configure the Base URL of your Cisco ASA.

    Example: vpn.example.com.

    ciscoasa(config-webvpn-saml-idp)# base-url https://vpn.example.com
    
  5. 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)#
    

    Important: You may need to update this selection when your SSL certificate expires or you change your Cisco ASA to use a new certificate.

  6. 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
    
  7. Set Force Re-Authentication to false.

    ciscoasa(config-webvpn-saml-idp)# no force re-authentication
    
  8. 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)#
    

Set Tunnel Group to use SSO

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.

  1. Create a tunnel group that will be used for SSO by using the commands below:

    • Replace "cloud-idp-sso" with the name of the tunnel group you'd like to use.
    • Replace "cloud_idp" with the alias name you'd like to use.
    • Replace https://sso-abc1def2.sso.duosecurity.com/saml2/sp/DIABC123678901234567/metadata with the Entity ID from the Duo Admin Panel Metadata section.
    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
    
  2. Continue configuring your new tunnel group with any additional settings.

Learn more about Cisco ASA SSO at Cisco Support.

Update the Cisco ASA Application in Duo

  1. Return to the Duo Admin Panel with the Cisco ASA application open. Find the Service Provider section.

  2. 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.

  3. 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.

  4. 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> 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.

  5. 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.

  6. Scroll to the bottom of the page and click the Save button.

    Duo Cisco ASA Application Settings

Verify SSO

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 to the Duo Single Sign-On login page. Enter your primary directory logon information, approve Duo two-factor authentication, and get redirected back to the Cisco ASA site after authenticating.

Duo Single Sign-On Login and Authentication Prompt

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.

Enable Hostname Whitelisting

If you plan to permit use of WebAuthn authentication methods (security keys, U2F tokens, or Touch ID), Duo recommends enabling hostname whitelisting for this application and any others that show the inline Duo Prompt before onboarding your end-users.

Microsoft AD FS

Microsoft's Active Directory Federation Services (AD FS) is a popular choice for SSO because it easily integrates with the AD identity store many organizations already have deployed. Duo's support for cloud applications and SSO drops in to an existing AD FS installation to provide secondary authentication after a user passes primary authentication (successful Active Directory logon).

If you don't already have AD federation running the first step is to install and configure Microsoft AD FS in your organization. Deployment Guides for AD FS versions 2.1, and 3.0/4.0 are available from Microsoft.

Once your AD FS services are up and running, the second step is to configure the SSO partnership between your AD FS service and the external cloud resource, in this case Cisco ASA. Learn more about configuring Cisco ASA SSO with AD FS at the Cisco Support site.

After you have successfully configured and tested AD FS SSO login to Cisco ASA using your AD domain credentials, you can then install the Duo AD FS integration. AD FS protection is included with Duo's paid plans.

With the Duo integration for AD FS installed, users pass primary authentication to the AD FS service as usual. Once primary authentication succeeds, users are forwarded to the Duo service for secondary authentication. After approving logon using one of Duo's authentication methods, the user is fully logged in to Cisco ASA.

Other Identity Partners

Using a third-party SSO provider for cloud application access? Duo partners with leading cloud SSO providers like Okta and OneLogin to secure access with our strong and flexible authentication platform.

You can also use Duo two-factor authentication with CAS and Shibboleth on-premises IdPs.

Troubleshooting

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