Conformité au protocole d’intégration du proxy du service Active Directory
Si des proxys tiers doivent être utilisés à la place du proxy d’application Web, ils doivent prendre en charge le protocole MS-ADFSPIP qui spécifie les règles d’intégration ADFS et WAP. ADFSPIP intègre les services de fédération Active Directory à un proxy d’authentification et d’application pour permettre l’accès aux services situés à l’intérieur des limites du réseau d’entreprise pour les clients situés en dehors de cette limite.
Conditions préalables
Pour établir la confiance entre le serveur proxy et la batterie de serveurs ADFS, consultez la configuration suivante dans l’appliance Citrix ADC :
-
Créez un profil SSL pour le back-end et activez SNI dans le profil SSL. Désactivez SSLv3/TLS1. À l’invite de commandes, tapez la commande suivante :
add ssl profile <new SSL profile> -sniEnable ENABLED -ssl3 DISABLED -tls1 DISABLED -commonName <FQDN of ADFS> <!--NeedCopy-->
-
Désactivez SSLv3/TLS1 pour le service. À l’invite de commandes, tapez la commande suivante :
set ssl service <adfs service name> -sslProfile ns_default_ssl_profile_backend <!--NeedCopy-->
-
Activez l’extension SNI pour les poignées de contact du serveur principal. À l’invite de commandes, tapez la commande suivante :
set vpn parameter –backendServerSni ENABLED set ssl parameter -denySSLReneg NONSECURE <!--NeedCopy-->
Important
Pour les scénarios Home Realm Discovery (HRD) dans lesquels l’authentification doit être déchargée vers le serveur ADFS, Citrix vous recommande de désactiver à la fois l’authentification et l’authentification unique sur l’appliance Citrix ADC.
Mécanisme d’authentification
Voici le flux d’événements de haut niveau pour l’authentification.
-
Établir la confiance avec le serveur ADFS : le serveur Citrix ADC établit la confiance avec le serveur ADFS en enregistrant un certificat client. Une fois la confiance établie, l’appliance Citrix ADC rétablit la confiance après le redémarrage sans intervention de l’utilisateur.
À l’expiration du certificat, vous devez rétablir l’approbation en supprimant et en ajoutant à nouveau le profil proxy ADFS.
-
Points de terminaison publiés : l’appliance Citrix ADC récupère automatiquement la liste des points de terminaison publiés sur le serveur ADFS après l’établissement de l’approbation. Ces points de terminaison publiés filtrent les demandes transmises au serveur ADFS.
-
Insérer des en-têtes aux demandes du client — Lorsque l’appliance Citrix ADC tunnel les demandes du client, les en-têtes HTTP liés à ADFSPIP sont ajoutés au paquet lors de leur envoi au serveur ADFS. Vous pouvez implémenter un contrôle d’accès sur le serveur ADFS en fonction de ces valeurs d’en-tête. Les en-têtes suivants sont pris en charge.
- X-MS-Proxy
- X-MS-Endpoint-Absolute-Path
- X-MS-Forwarded-Client-IP
- X-MS-Proxy
- X-MS-Target-Role
- X-MS-ADFS-Proxy-Client-IP
-
Gérer le trafic des utilisateurs finaux : le trafic des utilisateurs finaux est acheminé en toute sécurité vers les ressources souhaitées.
Remarques :
-
Citrix ADC utilise l’authentification basée sur des formulaires.
-
Citrix ADC ne prend pas en charge la publication d’une application conforme au protocole d’intégration du proxy Active Directory Federation Service.
-
Configurer Citrix ADC pour prendre en charge le serveur ADFS
Conditions préalables
-
Configurez le serveur de commutation de contexte (CS) en tant que serveur frontal avec le serveur d’authentification, d’autorisation et d’audit derrière CS. À l’invite de commandes, tapez :
add cs vserver <cs vserver name> SSL 10.220.xxx.xx 443 -cltTimeout 180 -AuthenticationHost <adfs server hostname> -Authentication OFF -persistenceType NONE <!--NeedCopy-->
add cs action <action name1> -targetLBVserver <lb vserver name> <!--NeedCopy-->
add cs action <action name2> -targetLBVserver <lb vserver name> <!--NeedCopy-->
add cs policy <policy name1> -rule " http.req.url.contains("/adfs/services/trust") || http.req.url.contains("federationmetadata/2007-06/federationmetadata.xml")" -action <action name1> <!--NeedCopy-->
add cs policy <policy name2> -rule "HTTP.REQ.URL.CONTAINS("/adfs/ls")" -action <action name2> <!--NeedCopy-->
bind cs vserver <cs vserver name> -policyName <policy name1> -priority 100 <!--NeedCopy-->
bind cs vserver <cs vserver name> -policyName <policy name2> -priority 110 <!--NeedCopy-->
bind cs vserver <cs vserver name> -lbvserver <lb vserver name> <!--NeedCopy-->
-
Ajoutez un service ADFS. À l’invite de commandes, tapez :
add service <adfs service name> <adfs server ip> SSL 443 <!--NeedCopy-->
set ssl service <adfs service name> -sslProfile ns_default_ssl_profile_backend <!--NeedCopy-->
-
Ajoutez un serveur virtuel à charge équilibrée. À l’invite de commandes, tapez :
add lb vserver <lb vserver name> SSL 0.0.0.0 0 <!--NeedCopy-->
set ssl vserver <lb vserver name> -sslProfile ns_default_ssl_profile_frontend <!--NeedCopy-->
-
Liez le service au serveur d’équilibrage de charge. À l’invite de commandes, tapez :
bind lb vserver <lb vserver name> <adfs service name> <!--NeedCopy-->
Pour configurer Citrix ADC afin qu’il fonctionne avec le serveur ADFS, vous devez procéder comme suit :
- Créez une clé de profil SSL CertKey à utiliser avec le profil proxy ADFS
- Création d’un profil proxy ADFS
- Associez le profil proxy ADFS au serveur virtuel LB
Créez un certificat SSL avec clé privée à utiliser avec le profil proxy ADFS
À l’invite de commandes, tapez :
add ssl certkey <certkeyname> –cert <certificate path> -key <keypath>
<!--NeedCopy-->
Remarque : Le fichier de certificat et le fichier de clé doivent être présents dans l’appliance Citrix ADC. Créer un profil proxy ADFS à l’aide de la CLI
À l’invite de commandes, tapez :
add authentication adfsProxyProfile <profile name> -serverUrl <https://<server FQDN or IP address>/> -username <adfs admin user name> -password <password for admin user> -certKeyName <name of the CertKey profile created above>
<!--NeedCopy-->
Où ?
Nom du profil : nom du profil proxy AFDS à créer
ServerURL : nom de domaine complet du service ADFS, y compris le protocole et le port. Par exemple, https://adfs.citrix.com
Username
— Nom d’utilisateur d’un compte administrateur existant sur le serveur ADFS
Mot de passe : mot de passe du compte administrateur utilisé comme nom d’utilisateur
CertKeyName — Nom du profil CertKey SSL créé précédemment
Associez le profil proxy ADFS au serveur virtuel d’équilibrage de charge à l’aide de la CLI
Dans le déploiement ADFS, deux serveurs virtuels d’équilibrage de charge sont utilisés, l’un pour le trafic client et l’autre pour l’échange de métadonnées. Le profil proxy ADFS doit être associé au serveur virtuel d’équilibrage de charge qui est frontal au serveur ADFS.
À l’invite de commandes, tapez :
set lb vserver <adfs-proxy-lb> -adfsProxyProfile <name of the ADFS proxy profile>
<!--NeedCopy-->
Soutien au renouvellement de confiance pour ADFSPIP
Vous pouvez renouveler l’approbation des certificats existants qui sont sur le point d’expirer ou si le certificat existant n’est pas valide. Le renouvellement d’approbation des certificats est effectué uniquement lorsque l’approbation est établie entre l’appliance Citrix ADC et le serveur ADFS. Pour renouveler l’approbation du certificat, vous devez fournir le nouveau certificat.
Important
Une intervention manuelle est requise pour le renouvellement de confiance des nouveaux certificats.
L’exemple suivant répertorie les étapes impliquées dans le renouvellement de l’approbation de certificat :
- L’appliance Citrix ADC envoie les anciens certificats (SerializedTrustCertificate) et les nouveaux (SerializedReplacementCertificate) dans une requête POST au serveur ADFS pour le renouvellement de l’approbation.
- Le serveur ADFS répond avec un succès de 200 OK si l’approbation est renouvelée avec succès.
- L’appliance Citrix ADC met à jour l’état en tant que « ESTABLISHED_RENEW_SUCCESS » si le renouvellement de l’approbation est réussi. Si le renouvellement de l’approbation échoue, l’état est mis à jour en tant que « ESTABLISHED_RENEW_FAILED » et l’appliance Citrix ADC continue d’utiliser l’ancien certificat.
Remarque
Vous ne pouvez pas mettre à jour la clé de certification si elle est déjà liée à un profil proxy ADFS.
Pour configurer le renouvellement de confiance des certificats à l’aide de la CLI
À l’invite de commandes, tapez :
set authentication adfsProxyProfile <name> [-CertKeyName <string>]
<!--NeedCopy-->
Exemple :
set authentication adfsProxyProfile adfs_2 –CertKeyName ca_cert1
<!--NeedCopy-->
Authentification basée sur le certificat client sur le serveur ADFS
À partir de Windows Server 2016, Microsoft a introduit une nouvelle méthode d’authentification des utilisateurs lorsque l’accès à ADFS est effectué via des serveurs proxy. Désormais, les utilisateurs finaux peuvent se connecter avec leurs certificats, évitant ainsi l’utilisation d’un mot de passe.
Les utilisateurs finaux accèdent souvent à ADFS via un proxy, en particulier lorsqu’ils ne se trouvent pas sur place. Par conséquent, les serveurs proxy ADFS sont nécessaires pour prendre en charge l’authentification par certificat client via le protocole ADFSPIP.
Lorsque ADFS est équilibré de charge à l’aide d’une appliance Citrix ADC, pour prendre en charge l’authentification basée sur les certificats sur le serveur ADFS, les utilisateurs doivent également se connecter à l’appliance Citrix ADC à l’aide du certificat. Cela permet à Citrix ADC de transmettre le certificat utilisateur à ADFS pour fournir l’authentification unique au serveur ADFS.
Le schéma suivant illustre le flux d’authentification du certificat client.
Configurer l’authentification unique pour le serveur ADFS à l’aide d’un certificat client
Pour configurer l’authentification unique pour le serveur ADFS à l’aide du certificat client, vous devez d’abord configurer l’authentification du certificat client sur l’appliance Citrix ADC. Vous devez ensuite lier la stratégie d’authentification par certificat au serveur virtuel d’authentification, d’autorisation et d’audit.
En outre, vous devez suivre les étapes suivantes.
-
Un serveur virtuel de commutation de contexte supplémentaire avec le port 49443 doit être configuré et ce serveur virtuel de commutation de contexte doit pointer vers le même serveur virtuel d’équilibrage de charge ouvert pour tous les ports, que vous avez créé précédemment.
-
Le port 49443 doit être ouvert sur l’appliance Citrix ADC pour l’authentification.
-
La stratégie de commutation de contexte doit être liée au même serveur virtuel d’équilibrage de charge avec le port 443 ouvert que vous avez créé précédemment.
-
Vous devez lier le même service SSL que vous avez créé précédemment au serveur virtuel d’équilibrage de charge.
-
Si vous avez déjà créé un profil SSL pour le back-end, vous devez utiliser ce profil.
À l’invite de commande, tapez :
add cs vserver <name> <serviceType> <port>
bind cs vserver <name> (-lbvserver <string> | -vServer <string> | [-targetLBVserver <string>]
set ssl vserver <vServerName [-sslProfile <string>]
bind ssl vserver <vServerName -certkeyName <string>
add authentication certAction <action name>
add authentication Policy <policy name> -rule <expression> -action <action name>
add authentication policylable <label Name>
bind authentication policylabel <label Name> -policyName <name of the policy> -priority<integer>
<!--NeedCopy-->
Exemple :
add cs vserver srv123_adfsproxy_csvs_tls SSL $VIP_1 49443
bind cs vserver srv123_adfsproxy_csvs_tls -lbvserver srv123_adfs_lbvserver
set ssl vserver srv123_adfsproxy_csvs_tls -sslProfile ns_default_ssl_profile_frontend
bind ssl vserver srv123_adfsproxy_csvs_tls -certkeyName srv123_wildcardcert
add authentication certAction adfsproxy-cert
add authentication Policy cert1 -rule TRUE -action adfsproxy-cert
add authentication policylable certfactor
bind authentication policylabel certfactor –policyName cert1 –priority 100
<!--NeedCopy-->
Pour plus d’informations sur la configuration du certificat client sur l’appliance Citrix ADC, consultez Configurer l’authentification du certificat client à l’aide de stratégies avancées.