Citrix ADC

Prise en charge OTP native pour l’authentification

Citrix ADC prend en charge les mots de passe à usage unique (OTP) sans avoir à utiliser de serveur tiers. Le mot de passe à usage unique est une option hautement sécurisée pour l’authentification auprès de serveurs sécurisés, car le numéro ou le code d’accès généré est aléatoire. Auparavant, des entreprises spécialisées, telles que RSA avec des appareils spécifiques générant des nombres aléatoires, proposaient les OTP. Ce système doit être en communication constante avec le client pour générer un nombre attendu par le serveur.

En plus de réduire les dépenses d’investissement et d’exploitation, cette fonctionnalité améliore le contrôle de l’administrateur en conservant l’intégralité de la configuration sur l’appliance Citrix ADC.

Remarque

Étant donné que les serveurs tiers ne sont plus nécessaires, l’administrateur Citrix ADC doit configurer une interface pour gérer et valider les machines utilisateur.

L’utilisateur doit être inscrit auprès d’un serveur virtuel Citrix ADC pour utiliser la solution OTP. L’enregistrement n’est requis qu’une seule fois par appareil unique et peut être limité à certains environnements. La configuration et la validation d’un utilisateur enregistré sont similaires à la configuration d’une stratégie d’authentification supplémentaire.

Avantages de la prise en charge du protocole OTP natif

  • Réduit les coûts d’exploitation en éliminant la nécessité de disposer d’une infrastructure supplémentaire sur un serveur d’authentification en plus d’Active Directory.
  • Consolide la configuration uniquement sur l’appliance Citrix ADC, offrant ainsi un excellent contrôle aux administrateurs.
  • Élimine la dépendance du client à un serveur d’authentification supplémentaire pour générer un nombre attendu par les clients.

Workflow OTP natif

La solution OTP native est un processus à deux volets et le flux de travail est classé comme suit :

  • Enregistrement de l’appareil
  • Connexion de l’utilisateur final

Important : Vous pouvez ignorer le processus d’enregistrement si vous utilisez des solutions tierces ou si vous gérez d’autres appareils en dehors de l’appliance Citrix ADC. La chaîne finale que vous ajoutez doit être au format spécifié par Citrix ADC.

La figure suivante illustre le flux d’enregistrement des appareils pour enregistrer un nouveau périphérique à recevoir OTP.

Flux de travail OTP

Remarque : L’enregistrement de l’appareil peut être effectué à l’aide d’un certain nombre de facteurs. Le facteur unique (tel que spécifié dans la figure précédente) est utilisé à titre d’exemple pour expliquer le processus d’enregistrement des appareils.

La figure suivante illustre la vérification de l’OTP via l’appareil enregistré.

Flux de travail de vérification OTP

La figure suivante illustre le flux d’enregistrement et de gestion des appareils.

Enregistrement et gestion des appareils

La figure suivante illustre le flux de l’utilisateur final pour la fonctionnalité OTP native.

Workflow de l'utilisateur

Conditions préalables

Pour utiliser la fonctionnalité OTP native, assurez-vous que les conditions préalables suivantes sont remplies.

  • La version de la fonctionnalité Citrix ADC est 12.0 build 51.24 et ultérieur.
  • La licence Advanced ou Premium Edition est installée sur Citrix Gateway.
  • Citrix ADC est configuré avec une adresse IP de gestion et la console de gestion est accessible à la fois à l’aide d’un navigateur et d’une ligne de commande.
  • Citrix ADC est configuré avec l’authentification, l’autorisation et l’audit du serveur virtuel pour authentifier les utilisateurs. Pour plus d’informations, voir AAA
  • L’appliance Citrix ADC est configurée avec Unified Gateway et le profil d’authentification, d’autorisation et d’audit est attribué au serveur virtuel Gateway.
  • La solution OTP native est limitée au flux d’authentification nFactor. Des stratégies avancées sont nécessaires pour configurer la solution. Pour plus de détails, voir OTP natif

