Citrix ADC

Conceptos, entidades y terminología de nFactor

En este tema se recogen algunas de las principales entidades involucradas en la autenticación nFactor y su importancia.

Esquema de inicio de sesión

nFactor desacopla la “vista”, la interfaz de usuario, con el “modelo” que es el manejo de tiempo de ejecución. La vista de nFactor se define mediante el esquema de inicio de sesión’. El esquema de inicio de sesión es una entidad que define lo que ve el usuario y especifica cómo extraer los datos del usuario.

Para definir la vista, el esquema de inicio de sesión apunta a un archivo en el disco que define el formulario de inicio de sesión. Este archivo debe estar de acuerdo con la especificación de “Citrix Common Forms Protocol”. Este archivo es esencialmente una definición XML del formulario de inicio de sesión.

Además del archivo XML, el esquema de inicio de sesión contiene expresiones de directiva avanzadas para obtener el nombre de usuario y la contraseña de la solicitud de inicio de sesión del usuario. Estas expresiones son opcionales y se pueden omitir si el nombre de usuario y la contraseña del usuario llegan con los nombres de variables de formulario esperados.

El esquema de inicio de sesión también define, si el conjunto actual de credenciales debe utilizarse como credenciales SingleSignOn predeterminadas.

Etiqueta de directiva

Una etiqueta de directiva es una colección de directivas. Es una construcción que no es ajena a la infraestructura de directivas de Citrix ADC. Etiqueta de directiva define un factor de autenticación. Es decir, contiene todas las directivas necesarias para determinar si se cumplen las credenciales del usuario. Todas las directivas de una etiqueta de directiva pueden considerarse homogéneas. La etiqueta de directiva para la autenticación no puede tomar directivas de tipo diferente, por ejemplo, reescribir. Para ponerlo de una manera diferente, todas las directivas de una etiqueta de directiva validan la misma contraseña/credencial del usuario, principalmente. El resultado de las directivas en un PolicyLabel sigue la condición OR lógica. Por lo tanto, si la autenticación especificada por la primera directiva tiene éxito, se omiten otras directivas posteriores.

La etiqueta de directiva se puede crear ejecutando el siguiente comando CLI:

add authentication policy label mylabel –loginSchema <>

Una etiqueta de directiva toma el esquema de inicio de sesión como propiedad. El esquema de inicio de sesión define la vista de esa etiqueta de directiva. Si no se especifica el esquema de inicio de sesión, se asocia un esquema de inicio de sesión implícito, LSCHEMA_INT, con esa etiqueta de directiva. El esquema de inicio de sesión decide si una etiqueta de directiva se convierte en un paso a través o no.

Etiqueta de servidor virtual

En la infraestructura de directivas avanzada de Citrix ADC, un servidor virtual también es una etiqueta de directiva implícita. Esto se debe a que el servidor virtual también puede vincularse con más de una directiva. Sin embargo, un servidor virtual es especial porque es el punto de entrada para el tráfico del cliente y puede tomar directivas de un tipo diferente. Cada una de las directivas que pone bajo su propia etiqueta dentro del servidor virtual. Por lo tanto, el servidor virtual es un conglomerado de etiquetas.

Siguiente factor

Siempre que una directiva esté enlazada a un servidor virtual o a una etiqueta de directiva, se puede especificar con el siguiente factor. El siguiente factor determina lo que se debe hacer si una autenticación dada tiene éxito. Si no hay otro factor, eso concluye el proceso de autenticación para ese usuario.

Cada directiva enlazada a un servidor virtual o etiqueta de directiva puede tener un factor siguiente diferente. Esto permite la máxima flexibilidad donde en el éxito de cada directiva puede definir una nueva ruta para la autenticación del usuario. El administrador puede aprovechar este hecho y crear factores de reserva inteligentes para los usuarios que no cumplen ciertas directivas.

Directiva de exclusión de autenticación

nFactor introduce un tipo especial de directiva incorporada llamada NO_AUTHN. La directiva NO_AUTHN siempre devuelve el éxito como resultado de autenticación. La directiva de no-autenticación se puede crear ejecutando el siguiente comando CLI:

add authentication policy noauthpolicy –rule <> -action NO_AUTHN

Según el comando, la directiva de no autenticación toma una regla que puede ser cualquier expresión de directiva avanzada. El resultado de la autenticación siempre es correcto desde NO_AUTHN.

