Citrix ADC

Configurer nFactor pour Citrix Gateway avec WebAuth dans le premier facteur et LDAP avec changement de mot de passe dans le second facteur

Les étapes de haut niveau suivantes sont impliquées dans la configuration de nFactor for Citrix Gateway avec WebAuth dans le premier facteur et LDAP avec changement de mot de passe dans le second facteur.

  1. Configurez un serveur virtuel d’authentification avec zéro IP. Il n’est pas obligatoire d’avoir un certificat lié au serveur virtuel d’authentification.

  2. Configurez un profil d’authentification avec le nom du serveur virtuel d’authentification.

  3. Configurez un serveur virtuel VPN.

  4. Définissez le profil d’authentification sur ce serveur virtuel VPN.

  5. Configurez une action et une stratégie WebAuth.

  6. Configurez l’action et la stratégie LDAP.

  7. Configurez une action de schéma de connexion pour le facteur LDAP.

  8. Configurez une étiquette de stratégie pour le facteur LDAP à l’aide de l’action de schéma de connexion pour le facteur LDAP.

  9. Liez la stratégie LDAP à l’étiquette de stratégie LDAP.

  10. Liez la stratégie WebAuth au serveur virtuel d’authentification avec une étiquette de stratégie LDAP comme facteur suivant.

Fonctionnement

  • L’utilisateur entre dans le nom de domaine complet Citrix Gateway dans le navigateur et est redirigé vers la page /logon/logonpoint/tmindex.html.

  • Cette page affiche le schéma de connexion lié à un serveur virtuel d’authentification. S’il n’y a pas de schéma de connexion lié à un serveur virtuel d’authentification (comme dans notre configuration), alors un schéma par défaut s’affiche.

  • L’utilisateur saisit les informations d’identification pour le premier facteur, qui dans ce cas est WebAuth.

  • Citrix Gateway vérifie l’action WebAuth et contacte le serveur WebAuth. Il envoie la requête HTTP mentionnée dans le paramètre FullReqExpr au serveur WebAuth. Si la réponse du serveur WebAuth satisfait l’expression mentionnée dans le paramètre SuccessRule de l’action WebAuth, cette stratégie passe.

  • Citrix Gateway passe maintenant au deuxième facteur. Il vérifie la configuration de l’étiquette de stratégie LDAP_Factor qui est lié comme facteur suivant. Comme il y a un LoginsSchema mentionné dans cette étiquette de stratégie, Citrix Gateway envoie ce schéma XML au client.

  • Le client reçoit le schéma et saisit les informations d’identification LDAP pour l’authentification du second facteur.

  • Citrix Gateway tente d’atteindre le serveur LDAP et valide si les informations d’identification du client sont correctes. Si elles sont correctes, la phase d’authentification se termine et l’utilisateur se connecte au mode VPN configuré.

La figure suivante affiche une séquence d’authentification nFactor dans laquelle le premier facteur est WebAuth et le deuxième facteur est LDAP.

Nfactor-auth-sequence

