Introducción
Este documento describe la autenticación de Lenguaje de marcado de aserción de seguridad (SAML) en FTD administrado sobre FMC.
Prerequisites
Requirements
Cisco recomienda conocer estos temas:
- Configuración de AnyConnect en Firepower Management Center (FMC)
- Valores SAML y metatada.xml
Componentes Utilizados
La información que contiene este documento se basa en las siguientes versiones de software y hardware.
- Firepower Threat Defence (FTD) versión 6.7.0
- FMC versión 6.7.0
- ADFS del servidor AD con SAML 2.0
Nota: Si es posible, utilice un servidor NTP para sincronizar la hora entre el FTD y el IdP. De lo contrario, verifique que la hora se sincronice manualmente entre ellos.
La información que contiene este documento se creó a partir de los dispositivos en un ambiente de laboratorio específico. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración verificada (predeterminada). Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.
Antecedentes
La configuración permite a los usuarios de AnyConnect establecer una autenticación de sesión VPN con un proveedor de servicios de identidad SAML.
Algunas de las limitaciones actuales para SAML son:
- SAML en FTD es compatible con la autenticación (versión 6.7 y posteriores) y la autorización (versión 7.0 y posteriores).
- No se admiten los atributos de autenticación SAML disponibles en la evaluación DAP (similares a los atributos RADIUS enviados en la respuesta de autorización RADIUS del servidor AAA).
- ASA admite el grupo de túnel habilitado para SAML en la política DAP. Sin embargo, no puede verificar el atributo username con autenticación SAML, porque el atributo username está enmascarado por el proveedor de identidad SAML.
-
Dado que AnyConnect con el navegador integrado utiliza una nueva sesión de navegador en cada intento de VPN, los usuarios deben volver a autenticarse cada vez que el IdP utiliza cookies de sesión HTTP para realizar un seguimiento del estado de inicio de sesión.
-
En este caso, el Force Re-Authentication
configuración en Configuration > Remote Access VPN > Clientless SSL VPN Access > Advanced > Single Sign On Servers
no tiene ningún efecto en la autenticación SAML iniciada por AnyConnect.
En el enlace que se proporciona aquí se describen más limitaciones para SAML.
Pautas y limitaciones para SAML 2.0
Estas limitaciones se aplican a ASA y FTD: Pautas y limitaciones para SAML 2.0.
Nota: Todas las configuraciones SAML que se implementarán en el FTD se pueden encontrar en el archivo metadata.xml proporcionado por su IdP.
Configuración
Esta sección describe cómo configurar AnyConnect con autenticación SAML en FTD
Obtener los Parámetros de IdP de SAML
Esta imagen muestra un archivo metadata.xml de SAML IdP. A partir de la salida, puede obtener todos los valores requeridos para configurar el perfil de AnyConnect con SAML:
Configuración en el FTD a través de FMC
Paso 1. Instalar e inscribir el certificado IdP en el FMC. Desplácese hasta Devices > Certificates.
Paso 2. Haga clic en Add
. Seleccione el FTD para inscribirse en este certificado. En Inscripción de certificados, haga clic en el signo más +.
En el Add Cert Enrollment
utilice cualquier nombre como etiqueta para el certificado de IdP. Haga clic en Manual
.
Compruebe el CA Only
y Skip Check
para los campos de indicador de CA.
Pegue el base64
format IdP CA cert.
Haga clic en Save
y haga clic en Add
.
Paso 3. Configure los parámetros del servidor SAML. Desplácese hasta Objects > Object Management > AAA Servers > Single Sign-on Server.
A continuación, seleccione Add Single Sign-on Server.
Paso 4. Basado en la metadata.xml
ya proporcionado por su IdP, configure los valores SAML en el New Single Sign-on Server.
SAML Provider Entity ID: entityID from metadata.xml
SSO URL: SingleSignOnService from metadata.xml.
Logout URL: SingleLogoutService from metadata.xml.
BASE URL: FQDN of your FTD SSL ID Certificate.
Identity Provider Certificate: IdP Signing Certificate.
Service Provider Certificate: FTD Signing Certificate.
Paso 5. Configure el Connection Profile
que utiliza este método de autenticación. Desplácese hasta Devices > Remote Access
y, a continuación, editar el VPN Remote Access
configuración.
Paso 6. Haga clic en el signo más + y agregue otro perfil de conexión.
Paso 7. Cree el nuevo perfil de conexión y agregue la VPN, el grupo o el servidor DHCP adecuados.
Paso 8. Seleccione la ficha AAA. En la sección Authentication Method
seleccione SAML.
En la sección Authentication Server
seleccione el objeto SAML creado en el paso 4.
Paso 9. Cree un alias de grupo para asignar las conexiones a este perfil de conexión. Esta es la etiqueta que los usuarios pueden ver en el menú desplegable AnyConnect Software.
Cuando esté configurado, haga clic en Aceptar y guarde la configuración VPN de autenticación SAML completa.
Paso 10. Desplácese hasta Deploy > Deployment
y seleccione el FTD adecuado para aplicar los cambios de VPN de autenticación SAML.
Paso 11. Proporcione el archivo metadata.xml de FTD al IDP para que agregue el FTD como un dispositivo de confianza.
En la CLI de FTD, ejecute el comando show saml metadata SAML_TG
donde SAML_TG es el nombre del perfil de conexión creado en el paso 7.
Este es el resultado esperado:
> system support diagnostic-cli
Attaching to Diagnostic CLI ... Press 'Ctrl+a then d' to detach.
Type help or '?' for a list of available commands.
firepower> en
Password:
firepower# show saml metadata SAML_TG
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<EntityDescriptor entityID="https://ftd.lab.local/saml/sp/metadata/SAML_TG" xmlns="urn:oasis:names:tc:SAML:2.0:metadata">
<SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="true" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
<KeyDescriptor use="signing">
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:X509Data>
<ds:X509Certificate>MIIF1zCCBL+gAwIBAgITYAAAABN6dX+H0cOFYwAAAAAAEzANBgkqhkiG9w0BAQsF
ADBAMRUwEwYKCZImiZPyLGQBGRYFbG9jYWwxEzARBgoJkiaJk/IsZAEZFgNsYWIx
EjAQBgNVBAMTCU1TMjAxMi1DQTAeFw0yMDA0MTEwMTQyMTlaFw0yMjA0MTEwMTQy
MTlaMCMxCzAJBgNVBAYTAkNSMRQwEgYDVQQDDAsqLmxhYi5sb2NhbDCCASIwDQYJ
KoZIhvcNAQEBBQADggEPADCCAQoCggEBAKfRmbCfWk+V1f+YlsIE4hyY6+Qr1yKf
g1wEqLOFHtGVM3re/WmFuD+4sCyU1VkoiJhf2+X8tG7x2WTpKKtZM3N7bHpb7oPc
uz8N4GabfAIw287soLM521h6ZM01bWGQ0vxXR+xtCAyqz6JJdK0CNjNEdEkYcaG8
PFrFUy31UPmCqQnEy+GYZipErrWTpWwbF7FWr5u7efhTtmdR6Y8vjAZqFddigXMy
EY4F8sdic7btlQQPKG9JIaWny9RvHBmLgj0px2i5Rp5k1JIECD9kHGj44O5lBEcv
OFY6ecAPv4CkZB6CloftaHjUGTSeVeBAvXBK24Ci9e/ynIUNJ/CM9pcCAwEAAaOC
AuUwggLhMBYGA1UdEQQPMA2CCyoubGFiLmxvY2FsMB0GA1UdDgQWBBROkmTIhXT/
EjkMdpc4aM6PTnyKPzAfBgNVHSMEGDAWgBTEPQVWHlHqxd11VIRYSCSCuHTa4TCB
zQYDVR0fBIHFMIHCMIG/oIG8oIG5hoG2bGRhcDovLy9DTj1NUzIwMTItQ0EsQ049
V0lOLTVBME5HNDkxQURCLENOPUNEUCxDTj1QdWJsaWMlMjBLZXklMjBTZXJ2aWNl
cyxDTj1TZXJ2aWNlcyxDTj1Db25maWd1cmF0aW9uLERDPWxhYixEQz1sb2NhbD9j
ZXJ0aWZpY2F0ZVJldm9jYXRpb25MaXN0P2Jhc2U/b2JqZWN0Q2xhc3M9Y1JMRGlz
dHJpYnV0aW9uUG9pbnQwgbkGCCsGAQUFBwEBBIGsMIGpMIGmBggrBgEFBQcwAoaB
mWxkYXA6Ly8vQ049TVMyMDEyLUNBLENOPUFJQSxDTj1QdWJsaWMlMjBLZXklMjBT
ZXJ2aWNlcyxDTj1TZXJ2aWNlcyxDTj1Db25maWd1cmF0aW9uLERDPWxhYixEQz1s
b2NhbD9jQUNlcnRpZmljYXRlP2Jhc2U/b2JqZWN0Q2xhc3M9Y2VydGlmaWNhdGlv
bkF1dGhvcml0eTAOBgNVHQ8BAf8EBAMCBaAwPQYJKwYBBAGCNxUHBDAwLgYmKwYB
BAGCNxUIgYKsboLe0U6B4ZUthLbxToW+yFILh4iaWYXgpQUCAWQCAQMwSwYDVR0l
BEQwQgYIKwYBBQUHAwEGCCsGAQUFBwMHBggrBgEFBQcDBgYIKwYBBQUIAgIGCCsG
AQUFBwMFBggrBgEFBQcDAgYEVR0lADBfBgkrBgEEAYI3FQoEUjBQMAoGCCsGAQUF
BwMBMAoGCCsGAQUFBwMHMAoGCCsGAQUFBwMGMAoGCCsGAQUFCAICMAoGCCsGAQUF
BwMFMAoGCCsGAQUFBwMCMAYGBFUdJQAwDQYJKoZIhvcNAQELBQADggEBAKQnqcaU
fZ3kdeoE8v2Qz+3Us8tXxXaXVhS3L5heiwr1IyUgsZm/+RLJL/zGE3AprEiITW2V
Lmq04X1goaAs6obHrYFtSttz/9XlTAe1KbZ0GlRVg9LblPiF17kZAxALjLJHlCTG
5EQSC1YqS31sTuarm4WPDJyMShc6hlUpswnCokGRMMgpx2GmDgv4Zf8SzJJ0NI4y
DgMozuObwkNUXuHbiLuoXwvb2Whm11ysidpl+V9kp1RYamyjFUo+agx0E+L1zp8C
i0YEwYKXgKk3CZdwJfnYQuCWjmapYwlLGt5S59Uwegwro6AsUXY335+ZOrY/kuLF
tzR3/S90jDq6dqk=
</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</KeyDescriptor>
<AssertionConsumerService index="0" isDefault="true" Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://ftd.lab.local/+CSCOE+/saml/sp/acs?tgname=SAML_TG" />
<SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://ftd.lab.local/+CSCOE+/saml/sp/logout"/><SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://ftd.lab.local/+CSCOE+/saml/sp/logout"/></SPSSODescriptor>
</EntityDescriptor>
Una vez que el metadata.xml del FTD se proporciona al IdP y es un dispositivo confiable, se puede realizar una prueba bajo la conexión VPN.
Verificación
Verifique que la conexión VPN AnyConnect se estableció con SAML como método de autenticación con los comandos que se ven aquí:
firepower# show vpn-sessiondb detail AnyConnect
Session Type: AnyConnect Detailed
Username : xxxx Index : 4
Assigned IP : 10.1.1.1 Public IP : 192.168.1.104
Protocol : AnyConnect-Parent SSL-Tunnel DTLS-Tunnel
License : AnyConnect Premium
Encryption : AnyConnect-Parent: (1)none SSL-Tunnel: (1)AES-GCM-256 DTLS-Tunnel: (1)AES-GCM-256
Hashing : AnyConnect-Parent: (1)none SSL-Tunnel: (1)SHA384 DTLS-Tunnel: (1)SHA384
Bytes Tx : 12772 Bytes Rx : 0
Pkts Tx : 10 Pkts Rx : 0
Pkts Tx Drop : 0 Pkts Rx Drop : 0
Group Policy : SAML_GP Tunnel Group : SAML_TG
Login Time : 18:19:13 UTC Tue Nov 10 2020
Duration : 0h:03m:12s
Inactivity : 0h:00m:00s
VLAN Mapping : N/A VLAN : none
Audt Sess ID : c0a80109000040005faad9a1
Security Grp : none Tunnel Zone : 0
AnyConnect-Parent Tunnels: 1
SSL-Tunnel Tunnels: 1
DTLS-Tunnel Tunnels: 1
AnyConnect-Parent:
Tunnel ID : 4.1
Public IP : 192.168.1.104
Encryption : none Hashing : none
TCP Src Port : 55130 TCP Dst Port : 443
Auth Mode : SAML
Idle Time Out: 30 Minutes Idle TO Left : 26 Minutes
Client OS : linux-64
Client OS Ver: Ubuntu 20.04.1 LTS (Focal Fossa)
Client Type : AnyConnect
Client Ver : Cisco AnyConnect VPN Agent for Linux 4.9.03047
Bytes Tx : 6386 Bytes Rx : 0
Pkts Tx : 5 Pkts Rx : 0
Pkts Tx Drop : 0 Pkts Rx Drop : 0
SSL-Tunnel:
Tunnel ID : 4.2
Assigned IP : 10.1.1.1 Public IP : 192.168.1.104
Encryption : AES-GCM-256 Hashing : SHA384
Ciphersuite : ECDHE-RSA-AES256-GCM-SHA384
Encapsulation: TLSv1.2 TCP Src Port : 55156
TCP Dst Port : 443 Auth Mode : SAML
Idle Time Out: 30 Minutes Idle TO Left : 28 Minutes
Client OS : Linux_64
Client Type : SSL VPN Client
Client Ver : Cisco AnyConnect VPN Agent for Linux 4.9.03047
Bytes Tx : 6386 Bytes Rx : 0
Pkts Tx : 5 Pkts Rx : 0
Pkts Tx Drop : 0 Pkts Rx Drop : 0
DTLS-Tunnel:
Tunnel ID : 4.3
Assigned IP : 10.1.1.1 Public IP : 192.168.1.104
Encryption : AES-GCM-256 Hashing : SHA384
Ciphersuite : ECDHE-ECDSA-AES256-GCM-SHA384
Encapsulation: DTLSv1.2 UDP Src Port : 40868
UDP Dst Port : 443 Auth Mode : SAML
Idle Time Out: 30 Minutes Idle TO Left : 28 Minutes
Client OS : Linux_64
Client Type : DTLS VPN Client
Client Ver : Cisco AnyConnect VPN Agent for Linux 4.9.03047
Bytes Tx : 0 Bytes Rx : 0
Pkts Tx : 0 Pkts Rx : 0
Pkts Tx Drop : 0 Pkts Rx Drop : 0
Troubleshoot
Algunos comandos de verificación en la CLI de FTD se pueden utilizar para resolver problemas de conexión VPN de acceso remoto y SAML, como se ve en el soporte:
firepower# show run webvpn
firepower# show run tunnel-group
firepower# show crypto ca certificate
firepower# debug webvpn saml 25
Nota: también puede resolver problemas de DART desde el equipo del usuario de AnyConnect.