Una directiva de no-autenticación en sí misma no parece agregar valor. Sin embargo, cuando se utiliza junto con etiquetas de directivas de paso a través, ofrece una gran flexibilidad para tomar decisiones lógicas para impulsar el flujo de autenticación de usuarios. La directiva NO_AUTHN y los factores de paso ofrecen una nueva dimensión a la flexibilidad de nFactor.

Nota: Compruebe los ejemplos que muestran el uso de no-autenticación y paso a través en las secciones siguientes.

Factor/etiqueta de paso

Una vez que el usuario ha pasado la autenticación en el servidor virtual (para el primer factor), las autenticaciones posteriores ocurren en las etiquetas de directiva o en los factores (secundarios) definidos por el usuario. Cada etiqueta/factor de directiva está asociado con una entidad de esquema de inicio de sesión para mostrar la vista de ese factor. Esto permite personalizar vistas en función de la ruta que el usuario habría tomado para llegar a un factor determinado.

Existen tipos especializados de etiquetas de directiva que no apuntan explícitamente a un esquema de inicio de sesión. Las etiquetas de directivas especializadas apuntan a un esquema de inicio de sesión que en realidad no apunta al archivo XML de la vista. Estas etiquetas/factores de directiva se denominan factores de “paso a través”.

Los factores de paso se pueden crear ejecutando los siguientes comandos de CLI:

Ejemplo 1:

add authentication policylabel example1

Ejemplo 2:

add loginschema passthrough_schema –authenticationSchema noschema

add authentication policylabel example2 –loginschema passthrough_schema

El factor de paso implica que el subsistema de autenticación, autorización y auditoría no debe volver al usuario para obtener la credencial establecida para ese factor. En su lugar, es una sugerencia para que la autenticación, la autorización y la auditoría continúen con las credenciales ya obtenidas. Esto es útil en casos en los que no se quiere la intervención del usuario. Por ejemplo:

  • Cuando el usuario se presenta dos campos de contraseña. Después del primer factor, el segundo factor no necesita intervención del usuario

  • Cuando se realiza la autenticación de un tipo (digamos certificado), y el administrador necesita extraer grupos para ese usuario.

El factor de paso se puede utilizar con la directiva NO_AUTH para realizar saltos condicionales.

Flujo de autenticación nFactor

La autenticación siempre comienza en el servidor virtual en nFactor. El servidor virtual define el primer factor para el usuario. El servidor virtual sirve el primer formulario que ve el usuario. El formulario de inicio de sesión que ve el usuario se puede personalizar en el servidor virtual mediante directivas de esquema de inicio de sesión. Si no hay directivas de esquema de inicio de sesión, se muestra al usuario un solo campo de nombre de usuario y contraseña.

Si se deben mostrar al usuario más de un campo de contraseña en un formulario personalizado, se deben usar directivas de esquema de inicio de sesión. Permiten mostrar diferentes formularios basados en las reglas configuradas (como usuario de intranet frente al usuario externo, proveedor de servicios A frente al proveedor de servicios B).

Una vez que se publican las credenciales de usuario, la autenticación comienza en el servidor virtual de autenticación, el primer factor. Dado que el servidor virtual de autenticación se puede configurar con varias directivas, cada una de ellas se evalúa en una secuencia. En cualquier momento dado, si una directiva de autenticación tiene éxito, se toma el siguiente factor especificado contra ella. Si no hay otro factor, el proceso de autenticación finaliza. Si existe el siguiente factor, se comprueba si ese factor es un factor de paso o un factor regular. Si se trata de transferencia, las directivas de autenticación de ese factor se evalúan sin intervención del usuario. De lo contrario, el esquema de inicio de sesión asociado con ese factor se muestra al usuario.

Ejemplo de uso de directivas de factor de paso y sin autenticación para tomar decisiones lógicas

El administrador quiere decidir NextFactor en función de los grupos.

  • Agregar comprobación de grupo de etiquetas de directiva de autenticación

  • Agregar grupo de administración de directivas de autenticación —rule http.req.user.is_member_of (“Administradores”) —action NO_AUTHN

  • Agregar directiva de autenticación no administradores —rule true —action NO_AUTHN

  • Comprobación de grupo de etiquetas de directiva de autenticación de enlace —policy admingroup —pri 1 —NextFactor factor-for-admin

  • Vincular directiva de autenticación label groupcheck —policy nonadmins —pri 10 —nextfactor factor-for-others

  • Agregar directiva de autenticación first_factor_policy —rule <> -action <>

  • Vincular autenticación vserver <> -policy first_factor_policy —priority 10 —NextFactor groupcheck

Conceptos, entidades y terminología de nFactor