Configuration à l’aide de l’interface de ligne de commande

  1. Configurez un serveur virtuel d’authentification.

    add authentication vserver auth1 ssl
    

    Dans l’interface graphique, accédez à Sécurité > AAA - Trafic applicatif > Serveur virtuel, puis cliquez sur Ajouter.

    Ajouter un serveur virtuel d'authentification

  2. Configurez un profil d’authentification.

    add authnProfile auth_profile –authnVsname auth1
    

    Dans l’interface graphique, accédez à Sécurité > AAA - Trafic applicatif > Profil d’authentification et cliquez sur Ajouter.

    Créer un profil d'authentification

  3. Configurez un serveur virtuel VPN.

    add vpn vserver vpn1 ssl 10.1.1.1 443
    
    add ssl certkey ckp –cert test.cer –key test.key
    
    bind ssl vserver vpn1 –certKey ckp
    

    Accédez à Citrix Gateway > Virtual Server et cliquez sur Ajouter.

    Ajouter un serveur virtuel vpn

    Une fois le serveur virtuel VPN créé, lier le certificat sur le même.

    Définir le profil d’authentification sur le serveur virtuel VPN

    set vpn vserver vpn1 –authnProfile auth_profile
    

    définir le profil d'authentification

  4. Configurez une action et une stratégie WebAuth.

    Accédez à Appexpert > Expression > Expression avancée.

    Configurer la stratégie de webauth

    add policy expression post_data ""myusername=" +
    
    http.REQ.BODY(3000).SET_TEXT_MODE(IGNORECASE).AFTER_STR("login=").BEFORE_STR("&") + "&mypassword=" +
    
    http.REQ.BODY(3000).SET_TEXT_MODE(IGNORECASE).AFTER_STR("passwd=")"
    

    Créer une expression

    add policy expression length_post_data "("myusername=" +
    
    http.REQ.BODY(1000).SET_TEXT_MODE(IGNORECASE).AFTER_STR("login=").BEFORE_STR("&") + "&mypassword=" +
    
    \http.REQ.BODY(1000).SET_TEXT_MODE(IGNORECASE).AFTER_STR("passwd=")).length"
    

    Configuration nFactor à l’aide de l’interface de ligne de commande :

    add authentication webAuthAction webAuth_action -serverIP 10.102.39.132 -serverPort 443 -fullReqExpr q{"POST /customAuth.aspx HTTP/" + http.req.version.major + "." + http.req.version.minor + "\r\nAccept: \*/\*\r\nHost: 10.102.39.132\r\nUser-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)\r\nContent-Type: application/x-www-form-urlencoded\r\n" + "Content-Length: " + length_post_data + "\r\nConnection: Keep-Alive\r\n\r\n" + post_data} -scheme https -successRule "http.RES.STATUS.EQ(200)"
    
    add authentication policy webAuth_policy –rule TRUE –action webAuth_action
    

    L’action WebAuth configurée précédemment utilise deux expressions de stratégie. Une expression de stratégie (post_data) crée le corps POST. L’autre (length_post_data) calcule la longueur du corps POST, qui est utilisé pour remplir l’en-tête Content-Length dans la requête POST.

    L’expression de stratégie qui crée le corps POST analyse la demande de connexion et extrait le nom d’utilisateur et le mot de passe saisis par l’utilisateur. Il crée ensuite le corps POST dans le format attendu par le serveur WebAuth, en utilisant le mot de passe du nom d’utilisateur extrait de la demande de connexion.

    Enfin, l’action WebAuth crée la requête ci-dessous, qui est envoyée au serveur WebAuth.

    POST /customAuth.aspx HTTP/1.1
    Accept: \*/\*
    Host: 10.102.39.132
    Accept-Language: en-US
    User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
    Content-Type: application/x-www-form-urlencoded
    Content-Length:43
    Connection: Keep-Alive
    
    myusername=test_user&mypassword=test_passwd
    
  5. Configurez l’action et la stratégie LDAP pour le changement de mot de passe.

    add authentication ldapAction ldap_action -serverIP 10.102.39.133 -serverPort 636 -secType SSL -ldapBase "dc=domain,dc=com" -ldapBindDn administrator -ldapBindDnPassword password -ldapLoginName samAccountName -passwdChange ENABLED
    add authentication policy ldap_policy –rule TRUE –action ldap_action
    

    L’action LDAP est configurée avec —PasswdChange ENABLED, qui active le mot de passe de modification initiée par l’utilisateur après la connexion au VPN.

  6. Configurez une action LoginsChema pour le facteur LDAP.

    add authentication loginSchema LDAP_schema -authenticationSchema /nsconfig/loginschema/LoginSchema/SingleAuth.xml
    

    Le facteur LDAP nécessite un nom d’utilisateur et un mot de passe de la part de l’utilisateur final. Le formulaire de connexion affiché à l’utilisateur final doit représenter un nom d’utilisateur et un champ de mot de passe.

    Citrix ADC possède quelques fichiers XML LoginsSchema par défaut présents à l’emplacement /nsconfig/ LoginsChema/LoginsSchema sur le shell NetScaler. Vous pouvez utiliser l’un des fichiers XML LoginsSchema par défaut présents à l’emplacement précédent.

  7. Configurez une étiquette de stratégie pour le facteur LDAP à l’aide de l’action LoginsSchema pour le facteur LDAP :

    add authentication policylabel LDAP_factor -loginSchema LDAP_schema
    
  8. Liez la stratégie LDAP à l’étiquette de stratégie LDAP.

    bind authentication policylabel LDAP_factor –policyName ldap_policy –priority 10
    
  9. Liez la stratégie WebAuth à l’authentification du serveur virtuel avec une étiquette de stratégie LDAP comme facteur suivant.

    bind authentication vserver auth1 –policy webAuth_policy –nextFactor LDAP_factor –priority 10
    

    La configuration nFactor précédente peut également être effectuée à l’aide du visualiseur nFactor dans Citrix ADC qui est disponible à partir de la version 13.0 du firmware.

