Citrix ADC

Correo electrónico OTP

El correo electrónico OTP se introduce con Citrix ADC 12.1 compilación 51.x. El método Email OTP 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 un OTP a la dirección de correo electrónico registrada del usuario.

Para utilizar la función de correo electrónico OTP, primero debe registrar su ID de correo electrónico alternativo. Se necesita un registro alternativo de ID de correo electrónico para que el OTP se pueda enviar a ese ID de correo, ya que no podrá acceder al ID de correo electrónico principal si se ha bloqueado la cuenta o si se olvida la contraseña de AD.

Puede utilizar la validación de correo electrónico OTP 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 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 de dirección de correo electrónico.

Requisitos previos

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

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

Configuración de Active Directory

  • La versión admitida es 2016/2012 y 2008 Active Directory nivel de función de dominio
  • 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 de correo electrónico OTP funcione, asegúrese de que la autenticación basada en el inicio de sesión esté habilitada en el servidor SMTP. Citrix ADC solo admite la autenticación basada en el inicio de sesión de autenticación para que funcione Email OTP.

  • 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 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.
  • KBA y Email OTP Autentication and Registration no pueden ser los primeros factores en el flujo de autenticación. Esto es por diseño para lograr una autenticación robusta.
  • El mismo atributo AD debe configurarse para KBA y ID de correo electrónico alternativo si 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

  • El OTP de correo electrónico 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’.
  • El mismo atributo AD se puede utilizar para los datos de registro de OTP y KBA nativos.
  • 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é utilizando.

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 del atributo para UserParameters como no establecido. Esto indica que el atributo no se está utilizando en este momento.

Configuración de atributos de AD

Configuración de Email OTP

La solución de correo electrónico OTP 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

  1. Configurar 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 el ID de correo electrónico alternativo del usuario.

Esquema de acceso de autenticación

Preguntas definidas por el usuario

  1. 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.

Vincular el tema del portal y el certificado a VPN global

bind authentication vserver auth1 -portaltheme RfWebUI
bind vpn global -userDataEncryptionKey c1

El enlace de certificado anterior es necesario para cifrar los datos de usuario (Q&A KB y ID de correo electrónico alternativo registrados) almacenados en el atributo AD

Creación de 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 ldap1

Creación de un esquema de inicio de sesión 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

Vincular directiva de autenticación al servidor virtual de autenticación

bind authentication vserver authvs – policy ldap -priority 1 -nextFactor Registrationfactor -gotoPriorityExpression NEXT
  1. 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, 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:

Página de acceso de dos factores

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

Inicio de sesión de registro de KBA

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

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:

Vincular el tema del portal y el certificado a VPN global

bind authentication vserver auth1 -portaltheme RfWebUI
bind vpn global -userDataEncryptionKey c1

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.

Creación de 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 ldap1

Creación de 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

Creación de un esquema de inicio de sesión y PolicyLabel de registro de correo electrónico

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

Vincular directiva de autenticación al servidor virtual de autenticación

bind authentication vserver authvs – policy ldap -priority 1 -nextFactor email_Registration_factor - gotoPriorityExpression NEXT

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, sehttps://lb1.server.com/ le presenta una página de inicio de sesión inicial que solo requiere una credencial 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

Vincular el tema del portal y el certificado a VPN global

bind authentication vserver auth1 -portaltheme RfWebUI
bind vpn global -userDataEncryptionKey c1

El enlace de certificado anterior es necesario para descifrar los datos de usuario (Q&A KB y ID de correo electrónico alternativo registrados) almacenados en el atributo AD.

Creación de 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

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

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. Correoelectrónico/contraseña es el ID de correo electrónico que un administrador configuraría desde el que se envía el correo electrónico al ID de correo electrónico alternativo registrado del usuario.

Creación de una etiqueta de directiva de validación de correo electrónico OTP

add authentication policylabel email_Validation_factor
bind authentication policylabel email_Validation_factor -policyName email -priority 1 -gotoPriorityExpression NEXT

Vincular directiva de autenticación al servidor virtual de autenticación

bind authentication vserver authvs – policy ldap1 -priority 1 -nextFactor email_Validation_factor -gotoPriorityExpression NEXT

Una vez que haya configurado todos los pasos mencionados en las secciones anteriores, debe ver la siguiente pantalla GUI para la validación de EMAIL OTP:

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

Registro de NS Antes de analizar el registro, es mejor establecer el nivel de registro para depurar de esta manera:

set syslogparams -loglevel DEBUG

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

Registro: Caso fallido

En la página de inicio de sesión del usuario, vemos “No se puede completar su solicitud” Esto indica que falta certkey para estar delimitado 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"

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"

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