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 Adaptive Security Appliance (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 RA en 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 a Microsoft Azure AD.

- Cisco ASA 9.7+ y Anyconnect 4.6+

- Trabajando con el perfil VPN de AnyConnect

The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. 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 contenida es para un identificador de inicio de sesión único o un SPSSODescriptor si la información contenida 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 servicios: Definen la URL a un servicio SAML proporcionado por el SP o IdP. Para 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 afirmació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 al SP y utiliza la URL del servicio SLO que se encuentra dentro de los metadatos del SP.

Enlaces SAML para URL 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="https://saml.example.com/simplesaml/saml2/idp/SSOService.php"/ >. ASA no admite la vinculación de artefacto. 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 Azure Portal y seleccione Azure Active Directory.

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

Paso 3. Ahora seleccione Nueva aplicación, 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, seleccione Cisco AnyConnect en el panel de resultados y luego agregue la aplicación.

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

Paso 6. Seleccione 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, seleccione Descargar para descargar el archivo del certificado y guardarlo en su computadora.

Paso 9. Tenga en cuenta que es obligatorio 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 luego Agregar usuario.

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

Paso 3. En el Añadir asignación diálogo, haga clic en el Asignar botón.

Configuración de ASA para SAML mediante CLI

Paso 1. Crear un punto de confianza e importar nuestro 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 SAML.

webvpn

saml idp https://sts.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://sts.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 VPN e ingrese los detalles de inicio de sesión de 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: Verifique 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 sincronizó con la hora de IdP.

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

Problema 2. La afirmació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:

[Lazo] 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 comprobar una firma en el mensaje

Problema: ASA no pudo verificar el mensaje firmado por el IdP o no hay firma para que ASA 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: audiencia de aserción no 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): Verifique la URL base en la configuración y asegúrese de que sea 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 regenerar 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, bajo el comando tunnel-group remove y vuelva a aplicar el comando saml idp [entity-id].

Troubleshoot

La mayoría de los problemas de SAML implican un error de configuración que se puede encontrar cuando se verifica la configuración SAML o se ejecutan depuraciones. debug webvpn saml 255 se puede utilizar para resolver 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 SAML para aplicaciones in situ con proxy de aplicación