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.
-
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.
-
Configurez un profil d’authentification avec le nom du serveur virtuel d’authentification.
-
Configurez un serveur virtuel VPN.
-
Définissez le profil d’authentification sur ce serveur virtuel VPN.
-
Configurez une action et une stratégie WebAuth.
-
Configurez l’action et la stratégie LDAP.
-
Configurez une action de schéma de connexion pour le facteur LDAP.
-
Configurez une étiquette de stratégie pour le facteur LDAP à l’aide de l’action de schéma de connexion pour le facteur LDAP.
-
Liez la stratégie LDAP à l’étiquette de stratégie LDAP.
-
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.
Configuration à l’aide de l’interface de ligne de commande
-
Configurez un serveur virtuel d’authentification.
add authentication vserver auth1 ssl <!--NeedCopy-->
Dans l’interface graphique, accédez à Sécurité > AAA - Trafic des applications > Serveur virtuel et cliquez sur Ajouter.
-
Configurez un profil d’authentification.
add authnProfile auth_profile –authnVsname auth1 <!--NeedCopy-->
Dans l’interface graphique, accédez à Sécurité > AAA - Trafic des applications > Profil d’authentification et cliquez sur Ajouter.
-
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 <!--NeedCopy-->
Accédez à Citrix Gateway > Serveur virtuel et cliquez sur Ajouter.
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 <!--NeedCopy-->
-
Configurez une action et une stratégie WebAuth.
Accédez à Appexpert > Expression > Expression avancée.
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=")" <!--NeedCopy-->
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" <!--NeedCopy-->
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 <!--NeedCopy-->
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 <!--NeedCopy-->
-
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 <!--NeedCopy-->
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.
-
Configurez une action LoginsChema pour le facteur LDAP.
add authentication loginSchema LDAP_schema -authenticationSchema /nsconfig/loginschema/LoginSchema/SingleAuth.xml <!--NeedCopy-->
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.
-
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 <!--NeedCopy-->
-
Liez la stratégie LDAP à l’étiquette de stratégie LDAP.
bind authentication policylabel LDAP_factor –policyName ldap_policy –priority 10 <!--NeedCopy-->
-
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 <!--NeedCopy-->
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
Le premier facteur ici est Webauth suivi par LDAP avec l’option de changement de mot de passe activée.
-
Accédez à Sécurité > Trafic des applications AAA > nFactor Visualizer > nFactor Flow, puis cliquez sur Ajouter.
-
Cliquez sur le signe + pour ajouter le flux nFactor.
-
Ajoutez un facteur. Ce nom que vous entrez pour ce facteur est le nom du flux nFactor.
-
Cliquez sur Ajouter une stratégie pour ajouter la stratégie Webauth et l’action/serveur Webauth.
-
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.
-
Cliquez sur Ajouter un schéma pour ajouter le schéma de connexion pour l’authentification LDAP.
-
Cliquez sur Ajouter une stratégie pour ajouter la stratégie d’authentification LDAP et l’action/serveur LDAP.
Pour créer une action/serveur LDAP, reportez-vous à l’articlehttps://support.citrix.com/article/CTX219939.
-
Une fois les deux facteurs configurés, vous devez lier le flux au serveur virtuel d’authentification, d’autorisation et d’audit.
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
<!--NeedCopy-->
Remarque : les horodatages sont supprimés des journaux par souci de brièveté.
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