Citrix ADC

Citrix ADC como proveedor de identidad de OAuth

Ahora se puede configurar un dispositivo Citrix ADC como proveedor de identidad mediante el protocolo OpenID-Connect (OIDC). El protocolo OIDC refuerza las capacidades de suministro de identidad del dispositivo Citrix ADC. Ahora puede acceder a la aplicación alojada para toda la empresa con un único inicio de sesión, ya que OIDC ofrece más seguridad al no transferir la contraseña de usuario sino utilizar tokens con una vida útil específica. OpenID también está diseñado para integrarse con clientes que no son del navegador, como aplicaciones y servicios. Por lo tanto, muchas implementaciones adoptan ampliamente el protocolo OIDC.

Nota

Citrix ADC debe estar en la versión 12.1 o posterior para que el dispositivo funcione como proveedor de identidad de OAuth mediante el protocolo OIDC.

Ventajas de tener Citrix ADC como proveedor de identidad de OAuth

  • Elimina la sobrecarga de mantener varias contraseñas de autenticación, ya que el usuario tiene una única identidad en toda la organización.
  • Proporciona una seguridad sólida para su contraseña, ya que la contraseña se comparte solo con su proveedor de identidad y no con ninguna aplicación a la que acceda.
  • Proporcionó una amplia interoperabilidad con varios sistemas, lo que facilita a las aplicaciones alojadas aceptar OpenID.

Nota

Se necesita Citrix ADC Advanced Edition y versiones superiores para que la solución funcione.

