Citrix ADC como SP SAML
El proveedor de servicios SAML (SP) es una entidad de SAML implementada por el proveedor de servicios. Cuando un usuario intenta acceder a una aplicación protegida, el SP evalúa la solicitud del cliente. Si el cliente no está autenticado (no tiene una cookie NSC_TMAA o NSC_TMAS válida), el SP redirige la solicitud al proveedor de identidades (IdP) de SAML.
El SP también valida las aserciones SAML que se reciben del IDP.
Cuando el dispositivo Citrix ADC se configura como SP, un servidor virtual de administración del tráfico (equilibrio de carga o cambio de contenido) recibe todas las solicitudes de usuario asociadas a la acción de SAML correspondiente.
El dispositivo Citrix ADC también admite enlaces POST y Redirect durante el cierre de sesión.
Nota
Se puede utilizar un dispositivo Citrix ADC como SP de SAML en una implementación en la que el IDP de SAML esté configurado en el dispositivo o en cualquier IDP de SAML externo.
Cuando se usa como SP SAML, un dispositivo Citrix ADC:
-
Puede extraer la información del usuario (atributos) del token SAML. A continuación, esta información se puede utilizar en las directivas configuradas en el dispositivo Citrix ADC. Por ejemplo, si quiere extraer los atributos GroupMember y emailaddress, en SamlAction, especifique el parámetro Attribute2 como GroupMember y el parámetro Attribute3 como emailaddress.
Nota
Los atributos predeterminados, como el nombre de usuario, la contraseña y la URL de cierre de sesión, no se deben extraer de los atributos 1 a 16, ya que se analizan y almacenan implícitamente en la sesión.
-
Puede extraer nombres de atributos de hasta 127 bytes de una aserción SAML entrante. El límite anterior era de 63 bytes.
-
Admite enlaces de publicaciones, redirecciones y artefactos.
Nota
No utilice el enlace de redireccionamiento para grandes cantidades de datos cuando la afirmación después de inflar o decodificar sea superior a 10 K.
-
Puede descifrar afirmaciones.
-
Puede extraer atributos con varios valores de una aserción de SAML. Estos atributos se envían en etiquetas XML anidadas, como:
<AttributeValue> <AttributeValue>Value1</AttributeValue> <AttributeValue>Value2</AttributeValue> \</AttributeValue\>
Nota
A partir de la versión 63.x de Citrix ADC 13.0 y versiones posteriores, se aumentó la longitud máxima individual de los atributos SAML para permitir un máximo de 40 000 bytes. El tamaño de todos los atributos no debe superar los 40 000 bytes.
Cuando se le presenta el XML anterior, el dispositivo Citrix ADC puede extraer tanto el Value1 como el Value2 como valores de un atributo determinado, a diferencia del firmware anterior, que extraía solo el Value1.
-
Puede especificar la validez de una aserción SAML.
Si la hora del sistema en el IDP SAML de Citrix ADC 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 sesgo”, especifica el número de minutos durante los que se puede aceptar el mensaje. El tiempo de inclinación se puede configurar en el SP de SAML y en el IDP de SAML.
-
Puede enviar un atributo adicional llamado ‘forceAuth’ en la solicitud de autenticación a un IdP externo (proveedor de identidades). De forma predeterminada, ForceAuthn se establece en “False”. Se puede configurar en “Verdadero” para sugerir al IdP que fuerce la autenticación a pesar del contexto de autenticación existente. Además, Citrix ADC SP envía una solicitud de autenticación en el parámetro de consulta cuando se configura con enlace de artefactos.
Para configurar el dispositivo Citrix ADC como SP de SAML mediante la CLI
-
Configure una acción de SAML SP.
Ejemplo
El siguiente comando agrega una acción SAML que redirige las solicitudes de usuario no autenticadas.
add authentication samlAction SamlSPAct1 -metadataUrl "https://ksidp1.ksaaa.local/metadata/samlidp/SAML_IDP_profile" -samlIdPCertName nssp -samlSigningCertName nssp –samlRedirectUrl https://auth1.example.com -relaystateRule "AAA.LOGIN.RELAYSTATE.EQ(\"https://lb.example1.com/\")"
Puntos que tener en cuenta
- El certificado previsto
-samlIdPCertName
en el comando SAMLAction debe coincidir con el certificado correspondiente del proveedor de identidades para que la verificación de la firma se realce correctamente. - SAML solo admite el certificado RSA. No se admiten otros certificados como HSM y FIPS.
- Se recomienda tener un nombre de dominio completo con una “/” al final de la expresión.
- Los administradores deben configurar una expresión para RelaysStateRule en el comando SAMLAction. La expresión debe contener la lista de dominios publicados a los que se conecta el usuario antes de ser redirigido al servidor virtual de autenticación. Por ejemplo, la expresión debe contener los dominios del servidor virtual front-end (VPN, LB o CS) que utilizan esta acción SAML para la autenticación.
- Si el servidor virtual de autenticación está configurado como un IdP de SAML, la URL de metadatos que debe usarse en la acción del SP de SAML es.
https://<citrix-adc-saml-idp-fqdn>/metadata/samlidp/SAML_IDP_profile
Nota:
Si hay varias directivas de SAML como parte de una cadena de IDP, basta con configurar una regla de estado de retransmisión solo en la primera directiva de SAML.
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.
- El certificado previsto
-
Configure la directiva SAML.
Ejemplo
El siguiente comando define una directiva de SAML que aplica la acción SAML definida anteriormente a todo el tráfico.
add authentication policy SamlSPPol1 -rule true -action SamlSPAct1
-
Vincule la directiva SAML al servidor virtual de autenticación.
Ejemplo
El siguiente comando enlaza la directiva SAML a un servidor virtual de autenticación denominado “av_saml”.
bind authentication vserver av_saml -policy SamlSPPol1
-
Vincule el servidor virtual de autenticación al servidor virtual de administración del tráfico correspondiente.
Ejemplo
El siguiente comando agrega un servidor virtual de equilibrio de carga denominado “lb1_ssl” y asocia el servidor virtual de autenticación denominado “av_saml” al servidor virtual de equilibrio de carga.
add lb vserver lb1_ssl SSL 10.217.28.224 443 -persistenceType NONE -cltTimeout 180 -AuthenticationHost auth1.example.com -Authentication ON -authnVsName av_saml
Para obtener más información sobre el comando, consulte https://developer-docs.netscaler.com/en-us/adc-command-reference-int/current-release/authentication/authentication-samlaction.
Para configurar un dispositivo Citrix ADC como un SP SAML mediante la interfaz gráfica de usuario
-
Vaya a Seguridad>Directivas AAA>Autenticación>Directivas básicas>SAML.
-
Seleccione la ficha Servidores, haga clic en Agregar, introduzca valores para los siguientes parámetros y haga clic en Crear.
Descripciones de parámetros:
-
Nombre: nombre del servidor
-
URL de redirección: URL con la que los usuarios se autentican. Algunos IDP tienen URL especiales a las que no se puede acceder a menos que se encuentre en la configuración de SAML.
-
URL de cierre de sesión única: URL especificada para que Citrix ADC pueda reconocer cuándo debe devolver el cliente al IDP para completar el proceso de cierre de sesión. No lo usaremos en esta sencilla implementación.
-
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 Citrix ADC actúa como SP, admite los enlaces Post, Redirect y Artifact. El método de enlace predeterminado es POST.
Nota:
Para vincular artefactos, el mecanismo de transporte del SP y el IdP debe ser el mismo.
-
Enlace de cierre de sesión: especifica el mecanismo de transporte de los mensajes de cierre de sesión de SAML. El mecanismo de enlace predeterminado es Post.
-
Nombre del certificado de IDP: Certificado IDPCert (Base64) presente en el Certificado de firma SAML.
-
Campo de usuario: sección del formulario de autenticación SAML del IdP que contiene el nombre de usuario para que el SP lo extraiga si es necesario.
-
Nombre del certificado de firma: seleccione el certificado SP SAML (con clave privada) que Citrix ADC utiliza para firmar las solicitudes de autenticación al proveedor de identidades. El mismo certificado (sin clave privada) debe importarse al proveedor de identidades para que el proveedor de identidades pueda verificar la firma de la solicitud de autenticación. La mayoría de los IDP no requieren el nombre del certificado de firma.
-
issuerName: Identificador. ID único que se especifica tanto en el SP como en el IdP para ayudar a identificar al proveedor de servicios entre sí.
- Rechazar una afirmación sin firmar: opción que puede especificar si necesita que se firmen las afirmaciones del IdP. De forma predeterminada, está activado.
- ACTIVADO: rechaza las afirmaciones sin firma
- ESTRICTO: garantiza que tanto la respuesta como la afirmación estén firmadas
- DESACTIVADO: Permite aserciones sin firmar
-
Audiencia: audiencia a la que se aplica una afirmación enviada por IDP. Suele ser un nombre de entidad o una URL que representa al proveedor de servicios.
-
Algoritmo de firma: algoritmo que se utilizará para firmar/verificar las transacciones de SAML. El valor predeterminado es RSA-SHA256.
-
Método de resumen: algoritmo que se utilizará para calcular/verificar el resumen de las transacciones de SAML. El valor predeterminado es SHA256.
-
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.
-
Campo de nombre de grupo: nombre de la etiqueta en una aserción que contiene grupos de usuarios.
- Tiempo de sesgo (minutos): esta opción especifica el sesgo del reloj en minutos que el proveedor de servicios Citrix ADC 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.
-
-
Cree la directiva SAML correspondiente.
Vaya a Seguridad > Tráfico de aplicaciones AAA > Directivas > Autenticación > Directivas avanzadas > Directiva y haga clic en Agregar.
En la página Crear directiva SAML de autenticación, proporcione los siguientes detalles:
- Nombre: Especifique un nombre para la directiva SAML.
- Tipo de acción: seleccione SAML como tipo de acción de autenticación.
- Acción: seleccione el perfil del servidor SAML al que desea vincular la directiva de SAML.
- Expresión: Muestra el nombre de la regla o expresión que la directiva SAML utiliza para determinar si el usuario debe autenticarse con el servidor SAML. En el cuadro de texto, defina el valor “rule = true” para que la directiva de SAML entre en vigor y se ejecute la acción de SAML correspondiente.
-
Vincule la directiva SAML al servidor virtual de autenticación.
Vaya a Seguridad > AAA: Tráfico de aplicaciones > Servidores virtuales y asocie la directiva SAML con el servidor virtual de autenticación.
-
Asocie el servidor de autenticación al servidor virtual de administración del tráfico correspondiente.
Vaya a Administración del tráfico > Equilibrio de carga (o Content Switching) > Servidores virtuales, seleccione el servidor virtual y asocie el servidor virtual de autenticación con él.