Vérifiez également ce qui suit pour Active Directory :

  • La longueur minimale des attributs est de 256 caractères.
  • Le type d’attribut doit être « DirectoryString », par exemple UserParameters. Ces attributs peuvent contenir des valeurs de chaîne.
  • Le type de chaîne d’attribut doit être Unicode, si le nom de l’appareil est en caractères non anglais.
  • L’administrateur LDAP Citrix ADC doit disposer d’un accès en écriture à l’attribut AD sélectionné.
  • L’appliance Citrix ADC et la machine cliente doivent être synchronisées avec un serveur de temps réseau commun.

Configuration du protocole OTP natif à l’aide de l’interface graphique

L’enregistrement OTP natif n’est pas seulement une authentification à facteur unique. Les sections suivantes vous aident à configurer l’authentification à un facteur et à un deuxième facteur.

Créer un schéma de connexion pour le premier facteur

  1. Accédez à Sécurité AAA > Trafic des applications > Schéma de connexion.
  2. Accédez à Profils et cliquez sur Ajouter.
  3. Sur la page Créer un schéma de connexion d’authentification, saisissez lschema_single_auth_manage_otp dans le champ Nom et cliquez sur Modifier en regard de noschema.
  4. Cliquez sur le dossier LoginSchema .
  5. Faites défiler l’écran vers le bas pour sélectionner SingleAuth.xml, puis cliquez sur Sélectionner.
  6. Cliquez sur Create.
  7. Cliquez sur Stratégies, puis sur Ajouter.
  8. Dans l’écran Créer une stratégie de schéma de connexion d’authentification, entrez les valeurs suivantes.

    Nom : lpol_single_auth_manage_otp_by_url

    Profil : Sélectionnez lschema_single_auth_manage_otp dans la liste.

    Règle : HTTP.REQ.COOKIE.VALUE (« NSC_TASS ») .EQ ( »manageotp« )

