ADC

NetScaler como proveedor de identidad de OAuth

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

Nota

NetScaler debe tener la versión 12.1 o posterior para funcionar como un IdP de OAuth mediante el protocolo OIDC.

Ventajas de tener NetScaler como proveedor de identidades de OAuth

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

Nota

Se necesitan NetScaler Advanced Edition y versiones posteriores para que la solución funcione.

Para configurar NetScaler como un IdP de OAuth mediante la GUI

  1. Cree una directiva de IdP de OAuth de autenticación.

    • Vaya a Seguridad > AAA: Tráfico de aplicaciones > Directivas > Autenticación > Directivas avanzadas > IDP de OAuth > Directivas.
    • En Directivas, haga clic en Agregar.
    • En la página Crear directiva de IDP de OAuth de autenticación, defina los valores para los siguientes parámetros y haga clic en Crear.

      • Nombre: El nombre de la directiva de autenticación.
      • Acción: Nombre del perfil de IdP de OAuth de autenticación que se aplicará a las solicitudes o conexiones que coincidan con esta política. Consulte el paso 2 para ver los pasos detallados.
      • Acción de registro: Nombre de la acción de registro de mensajes que se utilizará cuando una solicitud coincida con esta directiva. Consulte el paso 3 para ver los pasos detallados. Este campo es opcional.
      • 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. Las acciones disponibles son DROP y RESET. Este campo es opcional.
      • Expresión: Expresión avanzada que la directiva utiliza para responder a solicitudes específicas. Para obtener más información sobre directivas y expresiones, consulte Directivas y expresiones.
  2. Cree una acción de IdP de OAuth de autenticación.

    • En la página Crear directiva de IDP de OAuth de autenticación, haga clic en Agregar en el campo Acción.
    • En la página Crear perfil de IDP de OAuth de autenticación que aparece, defina los valores para los siguientes parámetros y haga clic en Crear.

      • Nombre: Nombre del nuevo perfil de inicio de sesión único del IdP de OAuth.
      • ID de cliente: Identidad única de la parte que confía y solicita la autenticación. La longitud máxima permitida es de 127 caracteres.
      • Secreto del cliente: Cadena secreta única para autorizar a la parte que confía en el servidor de autorización. La longitud máxima permitida es de 239 caracteres.
      • URL de redirección: El dispositivo de punto final de la URL de la parte que confía al que se debe enviar el token de OAuth. La longitud máxima permitida es de 255 caracteres.
      • Nombre del emisor: El nombre que se utilizará en las solicitudes enviadas desde NetScaler al IdP para identificar a NetScaler de forma exclusiva. La longitud máxima permitida es de 127 caracteres.
      • Público: Destinatario del token que envía el IdP. Es el nombre de la entidad o la URL que representa al destinatario. La longitud máxima permitida es de 127 caracteres.
      • Tiempo de sesgo: Esta opción especifica el tiempo durante el que es válido el token enviado por el IdP de NetScaler. Por ejemplo, si el tiempo de sesgo se establece en 10 minutos, el token sería válido desde (hora actual menos 10) minutos hasta (hora actual más 10) minutos, 20 minutos en total. La duración predeterminada es de 5 minutos.
      • Grupo de autenticación predeterminado: Grupo agregado a la lista de grupos internos de la sesión. Esto resulta útil para que los administradores determinen la configuración de la parte que confía en un flujo de nFactor. Se puede utilizar en la expresión de las directivas de autenticación AAA.USER.IS_MEMBER_OF("group name") para identificar el flujo de nFactor relacionado con la parte que confía. La longitud máxima permitida es de 63 caracteres.
      • URL de metadatos de la parte que confía: punto final en el que el IdP de NetScaler puede obtener detalles sobre la parte que confía que se está configurando. La respuesta de metadatos debe incluir dispositivos de punto final jwks_uri para las claves públicas de la parte que confía. La longitud máxima permitida es de 255 caracteres.
      • Intervalo de actualización: Intervalos en los que se actualizan los metadatos de la parte que confía.
      • Servicio de firma: Seleccione esta opción para cifrar el token cuando el IdP de NetScaler lo envíe.
      • Atributos: Pares de atributos nombre-valor que se insertarán en el token de ID. El formato de configuración es name=value_expr@@@name2=value2_expr@@@. El formato @@@ se utiliza como delimitador entre los pares nombre-valor.
      • Enviar contraseña: seleccione esta opción para enviar la contraseña cifrada en el token de ID.
  3. Cree una acción de mensaje de auditoría.
    • En la página Crear directiva de IDP de OAuth de autenticación , haga clic en Agregar en el campo Acción de registro.
    • En la página Crear acción de mensaje de auditoría, defina los valores de los siguientes parámetros y haga clic en Crear.
      • Nombre: Nombre de la acción del mensaje de auditoría.
      • Nivel de registro: Nivel de registro de auditoría, que especifica el nivel de gravedad del mensaje de registro que se está generando.
      • Expresión: Expresión de sintaxis predeterminada que define el formato y el contenido del mensaje de registro.
      • Iniciar sesión en newnslog: Envía el mensaje al nuevo servidor NSLOG.
  4. Cree un servidor OAuth de autenticación.

    • Vaya a Seguridad > AAA - Tráfico de aplicaciones > Directivas > Autenticación > Directivas avanzadas > Acciones > Acciones de OAUTH y haga clic en Agregar.
    • En la página Crear servidor de OAuth de autenticación, defina los valores para los parámetros necesarios y haga clic en Crear.
  5. Enlace la directiva de IdP de OAuth al servidor de OAuth de autenticación.

