Contenido

Introducción

Prerequisites

Requirements

Componentes Utilizados

Antecedentes

Componentes SAML

Certificados para operaciones de firma y cifrado

Diagrama de la red

Configurar

Agregue Cisco AnyConnect desde la Galería de aplicaciones de Microsoft

Asignar usuario de Azure AD a la aplicación

Configuración de ASA para SAML mediante CLI

Verificación

Probar AnyConnect con autenticación SAML

Problemas comunes

ID de entidad no coincidente

Discordancia de tiempo

Certificado de firma IdP incorrecto utilizado

Audiencia de aserción no válida

URL incorrecta para el servicio al consumidor de aserción

Cambios de configuración de SAML que no surten efecto

Troubleshoot

Información Relacionada

Introducción

Este documento describe cómo configurar el Lenguaje de marcado de aserción de seguridad (SAML) con un enfoque en ASA AnyConnect a través de Microsoft Azure MFA.

Prerequisites

Requirements

Cisco recomienda que tenga conocimiento sobre estos temas:

- Conocimiento básico de la configuración VPN de RA en el dispositivo de seguridad adaptable (ASA).

- Conocimiento básico de SAML y Microsoft Azure.

- Licencias AnyConnect habilitadas (APEX o solo VPN).

Componentes Utilizados

La información que contiene este documento se basa en las siguientes versiones de software y hardware.

- Una suscripción de Microsoft Azure AD.

- Cisco ASA 9.7+ y Anyconnect 4.6+

- Trabajando con el perfil VPN de AnyConnect

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

SAML es un marco basado en XML para intercambiar datos de autenticación y autorización entre dominios de seguridad. Crea un círculo de confianza entre el usuario, un proveedor de servicios (SP) y un proveedor de identidad (IdP) que permite al usuario iniciar sesión una sola vez para varios servicios. Microsoft Azure MFA se integra a la perfección con el dispositivo VPN Cisco ASA para proporcionar seguridad adicional para los inicios de sesión de Cisco AnyConnect VPN.

Componentes SAML

Metadatos: Es un documento basado en XML que asegura una transacción segura entre un IdP y un SP. Permite al IdP y al SP negociar acuerdos.

Roles admitidos por los dispositivos (IdP, SP)

Un dispositivo puede soportar más de un rol y puede contener valores tanto para un SP como para un IdP. Debajo del campo EntityDescriptor hay un IDPSSODescriptor, si la información que contiene es para un identificador de inicio de sesión único, o un SPSSODescriptor si la información que contiene es para un proveedor de servicios de inicio de sesión único. Esto es importante ya que los valores correctos deben ser tomados de las secciones apropiadas para configurar SAML exitosamente.

Id. de entidad: este campo es un identificador único para un SP o un IdP. Un único dispositivo puede tener varios servicios y puede utilizar diferentes ID de entidad para diferenciarlos. Por ejemplo, ASA tiene diferentes ID de entidad para diferentes grupos de túnel que necesitan ser autenticados. Un IdP que autentica cada grupo de túnel tiene entradas de Id. de entidad separadas para cada grupo de túnel para identificar con precisión esos servicios.

ASA puede admitir varios IdP y tiene un ID de entidad independiente para cada IdP para diferenciarlos. Si cualquiera de los lados recibe un mensaje de un dispositivo que no contiene un ID de entidad que se haya configurado previamente, es probable que el dispositivo descarte este mensaje y la autenticación SAML falle. El ID de entidad se puede encontrar en el campo EntityDescriptor junto a entityID.

URL de servicio: definen la URL de un servicio SAML proporcionado por el SP o el IdP. Para los IdPs, esto es comúnmente el Servicio de cierre de sesión único y el Servicio de inicio de sesión único. Para los SP, esto es comúnmente el servicio de consumidor de aserción y el servicio de cierre de sesión único.

El SP utiliza la URL del servicio de Single Sign-On que se encuentra en los metadatos IdP para redirigir al usuario al IdP para la autenticación. Si este valor está configurado incorrectamente, el IdP no recibe o no puede procesar satisfactoriamente la solicitud de autenticación enviada por el SP.

El IdP utiliza la URL de Assertion Consumer Service que se encuentra en los metadatos del SP para redirigir al usuario al SP y proporcionar información sobre el intento de autenticación del usuario. Si se configura incorrectamente, el SP no recibe la aserción (la respuesta) o no puede procesarla correctamente.

La URL de Single Logout Service se puede encontrar tanto en el SP como en el IdP. Se utiliza para facilitar la desconexión de todos los servicios SSO del SP y es opcional en el ASA. Cuando la URL del servicio SLO de los metadatos IdP se configura en el SP, cuando el usuario se desconecta del servicio en el SP, el SP envía la solicitud al IdP. Una vez que el IdP ha cerrado correctamente la sesión del usuario en los servicios, redirige al usuario de nuevo al SP y utiliza la URL del servicio SLO que se encuentra dentro de los metadatos del SP.

