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 engrasdans 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.
- 如果l ' id de messagerie alternatif et le KBA是有限公司nfiguré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.
上次ID d 'e-mail est crypte et stocke在L特tribut 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 estUserparameters
. 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 àADSIet 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 pourUserParametersnon 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
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.
添加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
Créez une stratégie d’authentification LDAP pour l’enregistrement des e-mails.
添加身份验证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
Créez un schéma de connexion et une étiquette de stratégie pour l’enregistrement des e-mails.
添加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
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
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 domainehttps://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électionnerEnregistrer une autre adresse e-maildans 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
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.
添加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
Créez une stratégie d’authentification des e-mails.
添加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
Dans la commande mentionnée précédemment, l’adresse e-mailest 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.
添加authentication policylabel email_Validation_factor bind authentication policylabel email_Validation_factor -policyName email -priority 1 -gotoPriorityExpression NEXT
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
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
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 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=="
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 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 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"
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"
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