Configuration du serveur virtuel d’authentification, d’autorisation et d’audit

  1. Accédez à Sécurité > AAA — Trafic des applications > Serveurs virtuels d’authentification. Cliquez pour modifier le serveur virtuel existant. Pour plus d’informations, voir AAA

  2. Cliquez sur l’icône + en regard de Schemas de connexion sous Paramètres avancés dans le volet droit.
  3. Sélectionnez Aucun schéma de connexion.
  4. Cliquez sur la flèche et sélectionnez la stratégie lpol_single_auth_manage_otp_by_url, cliquez sur Sélectionner, puis sur Lier.
  5. Faites défiler la page vers le haut et sélectionnez 1 Stratégie d’authentification sous Stratégie d’authentification avancée .
  6. Cliquez avec le bouton droit sur la stratégie nFactor et sélectionnez Modifier la liaison . Cliquez avec le bouton droit sur la stratégie nFactor déjà configurée ou reportez-vous à NFactor pour en créer une et sélectionner Modifier la liaison.
  7. Cliquez sur la flèche située sous Sélectionner le facteur suivant, pour sélectionner une configuration existante ou cliquez sur Ajouter pour créer un nouveau facteur.
  8. Dans l’écran Créer une stratégie d’authentification, entrez ce qui suit et cliquez sur Continuer :

    Nom : manage_otp_flow_label

    Schéma de connexion : Lschema_Int

  9. Sur l’écran Étiquette de stratégie d’authentification, cliquez sur Ajouter pour créer une stratégie.

    Create a policy for a normal LDAP server.

  10. Dans l’écran Créer une stratégie d’authentification, entrez les éléments suivants :

    Nom : auth_pol_ldap_native_otp

  11. Sélectionnez le type d’action comme LDAP à l’aide de la liste Type d’action .
  12. Dans le champ Action, cliquez sur Ajouter pour créer une action.

    Create the first LDAP action with authentication enabled to be used for single factor.

  13. Dans la page Créer une authentification serveur LDAP, sélectionnez le bouton radio IP du serveur, désactivez la case à cocher en regard de Authentification, entrez les valeurs suivantes et sélectionnez Tester la connexion . Voici un exemple de configuration.

    Nom : ldap_native_otp

    Adresse IP : 192.168.xx.xx

    DN de base : DC=Formation, DC=Lab

    Administrateur : Administrator@training.lab

    mot de passe : xxxxx

    Create a policy for OTP .

  14. Dans l’écran Créer une stratégie d’authentification, entrez les éléments suivants :

    Nom : auth_pol_ldap_otp_action

  15. Sélectionnez le type d’action comme LDAP à l’aide de la liste Type d’action .
  16. Dans le champ Action, cliquez sur Ajouter pour créer une action.

    Create the second LDAP action to set OTP authenticator with OTP secret configuration and authentication unchecked.

  17. Dans la page Créer une authentification serveur LDAP, sélectionnez le bouton radio IP du serveur, désactivez la case à cocher en regard de Authentification, entrez les valeurs suivantes et sélectionnez Tester la connexion . Voici un exemple de configuration.

    Nom : ldap_otp_action

    Adresse IP : 192.168.xx.xx

    DN de base : DC=Formation, DC=Lab

    Administrateur : Administrator@training.lab

    mot de passe : xxxxx

  18. Faites défiler l’écran jusqu’à la section Autres paramètres . Utilisez le menu déroulant pour sélectionner les options suivantes. Attribut de nom d’ouverture de session du serveur comme nouveau et saisissez userprincipalname.
  19. Utilisez le menu déroulant pour sélectionner Attribut de nom SSO comme Nouveau et saisissez userprincipalname.
  20. Saisissez « UserParameters » dans le champ secret OTP et cliquez sur Plus.
  21. Saisissez les attributs suivants.

    Attribut 1 = mail Attribut 2 = ObjectGuid Attribut 3 = ImmutableID

  22. Cliquez sur OK.
  23. Sur la page Créer une stratégie d’authentification, définissez l’expression sur true et cliquez sur Créer.
  24. Sur la page Créer une étiquette de stratégie d’authentification, cliquez sur Liaison, puis sur Terminé.
  25. Sur la page Liaison de stratégie, cliquez sur Liaison.
  26. Dans la page Stratégie d’authentification, cliquez sur Fermer et cliquez sur Terminé .

    Create OTP for OTP verification.

  27. Dans l’écran Créer une stratégie d’authentification, entrez les éléments suivants :

    Nom : auth_pol_ldap_otp_verify

  28. Sélectionnez le type d’action comme LDAP à l’aide de la liste Type d’action .
  29. Dans le champ Action, cliquez sur Ajouter pour créer une action.

    Create the third LDAP action to verify OTP.

  30. Dans la page Créer une authentification serveur LDAP, sélectionnez le bouton radio IP du serveur, désactivez la case à cocher en regard de Authentification, entrez les valeurs suivantes et sélectionnez Tester la connexion . Voici un exemple de configuration.

    Nom : ldap_verify_otp

    Adresse IP : 192.168.xx.xx

    DN de base : DC=Formation, DC=Lab

    Administrateur : Administrator@training.lab

    mot de passe : xxxxx

  31. Faites défiler l’écran jusqu’à la section Autres paramètres . Utilisez le menu déroulant pour sélectionner les options suivantes. Attribut de nom d’ouverture de session du serveur comme nouveau et saisissez userprincipalname.
  32. Utilisez le menu déroulant pour sélectionner Attribut de nom SSO comme Nouveau et saisissez userprincipalname.
  33. Saisissez « UserParameters » dans le champ secret OTP et cliquez sur Plus.
  34. Saisissez les attributs suivants.

    Attribut 1 = mail Attribut 2 = ObjectGuid Attribut 3 = ImmutableID

  35. Cliquez sur OK.
  36. Sur la page Créer une stratégie d’authentification, définissez l’expression sur true et cliquez sur Créer.
  37. Sur la page Créer une étiquette de stratégie d’authentification, cliquez sur Liaison, puis sur Terminé.
  38. Sur la page Liaison de stratégie, cliquez sur Liaison.
  39. Dans la page Stratégie d’authentification, cliquez sur Fermer et cliquez sur Terminé .