Enlaces SAML para URLs de Servicio: Los enlaces son el método que el SP utiliza para transferir información al IdP y viceversa para los servicios. Esto incluye HTTP Redirect, HTTP POST y Artefacto. Cada método tiene una forma diferente de transferir datos. El método de enlace admitido por el servicio se incluye en la definición de dicho servicio. Por ejemplo: SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location= Servicio SSO >. ASA no admite la vinculación de Artefactos. ASA siempre utiliza el método de redireccionamiento HTTP para las solicitudes de autenticación SAML, por lo que es importante elegir la URL del servicio SSO que utiliza el enlace de redireccionamiento HTTP para que el IdP lo espere.

Certificados para operaciones de firma y cifrado

Para proporcionar confidencialidad e integridad a los mensajes enviados entre el SP y el IdP, SAML incluye la capacidad de cifrar y firmar los datos. El certificado utilizado para cifrar y/o firmar los datos puede incluirse dentro de los metadatos para que el extremo que recibe pueda verificar el mensaje SAML y asegurarse de que proviene del origen esperado. Los certificados utilizados para la firma y el cifrado se pueden encontrar en los metadatos bajo KeyDescriptor use=signing y KeyDescriptor use=encryption, respetuosamente, luego X509Certificate. ASA no admite el cifrado de mensajes SAML.

Diagrama de la red

Configurar

Agregue Cisco AnyConnect desde la Galería de aplicaciones de Microsoft

Paso 1. Inicie sesión en el Portal de Azure y elija Azure Active Directory.

Paso 2. Como se muestra en esta imagen, elija Aplicaciones empresariales.

Paso 3. Ahora, elija New Application, como se muestra en esta imagen.

Paso 4. En la sección Agregar de la galería, escriba AnyConnect en el cuadro de búsqueda, elija Cisco AnyConnect en el panel de resultados y, a continuación, agregue la aplicación.

Paso 5. Elija el elemento de menú Single Sign-on, como se muestra en esta imagen.

Paso 6. Elija SAML, como se muestra en la imagen.

Paso 7. Edite la Sección 1 con estos detalles.

a. Identifier (Entity ID)  - https://<VPN URL>/saml/sp/metadata/<TUNNEL-GROUP NAME>

b. Reply URL (Assertion Consumer Service URL) - https://<VPN URL>/+CSCOE+/saml/sp/acs?tgname=<TUNNEL-GROUP NAME>

Example: vpn url called asa.example.com and tunnel-group called AnyConnectVPN-1

Paso 8. En la sección Certificado de firma SAML, elija Descargar para descargar el archivo del certificado y guárdelo en su computadora.

Paso 9. Esto es necesario para la configuración de ASA.

- Azure AD Identifier - Este es el mismo idp en nuestra configuración VPN.

- Login URL (URL de inicio de sesión): se trata del inicio de sesión de URL.

- Logout URL (URL de cierre de sesión): Se trata de la URL de cierre de sesión.

Asignar usuario de Azure AD a la aplicación

En esta sección, Test1 está habilitado para utilizar el inicio de sesión único de Azure, ya que concede acceso a la aplicación Cisco AnyConnect.

Paso 1. En la página de descripción general de la aplicación, seleccione Usuarios y grupos y, a continuación, Agregar usuario.

Paso 2. Elija Usuarios y grupos en el cuadro de diálogo Agregar asignación.

Paso 3. En el cuadro de diálogo Add Assignment, haga clic en el botón Assign.

Configuración de ASA para SAML mediante CLI

Paso 1. Cree un punto de confianza e importe el certificado SAML.

config t

crypto ca trustpoint AzureAD-AC-SAML

revocation-check none

no id-usage

enrollment terminal

no ca-check

crypto ca authenticate AzureAD-AC-SAML

-----BEGIN CERTIFICATE-----

…

PEM Certificate Text you downloaded goes here

…

-----END CERTIFICATE-----

quit

Paso 2. Estos comandos proveen su IdP de SAML.

webvpn

saml idp https://xxx.windows.net/xxxxxxxxxxxxx/ - [Azure AD Identifier]

url sign-in https://login.microsoftonline.com/xxxxxxxxxxxxxxxxxxxxxx/saml2 - [Login URL]

url sign-out https://login.microsoftonline.com/common/wsfederation?wa=wsignout1.0 – Logout URL

trustpoint idp AzureAD-AC-SAML - [IdP Trustpoint]

trustpoint sp ASA-EXTERNAL-CERT - [SP Trustpoint]