Configuration à l’aide de nFactor Visualizer

Représentation de la configuration dans nfactor visualizer

Le premier facteur ici est Webauth suivi par LDAP avec l’option de changement de mot de passe activée.

  1. Accédez à Sécurité > Trafic d’application AAA-> nFactor Visualizer > nFactor Flow et cliquez sur Ajouter.

  2. Cliquez sur le signe + pour ajouter le flux nFactor.

    Ajouter un flux nFactor

  3. Ajoutez un facteur. Ce nom que vous entrez pour ce facteur est le nom du flux nFactor.

    Nom du flux nFactor

  4. Cliquez sur Ajouter une stratégie pour ajouter la stratégie Webauth et l’action/serveur Webauth.

    Cliquez sur Ajouter une stratégie

    Choisir une stratégie

    Créer une stratégie d'authentification

  5. Cliquez sur le signe+ vert pour ajouter le facteur suivant qui est l’authentification LDAP avec l’option de changement de mot de passe activée.

    Ajouter le facteur suivant qui est LDAP

  6. Cliquez sur Ajouter un schéma pour ajouter le schéma de connexion pour l’authentification LDAP.

    Ajouter un schéma pour l'authentification LDAP

  7. Cliquez sur Ajouter une stratégie pour ajouter la stratégie d’authentification LDAP et l’action/serveur LDAP.

    Ajouter une stratégie pour l'authentification LDAP

    Pour créer une action/serveur LDAP, reportez-vous à l’articlehttps://support.citrix.com/article/CTX219939.

  8. Une fois les deux facteurs configurés, vous devez lier le flux au serveur virtuel d’authentification, d’autorisation et d’audit.

    Cliquez sur lier au serveur d'authentification

    sélectionner le facteur et lier au serveur d'authentification

Débogage — Journaux et compteurs

Les journaux sont visibles après une connexion réussie avec WebAuth et LDAP. Pour afficher la plupart des journaux suivants, définissez le niveau du journal d’audit sur ALL, de sorte qu’il affiche également les journaux de débogage.

set audit syslogparams –loglevel ALL

Remarque : les horodatages sont supprimés des journaux par souci de brièveté.

Journaux d'échantillons

Les compteurs suivants sont incrémentés après une connexion réussie avec WebAuth et LDAP.

  • pcp_hits authn(webAuth_policy)
  • aaa_tot_webauth_primary_auth
  • aaa_tot_webauth_prim_auth_success
  • aaa_tot_webauth_prim_succ_check_thru
  • pcp_hits authn(webAuth_policy)
  • pcp_hits authn (ldap_policy)
  • aaa_auth_succ

Configurer nFactor pour Citrix Gateway avec WebAuth dans le premier facteur et LDAP avec changement de mot de passe dans le second facteur