ADC

NetScaler como SP de OAuth

La función de administración del tráfico de autenticación, autorización y auditoría admite la autenticación de OAuth para autenticar a los usuarios en aplicaciones alojadas en aplicaciones como Google, Facebook y Twitter.

Puntos que tener en cuenta

  • Se necesitan NetScaler Advanced Edition y versiones posteriores para que la solución funcione.
  • OAuth en NetScaler cumple los requisitos para todos los IdP de SAML que cumplen con «OpenID connect 2.0».

Importante:

NetScaler puede responder con un error de CSRF cuando un sitio web con mucho contenido envía varias solicitudes de autenticación al expirar la sesión. Como solución alternativa, se recomienda que cuando configure la directiva de OAuth, asegúrese de que la directiva esté configurada tanto para el nombre de host como para la ruta, que son los principales puntos de entrada.

Configurar OAuth mediante la interfaz gráfica de usuario

  1. Configure la acción y la directiva de OAuth.

    Vaya a Seguridad > AAA - Tráfico de aplicaciones > Directivas > Autenticación > Directivas avanzadas > Directiva, y cree una directiva con OAuth como tipo de acción y asocie la acción de OAuth requerida con la directiva.

  2. Asocie la directiva de OAuth a un servidor virtual de autenticación.

    Vaya a Seguridad > AAA - Tráfico de aplicaciones > Servidores virtuales y asocie la directiva de OAuth con el servidor virtual de autenticación.

Nota:

Los atributos (1 a 16) se pueden extraer en la respuesta de OAuth. Actualmente, estos atributos no se evalúan. Se agregan para referencia futura.

Configurar OAuth mediante la CLI

  1. Defina una acción de OAuth.

    add authentication OAuthAction <name> [-OAuthType <OAuthType>] [-authorizationEndpoint <URL>] [-tokenEndpoint <URL>] [-idtokenDecryptEndpoint <URL>] [-clientID <string>][-clientSecret ]  [-defaultAuthenticationGroup <string>] [-Attribute1 <string>] [-Attribute2 <string>] [-Attribute3 <string>] [-Attributes <string>] [-tenantID <string>] [-GraphEndpoint <string>] [-refreshInterval <positive_integer>] [-CertEndpoint <string>][-audience <string>] [-userNameField <string>] [-skewTime <mins>] [-issuer <string>] [-UserInfoURL <URL>] [-CertFilePath <string>] [-grantType ( CODE | PASSWORD )] [-authentication ( ENABLED | DISABLED )] [-introspectURL <URL>][-allowedAlgorithms <allowedAlgorithms> ...] [-PKCE ( ENABLED | DISABLED )] [-tokenEndpointAuthMethod <tokenEndpointAuthMethod>] [-metadataUrl <URL>] [-resourceUri <URL>]
    
    <!--NeedCopy-->
    
  2. Asocie la acción a una directiva de autenticación avanzada.

    add authentication Policy <name> -rule <expression> -action <string>
    <!--NeedCopy-->
    

    Ejemplo:

    add authentication oauthAction a -authorizationEndpoint https://example.com/ -tokenEndpoint https://example.com/ -clientiD sadf -clientsecret df
    <!--NeedCopy-->
    

Para obtener más información sobre los parámetros de autenticación OAuthAction, consulte autenticación OAuthAction.

Nota:

  • Cuando se especifica un CertEndPoint, NetScaler sondea ese punto final con la frecuencia configurada para conocer las claves.

Para configurar un NetScaler para que lea el archivo local y analice las claves de ese archivo, se introduce una nueva opción de configuración de la siguiente manera:

set authentication OAuthAction <name> -CertFilePath <path to local file with jwks>
<!--NeedCopy-->

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

Compatibilidad con atributos nombre-valor para la autenticación de OAuth

Ahora puede configurar los atributos de autenticación de OAuth con un nombre único junto con los valores. Los nombres se configuran en el parámetro de acción OAuth como “Atributos” y los valores se obtienen consultando los nombres. Los atributos extraídos se almacenan en la sesión de autenticación, autorización y auditoría. Los administradores pueden consultar estos atributos mediante http.req.user.attribute("attribute name") o http.req.user.attribute(1), según el método elegido para especificar los nombres de los atributos.

Al especificar el nombre del atributo, los administradores pueden buscar fácilmente el valor del atributo asociado a ese nombre de atributo. Además, los administradores ya no tienen que recordar el atributo “atributo1 a atributo16” solo por su número.

Importante

En un comando de OAuth, puedes configurar un máximo de 64 atributos separados por comas con un tamaño total inferior a 1024 bytes.

Nota

El error de sesión se puede evitar si el tamaño del valor total del “atributo 1 al atributo 16” y los valores de los atributos especificados en “Atributos” no superan los 10 KB.

Para configurar los atributos nombre-valor mediante la CLI

En la línea de comandos, escriba:

add authentication OAuthAction <name> [-Attributes <string>]

set authentication OAuthAction <name> [-Attributes <string>]
<!--NeedCopy-->

Ejemplos:

add authentication OAuthAction a1 –attributes "email,company" –attribute1 email

set authentication OAuthAction oAuthAct1 -attributes "mail,sn,userprincipalName"
<!--NeedCopy-->
NetScaler como SP de OAuth