ADC

Correo electrónico OTP

La OTP de correo electrónico se presenta con NetScaler 12.1 build 51.x. El método OTP de correo electrónico le permite autenticarse con la contraseña de un solo uso (OTP) que se envía a la dirección de correo electrónico registrada. Cuando intenta autenticarse en cualquier servicio, el servidor envía una OTP a la dirección de correo electrónico registrada del usuario.

Para utilizar la función OTP de correo electrónico, primero debe registrar su ID de correo electrónico alternativo. Se necesita un registro de ID de correo electrónico alternativo para que la OTP se pueda enviar a ese ID de correo, ya que no podría acceder al ID de correo electrónico principal si hubiera un bloqueo de cuenta o en caso de que olvidara la contraseña de AD.

Puede utilizar la validación OTP de correo electrónico sin registro de ID de correo electrónico si ya ha proporcionado el ID de correo electrónico alternativo como parte de algún atributo de AD. Puede hacer referencia al mismo atributo en la acción de correo electrónico en lugar de especificar el ID de correo electrónico alternativo en la sección Dirección de correo electrónico.

Requisitos previos

Antes de configurar la función OTP de correo electrónico, revise los siguientes requisitos previos:

  • Función NetScaler versión 12.1 compilación 51.28 y superior
  • La función OTP de correo electrónico solo está disponible en el flujo de autenticación nFactor

Configuración de Active Directory

  • La versión admitida es el nivel de función de dominio de Active Directory 2016/2012 y 2008
  • El nombre de usuario LDAPBind de NetScaler debe tener acceso de escritura a la ruta AD del usuario

Servidor de correo

  • Para que la solución OTP de correo electrónico funcione, asegúrese de que la autenticación basada en el inicio de sesión esté habilitada en el servidor SMTP. NetScaler solo admite la autenticación basada en el inicio de sesión de autenticación para que funcione la OTP de correo electrónico.

  • Para asegurarse de que la autenticación basada en el inicio de sesión de autenticación esté habilitada, escriba el siguiente comando en el servidor SMTP. Si la autenticación basada en el inicio de sesión está habilitada, observará que el texto AUTH LOGIN aparece en negrita en el resultado.

Habilitar la autenticación basada en el inicio de sesión en el servidor SMTP

Limitaciones

  • Esta función solo se admite si el backend de autenticación es LDAP.
  • No se puede ver el ID de correo electrónico alternativo ya registrado.
  • Solo el identificador de correo electrónico alternativo de la página de registro de KBA no se puede actualizar.
  • La autenticación y el registro OTP de KBA y correo electrónico no pueden ser los primeros factores del flujo de autenticación. Esto es por diseño para lograr una autenticación sólida.
  • Se debe configurar el mismo atributo de AD para el KBA y el ID de correo electrónico alternativo si se utiliza la misma acción de autenticación LDAP.
  • Para el complemento nativo y Receiver, el registro solo se admite a través de un navegador.

Configuración de Active Directory

  • Email OTP usa el atributo Active Directory como almacenamiento de datos de usuario.

  • Tras registrar el identificador de correo electrónico alternativo, se envía al dispositivo NetScaler y el dispositivo lo almacena en el atributo KB configurado del objeto de usuario de AD.

  • El identificador de correo electrónico alternativo se cifra y se almacena en el atributo AD configurado.

Al configurar un atributo de AD, tenga en cuenta lo siguiente:

  • La longitud de nombre de atributo admitida debe ser de 128 caracteres como mínimo.
  • El tipo de atributo debe ser ‘DirectoryString’.
  • Se puede utilizar el mismo atributo AD para los datos de registro OTP y KBA nativos.
  • El administrador de LDAP debe tener acceso de escritura al atributo de AD seleccionado.

Uso de atributos existentes

El atributo utilizado en este ejemplo es “Parámetros de usuario”. Como se trata de un atributo existente en el usuario de AD, no necesita realizar ningún cambio en el propio AD. Sin embargo, debe asegurarse de que el atributo no se está usando.

Para asegurarse de que el atributo no se utiliza, vaya a ADSI y seleccione usuario, haga clic con el botón derecho en el usuario y desplácese hacia abajo hasta la lista de atributos. Debe ver el valor de atributo de userParameters como no establecido. Esto indica que el atributo no se está usando en este momento.

Configuración de atributos de AD

Configuración de correo OTP

La solución OTP de correo electrónico consta de las dos partes siguientes:

  • Registro de correo electrónico
  • Validación de correo electrónico

Registro de correo electrónico

