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

Los siguientes pasos de alto nivel están involucrados en la configuración de nFactor para Citrix Gateway con WebAuth en el primer factor y LDAP con cambio de contraseña en el segundo factor.

  1. Configure un servidor virtual de autenticación con IP cero. No es obligatorio que un certificado se vincule 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. Establezca el perfil de autenticación en este servidor virtual VPN.

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

  6. Configure la acción y la directiva 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 de esquema de inicio de sesión para el factor LDAP.

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

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

Funcionamiento

  • El usuario introduce el FQDN de Citrix Gateway en el explorador, y se le redirige a la página /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 vinculado 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.

  • Citrix Gateway comprueba la acción webAuth y se pone en contacto con el servidor webAuth. Envía solicitud HTTP mencionada en el parámetro FullReqExpr al servidor webAuth. Si la respuesta del servidor webAuth satisface la expresión mencionada en el parámetro SuccessRule de la acción webAuth, esta directiva pasa.

  • Ahora Citrix Gateway pasa al segundo factor. Comprueba la configuración de la etiqueta de directiva LDAP_Factor que está enlazada como siguiente factor. Dado que hay un LoginSchema mencionado en esta etiqueta de directiva, Citrix Gateway envía ese esquema XML al cliente.

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

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

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

NFACTOR-AUT-Secuencia

Configuración mediante la CLI

  1. Configure un servidor virtual de autenticación.

    add authentication vserver auth1 ssl
    

    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
    

    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
    

    Vaya a Citrix Gateway > Servidor virtual y haga clic en Agregar.

    Agregar servidor virtual vpn

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

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

    set vpn vserver vpn1 –authnProfile auth_profile
    

    establecer perfil de autenticación

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

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

    Configurar la directiva de webauth

    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=")"
    

    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"
    

    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
    

    La acción webAuth configurada anteriormente utiliza 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 POST, que se utiliza para rellenar el encabezado Content-Length en 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, mediante la contraseña de nombre de usuario extraída de la solicitud de inicio de sesión.

    Finalmente, 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
    
  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
    

    La acción LDAP se configura con —PassWDChange HABLED, que permite al usuario iniciar el cambio de contraseña después de iniciar sesión en VPN.

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

    add authentication loginSchema LDAP_schema -authenticationSchema /nsconfig/loginschema/LoginSchema/SingleAuth.xml
    

    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 representar un campo de nombre de usuario y contraseña.

    Citrix ADC tiene algunos XML de inicio de sesión predeterminados que están presentes en la ubicación /nsconfig/ LoginSchema/LoginSchema en el shell de NetScaler. Puede utilizar uno de los XML de inicio de sesión 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
    
  8. Enlazar la directiva LDAP a la etiqueta de directiva LDAP.

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

    bind authentication vserver auth1 –policy webAuth_policy –nextFactor LDAP_factor –priority 10
    

    La configuración anterior de nFactor también se puede realizar mediante el visualizador nFactor en Citrix ADC 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 opción de cambio de contraseña habilitada.

  1. Desplácese a Seguridad > Tráfico de aplicaciones AAA> Visualizador de factores > Flujo de factores y haga clic en Agregar.

  2. Haga clic en el signo + para agregar el flujo nFactor.

    Flujo de agregar nFactor

  3. Agregue un factor. Este nombre que se especifica para este factor es el nombre del flujo nFactor.

    Nombre del flujo nFactor

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

    Haga clic en Agregar directiva

    Elegir una directiva

    Crear directiva de autenticación

  5. Haga clic en el signo + verde para agregar el siguiente factor que es autenticación LDAP con 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 autenticación LDAP

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

    Agregar directiva para autenticación LDAP

    Para crear una acción/servidor LDAP, consulte el artículohttps://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 enlazar al servidor de autenticación

    seleccionar el factor y enlazar al servidor de autenticación

Depuración: Registros y contadores

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

set audit syslogparams –loglevel ALL

Nota: Las marcas de tiempo se eliminan de los registros para mayor brevedad.

Registros de muestra

Los contadores siguientes se incrementan después de un inicio de sesión correcto 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