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.
Logiciels requis
Pour établir correctement la confiance entre le serveur proxy et la batterie de serveurs ADFS, passez en revue la configuration suivante dans l’appliance NetScaler :
-
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 profile <adfs service name> -sessReuse <ENABLED|DISABLED> -tls1 <ENABLED|DISABLED> -SNIEnable <ENABLED|DISABLED> -commonName <name> -denySSLReneg <YES|NO> <!--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 le SSO sur l'appliance NetScaler.
## Mécanisme d'authentification
Voici le flux d'événements de haut niveau pour l'authentification.
1. **Établir la confiance avec le serveur ADFS** : le serveur NetScaler établit la confiance avec le serveur ADFS en enregistrant un certificat client. Une fois la confiance établie, l'appliance NetScaler 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.
1. **Points de terminaison publiés** : l'appliance NetScaler récupère automatiquement la liste des points de terminaison publiés sur le serveur ADFS après l'établissement de la confiance. Ces points de terminaison publiés filtrent les demandes transmises au serveur ADFS.
1. **Insérer des en-têtes dans les demandes des clients** : lorsque l'appliance NetScaler tunnelise les demandes des clients, 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
1. **Gérer le trafic des utilisateurs finaux : le** trafic des utilisateurs finaux est acheminé en toute sécurité vers les ressources souhaitées.
> **Remarque :**
>
>- NetScaler utilise l'authentification basée sur des formulaires.
>
>- NetScaler ne prend pas en charge la publication d'une application conforme au protocole d'intégration du proxy Active Directory Federation Service.
## Configurer NetScaler pour prendre en charge le serveur ADFS
### Logiciels requis
- 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_adfs_proxy SSL a.b.c.d 443 -cltTimeout 180 -AuthenticationHost adfs.ns.com
<!--NeedCopy-->
```
add cs action adfs_proxy_cs_act -targetVserver avs_adfs_proxy
<!--NeedCopy--> ```
```
add cs policy adfs_proxy_policy -rule is_vpn_url -action adfs_proxy_cs_act
<!--NeedCopy--> ```
```
bind cs vserver cs_adfs_proxy -policyName adfs_proxy_policy -priority 100
<!--NeedCopy--> ```
```
bind cs vserver cs_adfs_proxy -lbvserver lb_adfs_proxy
<!--NeedCopy--> ```
-
Ajoutez un service ADFS. À l’invite de commandes, tapez :
add service adfs_service adfs_server SSL 443 set ssl service adfs_service -sslProfile ns_default_ssl_profile_backend bind ssl service adfs_service -certkeyName adfs_trust_cert <!--NeedCopy-->
set ssl profile ns_default_ssl_profile_backend -sessReuse ENABLED -tls1 DISABLED -SNIEnable ENABLED -commonName www.server.com -denySSLReneg NO <!--NeedCopy-->
-
Ajoutez un serveur virtuel d’équilibrage de charge. À l’invite de commandes, tapez :
add lb vserver lb_adfs_proxy SSL 0.0.0.0 0 -AuthenticationHost adfs.ns.com -Authentication ON -adfsProxyProfile adfs_proxy_profile <!--NeedCopy-->
-
Liez la politique de trafic ADFS et le service ADFS au serveur virtuel d’équilibrage de charge. À l’invite de commandes, tapez :
``` bind lb vserver lb_adfs_proxy adfs_service
bind lb vserver lb_adfs_proxy -policyName adfs_traffic_pol -priority 1 -type REQUEST ```
-
Configurez une adresse SNIP :
add ns ip p.q.r.s 255.255.255.0 -type SNIP
-
Configurez les actions et les politiques relatives au trafic :
add tm trafficAction adfs_traffic_action -SSO ON -formSSOAction adfs_form_action add tm formSSOAction adfs_form_action -actionURL "/adfs/ls" -userField UserName -passwdField Password -ssoSuccessRule "HTTP.RES.SET_COOKIE.EQ("MSISAuth")" -nameValuePair AuthMethod=FormsAuthentication -submitMethod POST add tm trafficAction adfs_traffic_action -SSO ON -formSSOAction adfs_form_action add tm trafficPolicy adfs_traffic_pol "HTTP.REQ.URL.EQ("/adfs/ls/")" adfs_traffic_action
Pour configurer NetScaler afin qu’il fonctionne avec le serveur ADFS, vous devez effectuer les opérations suivantes :
- 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 d’équilibrage de charge
Créez un certificat SSL avec une clé privée à utiliser avec le profil proxy ADFS à l’aide de l’interface graphique
-
Accédez à Gestion du trafic > SSL > Certificats > Certificats CA.
-
Dans le panneau de détails, cliquez sur Installer. Dans la boîte de dialogue Installer le certificat, saisissez les informations, telles que le nom du certificat et du fichier de clé, puis sélectionnez Certificate Bundle.
-
Cliquez sur Installer, puis sur Fermer.
Créez un certificat SSL avec une clé privée à utiliser avec le profil proxy ADFS à l’aide de la CLI
À l’invite de commandes, tapez :
add ssl certKey aaa_local -cert aaa_local.cer -key aaa_local.key
Remarque : Le fichier de certificat et le fichier de clé doivent être présents dans l’appliance NetScaler.
Création d’un profil proxy ADFS à l’aide de l’interface graphique
-
Accédez à Configuration > Sécurité > Trafic des applications AAA > Profil ADFSproxy .
-
Cliquez sur Ajouter sur la page de profil ADFSproxy .
-
Sur la page Créer un profil ADFSproxy , configurez les paramètres suivants :
- Nom : attribuez un nom au profil proxy ADFS.
- Nom d’utilisateur : il s’agit du nom d’un compte dans l’annuaire qui serait utilisé pour authentifier la demande de confiance émanant de NetScaler agissant en tant que proxy.
- Mot de passe : il s’agit du mot de passe du compte.
- URL du serveur : nom de domaine complet du serveur ADFS.
- Nom de la clé du certificat : certificat SSL du proxy enregistré sur le serveur ADFS.
-
Cliquez sur Créer.
Création d’un profil proxy ADFS à l’aide de l’interface de ligne de commande
À 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>
add dns addRec adfs.server.com 10.106.30.151
Exemple,
add authentication adfsProxyProfile adfs_proxy_profile -userName test -password test -serverURL "https://adfs.server.com" -CertKeyName adfs_trust_cert
Remarque :
Le proxy ADFS et le serveur ADFS peuvent établir la confiance uniquement si le certificat est signé par l’autorité de certification du serveur ADFS.
Associez le profil proxy ADFS au serveur virtuel d’équilibrage de charge à l’aide de l’interface graphique
-
Accédez à Gestion du trafic > Équilibrage de charge > Serveurs virtuels, puis sélectionnez un serveur virtuel SSL.
-
Cliquez sur Modifier.
-
Dans Paramètres avancés, cliquez sur Profils.
-
Sélectionnez le profil ADFS créé précédemment.
-
Cliquez sur OK, puis sur Terminé.
Associez le profil proxy ADFS au serveur virtuel d’équilibrage de charge à l’aide de l’interface de ligne de commande
Dans le déploiement ADFS, deux serveurs virtuels 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 ssl vserver lb_adfs_proxy -sslProfile ns_default_ssl_profile_frontend
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 de la confiance des certificats est effectué uniquement lorsque la confiance est établie entre l’appliance NetScaler 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 NetScaler envoie les anciens certificats (SerializedTrustCertificate) et les nouveaux (SerializedReplacementCertificate) sous forme de requête POST au serveur ADFS pour le renouvellement de la confiance.
- Le serveur ADFS répond avec un succès de 200 OK si l’approbation est renouvelée avec succès.
- L’appliance NetScaler met à jour l’état sous la forme « ESTABLISHED_RENEW_SUCCESS » si le renouvellement de confiance est réussi. Si le renouvellement de la confiance échoue, l’état est mis à jour sous la forme « ESTABLISHED_RENEW_FAILED » et l’appliance NetScaler continue d’utiliser l’ancien certificat.
Remarque :
Vous ne pouvez pas mettre à jour la clé de certificat 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 :
add ssl certKey <name> -cert <certificate file> -key <key file>
add authentication vserver <name> SSL <ipaddress> <port>
bind ssl vserver <virtual server name> -certkeyName <string>
Exemple :
add ssl certKey adfs_trust_cert -cert "client/client_rsa_2048.pem" -key "client/client_rsa_2048.ky"
Remarque :
Le certificat doit être émis par l’autorité de certification du serveur ADFS.
add authentication vserver avs_adfs_proxy SSL 0.0.0.0
bind ssl vserver avs_adfs_proxy -certkeyName aaa_local
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 la charge d’ADFS est équilibrée à l’aide d’une appliance NetScaler, pour prendre en charge l’authentification basée sur des certificats sur le serveur ADFS, les utilisateurs doivent également se connecter à l’appliance NetScaler à l’aide du certificat. Cela permet à NetScaler de transmettre le certificat utilisateur à ADFS pour fournir une authentification unique au serveur ADFS.
Le schéma suivant représente le flux d’authentification du certificat client.
Configurer l’authentification unique pour le serveur ADFS à l’aide d’un certificat client
Pour configurer le SSO pour le serveur ADFS à l’aide du certificat client, vous devez d’abord configurer l’authentification par certificat client sur l’appliance NetScaler. 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 NetScaler 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 ;
bind ssl vserver <name> -certkeyName <string>
bind ssl vserver <vServerName> -certkeyName <string>
add authentication Policy <policy name> -rule <expression> -action <action name>
bind authentication vserver <name> -policy <name of the policy> -priority <integer>
Exemple :
bind ssl vserver lb_adfs_proxy -certkeyName aaa_local
set ssl profile ns_default_ssl_profile_frontend -eRSA ENABLED -sessReuse ENABLED -denySSLReneg NONSECURE
bind ssl vserver cs_adfs_proxy -certkeyName aaa_local
add authentication Policy local_pol -rule true -action LOCAL
bind authentication vserver avs_adfs_proxy -policy local_pol -priority 1
Pour plus d’informations sur la configuration du certificat client sur l’appliance NetScaler, consultez la section Configurer l’authentification par certificat client à l’aide de stratégies avancées. ```