La función OAuth ahora admite las siguientes capacidades en la API de tokens desde el lado de Reliing Party (RP) y desde el lado de IdP de NetScaler Gateway y NetScaler.

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

  • Soporte para client_assertion

Para configurar NetScaler como un IdP mediante el protocolo OIDC mediante la CLI

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

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

Notas:

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

  • El dispositivo de punto final introspectivo de IdP de OAuth admite la propiedad active: true.

  • Si el servidor virtual de autenticación está configurado como un IdP de OAuth, la URL del dispositivo de punto final de detección del IdP de OAuth conocido debe ser https://<netscaler-oauth-idp-fqdn>/oauth/idp/.well-known/openid-configuration.

  • NetScaler configurado como IdP de OAuth no muestra los métodos de autenticación de puntos finales client_secret_post, client_secret_jwt, private_key_jwt y client_secret_basic con token en la respuesta .well-known-Endpoint enviada al SP de OAuth.

Compatibilidad con tokens cifrados en el protocolo OIDC

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

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

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

En la línea de comandos, escriba:

set authentication OAuthIDPProfile <name> [-relyingPartyMetadataURL <URL>] [-refreshInterval <mins>] [-status < >]
<!--NeedCopy-->
  • relyingPartyMetadataURL: Dispositivo de punto final en el que el proveedor de identidades de NetScaler puede obtener detalles sobre la parte que confía que se está configurando. La respuesta de metadatos debe incluir dispositivos de punto final para jwks_uri para claves públicas de 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 NetScaler 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 punto final, NetScaler primero sondea el punto final conocido de la parte que confía para leer la configuración. Actualmente, NetScaler procesa solo el punto final ‘jwks_uri’.

  • Si ‘jwks_uri’ está ausente en la respuesta, el estado del perfil no está completo.
  • Si el ‘jwks_uri’ está presente en la respuesta, NetScaler 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 AES256 GCM para el cifrado de tokens.

Compatibilidad con atributos personalizados en OpenID Connect

Es posible que los usuarios de confianza de OpenID necesiten 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. Por lo general, los grupos de usuarios deben aplicar directivas de autorización para el usuario. A veces, se necesitan más detalles, como el nombre o el apellido, para aprovisionar una cuenta de usuario.

NetScaler configurado como IdP se puede usar para enviar atributos adicionales en el OIDCID_Token mediante expresiones. Las expresiones de directiva avanzadas se utilizan para enviar los atributos personalizados según el requisito. El IdP de OAuth de NetScaler evalúa las expresiones correspondientes a los atributos y, a continuación, calcula el token final.

NetScaler aplica automáticamente JSONify a 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 con varios valores, 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 punto final de la parte de confianza mediante la CLI

En la línea de comandos, escriba:

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

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

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

“atributo1”, “atributo2” son cadenas literales que representan el nombre del atributo que se va a insertar en el token de ID.

Nota:

En el ejemplo siguiente, el valor máximo de la expresión "q{myname=http.req.user.name@@@ssn="123456789"@@@jit="false"@@@groups=http.req.user.groups}" puede ser de 2000 bytes. Contiene 4 atributos personalizados (myname, ssn, jit, groups). El valor máximo de cada atributo personalizado es de 10000 bytes. Por ejemplo, el atributo groups (evaluado en función de la expresión PI http.req.user.groups) puede contener hasta 10 000 bytes de datos en el OIDCID_Token.

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

  • La expresión PI anterior es una expresión de directiva avanzada que representa el valor que se va a utilizar para el atributo. La expresión PI se puede usar para enviar un literal de cadena, como “‘cadena codificada”’. El literal de la cadena va entre comillas dobles y comillas simples o comillas dobles alrededor de un patrón de inicio (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 como referencia. Los grupos ymyname”” son expresiones PI que producen cadenas.

Compatibilidad con implementaciones de GSLB activo-activas en NetScaler Gateway

NetScaler Gateway configurado como proveedor de identidad (IDP) mediante el protocolo OIDC puede admitir implementaciones de GSLB activo-activas. La implementación activa y activa de GSLB en el IDP de NetScaler 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

Le recomendamos vincular los 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 una instalación de GSLB, consulte Ejemplo de una instalación y configuración de GSLB.

NetScaler como proveedor de identidad de OAuth