Hay dos formas de registrar el ID de correo electrónico alternativo de un usuario:

  1. Junto con el registro de la KBA
  2. Solo registro de ID de correo electrónico: este método es compatible con la versión 13.0 de la versión 61.x y versiones posteriores, y de la 12.1, compilación 58.x y versiones posteriores.

Junto con el registro de KBA

Esquema de inicio de sesión de registro de KBA

  1. Vaya a Seguridad > AAA — Tráfico de aplicaciones > Esquema de inicio de sesión > Perfiles y haga clic en Agregar esquemade inicio de sesión de registro de KBA.

    Esquema de inicio de sesión de registro de KBA

  2. Configure el esquema de autenticación del registro de KBA. Este esquema de inicio de sesión, una vez generado, muestra todas las preguntas configuradas para el usuario final durante el proceso de registro. En la sección Registro de correo electrónico, active la opción Registrar correo electrónico alternativo para registrar el ID de correo electrónico alternativo del usuario.

    Esquema de inicio de sesión de autenticación

    Preguntas definidas por el usuario

  3. En la sección Registro de correo electrónico, marca Registrar correo electrónico alternativo para registrar un ID de correo electrónico alternativo.

    Registrar correo electrónico alternativo

Realice la siguiente configuración mediante la línea de comandos de la CLI después de crear correctamente el esquema de registro de KBA mencionado anteriormente.

  1. Vincule el tema y el certificado del portal a la VPN global.

    bind authentication vserver authvs -portaltheme RfWebUI
    bind vpn global -userDataEncryptionKey c1
    <!--NeedCopy-->
    

    Es necesario vincular previamente el certificado para cifrar los datos de usuario (preguntas y respuestas de KB y un ID de correo electrónico alternativo registrado) almacenados en el atributo AD

  2. Cree una directiva de autenticación LDAP.

    add authentication ldapAction ldap -serverIP 10.102.2.2 -serverPort 636 -ldapBase "dc=aaatm-test,dc=com" -ldapBindDn administrator@aaatm-test.com -ldapBindDnPassword freebsd -ldapLoginName samAccountName -secType SSL
    add authentication Policy ldap -rule true -action ldap
    <!--NeedCopy-->
    
  3. Cree un esquema de inicio de sesión de registro de KBA y una etiqueta de directiva.

    add authentication loginSchema Registrationschema -authenticationSchema /nsconfig/loginschema/LoginSchema/KBARegistrationSchema.xml [This is the authentication schema created in the previous section.]
    add authentication policylabel Registrationfactor -loginSchema Registrationschema
    add authentication ldapAction ldap_registration -serverIP 10.102.2.2 -serverPort 636 -ldapBase "dc=aaatm-test,dc=com" -ldapBindDn administrator@aaatm-test.com -ldapBindDnPassword freebsd -ldapLoginName samAccountName -secType SSL  -KBAttribute userParameters -alternateEmailAttr userParameters
    add authentication Policy ldap_registration -rule true -action ldap_registration
    bind authentication policylabel Registrationfactor -policyName ldap_registration -priority 1 -gotoPriorityExpression NEXT
    <!--NeedCopy-->
    
  4. Enlazar la directiva de autenticación al servidor virtual de autenticación.

    bind authentication vserver authvs – policy ldap -priority 1 -nextFactor Registrationfactor -gotoPriorityExpression NEXT
    <!--NeedCopy-->
    
  5. Una vez que haya configurado todos los pasos mencionados en las secciones anteriores, debe ver la siguiente pantalla GUI. Al acceder a través de una URL, por ejemplo, se https://lb1.server.com/ le presenta una página de inicio de sesión que solo requiere la credencial de inicio de sesión de LDAP.

    Página de inicio de sesión en dos

  6. Después de iniciar sesión con una credencial válida, verá la página de registro de usuario de la siguiente manera.

    Inicio de sesión de registro en KBA

  7. Haga clic en Enviar para que el registro del usuario se realice correctamente y se cree la sesión.

Solo registro de ID de correo electrónico

