NetScaler como proveedor de identidades SAML
El IDP de SAML (proveedor de identidades) es una entidad SAML que se implementa en la red del cliente. El IDP recibe solicitudes del SP SAML y redirige a los usuarios a una página de inicio de sesión, donde deben introducir sus credenciales. El IDP autentica estas credenciales con el directorio activo (servidor de autenticación externo, como LDAP) y, a continuación, genera una aserción SAML que se envía al SP.
El SP valida el token y el usuario obtiene acceso a la aplicación protegida solicitada.
Cuando el dispositivo NetScaler se configura como un IDP, todas las solicitudes se reciben en un servidor virtual de autenticación que está asociado con el perfil de IDP de SAML relevante.
Nota
Un dispositivo NetScaler se puede utilizar como IDP en una implementación en la que el SP SAML esté configurado en el dispositivo o en cualquier SP SAML externo.
Cuando se utiliza como proveedor de identidades SAML, un dispositivo NetScaler:
-
Admite todos los métodos de autenticación que admite para los inicios de sesión tradicionales.
-
Firma afirmaciones digitalmente.
-
Admite la autenticación de un solo factor y de dos factores. SAML no debe configurarse como el mecanismo de autenticación secundario.
-
Puede cifrar aserciones mediante la clave pública del SP SAML. Esto se recomienda cuando la afirmación incluye información confidencial.
-
Puede configurarse para aceptar solo solicitudes firmadas digitalmente desde SAML SP.
-
Puede iniciar sesión en el IDP de SAML mediante los siguientes mecanismos de autenticación basados en 401: Negociar, NTLM y Certificate.
-
Se puede configurar para enviar 16 atributos además del atributo nameID. Los atributos se deben extraer del servidor de autenticación apropiado. Para cada uno de ellos, puede especificar el nombre, la expresión, el formato y un nombre descriptivo en el perfil del IDP de SAML.
-
Si el dispositivo NetScaler está configurado como un IDP de SAML para varios SP SAML, un usuario puede obtener acceso a las aplicaciones en los diferentes SPs sin autenticarse explícitamente cada vez. El dispositivo NetScaler crea una cookie de sesión para la primera autenticación y cada solicitud posterior utiliza esta cookie para la autenticación.
-
Puede enviar atributos con varios valores en una aserción SAML.
-
Admite enlaces posteriores y redireccionamientos. La compatibilidad con el enlace de artefactos se introduce en la versión 13.0 compilación 36.27 de NetScaler.
-
Puede especificar la validez de una aserción SAML.
Si la hora del sistema en el IDP SAML de NetScaler y el SP SAML del mismo par no están sincronizados, es posible que cualquiera de las partes invalide los mensajes. Para evitar estos casos, ahora puede configurar la duración de tiempo para la cual las afirmaciones son válidas.
Esta duración, denominada “tiempo de desviación”, especifica el número de minutos durante los que se debe aceptar el mensaje. El tiempo de inclinación se puede configurar en el SP de SAML y en el IDP de SAML.
-
Se puede configurar para entregar aserciones solo a los SP SAML preconfigurados o confiables por el IDP. Para esta configuración, el IDP de SAML debe tener el ID del proveedor de servicios (o el nombre del emisor) de los SP SAML relevantes.
Nota
-
Antes de continuar, asegúrese de tener una directiva de autenticación enlazada a un servidor virtual de autenticación LDAP.
-
Para obtener más información sobre cómo configurar una acción de LDAP para recuperar los atributos necesarios, consulte Compatibilidad con atributos de nombre y valor para laautenticación LDAP.
-
Configurar un dispositivo NetScaler como IDP de SAML mediante la CLI
-
Cree un perfil de IdP de SAML.
Ejemplo
Agregar un dispositivo NetScaler como IDP con SiteMinder como SP.
add authentication samlIdPProfile samlIDPProf1 -samlSPCertName siteminder-cert -encryptAssertion ON -metadataUrl https://samlidp.example.com/metadata -samlIdPCertName ns-cert -assertionConsumerServiceURL https://example.com/cgi/samlauth -rejectUnsignedRequests ON -signatureAlg RSA-SHA256 -digestMethod SHA256 –acsUrlRule AAA.LOGIN.SAML_REQ_ACS_URL.REGEX_MATCH(re#^https://example\.com/cgi/samlauth$#)
-
Configure el perfil de IdP de SAML. En el siguiente ejemplo, la sesión de IdP contiene el atributo “userPrincipalName”.
set samlidPProfile SAML-IDP-Profile -Attribute1 "userPrincipalName" -Attribute1Expr "AAA.USER.ATTRIBUTE(\"userPrincipalName\")"
Puntos que tener en cuenta
-
En el perfil de IDP de SAML, configure acsURLRule que toma una expresión de la lista de URL de proveedor de servicios aplicables para este IDP. Esta expresión depende del SP que se esté usando. Si NetScaler está configurado como SP, la URL de ACS es
https://<SP-domain_name>/cgi/samlauth
. Se recomienda incluir una URL completa en la expresión para hacer coincidir. -
Si quiere que el IDP de SAML permita solo una URL de ACS, utilice el siguiente comando:
El siguiente ejemplo de CLI
https://testlb.aaa.local
se utiliza como URL de ACS:set samlidpprofile SAML_IDP_profile -acsurlrule "AAA.LOGIN.SAML_REQ_ACS_URL.eq("https://testlb.aaa.local")" <!--NeedCopy-->
-
Si desea que el IdP de SAML haga coincidir la URL de ACS con una expresión regular, utilice la siguiente expresión:
–acsUrlRule AAA.LOGIN.SAML_REQ_ACS_URL.REGEX_MATCH(re#^https://example.com/cgi/samlauth$#)
La expresión anterior garantiza que la URL de ACS coincida con
https://example.com/cgi/samlauth
. El signo “^” al principio de la expresión regular garantiza que NetScaler no permita nada antes de “https”. El signo “$” al final de la expresión regular garantiza que NetScaler no permita nada después de “samlauth”.Si la expresión es
-acsUrlRule AAA.LOGIN.SAML_REQ_ACS_URL.REGEX_MATCH(re#https://example.com/cgi/#)
, el IdP de SAML permite cualquier URL de ACS, como se muestra en los ejemplos siguientes:-
https://example.com/cgi/samlauth
-
abcdhttps://example.com/cgi/xyz
-
https://example.com/cgi/abcde
-
-
SAML solo admite certificado RSA. No se admiten otros certificados como HSM y FIPS.
Para obtener más información sobre el comando, consulte https://developer-docs.citrix.com/projects/citrix-adc-command-reference/en/latest/authentication/authentication-samlAction y https://support.citrix.com/article/CTX316577.
-
Si la URL de cierre de sesión del IdP es diferente de la URL de redireccionamiento y el usuario permanece en la página de inicio de sesión de NetScaler durante más de 2 minutos,
HTTP/1.1 Internal Server Error 43549
aparece un error del servidor cuando el usuario intenta autenticarse. Los registros de NetScaler muestran un mensaje que indica que la URL de redireccionamiento entrante posterior al cierre de sesión no figura en las URL de redireccionamiento de cierre de sesión del usuario incluidas en la lista permitida.Para resolver este problema, vincule el conjunto de patrones como se muestra en el ejemplo siguiente:
bind patset ns_aaa_oauthidp_logout_redirect_uris "https://FQDN and path to the logout url"
-
Si el servidor virtual de autenticación está configurado como un SP de SAML, la URL de metadatos que se debe usar en el perfil de IdP de SAML es.
https://<netscaler-saml-sp-fqdn>/metadata/samlsp/saml_sp_act
Por ejemplo:add authentication samlIdPProfile SAML_IDP_profile -samlIdPCertName aaa_local -assertionConsumerServiceURL "https://ksav.ksaaa.local/cgi/samlauth" -samlIssuerName "https://ksidp1.aaa.local/saml/login" -rejectUnsignedRequests OFF -serviceProviderID kslb.ksaaa.local -signAssertion NONE -SPLogoutUrl "https://ksav.ksaaa.local/cgi/tmlogout" -logoutBinding REDIRECT -metadataUrl "https://ksav.ksaaa.local/metadata/samlsp/saml_sp_act" -metadataRefreshInterval 1
-
-
Configure la directiva de autenticación SAML y asocie el perfil de IDP de SAML como acción de la directiva.
add authentication samlIdPPolicy samlIDPPol1 -rule true -action samlIDPProf1
Nota:
Si el nombre de la directiva incluye uno o más espacios, escríbalo entre comillas dobles o simples (por ejemplo, “mi directiva” o “mi directiva”).
-
Enlazar la directiva al servidor virtual de autenticación.
bind authentication vserver saml-auth-vserver -policy samlIDPPol1 -priority 100
Para obtener más información sobre el comando, consulte https://developer-docs.citrix.com/projects/citrix-adc-command-reference/en/latest/authentication/authentication-samlIdPProfile.
Configurar un dispositivo NetScaler como IDP de SAML mediante la GUI
-
Configure un perfil de IDP de SAML. Este perfil se usa para verificar las solicitudes de autenticación entrantes del SP y crear y firmar la afirmación antes de enviarla al SP.
Vaya a Seguridad > AAA: Tráfico de aplicaciones > Directivas > Directivas avanzadas de autenticación > Directivas de IDP de SAML.
Seleccione Servidores, haga clic en Agregar, introduzca valores para los siguientes parámetros y haga clic en Crear.
Descripciones de parámetros:
-
Nombre: el nombre del nuevo perfil de inicio de sesión único de SAML.
-
Exportar metadatos de IDP de SAML: haga clic en este enlace si quiere exportar los metadatos del perfil de IDP de SAML a un servidor virtual VPN de NetScaler Gateway.
-
Importar metadatos: esta opción importa los metadatos del IDP de SAML. Esta opción está habilitada de forma predeterminada.
-
URL de servicio al consumidor de la afirmación: la URL a la que se va a enviar la afirmación.
-
URL de cierre de sesión del proveedor de servicios: el punto final del SP al que se van a enviar los mensajes de cierre de sesión.
-
Enlace de cierre de sesión: especifica el mecanismo de transporte de los mensajes de cierre de sesión de SAML. Las opciones disponibles son POST y REDIRECT.
-
URL de metadatos de SAML SP: la URL que se utiliza para obtener los metadatos del IDP de SAML.
Nota:
Cuando se configura la URL de metadatos del SP de SAML, los siguientes parámetros se toman del perfil del IdP de SAML y se rellenan automáticamente en la configuración del SP de SAML:
- URL del servicio de atención al cliente de la afirmación
- URL de cierre de sesión del proveedor de servicios
- Nombre del certificado SP
- Vinculación de cierre de sesión
- Encuadernación SAML
- Firmar afirmación
-
Intervalo de actualización de metadatos (minutos): intervalo de tiempo (en minutos) para obtener los metadatos de la URL de metadatos especificada. El intervalo de tiempo predeterminado es de 3600 minutos.
-
Regla URL de Assertion Consumer Service: expresión que define las URL de ACS permitidas que provienen de un SP de SAML. En otras palabras, permite enumerar las URL de ACS para evitar ataques que inserten URL de ACS falsas en las solicitudes de SAML.
-
URL de Assertion Consumer Service: URL a la que se redirige al usuario autenticado.
-
Nombre de certificado de IDP: par de claves de certificado utilizado para la página de autenticación.
-
Nombre del certificado SP: certificado del proveedor de servicios en este caso, la clave no es necesaria para ello.
-
Firmar aserción: la opción de firmar la afirmación y la respuesta al redirigir al cliente de nuevo al proveedor de servicios.
-
Nombre del emisor: un valor de cadena incluido en la aserción SAML emitida por el IDP.
-
ID del proveedor de servicios: ID único que se especifica en el SP para ayudar a identificar al proveedor de servicios. El identificador puede ser cualquier cosa y no es necesariamente una URL. Sin embargo, el ID debe ser el mismo en los perfiles SP e IDP.
-
Grupo de autenticación predeterminado: el grupo predeterminado que se elige cuando la autenticación se realiza correctamente, además de los grupos extraídos. Este grupo es útil para los administradores que utilizan el flujo nFactor para decidir las configuraciones adecuadas para la parte remitente. Por ejemplo, al configurar una directiva de autenticación, puede especificar el nombre del grupo predeterminado como parte de la siguiente expresión:
AAA.USER.IS_MEMBER_OF("Default Authentication Group name").
-
Rechazar solicitudes sin firmar: opción que puede especificar para garantizar que solo se acepten las afirmaciones firmadas con el certificado SP.
-
Audiencia: la audiencia a la que el IDP envía la afirmación. Suele ser un nombre de entidad o una URL que representa el SP.
-
Tiempo de sesgo (minutos) - Tiempo de sesgo (minutos): esta opción especifica el sesgo del reloj en minutos que el proveedor de servicios NetScaler permite en una afirmación entrante. Por ejemplo, si establece el tiempo de sesgo en 10 minutos a las 16:00, la afirmación SAML es válida entre las 15:50 y las 16:10, es decir, 20 minutos en total. El tiempo de sesgo predeterminado es de 5 minutos.
-
Formato de ID de nombre: formato del identificador de nombre enviado en la afirmación.
-
Expresión de identificador de nombre: expresión que se evalúa para obtener el identificador de nombre que se enviará en la afirmación.
-
Firmar afirmación: opción para firmar partes de la afirmación enviada por el IDP. Las opciones disponibles son Ninguna, Afirmación, Respuesta o Ambas.
-
Algoritmo de firma: algoritmo utilizado para firmar y verificar las afirmaciones entre el IDP y el SP, debe ser el mismo en el perfil del IDP y el perfil del SP.
-
Método de resumen: algoritmo utilizado para verificar la integridad de las afirmaciones entre el IDP y el SP, esto debe ser igual en el perfil del IDP y el perfil del SP.
-
Enlace a SAML: mecanismo que se utiliza para transportar los mensajes del solicitante y el respondedor de SAML entre el SP y el IDP. Cuando NetScaler actúa como SP, admite los enlaces Post, Redirect y Artifact. El método de enlace predeterminado es POST. Asocie la directiva IDP de SAML con un servidor virtual de autenticación. Para vincular artefactos, el mecanismo de transporte del SP y del IDP debe ser el mismo.
-
Atributo 1: nombre del atributo de la aserción SAML cuyo valor debe extraerse y almacenarse como atributo1. También se aplica un patrón similar al resto de atributos.
-
Attribute1Expr: expresión que se evalúa para obtener el valor del atributo 1.
-
Attribute1FriendlyName: nombre del atributo 1 que debe enviarse en la aserción SAML.
-
Attribute1Format: formato del atributo 1 que se enviará en la aserción SAML.
-
-
Configure la directiva de autenticación SAML y asocie el perfil de IDP de SAML como acción de la directiva.
Vaya a Seguridad > AAA: Tráfico de aplicaciones > Directivas > Directivas avanzadas de autenticación > Directivas de IDP de SAML.
Seleccione Directivas, haga clic en Agregar, introduzca valores para los siguientes parámetros y haga clic en Crear.
Descripciones de parámetros:
-
Nombre: nombre de la directiva de autenticación del IDP de SAML.
-
Acción: nombre del perfil de IDP de SAML que se aplicará a las solicitudes o conexiones que coincidan con esta directiva.
-
Acción de registro: Nombre de la acción de registro de mensajes que se utilizará cuando una solicitud coincida con esta directiva. Seleccione una acción de registro de la lista desplegable o cree una acción de registro haciendo clic en Agregar.
-
Acción de resultado indefinido: acción que se debe realizar si el resultado de la evaluación de la directiva no está definido. Un evento indefinido indica una condición de error interno. Solo se pueden utilizar las acciones integradas.
-
Comentarios: Cualquier comentario para preservar la información sobre esta directiva.
-
-
Asocie la directiva IDP de SAML con un servidor virtual de autenticación.
Vaya a Seguridad > AAA - Tráfico de aplicaciones > Servidores virtualesy vincule la directiva de IDP de SAML al servidor virtual de autenticación.