Citrix NetScaler – nFactor

Vamos a intentar explicar brevemente como funciona y configura nFactor de Citrix NetScaler, para crear múltiples opciones de autenticación para nuestros usuarios, en la versión 13.x tenemos el nFactor Flows que nos permite realizarlo todo modo visual.

Citrix ADC nFactor Basics Cheat Sheet

Login schema

Lo primero que debemos ver son los Login schema profile en en definición es la configuración de la pantallas de login que deseamos ver, se configuran en «Security / AAA – Application Traffic / Login Schema / profiles»

Solo UserName
Usuario/password/OTP

Encontraremos los LoginSchema en la ruta «/nsconfig/loginschema/LoginSchema»

Los LoginSchema son ficheros XML, la configuración principal se encuentra dentro de <Requeriments>, cada campo de Usuario, password, codigo,… se configurará dentro de <Requeriment> y se mostrara en el orden que los coloquemos es decir, si tenemos que introducir username, password y el ultimo <Requeriment> es username en la pantalla nos aparecera primero introducir password y luego el usuario.

Este codigo por ejemplo seria para username, password, none (texto), y reCaptcha.

<?xml version="1.0" encoding="UTF-8"?>
<AuthenticateResponse xmlns="http://citrix.com/authentication/response/1">
<Status>success</Status>
<Result>more-info</Result>
<StateContext/>
<AuthenticationRequirements>
<PostBack>/nf/auth/doAuthentication.do</PostBack>
<CancelPostBack>/nf/auth/doLogoff.do</CancelPostBack>
<CancelButtonText>Cancel</CancelButtonText>
<Requirements>
<Requirement><Credential><ID>login</ID><SaveID>ExplicitForms-Username</SaveID><Type>username</Type></Credential><Label><Text>singleauth_user_name</Text><Type>nsg-login-
label</Type></Label><Input><AssistiveText>singleauth_please_supply_either_domain\username_or_user@fully.qualified.domain</AssistiveText><Text><Secret>false</Secret><Rea
dOnly>false</ReadOnly><InitialValue/><Constraint>.+</Constraint></Text></Input></Requirement>
<Requirement><Credential><ID>passwd</ID><SaveID>ExplicitForms-Password</SaveID><Type>password</Type></Credential><Label><Text>singleauth_password</Text><Type>nsg-login-
label</Type></Label><Input><Text><Secret>true</Secret><ReadOnly>false</ReadOnly><InitialValue/><Constraint>.+</Constraint></Text></Input></Requirement>
<Requirement><Credential><Type>none</Type></Credential><Label><Text>Please enter your username, password and verify captcha</Text><Type>information</Type></Label><Input
 /></Requirement>
<Requirement><Credential><ID>saveCredentials</ID><Type>savecredentials</Type></Credential><Label><Text>singleauth_remember_my_password</Text><Type>nsg-login-label</Type
></Label><Input><CheckBox><InitialValue>false</InitialValue></CheckBox></Input></Requirement>
<Requirement><Credential><ID>nf-recaptcha</ID><SaveID>ExplicitForms-Username</SaveID><Type>nf-recaptcha</Type></Credential><Label><Text>Captcha:</Text><Type>plain</Type
></Label></Requirement>
<Requirement><Credential><ID>loginBtn</ID><Type>none</Type></Credential><Label><Type>none</Type></Label><Input><Button>singleauth_log_on</Button></Input></Requirement>
</Requirements>
</AuthenticationRequirements>
</AuthenticateResponse>

Una vez tengamos nuestro Login Schema se almacena en la carpeta «/nsconfig/loginschema/LoginSchema» como hemos indicado.

Ahora creamos desde la consola GUI o por comandos un nuevo profile, unicamente sera necesario poner un nombre, seleccionar en la lista nuestro Login Schema, pulsar sobre «Select» y «Create».

Una vez creado el Profiles, crearemos la policies con la rule deseada.

Authentication Policy Label

El siguiente son las Policy Label nos permite unir de una manera lógica que pasos se harán según nos vaya pidiendo las credenciales, en el siguiente esquema podemos ver los que harían las policy label

nFactor Flow

Una configuración podría ser para OTP cuando accedemos lo primero que nos solicita es es usuario/password/Codigo, esto tiene dos pasos, primero el Login con LDAP y segundo validar el codigo de acceso

La primera policy label, contendra el Login Schema que en este caso será Dual para OTP y agregamos un Binding con autenticación por LDAP, y agregaremos un Next Factor para verificar el Codigo de acceso.

Primer Policy Label

La segunda policy label, tendremos el login Schema por defecto («LSCHEMA_INT», al ser validación solo no necesitamos ningún Login Schema ya que no va a aparecer), en el Binding una policy de Ldap para verificación del código y como Goto Expresion «END» ya que es el final de los pasos.

No Authn

Dentro de las Policies Label, si necesitamos realizar expression para consultar, podremos usar Authentication policies de NO_AUTHN, como preguntar si pertenecemos a un grupo o si hemos introducido «manageotp» para registrar móviles en OTP,…

Authentication Policy

Generaremos una Policy Label, con Login Schema por defecto y agregaremos los Binding necesarios con sus expression y action «NO_AUTHN» y cada uno con su Next Factor.

Policy Label

Si necesitáis, mas info. tenéis a Carl Stalhood nfactor 12 y nfactor 13

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *