ADC

Configurar nFactor para NetScaler Gateway con WebAuth en primer factor y LDAP con cambio de contraseña en segundo factor

Para configurar nFactor para NetScaler Gateway con WebAuth en el primer factor y LDAP con cambio de contraseña en el segundo factor, se incluyen los siguientes pasos de alto nivel.

  1. Configure un servidor virtual de autenticación sin IP. No es obligatorio tener un certificado enlazado al servidor virtual de autenticación.

  2. Configure un perfil de autenticación con el nombre del servidor virtual de autenticación.

  3. Configure un servidor virtual VPN.

  4. Configure el perfil de autenticación en este servidor virtual VPN.

  5. Configure una acción y una directiva de WebAuth.

  6. Configure la acción y la directiva de LDAP.

  7. Configure una acción de esquema de inicio de sesión para el factor LDAP.

  8. Configure una etiqueta de directiva para el factor LDAP mediante la acción del esquema de inicio de sesión para el factor LDAP.

  9. Enlazar la directiva LDAP a la etiqueta de la directiva LDAP.

  10. Vincule la directiva WebAuth al servidor virtual de autenticación con una etiqueta de directiva LDAP como siguiente factor.

Funcionamiento

  • El usuario introduce el FQDN de NetScaler Gateway en el navegador y se le redirige a la página /logon/logonpoint/tmindex.html.

  • Esta página muestra el esquema de inicio de sesión enlazado a un servidor virtual de autenticación. Si no hay ningún esquema de inicio de sesión enlazado a un servidor virtual de autenticación (como en nuestra configuración), se muestra un esquema predeterminado.

  • El usuario introduce las credenciales para el primer factor, que en este caso es WebAuth.

  • NetScaler Gateway comprueba la acción WebAuth y contacta con el servidor WebAuth. Envía la solicitud HTTP mencionada en el parámetro FullReqExpr al servidor WebAuth. Si la respuesta del servidor WebAuth cumple con la expresión mencionada en el parámetro SuccessRule de la acción WebAuth, se aprueba esta directiva.

  • Ahora NetScaler Gateway pasa al segundo factor. Comprueba la configuración de la etiqueta de directiva LDAP_Factor que está enlazada como factor siguiente. Como se menciona un esquema de inicio de sesión en esta etiqueta de directiva, NetScaler Gateway envía ese esquema XML al cliente.

  • El cliente recibe el esquema e introduce las credenciales de LDAP para la autenticación de segundo factor.

  • NetScaler Gateway intenta llegar al servidor LDAP y valida si las credenciales del cliente son correctas. Si son correctos, se completa la fase de autenticación y el usuario inicia sesión en el modo VPN configurado.

La siguiente ilustración muestra una secuencia de autenticación nFactor en la que el primer factor es webAuth y el segundo factor es LDAP.

Nfactor-auth-sequence

Configuración mediante la CLI

  1. Configure un servidor virtual de autenticación.

    add authentication vserver auth1 ssl
    <!--NeedCopy-->
    

    En la GUI, vaya a Seguridad > AAA - Tráfico de aplicaciones > Servidor virtual y haga clic en Agregar.

    Agregar servidor virtual de autenticación

  2. Configure un perfil de autenticación.

    add authnProfile auth_profile –authnVsname auth1
    <!--NeedCopy-->
    

    En la GUI, vaya a Seguridad > AAA - Tráfico de aplicaciones > Perfil de autenticación y haga clic en Agregar.

    Crear perfil de autenticación

  3. Configure un servidor virtual VPN.

    add vpn vserver vpn1 ssl 10.1.1.1 443
    
    add ssl certkey ckp –cert test.cer –key test.key
    
    bind ssl vserver vpn1 –certKey ckp
    <!--NeedCopy-->
    

    Vaya aNetScaler Gateway > Servidor virtualy haga clic en Agregar.

    Agregar servidor virtual vpn

    Una vez creado el servidor virtual VPN, vincule el certificado al mismo.

    Configure el perfil de autenticación en el servidor virtual VPN

    set vpn vserver vpn1 –authnProfile auth_profile
    <!--NeedCopy-->
    

    establecer perfil de autenticación

  4. Configure una acción y una directiva de WebAuth.

    Vaya a Appexpert > Expresión > Expresión avanzada.

    Configurar la directiva de autenticación web

    add policy expression post_data ""myusername=" +
    
    http.REQ.BODY(3000).SET_TEXT_MODE(IGNORECASE).AFTER_STR("login=").BEFORE_STR("&") + "&mypassword=" +
    
    http.REQ.BODY(3000).SET_TEXT_MODE(IGNORECASE).AFTER_STR("passwd=")"
    <!--NeedCopy-->
    

    Crear expresión

    add policy expression length_post_data "("myusername=" +
    
    http.REQ.BODY(1000).SET_TEXT_MODE(IGNORECASE).AFTER_STR("login=").BEFORE_STR("&") + "&mypassword=" +
    
    \http.REQ.BODY(1000).SET_TEXT_MODE(IGNORECASE).AFTER_STR("passwd=")).length"
    <!--NeedCopy-->
    

    Configuración de Nfactor mediante la CLI:

    add authentication webAuthAction webAuth_action -serverIP 10.102.39.132 -serverPort 443 -fullReqExpr q{"POST /customAuth.aspx HTTP/" + http.req.version.major + "." + http.req.version.minor + "\r\nAccept: \*/\*\r\nHost: 10.102.39.132\r\nUser-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)\r\nContent-Type: application/x-www-form-urlencoded\r\n" + "Content-Length: " + length_post_data + "\r\nConnection: Keep-Alive\r\n\r\n" + post_data} -scheme https -successRule "http.RES.STATUS.EQ(200)"
    
    add authentication policy webAuth_policy –rule TRUE –action webAuth_action
    <!--NeedCopy-->
    

    La acción WebAuth configurada anteriormente usa dos expresiones de directiva. Una expresión de directiva (post_data) crea el cuerpo POST. El otro (length_post_data) calcula la longitud del cuerpo de POST, que se utiliza para rellenar el encabezado Content-Length de la solicitud POST.

    La expresión de directiva que crea el cuerpo POST analiza la solicitud de inicio de sesión y extrae el nombre de usuario y la contraseña introducidos por el usuario. A continuación, crea el cuerpo POST en el formato que espera el servidor WebAuth, utilizando la contraseña del nombre de usuario extraída de la solicitud de inicio de sesión.

    Por último, la acción WebAuth crea la siguiente solicitud, que se envía al servidor WebAuth.

    POST /customAuth.aspx HTTP/1.1
    Accept: \*/\*
    Host: 10.102.39.132
    Accept-Language: en-US
    User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
    Content-Type: application/x-www-form-urlencoded
    Content-Length:43
    Connection: Keep-Alive
    
    myusername=test_user&mypassword=test_passwd
    <!--NeedCopy-->
    
  5. Configure la acción y la directiva de LDAP para el cambio de contraseña.

    add authentication ldapAction ldap_action -serverIP 10.102.39.133 -serverPort 636 -secType SSL -ldapBase "dc=domain,dc=com" -ldapBindDn administrator -ldapBindDnPassword password -ldapLoginName samAccountName -passwdChange ENABLED
    add authentication policy ldap_policy –rule TRUE –action ldap_action
    <!--NeedCopy-->
    

    La acción LDAP se configura con —passwdChange ENABLED, que permite que el usuario inicie el cambio de contraseña tras iniciar sesión en la VPN.

  6. Configure una acción LoginSchema para el factor LDAP.

    add authentication loginSchema LDAP_schema -authenticationSchema /nsconfig/loginschema/LoginSchema/SingleAuth.xml
    <!--NeedCopy-->
    

    El factor LDAP requiere un nombre de usuario y una contraseña del usuario final. El formulario de inicio de sesión que se muestra al usuario final debe incluir un campo de nombre de usuario y contraseña.

    NetScaler tiene algunos XML de LoginSchema predeterminados que están presentes en la ubicación /nsconfig/ loginSchema/loginSchema del shell de NetScaler. Puede utilizar uno de los XML de LoginSchema predeterminados presentes en la ubicación anterior.

  7. Configure una etiqueta de directiva para el factor LDAP mediante la acción LoginSchema para el factor LDAP:

    add authentication policylabel LDAP_factor -loginSchema LDAP_schema
    <!--NeedCopy-->
    
  8. Enlazar la directiva LDAP a la etiqueta de la directiva LDAP.

    bind authentication policylabel LDAP_factor –policyName ldap_policy –priority 10
    <!--NeedCopy-->
    
  9. Enlace la directiva WebAuth al servidor virtual de autenticación con una etiqueta de directiva LDAP como siguiente factor.

    bind authentication vserver auth1 –policy webAuth_policy –nextFactor LDAP_factor –priority 10
    <!--NeedCopy-->
    

    La configuración anterior de nFactor también se puede realizar mediante el visualizador nFactor de NetScaler, que está disponible a partir de la versión de firmware 13.0.

Configuración mediante el visualizador nFactor

Representación de la configuración en el visualizador nfactor

El primer factor aquí es Webauth seguido de LDAP con la opción de cambio de contraseña habilitada.

  1. Vaya a Seguridad > Tráfico de aplicaciones AAA > Visualizador nFactor > Flujo nFactor y haga clic en Agregar.

  2. Haga clic en el signo + para añadir el flujo nFactor.

    Agregar flujo de nFactor

  3. Agregue un factor. El nombre que introduzca para este factor es el nombre del flujo nFactor.

    Nombre del flujo de nFactor

  4. Haga clic en Agregar directiva para agregar la directiva de Webauth y la acción/servidor de Webauth.

    Haga clic en agregar directiva

    Elige una directiva

    Crear directiva de autenticación

  5. Haga clic en el signo + verde para añadir el siguiente factor, que es la autenticación LDAP con la opción de cambio de contraseña habilitada.

    Agregue el siguiente factor que es LDAP

  6. Haga clic en Agregar esquema para agregar el esquema de inicio de sesión para la autenticación LDAP.

    Agregar esquema para la autenticación LDAP

  7. Haga clic en Agregar directiva para agregar la directiva de autenticación LDAP y la acción/servidor de LDAP.

    Agregar directiva para la autenticación de LDAP

    Para crear una acción/servidor LDAP, consulte el artículo. https://support.citrix.com/article/CTX219939

  8. Una vez configurados ambos factores, debe vincular el flujo al servidor virtual de autenticación, autorización y auditoría.

    Haga clic en vincular al servidor de autenticación

    seleccione el factor y vincúlelo al servidor de autenticación

Depuración: registros y contadores

Los registros se ven después de iniciar sesión correctamente con WebAuth y LDAP. Para ver la mayoría de los registros siguientes, establezca el nivel del registro de auditoría en ALL, de modo que también muestre los registros de depuración.

set audit syslogparams –loglevel ALL
<!--NeedCopy-->

Nota: Las marcas de tiempo se eliminan de los registros por motivos de brevedad.

Registros de muestra

Los siguientes contadores se incrementan después de iniciar sesión correctamente con WebAuth y LDAP.

  • pcp_hits authn (WebAuth_Policy)
  • aaa_tot_webauth_primary_auth
  • aaa_tot_webauth_prim_auth_success
  • aaa_tot_webauth_prim_succ_check_thru
  • pcp_hits authn (WebAuth_Policy)
  • pcp_hits authn (ldap_policy)
  • aaa_auth_succ
Configurar nFactor para NetScaler Gateway con WebAuth en primer factor y LDAP con cambio de contraseña en segundo factor