Autenticación OAuth
La función de administración de tráfico de autenticación, autorización y auditoría admite la autenticación OAuth y OpenID Connect (OIDC). Autoriza y autentica a los usuarios a servicios alojados en aplicaciones como Google, Facebook y Twitter.
Puntos a tener en cuenta
- Se requiere Citrix ADC Advanced Edition y versiones superiores para que la solución funcione.
- Un dispositivo Citrix ADC debe estar en la versión 12.1 o posterior para que el dispositivo funcione como IdP de OAuth mediante OIDC.
- OAuth en un dispositivo Citrix ADC está calificado para todos los IDP de SAML que cumplen con “OpenID connect 2.0”.
Un dispositivo Citrix ADC se puede configurar para que se comporte como proveedor de servicios (SP) o proveedor de identidades (IdP), mediante SAML y OIDC. Anteriormente, un dispositivo Citrix ADC configurado como IdP solo soportaba el protocolo SAML. A partir de la versión 12.1 de Citrix ADC, Citrix ADC también es compatible con el OIDC.
OIDC es una extensión de la autorización/delegación de OAuth. Un dispositivo Citrix ADC admite protocolos OAuth y OIDC en la misma clase de otros mecanismos de autenticación. OIDC es un complemento a OAuth ya que proporciona una forma de obtener información del usuario del servidor de autorización en lugar de OAuth que obtiene solo un token que no se puede obtener para la información del usuario.
El mecanismo de autenticación facilita la verificación en línea de tokens OpenID. Se puede configurar un dispositivo Citrix ADC para obtener certificados y verificar firmas en el token.
Una ventaja importante de utilizar los mecanismos OAuth y OIDC es que la información del usuario no se envía a las aplicaciones alojadas. Por lo tanto, el riesgo de robo de identidad se reduce considerablemente.
El dispositivo Citrix ADC configurado para autenticación, autorización y auditoría ahora acepta tokens entrantes firmados mediante el algoritmo HMAC HS256. Además, las claves públicas del proveedor de identidad (IdP) SAML se leen desde un archivo, en lugar de aprender desde un extremo de URL.
En la implementación de Citrix ADC, el servidor virtual de administración de tráfico de autenticación, autorización y auditoría accede a la aplicación. Por lo tanto, para configurar OAuth, debe configurar una directiva OAuth que luego debe asociarse con un servidor virtual de administración de tráfico de autenticación, autorización y auditoría.
Configurar el protocolo OpenID Connect
Ahora se puede configurar un dispositivo Citrix ADC como proveedor de identidades mediante el protocolo OIDC. El protocolo OIDC fortalece 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. El OIDC ofrece más seguridad al no transferir la contraseña de usuario, pero funciona con tokens con una vida útil específica. OIDC también está diseñado para integrarse con clientes que no son exploradores web, como aplicaciones y servicios. Por lo tanto, muchas implementaciones adoptan ampliamente OIDC.
Ventajas de contar con el soporte de OpenID Connect
- OIDC elimina la sobrecarga de mantener múltiples contraseñas de autenticación, ya que el usuario tiene una única identidad en toda la organización.
- OIDC proporciona una seguridad sólida para su contraseña, ya que la contraseña se comparte solo con su proveedor de identidades y no con ninguna aplicación a la que acceda.
- OIDC tiene una amplia interoperabilidad con varios sistemas, lo que facilita a las aplicaciones alojadas aceptar OpenID.
- OIDC es un protocolo simple que permite a los clientes nativos integrarse fácilmente con los servidores.
Para configurar un dispositivo Citrix ADC como IdP mediante el protocolo OpenID Connect mediante la interfaz gráfica de usuario
-
Vaya a Configuración > Seguridad > AAA: Tráfico de aplicaciones > Directivas > Autenticación > Directivas avanzadas > IdP de OAuth.
-
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 deautenticación predeterminado: grupo agregado a la sesión de este perfil para simplificar la evaluación de directivas y ayudar a personalizar las directivas.
-
Haga clic en Directivas y en Agregar.
-
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 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 utiliza la directiva para responder a una solicitud específica. Por ejemplo, true.
- Comentarios: Cualquier comentario sobre la directiva.
Vinculación de la directiva OAuthIDP y la directiva LDAP al servidor virtual de autenticación
-
Vaya a Configuración > Seguridad > AAA: Tráfico de aplicaciones > Directivas > Autenticación > Directivas avanzadas > Acciones > LDAP.
-
En la pantalla Acciones LDAP, haga clic en Agregar.
-
En la pantalla Crear servidor LDAP de autenticación, establezca los valores para los siguientes parámetros y haga clic en Crear.
- Nombre: 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 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
- 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.
-
Vaya a Configuración > Seguridad > AAA: Tráfico de aplicaciones > Directivas > Autenticación > Directivas avanzadas > Directiva.
-
En la pantalla Directivas de autenticación, haga clic en Agregar.
-
En la página Crear directiva de autenticación, establezca los valores de los parámetros siguientes 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, true**.
Para configurar el dispositivo Citrix ADC como IdP mediante el protocolo OpenID Connect mediante CLI
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>]<!--NeedCopy-->
-
add authentication OAuthIdPPolicy <name> -rule <expression> [-action <string> [-undefAction <string>] [-comment <string>][-logAction <string>]<!--NeedCopy-->
-
add authentication ldapAction aaa-ldap-act -serverIP 10.0.0.10 -ldapBase "dc=aaa,dc=local"<!--NeedCopy-->
-
ldapBindDn <administrator@aaa.local> -ldapBindDnPassword <password> -ldapLoginName sAMAccountName<!--NeedCopy-->
-
add authentication policy aaa-ldap-adv-pol -rule true -action aaa-ldap-act<!--NeedCopy-->
-
bind authentication vserver auth_vs -policy <ldap_policy_name> -priority 100 -gotoPriorityExpression NEXT<!--NeedCopy-->
-
bind authentication vserver auth_vs -policy <OAuthIDPPolicyName> -priority 5 -gotoPriorityExpression END<!--NeedCopy-->
bind vpn global –certkey <><!--NeedCopy-->
Nota
Puede enlazar más de una clave. Las partes públicas de los certificados enlazados se envían en respuesta a
jwks\_uri query (https://gw/oauth/idp/certs)
.