Citrix ADC

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

Si des proxy 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 avec 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 à l’extérieur de cette limite.

image localisée

Conditions préalables

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

  • Créez un profil SSL pour 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>
    
  • 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 l’extension SNI pour les poignées de main du serveur principal. À l’invite de commandes, tapez la commande suivante :

     set vpn parameter –backendServerSni ENABLED
    
     set ssl parameter -denySSLReneg NONSECURE
    

Important

Pour les scénarios HRD (Home Realm Discovery) où l’authentification doit être déchargée sur le serveur ADFS, Citrix vous recommande de désactiver 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.

  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. Points de terminaison publiés : l’appliance Citrix ADC récupère automatiquement la liste des points de terminaison publiés sur l’établissement de post-approbation du serveur ADFS. Ces points de terminaison publiés filtrent les demandes transmises au serveur ADFS.

  3. 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
  4. Gérer le trafic des utilisateurs finaux — Le trafic des utilisateurs finaux 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 qu’il fonctionne avec le serveur ADFS

Conditions préalables

  • Configurez le serveur CS (Context Switching) en tant que serveur frontal avec authentification, autorisation et serveur 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
    
     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
    
  • Ajoutez 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 SSL CertKey à 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 l’appliance 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>

Où ;

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

ServerURL — Nom de domaine complet du service ADFS, y compris le protocole et le port. Par exemple, les opérations suivantes peuvent être effectuées : 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 créé précédemment

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>

Soutien au renouvellement de la 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 n’est effectué que lorsque l’approbation est établie entre l’appliance Citrix ADC et le serveur ADFS. Pour renouveler la confiance du certificat, vous devez fournir le nouveau certificat.

Important

Une intervention manuelle est requise pour le renouvellement de la confiance des nouveaux certificats.

L’exemple suivant répertorie les étapes impliquées dans le renouvellement de l’approbation de certificat :

  1. L’appliance Citrix ADC envoie à la fois les anciens certificats (SerializedTrustCertificate) et les nouveaux certificats (SerializedReplacementCertificate) dans la demande POST au serveur ADFS pour renouvellement d’approbation.
  2. Le serveur ADFS répond avec 200 OK si l’approbation est renouvelée avec succès.
  3. L’appliance Citrix ADC met à jour l’état “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 certificat si elle est déjà liée à un profil proxy ADFS.

Pour configurer le renouvellement d’approbation des certificats à l’aide de l’interface de ligne de commande

À l’invite de commandes, tapez :

set authentication adfsProxyProfile <name> [-CertKeyName <string>]

Exemple :

set authentication adfsProxyProfile adfs_2 –CertKeyName ca_cert1

Authentification basée sur le certificat client sur le serveur ADFS

À partir de Windows Server 2016, Microsoft a introduit une nouvelle façon d’authentifier les utilisateurs lorsque ADFS est accessible via des serveurs proxy. Maintenant, les utilisateurs finaux peuvent se connecter avec leurs certificats, évitant ainsi l’utilisation de mot de passe.

Les utilisateurs finaux accèdent souvent à ADFS via un proxy, surtout lorsqu’ils ne sont pas dans les locaux. Par conséquent, les serveurs proxy ADFS sont requis pour prendre en charge l’authentification de certificat client via le protocole ADFSPIP.

Lorsque ADFS est équilibré en charge à l’aide d’une appliance Citrix ADC, pour prendre en charge l’authentification basée sur le certificat sur le serveur ADFS, les utilisateurs doivent également se connecter à l’appliance Citrix ADC à l’aide du certificat. Cela permet à Citrix ADC de transmettre un certificat utilisateur à ADFS pour fournir l’authentification SSO au serveur ADFS.

Le diagramme suivant illustre le flux d’authentification du certificat client.

image localisée

Configurer l’authentification SSO 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 de certificat client sur l’appliance Citrix ADC. Vous devez ensuite lier la stratégie d’authentification de certificat à l’authentification, à l’autorisation et à l’audit du serveur virtuel.

À l’invite de commandes, tapez ;

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>

Exemple :

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

Pour plus d’informations sur la configuration du certificat client sur l’appliance Citrix ADC, reportez-vous à la section Configurer l’authentification de certificat client à l’aide de stratégies avancées.

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