Kompatibilität des Active Directory-Verbunddienst-Proxyintegrationsprotokolls

Wenn Drittanbieter-Proxys anstelle des Webanwendungsproxy verwendet werden sollen, müssen sie das MS-ADFSPIP-Protokoll unterstützen, das die ADFS- und WAP-Integrationsregeln festlegt. ADFSPIP integriert Active Directory Verbunddienste mit einem Authentifizierungs- und Anwendungsproxy, um den Zugriff auf Dienste innerhalb der Grenzen des Unternehmensnetzwerks für Clients zu ermöglichen, die sich außerhalb dieser Grenze befinden.

lokalisiertes Bild

Voraussetzungen

Um die Vertrauensstellung zwischen dem Proxyserver und der ADFS-Farm erfolgreich herzustellen, überprüfen Sie die folgende Konfiguration in der Citrix ADC Appliance:

  • Erstellen Sie ein SSL-Profil für das Back-End und aktivieren Sie SNI im SSL-Profil. Deaktivieren Sie SSLv3/TLS1. Geben Sie an der Eingabeaufforderung den folgenden Befehl ein:

     add ssl profile <new SSL profile> -sniEnable ENABLED -ssl3 DISABLED -tls1 DISABLED -commonName <FQDN of ADFS>
    
  • Deaktivieren Sie SSLv3/TLS1 für den Dienst. Geben Sie an der Eingabeaufforderung den folgenden Befehl ein:

     set ssl service <adfs service name> -sslProfile ns_default_ssl_profile_backend
    
  • Aktivieren Sie die SNI-Erweiterung für Back-End-Server-Handshakes. Geben Sie an der Eingabeaufforderung den folgenden Befehl ein:

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

Authentifizierungsmechanismus

Im Folgenden werden die Ereignisse auf hoher Ebene für die Authentifizierung aufgeführt.

  1. Vertrauensstellung mit ADFS-Server einrichten — Citrix ADC-Server richtet Vertrauensstellung mit dem ADFS-Server durch Registrierung eines Clientzertifikats ein. Nach der Einrichtung der Vertrauensstellung stellt die Citrix ADC-Appliance die Vertrauensstellung nach dem Neustart ohne Benutzereingriff wieder her.

    Nach Ablauf des Zertifikats müssen Sie die Vertrauensstellung wiederherstellen, indem Sie das ADFS-Proxyprofil entfernen und erneut hinzufügen.

  2. Veröffentlichte Endpunkte - Die Citrix ADC Appliance ruft automatisch die Liste der veröffentlichten Endpunkte auf dem ADFS-Server nach der Vertrauensstellung ab. Diese veröffentlichten Endpunkte filtern die Anforderungen, die an den ADFS-Server weitergeleitet werden.

  3. Header in Clientanforderungen einfügen : Wenn die Citrix ADC-Appliance Clientanforderungen tunneln, werden die HTTP-Header für ADFSPIP im Paket hinzugefügt, während sie an den ADFS-Server gesendet werden. Sie können die Zugriffssteuerung auf dem ADFS-Server basierend auf diesen Header-Werten implementieren. Die folgenden Header werden unterstützt.

    • 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. Verwalten des Endbenutzerdatenverkehrs — Der Endbenutzer-Datenverkehr wird sicher an die gewünschten Ressourcen weitergeleitet.

    Hinweis: Die Citrix ADC-Appliance verwendet eine formularbasierte Authentifizierung.

Konfigurieren von Citrix ADC für die Arbeit mit ADFS-Server

Voraussetzungen

  • Konfigurieren Sie Context Switching (CS) -Server als Front-End mit Authentifizierungs-, Autorisierungs- und Überwachungsserver hinter CS. Geben Sie an der Eingabeaufforderung Folgendes ein:

     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>
    
  • ADFS-Dienst hinzufügen. Geben Sie an der Eingabeaufforderung Folgendes ein:

     add service <adfs service name> <adfs server ip> SSL 443
    
     set ssl service <adfs service name> -sslProfile ns_default_ssl_profile_backend
    
  • Fügen Sie einen virtuellen Server mit Lastenausgleich hinzu. Geben Sie an der Eingabeaufforderung Folgendes ein:

     add lb vserver <lb vserver name> SSL 0.0.0.0 0
    
     set ssl vserver <lb vserver name> -sslProfile ns_default_ssl_profile_frontend
    
  • Binden Sie den Dienst an den Server mit Lastenausgleich. Geben Sie an der Eingabeaufforderung Folgendes ein:

     bind lb vserver <lb vserver name> <adfs service name>
    

Um Citrix ADC für die Arbeit mit dem ADFS-Server zu konfigurieren, müssen Sie Folgendes tun:

  1. Erstellen eines SSL CertKey-Profilschlüssels für die Verwendung mit dem ADFS-Proxy-Profil
  2. Erstellen eines ADFS-Proxyprofils
  3. Zuordnen des ADFS-Proxyprofils zum virtuellen LB-Server

Erstellen eines SSL-Zertifikats mit privatem Schlüssel zur Verwendung mit ADFS-Proxyprofil

Geben Sie an der Eingabeaufforderung Folgendes ein:

    add ssl certkey <certkeyname> –cert <certificate path> -key <keypath>

