Authentification OTP par e-mail
L’OTP de messagerie est introduit avec NetScaler 12.1 build 51.x. La méthode OTP par e-mail vous permet de vous authentifier à l’aide du mot de passe à usage unique (OTP) envoyé à l’adresse e-mail enregistrée. Lorsque vous essayez de vous authentifier sur n’importe quel service, le serveur envoie un OTP à l’adresse e-mail enregistrée de l’utilisateur.
Pour utiliser la fonctionnalité E-mail OTP, vous devez d’abord enregistrer votre autre adresse e-mail. Un autre enregistrement d’identifiant de messagerie est nécessaire pour que l’OTP puisse être envoyé à cet identifiant de messagerie, car vous ne pourrez pas accéder à l’adresse e-mail principale en cas de verrouillage du compte ou en cas d’oubli du mot de passe AD.
Vous pouvez utiliser la validation OTP d’e-mail sans enregistrement d’identifiant d’e-mail si vous avez déjà fourni l’autre ID d’e-mail dans le cadre d’un attribut AD. Vous pouvez faire référence au même attribut dans l’action e-mail au lieu de spécifier l’autre ID e-mail dans la section Adresse e-mail.
Composants requis
Avant de configurer la fonctionnalité OTP par e-mail, passez en revue les conditions préalables suivantes :
- Fonctionnalité NetScaler version 12.1 build 51.28 et versions ultérieures
- La fonctionnalité OTP des e-mails est disponible uniquement dans le flux d’authentification nFactor
- Pour plus de détails, reportez-vous à https://support.citrix.com/pages/citrix-adc-authentication-how#nfactor
- Compatible avec AAA-TM, NetScaler Gateway (navigateur, plug-in natif et récepteur).
Paramètre Active Directory
- La version prise en charge est le niveau de fonction du domaine Active Directory 2016/2012 et 2008
- Le nom d’utilisateur NetScaler LDAPbind doit disposer d’un accès en écriture au chemin AD de l’utilisateur
Serveur de messagerie
-
Pour que la solution Email OTP fonctionne, assurez-vous que l’authentification basée sur la connexion est activée sur le serveur SMTP. NetScaler prend uniquement en charge l’authentification basée sur AUTH LOGIN pour que Email OTP fonctionne.
-
Pour vous assurer que l’authentification basée sur AUTH LOGIN est activée, tapez la commande suivante sur le serveur SMTP. Si l’authentification basée sur la connexion est activée, vous remarquerez que le texte AUTH LOGIN apparaît en gras dans la sortie.
Limitations
- Cette fonctionnalité n’est prise en charge que si le back-end d’authentification est LDAP.
- L’autre adresse e-mail déjà enregistrée est introuvable.
- Seul l’autre adresse e-mail de la page d’inscription KBA ne peut pas être mise à jour.
- L’authentification OTP par e-mail ne peut pas être le premier facteur du flux d’authentification. Ceci est conçu pour obtenir une authentification robuste.
- Si l’ID de messagerie alternatif et le KBA sont configurés à l’aide de la même action d’authentification, l’attribut doit être le même pour les deux.
- Pour le module externe natif et Receiver, l’enregistrement est pris en charge uniquement via un navigateur.
Configuration d’Active Directory
-
L’OTP de messagerie utilise l’attribut Active Directory comme stockage des données utilisateur.
-
Une fois que vous avez enregistré l’identifiant de messagerie secondaire, celui-ci est envoyé à l’appliance NetScaler et l’appliance le stocke dans l’attribut KB configuré de l’objet utilisateur AD.
-
L’autre ID d’e-mail est crypté et stocké dans l’attribut AD configuré.
Lors de la configuration d’un attribut AD, prenez en compte les points suivants :
- La longueur du nom d’attribut prise en charge doit comporter au moins 128 caractères.
- Le type d’attribut doit être « DirectoryString ».
- Le même attribut AD peut être utilisé pour les données d’enregistrement OTP natives et OTP par e-mail.
- L’administrateur LDAP doit disposer d’un accès en écriture à l’attribut AD sélectionné.
Utilisation d’attributs existants
L’attribut utilisé dans cet exemple est Userparameters
. Comme il s’agit d’un attribut existant au sein de l’utilisateur AD, vous n’avez pas besoin d’apporter de modifications à l’AD lui-même. Cependant, vous devez vous assurer que l’attribut n’est pas utilisé.
Pour vous assurer que l’attribut n’est pas utilisé, accédez à ADSI et sélectionnez l’utilisateur, cliquez avec le bouton droit de la souris sur l’utilisateur et faites défiler jusqu’à la liste des attributs. Vous devez voir la valeur d’attribut pour UserParametersnon définie. Cela indique que l’attribut n’est pas utilisé pour le moment.
Configurer l’OTP par e-mail
La solution OTP pour les e-mails comprend les deux parties suivantes :
- Inscription par e-mail
- Validation des e-mails
Enregistrement de l’adresse e-mail
Effectuez la configuration suivante à l’aide de l’interface de ligne de commande après la création réussie du schéma d’enregistrement KBA :
-
Liez le thème du portail et le certificat au VPN global.
bind authentication vserver authvs -portaltheme RfWebUI bind vpn global -userDataEncryptionKey c1 <!--NeedCopy-->
Remarque :
La liaison de certificat précédente est requise pour chiffrer les données utilisateur (Q&R de la base de connaissances et ID de messagerie secondaire enregistré) stockées dans l’attribut AD.
-
Créez une stratégie d’authentification 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-->
-
Créez une stratégie d’authentification LDAP pour l’enregistrement des e-mails.
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-->
-
Créez un schéma de connexion et une étiquette de stratégie pour l’enregistrement des e-mails.
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-->
-
Liez la stratégie d’authentification au serveur virtuel d’authentification.
bind authentication vserver authvs –policy ldap -priority 1 -nextFactor email_Registration_factor -gotoPriorityExpression NEXT <!--NeedCopy-->
-
Une fois que vous avez configuré toutes les étapes mentionnées dans les sections précédentes, vous devez voir l’écran graphique suivant. Lors de l’accès via l’URL, par exemple, https://lb1.server.com/ une page de connexion initiale qui nécessite uniquement les informations d’identification de connexion LDAP s’affiche, suivie d’une autre page d’inscription par e-mail.
Remarque : Le domaine https://lb1.server.com/ peut appartenir à une passerelle ou à un serveur virtuel d’authentification.
Remarque :
Vous pouvez utiliser le même schéma d’authentification pour l’enregistrement KBA et pour l’enregistrement de l’adresse e-mail.
Lors de la configuration de l’enregistrement KBA, vous pouvez sélectionner Enregistrer une autre adresse e-mail dans la section Enregistrement par e-mail pour enregistrer un autre identifiant d’e-mail.
Validation des e-mails
Procédez comme suit pour la validation des e-mails.
-
Liez le thème du portail et le certificat au VPN global
bind authentication vserver authvs -portaltheme RfWebUI bind vpn global -userDataEncryptionKey c1 <!--NeedCopy-->
Remarque :
La liaison de certificat précédente est requise pour déchiffrer les données utilisateur (Q&R de la base de connaissances et ID de messagerie secondaire enregistrés) stockées dans l’attribut AD.
-
Créez une stratégie d’authentification LDAP. LDAP doit être un facteur antérieur au facteur de validation de l’e-mail, car vous avez besoin de l’ID e-mail de l’utilisateur ou de l’autre ID e-mail pour la validation OTP de l’e-mail.
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-->
-
Créez une stratégie d’authentification des e-mails.
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-->
Dans la commande mentionnée précédemment, l’adresse e-mail est l’autre ID e-mail fourni par l’utilisateur lors de l’enregistrement KBA.
-
Créez une étiquette de stratégie de validation OTP par e-mail.
add authentication policylabel email_Validation_factor bind authentication policylabel email_Validation_factor -policyName email -priority 1 -gotoPriorityExpression NEXT <!--NeedCopy-->
-
Liez la stratégie d’authentification au serveur virtuel d’authentification.
bind authentication vserver authvs – policy ldap1 -priority 1 -nextFactor email_Validation_factor -gotoPriorityExpression NEXT <!--NeedCopy-->
-
Une fois que vous avez configuré toutes les étapes mentionnées dans les sections précédentes, vous devez voir l’écran graphique suivant pour la validation OTP par E-MAIL. Lors de l’accès via l’URL, par exemple, https://lb1.server.com/ une page de connexion initiale qui nécessite uniquement les informations d’identification d’ouverture de session LDAP, suivie de la page de validation OTP d’EMAIL s’affiche.
Remarque :
Dans la stratégie LDAP, il est important de configurer
alternateEmailAttr
pour pouvoir interroger l’identifiant e-mail de l’utilisateur à partir de l’attribut AD.
Dépannage
Avant d’analyser le journal, il est préférable de définir le niveau de journalisation à déboguer comme suit.
set syslogparams -loglevel DEBUG
<!--NeedCopy-->
Inscription - Scénario réussi
Les entrées suivantes indiquent que l’enregistrement de l’utilisateur a réussi.
"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-->
Enregistrement - Scénario d’échec
Sur la page de connexion de l’utilisateur, le message d’erreur suivant s’affiche, « Impossible de terminer votre demande ». Cela indique que la clé de certification à lier au VPN global pour crypter les données utilisateur est manquante.
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-->
Validation des e-mails — Scénario réussi
Les entrées suivantes indiquent une validation OTP par e-mail réussie.
"NFactor: Successfully completed email auth, nextfactor is pwd_reset"
<!--NeedCopy-->
Validation des e-mails : scénario d’échec
Sur la page de connexion de l’utilisateur, le message d’erreur « Impossible de terminer votre demande » s’affiche. Cela indique que l’authentification basée sur la connexion n’est pas activée sur le serveur de messagerie et qu’elle doit être activée.
" /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-->