Citrix ADC

Configuración del protocolo OpenID Connect

Ahora se puede configurar un dispositivo Citrix ADC como proveedor de identidades mediante el protocolo OpenID Connect. El protocolo OpenID connect refuerza las capacidades de identidad del dispositivo Citrix ADC. Ahora puede acceder a la aplicación alojada en toda la empresa con un inicio de sesión único, ya que OpenID connect ofrece más seguridad al no transferir la contraseña de usuario, pero funciona con tokens con una duración específica. OpenID también está diseñado para integrarse con clientes que no son exploradores, como aplicaciones y servicios. Por lo tanto, OpenID Connect es ampliamente adoptado por muchas implementaciones.

Ventajas de contar con el soporte de OpenID Connect

  • OpenID elimina la sobrecarga de mantener varias contraseñas de autenticación, ya que el usuario tiene una única identidad en toda la organización.
  • OpenID proporciona una seguridad sólida para su contraseña, ya que la contraseña se comparte únicamente con su proveedor de identidad y no con ninguna aplicación a la que acceda.
  • OpenID tiene una amplia interoperabilidad con varios sistemas, lo que facilita que las aplicaciones alojadas acepten OpenID.
  • OpenID es un protocolo simple que permite a los clientes nativos integrarse fácilmente con los servidores.

Para configurar el dispositivo Citrix ADC como un IdP mediante el protocolo OpenID Connect con la interfaz gráfica de usuario

  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 haga clic en Agregar.

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

    • Nombre: Nombre del perfil de autenticación.
    • ID de cliente: Cadena única que identifica SP.
    • Secreto de cliente: Secreto único que identifica SP.
    • URL de redirección: Dispositivo de punto final del SP al que se debe publicar el código/token.
    • Nombre del emisor: Cadena que identifica al IdP.
    • Audiencia: Destinatario del token enviado por el IdP. Esto puede ser comprobado por el destinatario.
    • Tiempo de sesgo: Hora para la que el token sigue siendo válido.
    • Grupo de autenticación predeterminado: Grupo agregado a la sesión de este perfil para simplificar la evaluación de directivas y ayudar a personalizar las directivas.
  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 messagelog que se va a utilizar cuando una solicitud coincide con esta directiva. No es obligatorio.
    • Acción de resultados no definidos: Acción que se llevará a cabo si el resultado de la evaluación de directivas no está definido (UNDEF). No es un campo obligatorio.
    • Expresión: Expresión de sintaxis predeterminada que la directiva utiliza para responder a una solicitud específica. Por ejemplo, cierto.
    • Comentarios: Cualquier comentario sobre la directiva.

Enlace 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 para los siguientes parámetros y haga clic en Crear.

    • Name — El nombre de la acción ldap
    • Servername/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 del 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
    • Haga 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 la directiva utiliza para responder a una solicitud específica. Por ejemplo, cierto**.

Para configurar el dispositivo Citrix ADC como un IdP mediante el protocolo OpenID Connect 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 <>

Nota

Puede enlazar más de una clave. 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 OpenID Connect

El dispositivo Citrix ADC con el mecanismo OpenID Connect 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 el token OpenID, el dispositivo Citrix ADC necesita la clave pública de la parte de confianza (RP). La clave pública se obtiene dinámicamente sondeando el punto final de configuración conocido de la parte de confianza.

Se introduce una nueva opción “relyingPartyMetadataURL” en “authentication OAuthIDPProfile”.

Para configurar el punto final de la parte de confianza mediante CLI

En el símbolo del sistema, escriba:

set authentication OAuthIDPProfile <name> [-RelyingPartyMetadataURL <URL>] [-RefreshInterval <mins>] [-status < >]
  • relyingPartyMetadataURL: Este es el punto final en el que Citrix ADC IdP puede obtener detalles sobre la configuración de la parte de confianza. La respuesta de metadatos debe incluir dispositivos de punto final para jwks_uri para claves públicas RP.

  • refreshInterval: Define la velocidad a la que se debe sondear este extremo para actualizar los certificados en minutos.

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

    Ejemplo

     set authentication OAuthIDPProfile sample_profile -RelyingPartyMetadataURL https://rp.customer.com/metadata -RefreshInterval 50 -status < >
    

Una vez configurado el dispositivo de punto final, el dispositivo Citrix ADC sondea primero el dispositivo de punto final conocido del usuario que confía para leer la configuración. Actualmente, el dispositivo Citrix ADC procesa solo el punto final “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 dispositivo de punto final también para leer las claves públicas de la parte que confía.

Nota:

Solo se admiten 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 de nombre de usuario o 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 directivas de autorización para el usuario. A veces, se requieren más detalles, como el nombre o el apellido para Provisioning la cuenta de usuario.

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

Citrix ADC appliance JSONfy 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 de varios valores, como los grupos, se colocan dentro del 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 punto final de la parte de confianza mediante CLI

En el símbolo del sistema, escriba:

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

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}
  • Por encima de la expresión PI es una expresión de directiva avanzada que representa el valor que se utilizará contra 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 agrega al token de ID.
  • Como se define en el ejemplo, ‘false’ es una cadena literal para el atributo “jit”. Además, “ssn” tiene un valor codificado para referencia. Los grupos y myname son expresiones PI que generan cadenas.

Compatibilidad con implementaciones GSLB activo-activas en Citrix Gateway

Citrix Gateway configurado como proveedor de identidad (IdP) mediante el protocolo OpenID Connect puede admitir implementaciones GSLB activas-activas. La implementación de GSLB activo-activa en el IdP de Citrix Gateway proporciona la capacidad de equilibrar la carga de las solicitudes de inicio de sesión de usuario entrantes 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 la configuración de GSLB, consulte Ejemplo de configuración y configuración de GSLB.