Hinweis: Die Zertifikatdatei und die Schlüsseldatei müssen in der Citrix ADC-Appliance vorhanden sein. Erstellen eines ADFS-Proxy-Profils mit CLI

Geben Sie an der Eingabeaufforderung Folgendes ein:

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>

Wo;

Profile name — Name des zu erstellenden AFDS-Proxyprofils

ServerUrl — Vollqualifizierter Domänenname des ADFS-Dienstes einschließlich Protokoll und Port. Zum Beispiel:https://adfs.citrix.com

Benutzername — Benutzername eines Administratorkontos, das auf dem ADFS-Server vorhanden ist

Kennwort — Kennwort des Administratorkontos, das als Benutzername verwendet wird

certKeyName — Name des zuvor erstellten SSL CertKey-Profils

Ordnen Sie das ADFS-Proxyprofil dem virtuellen Lastenausgleichsserver mit der CLI zu

In der ADFS-Bereitstellung gibt es zwei virtuelle Lastenausgleichsserver, einer für den Clientverkehr und der andere für den Metadatenaustausch. Das ADFS-Proxyprofil muss dem virtuellen Lastenausgleichsserver zugeordnet sein, der Front-End-ADFS-Server ist.

Geben Sie an der Eingabeaufforderung Folgendes ein:

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

Unterstützung der Vertrauenserneuerung für ADFSPIP

Sie können die Vertrauensstellung der vorhandenen Zertifikate erneuern, die kurz vor dem Ablauf liegen oder wenn das vorhandene Zertifikat ungültig ist. Die Vertrauenserneuerung von Zertifikaten erfolgt nur, wenn die Vertrauensstellung zwischen der Citrix ADC Appliance und dem ADFS-Server hergestellt wird. Um die Vertrauensstellung des Zertifikats zu erneuern, müssen Sie das neue Zertifikat bereitstellen.

Im folgenden Beispiel werden die Schritte aufgeführt, die an der Erneuerung der Zertifikatsvertrauensstellung beteiligt sind:

  1. Die Citrix ADC Appliance sendet sowohl alte (SerializedTrustCertificate) als auch neue (SerializedReplacementCertificate) Zertifikate in der POST-Anforderung an den ADFS-Server zur Vertrauenserneuerung.
  2. Der ADFS-Server reagiert mit 200 OK erfolgreich, wenn die Vertrauensstellung erfolgreich erneuert wurde.
  3. Die Citrix ADC Appliance aktualisiert den Status als “ESTABLISHED_RENEW_SUCCESS”, wenn die Vertrauenserneuerung erfolgreich ist. Wenn die Vertrauenserneuerung fehlschlägt, wird der Status als “ESTABLISHED_RENEW_FAILED” aktualisiert, und die Citrix ADC Appliance verwendet weiterhin das alte Zertifikat.

Hinweis:

Sie können den Certkey nicht aktualisieren, wenn er bereits an ein ADFS-Proxyprofil gebunden ist.

So konfigurieren Sie die Vertrauenserneuerung von Zertifikaten mit der CLI

Geben Sie an der Eingabeaufforderung Folgendes ein:

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

Beispiel:

set authentication adfsProxyProfile adfs_2 –CertKeyName ca_cert1

Clientzertifikatbasierte Authentifizierung auf dem ADFS-Server

Ab Windows Server 2016 hat Microsoft eine neue Methode zur Authentifizierung von Benutzern eingeführt, wenn auf ADFS über Proxyserver zugegriffen wird. Endbenutzer können sich nun mit ihren Zertifikaten anmelden, wodurch die Verwendung von Kennwort vermieden wird.

Endbenutzer greifen häufig über einen Proxy auf ADFS zu, insbesondere wenn sie sich nicht in den Räumlichkeiten befinden. Daher sind ADFS-Proxyserver erforderlich, um die Clientzertifikatsauthentifizierung über das ADFSPIP-Protokoll zu unterstützen.

Wenn ADFS mit einer Citrix ADC Appliance Lastausgleich ausgeführt wird, müssen sich Benutzer zur Unterstützung der zertifikatbasierten Authentifizierung auf dem ADFS-Server auch mit dem Zertifikat bei der Citrix ADC-Appliance anmelden. Dadurch kann Citrix ADC Benutzerzertifikate an ADFS übergeben, um SSO für den ADFS-Server bereitzustellen.

Das folgende Diagramm zeigt den Clientzertifikatauthentifizierungsfluss.

lokalisiertes Bild

Konfigurieren von SSO für ADFS-Server mithilfe des Clientzertifikats

Um SSO für ADFS-Server mithilfe des Clientzertifikats zu konfigurieren, müssen Sie zunächst die Clientzertifikatauthentifizierung auf der Citrix ADC Appliance konfigurieren. Anschließend müssen Sie die Zertifikatauthentifizierungsrichtlinie an den virtuellen Authentifizierungs-, Autorisierungs- und Überwachungsserver binden.

Geben Sie an der Eingabeaufforderung Folgendes ein:

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>

Beispiel:

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

Informationen zum Konfigurieren des Clientzertifikats auf der Citrix ADC Appliance finden Sie unter Konfigurieren der Clientzertifikatauthentifizierung mithilfe erweiterter Richtlinien.