Envoyer un e-mail à OTP
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 la connexion Auth pour que Email OTP fonctionne.
-
Pour vous assurer que l’authentification basée sur la connexion Auth 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 et l’enregistrement par KBA et par e-mail OTP ne peuvent pas être les premiers facteurs du flux d’authentification. Ceci est conçu pour obtenir une authentification robuste.
- Le même attribut AD doit être configuré pour KBA et Alternate Email ID si vous utilisez la même action d’authentification LDAP.
- Pour le plug-in natif et Receiver, l’enregistrement n’est possible que via un navigateur.
Configuration d’Active Directory
-
Email OTP utilise l’attribut Active Directory comme stockage des données utilisateur.
-
Une fois que vous avez enregistré l’identifiant de messagerie secondaire, il est envoyé à l’appliance NetScaler qui 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 être d’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 natif et KBA.
- 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 « Paramètres utilisateur ». 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.
Configuration de l’OTP du courrier électronique
La solution OTP pour les e-mails comprend les deux parties suivantes :
- Inscription par e-mail
- Validation des e-mails
Inscription par e-mail
Il existe deux méthodes pour enregistrer l’adresse e-mail secondaire d’un utilisateur :
- Parallèlement à l’enregistrement KBA
- Enregistrement de l’identifiant e-mail uniquement : cette méthode est prise en charge à partir de la version 13.0 version 61.x et ultérieure ; et de la version 12.1 version 58.x et supérieure.
Parallèlement à l’enregistrement au KBA
Schéma de connexion pour l’enregistrement au KBA
-
Accédez à Sécurité > AAA — Trafic d’applications > Schéma de connexion > Profils, puis cliquez sur Ajouter un schéma de connexion d’enregistrement KBA.
-
Configurez le schéma d’authentification d’enregistrement KBA. Ce schéma de connexion, une fois généré, affiche toutes les questions configurées pour l’utilisateur final lors du processus d’enregistrement. Dans la section Inscription par e-mail, cochez l’option Enregistrer l’adresse e-mail alternative pour enregistrer l’adresse e-mail alternative de l’utilisateur.
-
Dans la section Enregistrement des e-mails, cochez Enregistrer un e-mail alternatif pour enregistrer un identifiant e-mail alternatif.
Effectuez la configuration suivante à l’aide de l’invite de commande CLI une fois que le schéma d’enregistrement KBA susmentionné a été créé avec succès.
-
Associez le thème et le certificat du portail au VPN mondial.
bind authentication vserver authvs -portaltheme RfWebUI bind vpn global -userDataEncryptionKey c1 <!--NeedCopy-->
La liaison au certificat préalable est requise pour crypter les données utilisateur (KB Q&A et identifiant e-mail alternatif enregistré) stockées dans l’attribut AD
-
Créez une politique 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 un schéma de connexion d’enregistrement KBA et une étiquette de politique.
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-->
-
Liez la politique d’authentification au serveur virtuel d’authentification.
bind authentication vserver authvs – policy ldap -priority 1 -nextFactor Registrationfactor -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 une URL, par exemple, https://lb1.server.com/ vous accédez à une page de connexion initiale qui ne nécessite que les informations d’identification de connexion LDAP.
-
Une fois connecté avec un identifiant valide, la page d’enregistrement de l’utilisateur s’affiche comme suit.
-
Cliquez sur Soumettre pour que l’enregistrement de l’utilisateur soit réussi et que la session soit créée.
Enregistrement par e-mail uniquement
Effectuez la configuration suivante à l’aide de l’invite de commande CLI une fois que le schéma d’enregistrement KBA susmentionné a été créé avec succès :
-
Associez le thème et le certificat du portail au VPN mondial.
bind authentication vserver authvs -portaltheme RfWebUI bind vpn global -userDataEncryptionKey c1 <!--NeedCopy-->
La liaison préalable au certificat est requise pour crypter les données utilisateur (KB Q&A et identifiant de messagerie alternatif 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 politique 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 pour l’enregistrement par e-mail et une étiquette de politique.
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 politique 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 une URL, par exemple, https://lb1.server.com/ vous accédez à une page de connexion initiale qui ne nécessite que des informations d’identification LDAP, suivie d’une autre page d’inscription par e-mail.
Validation des e-mails
Procédez comme suit pour la validation des e-mails.
-
Associer le thème et le certificat du portail à un VPN mondial
bind authentication vserver authvs -portaltheme RfWebUI bind vpn global -userDataEncryptionKey c1 <!--NeedCopy-->
La liaison de certificat préalable est requise pour déchiffrer les données utilisateur (KB Q&A et identifiant e-mail alternatif enregistré) stockées dans l’attribut AD.
-
Créez une politique d’authentification LDAP. Le LDAP doit être un facteur antérieur au facteur de validation des e-mails, car vous avez besoin de l’identifiant e-mail de l’utilisateur ou d’un autre identifiant de messagerie pour la validation OTP des e-mails
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éation d’une politique 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 politique de validation OTP pour les e-mails.
add authentication policylabel email_Validation_factor bind authentication policylabel email_Validation_factor -policyName email -priority 1 -gotoPriorityExpression NEXT <!--NeedCopy-->
-
Lier la politique 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 une URL, par exemple, https://lb1.server.com/ vous accédez à une page de connexion initiale qui ne nécessite que les informations d’identification de connexion LDAP, suivie de la page de validation EMAIL OTP.
Dans la politique 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 que la validation de l’OTP par e-mail a été 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-->