Realice la siguiente configuración mediante la línea de comandos de la CLI después de crear correctamente el esquema de registro de KBA mencionado anteriormente:

  1. Vincule el tema y el certificado del portal a la VPN global.

    bind authentication vserver authvs -portaltheme RfWebUI
    bind vpn global -userDataEncryptionKey c1
    <!--NeedCopy-->
    

    Se requiere vincular un certificado anterior para cifrar los datos de usuario (preguntas y respuestas de KB e ID de correo alternativo registrado) almacenados en el atributo AD.

  2. Cree una directiva de autenticación LDAP.

    add authentication ldapAction ldap -serverIP 10.102.2.2 -serverPort 636 -ldapBase "dc=aaatm-test,dc=com" -ldapBindDn administrator@aaatm-test.com -ldapBindDnPassword freebsd -ldapLoginName samAccountName -secType SSL
    add authentication Policy ldap -rule true -action ldap
    <!--NeedCopy-->
    
  3. Cree una directiva de autenticación LDAP para el registro de correo electrónico.

    add authentication ldapAction ldap_email_registration -serverIP 10.102.2.2 -serverPort 636 -ldapBase "dc=aaatm-test,dc=com" -ldapBindDn administrator@aaatm-test.com -ldapBindDnPassword freebsd -ldapLoginName samAccountName -secType SSL -KBAttribute userParameters -alternateEmailAttr userParameters
    add authentication Policy ldap_email_registration -rule true -action ldap_email_registration
    <!--NeedCopy-->
    
  4. Cree un esquema de inicio de sesión de registro por correo electrónico y una etiqueta de directiva.

    add authentication loginSchema onlyEmailRegistration -authenticationSchema /nsconfig/loginschema/LoginSchema/AltEmailRegister.xml
    add authentication policylabel email_Registration_factor -loginSchema onlyEmailRegistration
    bind authentication policylabel email_Registration_factor -policyName ldap_email_registration -priority 1 -gotoPriorityExpression NEXT
    <!--NeedCopy-->
    
  5. Enlazar la directiva de autenticación al servidor virtual de autenticación.

    bind authentication vserver authvs –policy ldap -priority 1 -nextFactor email_Registration_factor -gotoPriorityExpression NEXT
    <!--NeedCopy-->
    
  6. Una vez que haya configurado todos los pasos mencionados en las secciones anteriores, debe ver la siguiente pantalla GUI. Al acceder a través de una URL, por ejemplo, se https://lb1.server.com/ le presenta una página de inicio de sesión inicial que solo requiere la credencial de inicio de sesión de LDAP, seguida de una página de registro de correo electrónico alternativa.

    Página de inicio de sesión en dos

    Inicio de sesión de registro de correo

Validación de correo electrónico

Realice los siguientes pasos para la validación del correo electrónico.

  1. Enlace el tema y el certificado del portal a la VPN global

    bind authentication vserver authvs -portaltheme RfWebUI
    bind vpn global -userDataEncryptionKey c1
    <!--NeedCopy-->
    

    Es necesario vincular previamente el certificado para descifrar los datos de usuario (preguntas y respuestas de KB y un ID de correo electrónico alternativo registrado) almacenados en el atributo AD.

  2. Cree una directiva de autenticación LDAP. LDAP debe ser un factor previo al factor de validación del correo electrónico porque necesita el ID de correo electrónico del usuario o un ID de correo electrónico alternativo para la validación OTP del correo electrónico

    add authentication ldapAction ldap1 -serverIP 10.102.2.2 -serverPort 636 -ldapBase "dc=aaatm-test,dc=com" -   ldapBindDn administrator@aaatm-test.com -ldapBindDnPassword freebsd -ldapLoginName samAccountName -secType SSL -KBAttribute userParameters -alternateEmailAttr userParameters
    add authentication Policy ldap1 -rule true -action ldap1
    <!--NeedCopy-->
    
  3. Crear una directiva de autenticación de correo electrónico

    add authentication emailAction email -userName sqladmin@aaa.com -password freebsd-encrypted -encryptmethod ENCMTHD_3 -serverURL "smtps://10.2.3.3:25" -content "OTP is $code" -defaultAuthenticationGroup emailgrp -emailAddress "aaa.user.attribute("alternate_mail")"
    add authentication Policy email -rule true –action email
    <!--NeedCopy-->
    

    En el comando mencionado anteriormente, la dirección de correo electrónico es el usuario de ID de correo electrónico alternativo proporcionado durante el registro de KBA.

  4. Cree una etiqueta de directiva de validación OTP de correo electrónico.

    add authentication policylabel email_Validation_factor
    bind authentication policylabel email_Validation_factor -policyName email -priority 1 -gotoPriorityExpression NEXT
    <!--NeedCopy-->
    
  5. Enlazar la directiva de autenticación al servidor virtual de autenticación

    bind authentication vserver authvs – policy ldap1 -priority 1 -nextFactor email_Validation_factor -gotoPriorityExpression NEXT
    <!--NeedCopy-->
    
  6. Una vez que haya configurado todos los pasos mencionados en las secciones anteriores, debe ver la siguiente pantalla de GUI para la validación OTP de CORREO ELECTRÓNICO. Al acceder a través de una URL, por ejemplo, se https://lb1.server.com/ le presenta una página de inicio de sesión inicial que solo requiere la credencial de inicio de sesión de LDAP seguida de la página de validación de OTP de CORREO ELECTRÓNICO.

    En la directiva de LDAP, es importante configurar AlternateEmailAttr para poder consultar el identificador de correo electrónico del usuario desde el atributo AD.

    Página de inicio de sesión en dos

    OTP del correo electrónico

