ADC

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

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.

Activer l'authentification basée sur la connexion sur le serveur SMTP

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.

Paramètres des attributs AD

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 :

  1. Parallèlement à l’enregistrement KBA
  2. 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

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

    Schéma de connexion d'enregistrement KBA

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

    Schéma d'authentification et de connexion

    Questions définies par l'utilisateur

  3. Dans la section Enregistrement des e-mails, cochez Enregistrer un e-mail alternatif pour enregistrer un identifiant e-mail alternatif.

    Enregistrer une adresse e-mail alternative

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.

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

  2. 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-->
    
  3. 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-->
    
  4. Liez la politique d’authentification au serveur virtuel d’authentification.

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

    Page de connexion à deux facteurs

  6. Une fois connecté avec un identifiant valide, la page d’enregistrement de l’utilisateur s’affiche comme suit.

    Ouverture de session d'enregistrement KBA

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

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

  2. 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-->
    
  3. 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-->
    
  4. 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-->
    
  5. 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-->
    
  6. 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.

    Page de connexion à deux facteurs

    Connexion à l'enregistrement par e-mail

Validation des e-mails

Procédez comme suit pour la validation des e-mails.

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

  2. 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-->
    
  3. 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.

  4. 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-->
    
  5. 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-->
    
  6. 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.

    Page de connexion à deux facteurs

    OTP à partir d'un e-mail

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-->
Envoyer un e-mail à OTP