ADC

Courriel OTP

Email OTP est introduit avec Citrix ADC 12.1 build 51.x. La méthode Email OTP 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 un service, le serveur envoie un OTP à l’adresse e-mail enregistrée de l’utilisateur.

Pour utiliser la fonction Email OTP, vous devez d’abord enregistrer votre identifiant de messagerie secondaire. Une autre inscription d’ID e-mail est nécessaire pour que l’OTP puisse être envoyé à cet ID de messagerie, car vous ne pourrez pas accéder à l’ID de messagerie principal en cas de verrouillage du compte ou en cas d’oubli du mot de passe AD.

Vous pouvez utiliser la validation Email OTP sans enregistrement d’ID e-mail si vous avez déjà fourni l’ID de messagerie alternatif dans le cadre d’un attribut AD. Vous pouvez vous référer au même attribut dans l’action e-mail au lieu de spécifier l’ID de messagerie alternatif dans la section Adresse de messagerie.

Conditions préalables

Avant de configurer la fonctionnalité Email OTP, consultez les conditions préalables suivantes :

  • Fonctionnalité Citrix ADC version 12.1 build 51.28 et versions ultérieures
  • La fonction Email OTP est disponible uniquement dans le flux d’authentification NFactor

Paramètre Active Directory

  • La version prise en charge est le niveau de fonction de domaine Active Directory 2016/2012 et 2008
  • Le nom d’utilisateur Citrix ADC 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. Citrix ADC prend en charge uniquement l’authentification basée sur la connexion Auth pour que l’OTP Email 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 remarquez 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.
  • Vous ne pouvez pas voir d’autre ID e-mail déjà enregistré.
  • Seul l’ID de messagerie secondaire de la page Enregistrement KBA ne peut pas être mis à jour.
  • L’authentification et l’enregistrement KBA et Email OTP ne peuvent pas être les premiers facteurs du flux d’authentification. C’est par la conception pour obtenir une authentification robuste.
  • Le même attribut AD doit être configuré pour KBA et ID de messagerie secondaire si vous utilisez la même action LDAP d’authentification.
  • Pour le plug-in natif et Receiver, l’enregistrement est pris en charge uniquement via un navigateur.

Configuration d’Active Directory

  • Email OTP utilise l’attribut Active Directory comme stockage de données utilisateur.

  • Une fois que vous avez enregistré l’ID de messagerie secondaire, ils sont envoyés à l’appliance Citrix ADC et l’appliance le stocke dans l’attribut Base de connaissances configurée dans l’objet utilisateur AD.

  • L’ID de messagerie secondaire est chiffré et stocké dans l’attribut AD configuré.

Lors de la configuration d’un attribut AD, tenez compte des éléments 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 et KBA natives.
  • L’administrateur LDAP doit disposer d’un accès en écriture à l’attribut AD sélectionné.

Utilisation des attributs existants

L’attribut utilisé dans cet exemple est « UserParameters ». Étant donné qu’il s’agit d’un attribut existant au sein de l’utilisateur AD, vous n’avez pas besoin d’apporter des 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 utilisateur, cliquez avec le bouton droit de la souris sur l’utilisateur et faites défiler jusqu’à la liste d’attributs. Vous devez voir la valeur d’attribut pour UserParameters comme non définie. Cela indique que l’attribut n’est pas utilisé pour le moment.

Paramètres d'attribut AD

Configuration de la messagerie OTP

La solution Email OTP se compose des deux parties suivantes :

  • Enregistrement e-mail
  • Validation d’e-mail

Enregistrement e-mail

Il existe deux façons d’enregistrer l’ID de messagerie secondaire d’un utilisateur :

  1. Avec l’inscription KBA
  2. Uniquement l’enregistrement de l’ID de messagerie - Cette méthode est prise en charge à partir de 13.0 build 61.x et plus ; et 12.1 build 58.x et supérieur.

Avec l’enregistrement KBA

Schéma de connexion d’enregistrement KBA

  1. Accédez à Sécurité > AAA — Trafic des applications > Schéma de connexion > Profils et cliquez sur Ajouter des journaux d’enregistrement KBASchema.

    Schéma de connexion d'enregistrement KBA

  2. Configurer le schéma d’authentification d’enregistrement KBA. Ce loginschema une fois généré affiche toutes les questions configurées pour l’utilisateur final pendant le processus d’enregistrement. Dans la section Enregistrement par courrier électronique, cochez l’option Enregistrer un autre e-mail pour enregistrer l’ID de messagerie secondaire de l’utilisateur.

    Schéma de connexion d'authentification

    Questions définies par l'utilisateur

  3. Dans la section Enregistrement par courrier électronique, cochez Enregistrer un autre e-mail pour enregistrer un autre ID de messagerie.

    Enregistrer un autre courriel