Solución de problemas

Antes de analizar el registro, es mejor configurar el nivel de registro para depurar de la siguiente manera.

set syslogparams -loglevel DEBUG
<!--NeedCopy-->

Registro: caso exitoso

Las siguientes entradas indican que el registro de usuario se ha realizado correctamente.

"ns_aaa_insert_hash_keyValue_entry key:kba_registered value:1"
Nov 14 23:35:51 <local0.debug> 10.102.229.76 11/14/2018:18:05:51 GMT  0-PPE-1 : default SSLVPN Message 1588 0 :  "ns_aaa_insert_hash_keyValue_entry key:alternate_mail value:eyJ2ZXJzaW9uIjoiMSIsICJraWQiOiIxbk1oWjN0T2NjLVVvZUx6NDRwZFhxdS01dTA9IiwgImtleSI6IlNiYW9OVlhKNFhUQThKV2dDcmJSV3pxQzRES3QzMWxINUYxQ0tySUpXd0h4SFRIdVlWZjBRRTJtM0ZiYy1RZmlQc0tMeVN2UHpleGlJc2hmVHZBcGVMZjY5dU5iYkYtYXplQzJMTFF1M3JINFVEbzJaSjdhN1pXUFhqbUVrWGdsbjdUYzZ0QWtqWHdQVUI3bE1FYVNpeXhNN1dsRkZXeWtNOVVnOGpPQVdxaz0iLCAiaXYiOiI4RmY3bGRQVzVKLVVEbHV4IiwgImFsZyI6IkFFUzI1Nl9HQ00ifQ==.oKmvOalaOJ3a9z7BcGCSegNPMw=="

<!--NeedCopy-->

Registro: caso fallido

En la página de inicio de sesión del usuario, aparece el siguiente mensaje de error: “No se puede completar la solicitud”. Esto indica que falta la clave de certificado que se asignará a VPN global para cifrar los datos del usuario.

Jul 31 08:51:46 <local0.info> 10.102.229.79 07/31/2020:03:21:4 6 GMT  0-PPE-1 : default SSLVPN Message 696 0 :  "Encrypt UserData: No Encryption cert is bound to vpn global"
Jul 31 08:51:46 <local0.info> 10.102.229.79 07/31/2020:03:21:46 GMT  0-PPE-1 : default SSLVPN Message 697 0 :  "KBA Register: Alternate email id Encrypted blob length is ZERO aaauser"
<!--NeedCopy-->

Validación de correo electrónico: caso exitoso

Las siguientes entradas indican que la validación OTP de correo electrónico se ha realizado correctamente.

"NFactor: Successfully completed email auth, nextfactor is pwd_reset"
<!--NeedCopy-->

Validación de correo electrónico: caso fallido

En la página de inicio de sesión del usuario, aparece el mensaje de error “No se puede completar la solicitud”. Esto indica que la autenticación basada en el inicio de sesión no está habilitada en el servidor de correo electrónico y que lo mismo debe habilitarse.

" /home/build/rs_130_36_15_RTM/usr.src/netscaler/aaad/pocomail.cpp[100]: void ThreadWorker_SendMailJob(SMTPJob*) 0-215: [POCO][JobID: 8]SMTP Configuration is Secure..
/home/build/rs_130_36_15_RTM/usr.src/netscaler/aaad/pocomail.cpp[108]: void ThreadWorker_SendMailJob(SMTPJob*) 0-215: [POCO][JobID: 8] First login succeeded
Wed Mar  4 17:16:28 2020
/home/build/rs_130_36_15_RTM/usr.src/netscaler/aaad/naaad.c[697]: main 0-0: timer 2 firing...
/home/build/rs_130_36_15_RTM/usr.src/netscaler/aaad/pocomail.cpp[127]: void ThreadWorker_SendMailJob(SMTPJob*) 0-0: [POCO-ERROR][JobID: 8] Poco SMTP Mail Dispatch  Failed. SMTP TYPE:1, SMTPException: Exception occurs. SMTP Exception: The mail service does not support LOGIN authentication: 250-smtprelay.citrix.com Hello [10.9.154.239]
250-SIZE 62914560
250-PIPELINING
250-DSN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-BINARYMIME
250 CHUNKING
<!--NeedCopy-->
Correo electrónico OTP