Autenticación de OTP
La OTP de correo electrónico se presenta con Citrix ADC 12.1 compilación 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 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
- Para obtener más información, consulte https://support.citrix.com/pages/citrix-adc-authentication-how#nfactor
- Compatible con AAA-TM, Citrix Gateway (explorador, plug-in nativo y Receiver).
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 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. Citrix ADC solo admite la autenticación basada en AUTH LOGIN para que funcione la OTP de correo electrónico.
-
Para asegurarse de que la autenticación basada en AUTH LOGIN 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.
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 el identificador de correo electrónico alternativo de la página de registro de KBA no se puede actualizar.
- La autenticación OTP de correo electrónico no puede ser el primer factor en el flujo de autenticación. Esto es por diseño para lograr una autenticación sólida.
- Si tanto el Id. de correo electrónico alternativo como el KBA se configuran con la misma acción de autenticación, el atributo debe ser el mismo para ambos.
- Para el complemento nativo y Receiver, el registro solo se admite a través de un navegador.
Configurar Active Directory
-
La 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, el ID de correo electrónico se envía al dispositivo Citrix ADC y el dispositivo lo almacena en el atributo KB configurado en el 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 del nombre de atributo admitida debe tener al menos 128 caracteres.
- El tipo de atributo debe ser “DirectoryString”.
- Se puede usar el mismo atributo de AD para los datos de registro de OTP nativa y OTP de correo electrónico.
- 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 Userparameters
. 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.
Configurar OTP de correo electrónico
La solución OTP de correo electrónico consta de las dos partes siguientes:
- Registro por correo electrónico
- Validación de correo
Registro de ID de correo
Realice la siguiente configuración mediante la CLI después de que el esquema de registro de KBA se haya creado correctamente:
-
Enlace el tema del portal y el certificado a la VPN global.
bind authentication vserver authvs -portaltheme RfWebUI bind vpn global -userDataEncryptionKey c1 <!--NeedCopy-->
Nota:
Se requiere un enlace de certificado anterior para cifrar los datos del usuario (KB Q&A e ID de correo alternativo registrado) almacenados en el atributo AD.
-
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-->
-
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-->
-
Cree un esquema de inicio de sesión de registro de correo electrónico y una etiqueta
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-->
-
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-->
-
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 la URL (por ejemplo, https://lb1.server.com/), se 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.
Nota: El dominio https://lb1.server.com/ puede pertenecer a una puerta de enlace o a un servidor virtual de autenticación.
Nota:
Puede usar el mismo esquema de autenticación tanto para el registro de KBA como para el registro de ID de correo electrónico.
Al configurar el registro de KBA, puede seleccionar Registrar correo electrónico alternativo en la sección Registro de correo electrónico para registrar un ID de correo electrónico alternativo.
Validación de correo
Realice los siguientes pasos para la validación del correo electrónico.
-
Enlazar el tema del portal y el certificado a la VPN global
bind authentication vserver authvs -portaltheme RfWebUI bind vpn global -userDataEncryptionKey c1 <!--NeedCopy-->
Nota:
Se requiere la vinculación del certificado anterior para descifrar los datos del usuario (preguntas y respuestas de la KB e ID de correo electrónico alternativo registrado) almacenados en el atributo AD.
-
Cree una directiva de autenticación LDAP. LDAP debe ser un factor anterior 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 OTP de 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-->
-
Cree 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.
-
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-->
-
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-->
-
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 la URL (por ejemplo, https://lb1.server.com/) se 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.
Nota:
En la directiva LDAP, es importante configurar
alternateEmailAttr
para poder consultar la identificación de correo electrónico del usuario desde el atributo AD.
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-->
Inscripción: escenario de éxito
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-->
Inscripción: escenario de fallo
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 vinculará a la 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: escenario 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: escenario de
En la página de inicio de sesión del usuario, se muestra el mensaje de error “No se puede completar su 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-->