Conformité au protocole d’intégration du proxy de service Active Directory Federation

Remarque : la prise en charge du protocole d’intégration du proxy de service de fédération Active Directory est actuellement en version d’aperçu technique.

Un système composé de services ADFS (Active Directory Federation Services) et d’un serveur proxy fournit des services de sécurité pour votre application située à l’intérieur des frontières de l’entreprise. Ce système fournit l’authentification, l’autorisation et l’accès aux ressources situées dans les limites de sécurité de l’entreprise, sur site ou dans le cloud, pour les clients en dehors de ce périmètre de sécurité d’entreprise.

L’appliance Citrix ADC dispose d’un serveur proxy natif qui peut utiliser ADFSPIP (ADFS Proxy Integration Protocol) pour établir une approbation entre le serveur proxy et la batterie ADFS.

Conditions préalables

Pour établir la confiance entre le serveur proxy et la batterie ADFS, consultez la configuration suivante dans l’appliance Citrix ADC :

  • Désactivez le profil SSL par défaut pour le backend et activez SNI dans le profil SSL pour le backend. À l’invite de commandes, tapez la commande suivante :

    set ssl profile ns_default_ssl_profile_backend -sniEnable ENABLED -ssl3 DISABLED -tls1 DISABLED

  • 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

  • Activez DefaultSSLProfile dans le paramètre SSL par défaut. À l’invite de commandes, tapez la commande suivante :

    set ssl parameter -defaultProfile ENABLED

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 Citrix ADC établit la confiance avec le serveur ADFS en enregistrant un certificat client. Une fois l’approbation établie, l’appliance Citrix ADC rétablit l’approbation 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.

  2. Insérer des en-têtes dans les requêtes client : lorsque l’appliance Citrix ADC tunnel les requêtes client, les en-têtes HTTP associés à ADFSPIP sont ajoutés dans le paquet lors de leur envoi au serveur ADFS. Vous pouvez implémenter le 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
  3. Gérer le trafic utilisateur final : le trafic utilisateur final est acheminé en toute sécurité vers les ressources souhaitées.

    Remarque : l’appliance Citrix ADC utilise l’authentification basée sur un formulaire.

Configurer Citrix ADC pour fonctionner avec le serveur ADFS

Conditions préalables

  • Configurez le serveur de commutation de contexte (CS) comme front-end avec le serveur AAA 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

    • add cs action [action name1] -targetLBVserver [lb vserver name]

    • add cs action [action name2] -targetLBVserver [lb vserver name]

    • 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]
    • add cs policy [policy name2] -rule “HTTP.REQ.URL.CONTAINS("/adfs/ls")” -action [action name2]

    • bind cs vserver [cs vserver name] -policyName [policy name1] -priority 100

    • bind cs vserver [cs vserver name] -policyName [policy name2] -priority 110

    • bind cs vserver [cs vserver name] -lbvserver [lb vserver name]
  • Ajouter un service ADFS. À l’invite de commandes, tapez :

    • add service [adfs service name] [adfs server ip] SSL 443

    • set ssl service [adfs service name] -sslProfile ns_default_ssl_profile_backend

  • Ajouter un serveur virtuel équilibré de charge. À l’invite de commandes, tapez :

    • add lb vserver [lb vserver name] SSL 0.0.0.0 0

    • set ssl vserver [lb vserver name] -sslProfile ns_default_ssl_profile_frontend

  • Liez le service au serveur à charge équilibrée. À l’invite de commandes, tapez :

    • bind lb vserver [lb vserver name] [adfs service name]

Pour configurer Citrix ADC pour qu’il fonctionne avec le serveur ADFS, procédez comme suit :

  1. Créer une clé de profil CertKey SSL à utiliser avec le profil proxy ADFS
  2. Créer un profil proxy ADFS
  3. Associer le profil proxy ADFS au serveur virtuel LB

Créer 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>

Remarque : le fichier de certificat et le fichier de clé doivent être présents dans le dispositif Citrix ADC. Créer 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>

where;

Profile name : nom du profil proxy AFDS à créer

ServerURL : nom de domaine complet du service ADFS, y compris le protocole et le port. Exemple : https://adfs.citrix.com

Nom d’utilisateur — Nom d’utilisateur d’un compte administrateur existant sur le serveur ADFS

Mot de passe — Mot de passe du compte admin utilisé comme nom d’utilisateur

CertKeyName — Nom du profil CertKey SSL précédemment créé

Associer 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, il existe deux serveurs virtuels d’équilibrage de charge, 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 en tête du serveur ADFS.

À l’invite de commandes, tapez :

set lb vserver <adfs-proxy-lb> -adfsProxyProfile <name of the ADFS proxy profile>