Para configurar el dispositivo Citrix ADC como proveedor de identidad de OAuth mediante la GUI

  1. Vaya a Configuración > Seguridad > Tráfico de aplicaciones AAA-> Directivas > Autenticación > Directivas avanzadas > IdP de OAuth.

  2. Haga clic en Perfil y en Agregar.

    En la pantalla Crear perfil de proveedor de identidad de OAuth de autenticación, establezca valores para los siguientes parámetros y haga clic en Crear.

    • Nombre : nombre del perfil de autenticación. Debe comenzar con una letra, un número o el carácter de guión bajo (_) y debe contener solo letras, números y el guión (-), punto (.) libra (#), espacio (), at (@), igual a (=), dos puntos (:) y caracteres de guión bajo. No se puede cambiar después de crear el perfil.

    • ID de cliente : cadena única que identifica SP. El servidor de autorización infunde la configuración del cliente mediante este ID. Longitud máxima: 127.
    • Secreto de cliente : cadena secreta establecida por el usuario y el servidor de autorización. Longitud máxima: 239.
    • URL de redirección : punto final del SP en el que se debe publicar el código/token.
    • Nombre del emisor : identidad del servidor cuyos tokens se van a aceptar. Longitud máxima: 127.
    • Público : destinatario objetivo del token que envía el proveedor de identidad. El destinatario podría comprobarlo.
    • Tiempo de sesgo : esta opción especifica el sesgo del reloj permitido en número de minutos que Citrix ADC permite en un token entrante. Por ejemplo, si SkewTime es 10, entonces el token sería válido desde (hora actual - 10) min hasta (tiempo actual + 10) min, es decir, 20 min en total. Valor predeterminado: 5.
    • Grupo deautenticación predeterminado: grupo agregado a la lista de grupos internos de la sesión cuando este perfil es elegido por IdP que puede utilizarse en el flujo nFactor. Se puede usar en expresión (AAA.USER.IS_MEMBER_OF (“xxx”)) para directivas de autenticación para identificar el flujo de factores relacionados con las partes que confían. Longitud máxima: 63

    A group added to the session for this profile to simplify policy evaluation and help in customizing policies. This is the default group that is chosen when the authenticatiob succeeds in addition to the extracted groups. Maximum Length: 63.

  3. Haga clic en Directivas y en Agregar.

  4. En la pantalla Crear directiva de IDP de OAuth de autenticación, establezca los valores para los siguientes parámetros y haga clic en Crear.

    • Nombre : nombre de la directiva de autenticación.
    • Acción : nombre del perfil creado anteriormente.
    • Acción de registro : nombre de la acción de registro de mensajes que se utilizará cuando una solicitud coincida con esta política. No es un archivo obligatorio.
    • Acción porresultados indefinidos: acción que debe realizarse si el resultado de la evaluación de políticas no está definido (FNUD). No es un campo obligatorio.
    • Expresión: expresión de sintaxis predeterminada que utiliza la directiva para responder a una solicitud específica. Por ejemplo, true.
    • Comentarios : cualquier comentario sobre la política.

Vinculación de la directiva OAuthIdP y la directiva LDAP al servidor virtual de autenticación

  1. Vaya a Configuración > Seguridad > Tráfico de aplicaciones AAA > Directivas > Autenticación > Directivas avanzadas > Acciones > LDAP.

  2. En la pantalla Acciones LDAP, haga clic en Agregar.

  3. En la pantalla Crear servidor LDAP de autenticación, establezca los valores de los siguientes parámetros y haga clic en Crear.

    • Nombre — Nombre de la acción ldap
    • Servidor/serverIP: proporciona FQDN o IP del servidor LDAP
    • Elija los valores adecuados para Tipo de seguridad, Puerto, Tipo de servidor, Tiempo de espera
    • Asegúrese de que la autenticación esté marcada
    • DN base: base desde la que iniciar la búsqueda LDAP. Por ejemplo, dc=aaa, dc=local.
    • DN de enlace de administrador: nombre de usuario del enlace al servidor LDAP. Por ejemplo, admin@aaa.local.
    • Contraseña de administrador/Confirmar contraseña: Contraseña para enlazar LDAP
    • Haz clic en Probar conexión para probar la configuración.
    • Atributo de nombre de inicio de sesión del servidor: elija «SAMAccountName»
    • Otros campos no son obligatorios y, por lo tanto, se pueden configurar según sea necesario.
  4. Vaya a Configuración > Seguridad > Tráfico de aplicaciones AAA > Directivas > Autenticación > Directivas avanzadas > Directiva.

  5. En la pantalla Directivas de autenticación, haga clic en Agregar.

  6. En la página Crear directiva de autenticación, establezca los valores de los siguientes parámetros y haga clic en Crear.

    • Nombre: nombre de la directiva de autenticación LDAP.
    • Tipo de acción: elija LDAP.
    • Acción: elija la acción LDAP.
    • Expresión: expresión de sintaxis predeterminada que utiliza la directiva para responder a una solicitud específica. Por ejemplo, cierto**.

La función OAuth ahora admite las siguientes capacidades en la API de tokens desde el lado de parte que confía (RP) y desde el lado de IdP de Citrix Gateway y Citrix ADC.

  • Compatibilidad con PKCE (clave de prueba para el intercambio de código)

  • Soporte para client_assertion

Para configurar el dispositivo Citrix ADC como IdP mediante el protocolo OIDC con la línea de comandos

En el símbolo del sistema, escriba los siguientes comandos:

add authentication OAuthIDPProfile <name> [-clientID <string>][-clientSecret ][-redirectURL <URL>][-issuer <string>][-audience <string>][-skewTime <mins>] [-defaultAuthenticationGroup <string>]

add authentication OAuthIdPPolicy <name> -rule <expression> [-action <string> [-undefAction <string>] [-comment <string>][-logAction <string>]

add authentication ldapAction aaa-ldap-act -serverIP 10.0.0.10 -ldapBase "dc=aaa,dc=local"

ldapBindDn <administrator@aaa.local> -ldapBindDnPassword <password> -ldapLoginName sAMAccountName

add authentication policy aaa-ldap-adv-pol -rule true -action aaa-ldap-act

bind authentication vserver auth_vs -policy <ldap_policy_name> -priority 100 -gotoPriorityExpression NEXT

bind authentication vserver auth_vs -policy <OAuthIDPPolicyName> -priority 5 -gotoPriorityExpression END

bind vpn global –certkey <>
<!--NeedCopy-->

Nota

Puedes enlazar más de una llave. Las partes públicas de los certificados enlazados se envían en respuesta ajwks\_uri query (https://gw/oauth/idp/certs).

Compatibilidad con tokens cifrados en el protocolo OIDC

El dispositivo Citrix ADC con mecanismo OIDC ahora admite el envío de tokens cifrados junto con tokens firmados. El dispositivo Citrix ADC utiliza especificaciones de cifrado web JSON para calcular los tokens cifrados y solo admite la serialización compacta de tokens cifrados. Para cifrar un token OpenID, un dispositivo Citrix ADC necesita la clave pública de la parte que confía (RP). La clave pública se obtiene dinámicamente sondeando el conocido punto final de configuración de la parte que confía.

Se introduce una nueva opción «RelyingPartyMetadataURL» en la «autenticación oAuthIdpProfile». «perfil.

Para configurar el endpoint de la parte que confía mediante CLI

En el símbolo del sistema, escriba:

```set authentication OAuthIDPProfile [-relyingPartyMetadataURL ] [-refreshInterval ] [-status < >]


-  **relyingPartyMetadataURL** : punto final en el que el proveedor de identidad de Citrix ADC puede obtener detalles sobre la parte que confía que se está configurando. La respuesta de metadatos debe incluir puntos finales para jwks_uri para claves públicas de RP.

-  **RefreshInterval** : define la velocidad a la que se debe sondear este punto final para actualizar los certificados en minutos.

-  **status** : refleja el estado de la operación de sondeo. El estado se completa una vez que el dispositivo Citrix ADC obtiene correctamente las claves públicas.

    **Ejemplo**

    ```
    set authentication OAuthIDPProfile sample_profile -relyingPartyMetadataURL https://rp.customer.com/metadata -refreshInterval 50 -status < >
    <!--NeedCopy-->

Una vez configurado el endpoint, un dispositivo Citrix ADC primero sondea el endpoint conocido de la parte que confía para leer la configuración. Actualmente, el dispositivo Citrix ADC procesa solo el extremo «jwks_uri».

  • Si el ‘jwks_uri’ está ausente en la respuesta, el estado del perfil no está completo.
  • Si el ‘jwks_uri’ está presente en la respuesta, Citrix ADC sondea ese punto final también para leer las claves públicas de la parte que confía.

Nota: Solo se admiten los algoritmos de tipo de cifrado RSAES-OAEP y AES GCM para el cifrado de tokens.

Compatibilidad con atributos personalizados en OpenID Connect

Las partes que confían en OpenID pueden requerir más que un nombre de usuario o un nombre principal de usuario (UPN) en el token para crear el perfil de usuario o tomar decisiones de autorización. En la mayoría de los casos, los grupos de usuarios deben aplicar políticas de autorización para el usuario. A veces, se requieren más detalles, como el nombre o el apellido para aprovisionar una cuenta de usuario.

El dispositivo Citrix ADC configurado como IdP se puede utilizar para enviar atributos adicionales en OIDCID_Token mediante expresiones. Las expresiones de política avanzadas se utilizan para enviar los atributos personalizados según el requisito. El proveedor de identidad de Citrix evalúa las expresiones correspondientes a los atributos y, a continuación, calcula el token final.

El dispositivo Citrix ADC JSonifique automáticamente los datos de salida. Por ejemplo, los números (como SSN) o los valores booleanos (true o false) no están rodeados de comillas. Los atributos multivalor, como los grupos, se colocan dentro de un marcador de matriz (“[“y”]”). Los atributos de tipo complejo no se calculan automáticamente y puede configurar la expresión PI de esos valores complejos según su requisito.

Para configurar el endpoint de la parte que confía mediante CLI

En el símbolo del sistema, escriba:

set oauthidpprofile <name> -attributes <AAA-custom-attribute-pattern>
<!--NeedCopy-->

El<AAA-custom-attribute-pattern> puede describirse como:

Attribute1=PI-Expression@@@attribute2=PI-Expression@@@

“attribute1”, “attribute2” son cadenas literales que representan el nombre del atributo que se va a insertar en id_token.

Nota: Puede configurar hasta 2.000 bytes de atributos.

Ejemplo: set oauthidpprofile sample_1 -attributes q{myname=http.req.user.name@@@ssn="123456789"@@@jit="false"@@@groups=http.req.user.groups}

  • La expresión IP anterior es una expresión de política avanzada que representa el valor que se va a utilizar en relación con el atributo. La expresión PI se puede utilizar para enviar un literal de cadena, como «’cadena codificada» ‘. El literal de cadena está rodeado de comillas dobles alrededor de comillas simples o comillas dobles alrededor de un inicio y patrón (como se dijo anteriormente, el patrón de inicio es “q{“). Si el valor del atributo no es un literal de cadena, la expresión se evalúa en tiempo de ejecución y su valor se envía en token. Si el valor en tiempo de ejecución está vacío, el atributo correspondiente no se añade al token de ID.
  • Como se define en el ejemplo, «false» es una cadena literal del atributo «jit». Además, «ssn» tiene un valor codificado para referencia. Los grupos y «myname» son expresiones PI que producen cadenas.

Compatibilidad con implementaciones GSLB activo-activas en Citrix Gateway

Citrix Gateway configurado como proveedor de identidad (IdP) mediante el protocolo OIDC puede admitir implementaciones GSLB activo-activas. La implementación de GSLB activo-activa en el proveedor de identidades de Citrix Gateway proporciona la capacidad de equilibrar la carga de una solicitud de inicio de sesión de usuario entrante en varias ubicaciones geográficas.

Importante

Citrix recomienda vincular certificados de CA al servicio SSL y habilitar la validación de certificados en el servicio SSL para mejorar la seguridad.

Para obtener más información sobre cómo configurar la configuración de GSLB, consulte Ejemplo de configuración y configuración de GSLB.