Vous ne disposez probablement pas déjà d’une stratégie d’authentification avancée pour votre serveur LDAP normal. Changez le type d’action sur LDAP. Sélectionnez votre serveur LDAP normal, qui est celui sur lequel l’authentification est activée. Saisissez true comme expression. Cette option utilise la stratégie avancée au lieu de la syntaxe classique. Cliquez sur Créer.

Remarque

Le serveur virtuel d’authentification doit être lié au thème du portail RFWebUI. Liez un certificat de serveur au serveur. L’adresse IP du serveur « 1.2.3.5 » doit avoir un nom de domaine complet correspondant, à savoir otpauth.server.com, pour une utilisation ultérieure.

Créer un schéma de connexion pour le deuxième facteur OTP

  1. Accédez à Sécurité > Trafic des applications AAA > Serveurs virtuels. Sélectionnez le serveur virtuel à modifier.
  2. Faites défiler l’écran vers le bas et sélectionnez 1 schéma de connexion.
  3. Cliquez sur Ajouter une liaison.
  4. Dans la section Liaison de stratégie, cliquez sur Ajouter pour ajouter une stratégie.
  5. Sur la page Créer une stratégie de schéma de connexion d’authentification, entrez Nom comme OTP, puis cliquez sur Ajouter pour créer un profil.
  6. Sur la page Créer un schéma de connexion d’authentification, entrez Nom en tant qu’OTP, puis cliquez sur l’icône en forme de crayon en regard de noschema.
  7. Cliquez sur le dossier Loginschema, sélectionnez DualAuthManageOTP.xml, puis cliquez sur Sélectionner.
  8. Cliquez sur Plus et faites défiler vers le bas.
  9. Dans le champ Index des informations d’identification du mot de passe, entrez 1. Ainsi, nFactor enregistre le mot de passe de l’utilisateur dans l’attribut AAA #1, qui peut être utilisé ultérieurement dans une stratégie de trafic vers Single Sign-On to StoreFront. Si ce n’est pas le cas, Citrix Gateway essaie d’utiliser le code secret pour s’authentifier auprès de StoreFront, ce qui ne fonctionne pas.
  10. Cliquez sur Create.
  11. Dans la section Règle, saisissez Vrai. Cliquez sur Create.
  12. Cliquez sur Bind.
  13. Notez les deux facteurs d’authentification. Cliquez sur Fermer, puis sur Terminé .

Stratégie de trafic pour Single Sign-On

  1. Accédez à Citrix Gateway > Stratégies > Trafic.
  2. Dans l’onglet Profils de trafic, cliquez sur Ajouter.
  3. Entrez un nom pour le profil de trafic pour OTP.
  4. Faites défiler vers le bas, dans la zone Expression de mot de passe SSO, entrez ce qui suit, puis cliquez sur Créer. C’est ici que nous utilisons l’attribut mot de passe du schéma de connexion spécifié pour le deuxième facteur OTP.

    http.REQ.USER.ATTRIBUTE(1)

  5. Dans l’onglet Stratégies de trafic, cliquez sur Ajouter.

  6. Dans le champ Nom, entrez un nom pour la stratégie de trafic.

  7. Dans le champ Demander un profil, sélectionnez le profil de trafic que vous avez créé.

  8. Dans la zone Expression, saisissez True. Si votre serveur virtuel Citrix Gateway autorise un VPN complet, modifiez l’expression comme suit.

    http.req.method.eq(post)||http.req.method.eq(get) && false

  9. Cliquez sur Create.

Configurer la stratégie de commutation de contenu pour gérer OTP

Les configurations suivantes sont requises si vous utilisez Unified Gateway.

  1. Accédez à Gestion du trafic > Changement de contenu > Stratégies. Sélectionnez la stratégie de changement de contenu, cliquez avec le bouton droit de la souris et sélectionnez Modifier.

  2. Modifiez l’expression pour évaluer l’instruction OR suivante, puis cliquez sur OK :

is_vpn_url||HTTP.REQ.URL.CONTAINS(“manageotp”)

