ADC

NetScaler 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 NetScaler 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 NetScaler también admite enlaces POST y Redirect durante el cierre de sesión.

Nota

Se puede utilizar un dispositivo NetScaler 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 NetScaler:

  • 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 NetScaler. 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 NetScaler 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 NetScaler 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 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 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, NetScaler SP realiza una solicitud de autenticación en el parámetro de consulta cuando se configura con enlace de artefactos.

Configurar el dispositivo NetScaler como SP SAML mediante la CLI

  1. 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.
    • 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://<netscaler-saml-idp-fqdn>/metadata/samlidp/SAML_IDP_profile
    • Si varias directivas SAML forman parte de una cadena de IdP, basta con configurar una regla de estado de retransmisión solo en la primera directiva SAML.

    Para obtener más información sobre este comando, consulte https://developer-docs.netscaler.com/en-us/adc-command-reference-int/current-release/authentication/authentication-samlaction y https://support.citrix.com/article/CTX316577.

  2. 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

  3. 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

  4. 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 este comando, consulte https://developer-docs.citrix.com/projects/citrix-adc-command-reference/en/latest/authentication/authentication-samlAction.

Configurar un dispositivo NetScaler como SP SAML mediante la GUI

  1. Vaya a Seguridad>Directivas AAA>Autenticación>Directivas básicas>SAML.

  2. 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 estén en una configuración de SAML.

    • URL de cierre de sesión única: URL especificada para que el NetScaler pueda reconocer cuándo enviar el cliente de vuelta 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 NetScaler 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 de SAML.

    • Campo de usuario: Sección del formulario de autenticación SAML del IDP que contiene el nombre de usuario del SP para extraerlo si es necesario.

    • Nombre del certificado de firma: seleccione el certificado SP SAML (con clave privada) que NetScaler 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.

    • Regla de estado de retransmisión: consulte Puntos para obtener información sobre el parámetro relaystateRule y obtener más información sobre este parámetro.

    • Regla de verificación de estado: configure las expresiones que se evalúan para validar las solicitudes HTTP en los puntos finales de SAML.

    • 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 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.

    • Dos factores: habilita la autenticación de segundo factor después de SAML.

    • Assertion Consumer Service Index: índice/ID de la entrada de metadatos correspondiente a esta configuración.

    • Índice de servicios que consumen atributos: índice/ID de la especificación del atributo en el IdP. El IdP localiza los atributos solicitados por el SP mediante este índice y los envía en la aserción SAML.

    • Contexto de autenticación solicitado: especifica los requisitos de contexto de las declaraciones de autenticación devueltas en la respuesta.

    • Tipos de clases de autenticación: especifica los tipos de clases de autenticación que se solicitan al IdP.

    • Tipos de clases de autenticación personalizadas: especifica la referencia a la clase de autenticación personalizada que se enviará como parte de la solicitud de autenticación enviada por el SP al IdP de SAML.

    • Enviar huella digital: envía la huella digital en lugar del certificado de la solicitud SAML.

    • Exigir nombre de usuario: elija si el nombre de usuario extraído de la aserción SAML se puede editar en la página de inicio de sesión mientras se realiza una autenticación de segundo factor.

    • Forzar la autenticación: impone la autenticación en el IdP que recibe la solicitud de NetScaler.

    • Guardar respuesta SAML: almacena la respuesta SAML completa mientras la sesión del usuario esté activa.
  3. 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.
  4. 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.

  5. 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.

Puntos a tener en cuenta sobre el parámetro relaystateRule

Configure una expresión para el parámetro RelaysStateRule en el comando samlAction para una redirección de autenticación fluida después de la aserciónde SAML. La expresión debe incluir un único dominio publicado o una lista de dominios publicados a los que los usuarios desean conectarse antes de realizar una redirección de autenticación. Por ejemplo, la expresión debe contener los dominios del servidor virtual front-end (VPN, equilibrio de carga o conmutación de contenido) que usa la acción SAML para la autenticación.

Recomendamos usar nombres de dominio completos con un (/) al final. Por ejemplo: https://example.com/.

En los siguientes ejemplos se describen los ejemplos de configuración del parámetro RelayStateRule para escenarios de dominio único y dominio múltiple:

Para un solo dominio:

set samlAction <samlActionName> -relaystateRule "AAA.LOGIN.RELAYSTATE.EQ(\"https://example1.com/\")"

Para varios dominios:

Use conjuntos de patrones para agregar varios dominios:

add patset test1

bind patset test1 "https://example1.com/"

bind patset test1 "https://test1.com/"

bind patset test1 "https://10.11.11.112/"

set samlAction <samlActionName> -relaystateRule AAA.LOGIN.RELAYSTATE.CONTAINS_ANY("test1")
<!--NeedCopy-->

Para configurar la coincidencia de patrones RegEx para el FQDN:

set samlaction <samlActionName> -relaystateRule "AAA.LOGIN.RELAYSTATE.REGEX_MATCH(re#^https://[a-zA-Z0-9]*.example1.com/#)"
<!--NeedCopy-->

Especifique el signo «^» (^https) al principio del dominio y especifique la barra diagonal «/» al final de la expresión (ejemplo: example1\.com/).

A continuación se presentan algunas definiciones de las expresiones RelayStateRule:

EQ: Exact match.
CONTAINS: Domain inclusion.
CONTAINS_ANY: Match any domain from a PATSET.
REGEX_MATCH: Regex-based matching.
<!--NeedCopy-->
NetScaler como SP SAML