Procédez à 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. Lier le thème du portail et le certificat à VPN global.

    bind authentication vserver authvs -portaltheme RfWebUI
    bind vpn global -userDataEncryptionKey c1
    <!--NeedCopy-->
    

    La liaison de certificat précédente est requise pour chiffrer les données utilisateur (Q&R Ko et ID de messagerie secondaire 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 un Loginschema d’enregistrement KBA et un Label PolicyLabel.

    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. Lier la stratégie 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 de l’interface graphique suivante. Lors de l’accès via une URL par exemple, https://lb1.server.com/ vous êtes présenté avec une page de connexion initiale qui nécessite uniquement les informations d’identification de connexion LDAP.

    Page de connexion à deux facteurs

  6. Après vous être connecté avec des informations d’identification valides, la page d’enregistrement de l’utilisateur s’affiche comme suit.

    Ouverture de session d'enregistrement KBA

  7. Cliquez sur Soumettre pour que l’inscription des utilisateurs soit réussie et que la session soit créée.

Enregistrement de l’ID de courriel uniquement

Faites la configuration suivante à l’aide de l’invite de commande CLI après la création du schéma d’enregistrement KBA susmentionné :

  1. Lier le thème du portail et le certificat à VPN global.

    bind authentication vserver authvs -portaltheme RfWebUI
    bind vpn global -userDataEncryptionKey c1
    <!--NeedCopy-->
    

    La liaison Cert précédente est requise pour chiffrer les données utilisateur (Q&A Ko et ID de courrier 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 stratégie d’authentification LDAP pour l’enregistrement par courrier électronique.

    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 Loginschema d’enregistrement par e-mail et un Label PolicyLabel.

    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. Lier 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-->
    
  6. Une fois que vous avez configuré toutes les étapes mentionnées dans les sections précédentes, vous devez voir l’écran de l’interface graphique suivante. Lors de l’accès via URL par exemple, https://lb1.server.com/ une page de connexion initiale nécessite uniquement des informations d’identification LDAP suivies d’une autre page d’inscription par e-mail.

    Page de connexion à deux facteurs

    Connexion à l'inscription par e-mail

Validation d’e-mail

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

  1. Lier le thème du portail et le certificat à VPN global

    bind authentication vserver authvs -portaltheme RfWebUI
    bind vpn global -userDataEncryptionKey c1
    <!--NeedCopy-->
    

    La liaison de certificat précédente est requise pour déchiffrer les données utilisateur (Q&A Ko et ID de messagerie secondaire enregistré) stockées dans l’attribut AD.

  2. Créez une stratégie d’authentification LDAP. LDAP doit être un facteur antérieur au facteur de validation des e-mails car vous avez besoin de l’ID de messagerie électronique de l’utilisateur ou de l’ID de messagerie alternatif pour la validation de l’Email OTP

    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éer une stratégie d’authentification par courrier électronique

    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 utilisateur d’ID e-mail fourni lors de l’enregistrement KBA.

  4. Créez une stratégie de validation Email OTP Label.

    add authentication policylabel email_Validation_factor
    bind authentication policylabel email_Validation_factor -policyName email -priority 1 -gotoPriorityExpression NEXT
    <!--NeedCopy-->
    
  5. Lier 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-->
    
  6. Une fois que vous avez configuré toutes les étapes mentionnées dans les sections précédentes, vous devez voir l’écran de l’interface graphique suivante pour la validation EMAIL OTP. Lors de l’accès via URL par exemple, https://lb1.server.com/ vous recevez une page de connexion initiale qui nécessite uniquement les informations d’identification de connexion LDAP suivies de la page E-MAIL OTP Validation.

    Dans la stratégie LDAP, il est important de configurer AlternateEmailattr pour pouvoir interroger l’identifiant de messagerie de l’utilisateur à partir de l’attribut AD.

    Page de connexion à deux facteurs

    OTP à partir d'un e-mail

Résolution des problèmes

Avant d’analyser le journal, il est préférable de définir le niveau du journal à déboguer comme suit.

set syslogparams -loglevel DEBUG
<!--NeedCopy-->

Enregistrement — Scénario réussi

Les entrées suivantes indiquent une inscription d’utilisateur réussie.

"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 échoué

Sur la page de connexion de l’utilisateur, le message d’erreur suivant s’affiche, « Impossible de compléter votre demande ». Cela indique que certkey à délimitée à VPN global pour chiffrer les données utilisateur est manquant.

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 de réussite

Les entrées suivantes indiquent une validation Email OTP 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 compléter 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 que la même chose 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-->
Courriel OTP