Configuration du protocole OTP natif à l’aide de la CLI

Vous devez disposer des informations suivantes pour configurer la page de gestion des appareils OTP :

  • IP attribuée au serveur virtuel d’authentification
  • FQDN correspondant à l’adresse IP attribuée
  • Certificat de serveur pour serveur virtuel d’authentification

Remarque : L’OTP natif est une solution Web uniquement.

Pour configurer la page d’enregistrement et de gestion des appareils OTP

Créer un serveur virtuel d’authentification

add authentication vserver authvs SSL 1.2.3.5 443
bind authentication vserver authvs -portaltheme RFWebUI
bind ssl vserver authvs -certkeyname otpauthcert

Remarque : Le serveur virtuel d’authentification doit être lié au thème du portail RFWEbui. Liez un certificat de serveur au serveur. L’adresse IP du serveur « 1.2.3.5 » doit avoir un nom de domaine complet correspondant, à savoir otpauth.server.com, pour une utilisation ultérieure.

Pour créer une action d’ouverture de session LDAP

add authentication ldapAction <LDAP ACTION NAME> -serverIP <SERVER IP> -  serverPort <SERVER PORT> -ldapBase <BASE> -ldapBindDn <AD USER> -ldapBindDnPassword <PASSWO> -ldapLoginName <USER FORMAT>

Exemple :

add authentication ldapAction ldap_logon_action -serverIP 1.2.3.4 -serverPort 636 -ldapBase "OU=Users,DC=server,DC=com" -ldapBindDn administrator@ctxnsdev.com -ldapBindDnPassword PASSWORD -ldapLoginName userprincipalname

Pour ajouter une stratégie d’authentification pour l’ouverture de session LDAP

add authentication Policy auth_pol_ldap_logon -rule true -action ldap_logon_action

Pour présenter l’interface utilisateur via LoginsChema

Afficher le champ nom d’utilisateur et le champ de mot de passe aux utilisateurs lors de l’ouverture de session

add authentication loginSchema lschema_single_auth_manage_otp -authenticationSchema "/nsconfig/loginschema/LoginSchema/SingleAuthManageOTP.xml"

Afficher la page d’enregistrement et de gestion des périphériques

Citrix recommande deux façons d’afficher l’écran d’enregistrement et de gestion des appareils : URL ou nom d’hôte.

  • Utilisation de l’URL

    Lorsque l’URL contient « /manageotp »

    • add authentication loginSchemaPolicy lpol_single_auth_manage_otp_by_url -rule "http.req.cookie.value("NSC_TASS").contains("manageotp")" -action lschema_single_auth_manage_otp
    • bind authentication vserver authvs -policy lpol_single_auth_manage_otp_by_url -priority 10 -gotoPriorityExpression END
  • Utiliser le nom d’hôte

    Lorsque le nom d’hôte est « alt.server.com »

    • add authentication loginSchemaPolicy lpol_single_auth_manage_otp_by_host -rule "http.req.header("host").eq("alt.server.com")" -action lschema_single_auth_manage_otp
    • bind authentication vserver authvs -policy lpol_single_auth_manage_otp_by_host -priority 20 -gotoPriorityExpression END

Pour configurer la page de connexion utilisateur à l’aide de l’interface de ligne de commande

Vous devez disposer des informations suivantes pour configurer la page Ouverture de session utilisateur :

  • IP pour un serveur virtuel d’équilibrage de charge
  • Nom de domaine complet correspondant pour le serveur virtuel d’équilibrage de charge
  • Certificat de serveur pour le serveur virtuel d’équilibrage de charge

    bind ssl vserver lbvs_https -certkeyname lbvs_server_cert

Le service back-end dans l’équilibrage de charge est représenté comme suit :

add service iis_backendsso_server_com 1.2.3.210 HTTP 80
bind lb vserver lbvs_https iis_backendsso_server_com

Pour créer une action de validation du code secret OTP

