ADC

Correo electrónico OTP

El correo electrónico OTP se presenta con Citrix ADC 12.1 compilación 51.x. El método OTP de correo electrónico le permite autenticarse mediante 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 Email OTP, primero debe registrar su ID de correo electrónico alternativo. Se necesita un registro de ID de correo electrónico alternativo para que el OTP pueda enviarse a ese ID de correo, ya que no podrá acceder al ID de correo electrónico principal si hubo un bloqueo de cuenta o en caso de que se olvida 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 Email OTP, revise los siguientes requisitos previos:

  • Función de Citrix ADC 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 Citrix ADC debe tener acceso de escritura a la ruta de acceso de AD del usuario

Servidor de correo electrónico

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

  • 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 inicio de sesión está habilitada, observará que el texto AUTH LOGIN aparece en negrita en la salida.

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

Limitaciones

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

Configuración de Active Directory

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

  • Después de registrar el ID de correo electrónico alternativo, se envían al dispositivo Citrix ADC y el dispositivo lo almacena en el atributo KB configurado en el objeto de usuario de AD.

  • El ID 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 tener al menos 128 caracteres.
  • El tipo de atributo debe ser ‘DirectoryString’.
  • Se puede usar el mismo atributo AD para los datos de registro de OTP nativos y KBA.
  • El administrador de LDAP debe tener acceso de escritura al atributo AD seleccionado.

Uso de atributos existentes

El atributo utilizado en este ejemplo es ‘UserParameters’. Dado que se trata de un atributo existente dentro del usuario de AD, no es necesario realizar ningún cambio en el propio AD. Sin embargo, debe asegurarse de que el atributo no se está usando.

Para asegurarse de que no se utiliza el atributo, 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 del 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 OTP de correo electrónico

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 KBA
  2. Solo registro de ID de correo electrónico: Este método se admite desde la versión 13.0 61.x y superior; y la versión 12.1 58.x y superior.

Junto con el registro de KBA

Registro de KBA LoginSchema

  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 KBA

  2. Configure el esquema de autenticación de 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, marque la opción Registrar correo electrónico alternativo para Registrar ID de correo electrónico alternativo del usuario.

    Esquema de inicio de sesión

    Preguntas definidas por el usuario

  3. En la sección Registro de correo electrónico, marque 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 el símbolo del sistema de la CLI después de que el esquema de registro de KBA mencionado se haya creado correctamente.

  1. Enlazar el tema del portal y el certificado a VPN global.

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

    Se requiere el enlace de certificado anterior para cifrar los datos de usuario (Q&A KB y 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 Loginschema y PolicyLabel de registro de KBA.

    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 inicial que solo requiere la credencial de inicio de sesión LDAP.

    Página de acceso de dos factores

  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 de KBA

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

Solo registro de ID de correo electrónico

Realice la siguiente configuración mediante el símbolo del sistema de la CLI después de crear correctamente el esquema de registro de KBA mencionado anteriormente:

  1. Enlazar el tema del portal y el certificado a VPN global.

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

    El enlace de certificado anterior es necesario para cifrar los datos de usuario (Q&A KB y 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. Crear un registro de correo electrónico Loginschema y PolicyLabel.

    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 URL, por ejemplo, se https://lb1.server.com/ le presenta una página de inicio de sesión inicial que solo requiere credenciales de inicio de sesión LDAP seguida de una página de registro de correo electrónico alternativa.

    Página de acceso de dos factores

    Inicio de sesión por correo electrónico

validación de correo electrónico

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

  1. Enlazar tema y certificado del portal a VPN global

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

    Se requiere el enlace de certificado anterior para descifrar los datos de usuario (Q&A KB y 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 de correo electrónico porque necesita el ID de correo electrónico del usuario o el ID de correo electrónico alternativo para la validación de correo electrónico OTP

    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 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 GUI para la validación de OTP de EMAIL. Al acceder a través de URL, por ejemplo, sehttps://lb1.server.com/ le presenta una página de inicio de sesión inicial que solo requiere la credencial de inicio de sesión LDAP seguida de la página de validación de EMAIL OTP.

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

    Página de acceso de dos factores

    OTP de correo electrónico

Solucionar problemas

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

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

Registro: Caso correcto

Las siguientes entradas indican un registro de usuario correcto.

"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 certkey que se va a delimitar 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 correcto

Las siguientes entradas indican una validación de correo electrónico OTP correcta.

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

Validación de correo electrónico: Caso erró

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 debe habilitarse la misma.

" /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