no force re-authentication

no signature

base-url https://asa.example.com

Paso 3. Aplique la autenticación SAML a una configuración de túnel VPN.

tunnel-group AnyConnectVPN-1 webvpn-attributes

saml identity-provider https://xxx.windows.net/xxxxxxxxxxxxx/

authentication saml

end

write memory

Nota: Si realiza cambios en la configuración del IdP, debe eliminar la configuración del proveedor de identidad saml del grupo de túnel y volver a aplicarla para que los cambios entren en vigor.

Verificación

Probar AnyConnect con autenticación SAML

Paso 1. Conéctese a la URL de su VPN e ingrese sus detalles de inicio de sesión en Azure AD.

Paso 2. Aprobar solicitud de inicio de sesión.

Paso 3. AnyConnect está conectado.

Problemas comunes

ID de entidad no coincidente

Ejemplo de depuración:

[SAML] consumer_assertion: #LassoServer desconoce el identificador de un proveedor. Para registrar un proveedor en un objeto #LassoServer, debe utilizar los métodos lasso_server_add_provider() o lasso_server_add_provider_from_buffer().

Problema: Generalmente, significa que el comando saml idp [entityID] bajo la configuración webvpn del ASA no coincide con el IdP Entity ID encontrado en los metadatos del IdP.

Solución: compruebe el ID de entidad del archivo de metadatos del IdP y cambie el comando saml idp [entity id] para que coincida.

Discordancia de tiempo

Ejemplo de depuración:

[SAML] NotBefore:2017-09-05T23:59:01.896Z NotOnOrAfter:2017-09-06T00:59:01.896Z tiempo de espera: 0

[SAML] consumer_assertion: la afirmación ha caducado o no es válida

Problema 1. La hora de ASA no se sincroniza con la hora de IdP.

Solución 1. Configure ASA con el mismo servidor NTP utilizado por IdP.

Problema 2. La aserción no es válida entre el tiempo especificado.

Solución 2. Modifique el valor de tiempo de espera configurado en el ASA.

Certificado de firma IdP incorrecto utilizado

Ejemplo de depuración:

[Lasso] func=xmlSecOpenSSLEvpSignatureVerify:file=signature.c:line=493:obj=rsa-sha1:subj=EVP_VerifyFinal:error=18:los datos no coinciden:la firma no coincide

[SAML] consumer_assertion: el perfil no puede verificar una firma en el mensaje

Problema: ASA no puede verificar el mensaje firmado por el IdP o no hay firma para que ASA la verifique.

Solución: Verifique el certificado de firma de IdP instalado en el ASA para asegurarse de que coincide con lo que envía el IdP. Si esto se confirma, asegúrese de que la firma esté incluida en la respuesta SAML.

Audiencia de aserción no válida

Ejemplo de depuración:

[SAML] consumer_assertion: la audiencia de aserción no es válida

Problema: IdP define la audiencia incorrecta.

Solución: corrija la configuración de Audience en el IdP. Debe coincidir con la ID de entidad de ASA.

URL incorrecta para el servicio al consumidor de aserción

Ejemplo de depuración: no se puede recibir ninguna depuración después de enviar la solicitud de autenticación inicial. El usuario puede ingresar credenciales en el IdP pero el IdP no redirige al ASA.

Problema: IdP está configurado para la URL de servicio de consumidor de aserción incorrecta.

Solución(es): compruebe la URL base en la configuración y asegúrese de que es correcta. Verifique los metadatos ASA con show para asegurarse de que la URL de Assertion Consumer Service sea correcta. Para probarlo, navegue por él, si ambos son correctos en el ASA, verifique el IdP para asegurarse de que la URL sea correcta.

Cambios de configuración de SAML que no surten efecto

Ejemplo: después de modificar o cambiar una URL de inicio de sesión único, el certificado SP, SAML sigue sin funcionar y envía configuraciones anteriores.

Problema: ASA necesita volver a generar sus metadatos cuando hay un cambio de configuración que le afecta. No lo hace automáticamente.

Solución: después de realizar los cambios, en el grupo de túnel afectado, quite y vuelva a aplicar el comando saml idp [entity-id].

Troubleshoot

La mayoría de los solucionadores de problemas de SAML implican un error de configuración que se puede encontrar cuando se comprueba la configuración de SAML o se ejecutan depuraciones. debug webvpn saml 255 se puede utilizar para solucionar la mayoría de los problemas; sin embargo, en escenarios donde esta depuración no proporciona información útil, se pueden ejecutar depuraciones adicionales:

debug webvpn saml 255

debug webvpn 255

debug webvpn session 255

debug webvpn request 255

Información Relacionada

- Inicio de sesión único de SAML para aplicaciones in situ con proxy de aplicación