add authentication ldapAction <LDAP ACTION NAME> -serverIP <SERVER IP> -serverPort <SERVER PORT> -ldapBase <BASE> -ldapBindDn <AD USER> -ldapBindDnPassword <PASSWORD> -ldapLoginName <USER FORMAT> -authentication DISABLED -OTPSecret <LDAP ATTRIBUTE>`

Exemple :

add authentication ldapAction ldap_otp_action -serverIP 1.2.3.4 -serverPort 636 -ldapBase "OU=Users,DC=server,DC=com" -ldapBindDn administrator@ctxnsdev.com -ldapBindDnPassword PASSWORD -ldapLoginName userprincipalname -authentication DISABLED -OTPSecret userParameters

Important : La différence entre l’ouverture de session LDAP et l’action OTP est la nécessité de désactiver l’authentification et d’introduire un nouveau paramètre OTPSecret. N’utilisez pas la valeur de l’attribut AD.

Pour ajouter une stratégie d’authentification pour la validation du code d’accès OTP

add authentication Policy auth_pol_otp_validation -rule true -action ldap_otp_action

Pour présenter l’authentification à deux facteurs via LoginSchema

Ajoutez l’interface utilisateur pour l’authentification à deux facteurs.

add authentication loginSchema lscheme_dual_factor -authenticationSchema "/nsconfig/loginschema/LoginSchema/DualAuth.xml"
add authentication loginSchemaPolicy lpol_dual_factor -rule true -action lscheme_dual_factor

Pour créer un facteur de validation de code secret via l’étiquette de stratégie

Créer une étiquette de stratégie de flux OTP de gestion pour le facteur suivant (le premier facteur est l’ouverture de session LDAP)

add authentication loginSchema lschema_noschema -authenticationSchema noschema
add authentication policylabel manage_otp_flow_label -loginSchema lschema_noschema

Pour lier la stratégie OTP à l’étiquette de stratégie

bind authentication policylabel manage_otp_flow_label -policyName  auth_pol_otp_validation -priority 10 -gotoPriorityExpression NEXT

Pour lier le flux de l’interface utilisateur

Liez l’ouverture de session LDAP suivie de la validation OTP avec le serveur virtuel d’authentification.

bind authentication vserver authvs -policy auth_pol_ldap_logon -priority 10 -nextFactor  manage_otp_flow_label -gotoPriorityExpression NEXT
bind authentication vserver authvs -policy lpol_dual_factor -priority 30 -gotoPriorityExpression END

Enregistrez votre appareil avec Citrix ADC

  1. Accédez au nom de domaine complet Citrix ADC (première adresse IP publique), avec un suffixe /manageotp. Par exemple, https://otpauth.server.com/manageotp connectez-vous avec les informations d’identification de l’utilisateur.
  2. Cliquez sur l’icône + pour ajouter un appareil.

    Page de connexion à la passerelle

  3. Entrez le nom d’un appareil et appuyez sur Go. Un code-barres apparaît à l’écran.
  4. Cliquez sur Commencer la configuration, puis sur Scanner le code-barres.
  5. Survolez le code QR avec la caméra de l’appareil. Vous pouvez éventuellement entrer le code à 16 chiffres.

    Code QR

    Remarque : Le code QR affiché est valide pendant 3 minutes.

  6. Une fois la numérisation réussie, un code temporel à 6 chiffres vous est présenté, qui peut être utilisé pour vous connecter.

    Message de réussite de la connexion

  7. Pour tester, cliquez sur Terminé sur l’écran QR, puis cliquez sur la coche verte à droite.
  8. Sélectionnez votre appareil dans le menu déroulant et saisissez le code de Google Authenticator (il doit être bleu et non rouge), puis cliquez sur OK.
  9. Assurez-vous de vous déconnecter à l’aide du menu déroulant situé dans le coin supérieur droit de la page.

Connectez-vous à Citrix ADC à l’aide de l’OTP

  1. Accédez à votre première URL publique et saisissez votre OTP à partir de Google Authenticator pour ouvrir une session.
  2. Authentifiez-vous sur la page de démarrage de Citrix ADC.

    Page d'authentification ADC