Citrix ADC

Compliance des Active Directory-Verbunddienstproxy-

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

ADFSPIP und Citrix ADC

Voraussetzungen

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

  • Erstellen Sie ein SSL-Profil für das Backend 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>
     <!--NeedCopy-->
    
  • 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
     <!--NeedCopy-->
    
  • SNI-Erweiterung für Back-End-Server-Handshakes aktivieren. Geben Sie an der Eingabeaufforderung den folgenden Befehl ein:

     set vpn parameter –backendServerSni ENABLED
    
     set ssl parameter -denySSLReneg NONSECURE
     <!--NeedCopy-->
    

Wichtig

Für Home Realm Discovery (HRD) -Szenarien, in denen die Authentifizierung auf den ADFS-Server verlagert werden muss, empfiehlt Citrix, sowohl die Authentifizierung als auch SSO auf der Citrix ADC-Appliance zu deaktivieren.

Mechanismus der Authentifizierung

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

  1. Vertrauen mit dem ADFS-Server herstellen — Der Citrix ADC-Server richtet Vertrauen zum ADFS-Server ein, indem er ein Clientzertifikat registriert. Sobald der Trust eingerichtet ist, stellt die Citrix ADC-Appliance das Vertrauen nach dem Neustart ohne Benutzereingriff wieder her.

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

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

  3. Einfügen von Headern in Clientanforderungen - Wenn die Citrix ADC-Appliance Clientanforderungen tunnelt, werden die mit ADFSPIP verbundenen HTTP-Header dem 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-Pfad
    • X-MS-weitergeleitete Client-IP
    • X-MS-Proxy
    • X-MS-Target-Rolle
    • X-MS-ADFS-Proxy-Client-IP
  4. Verwalten des Datenverkehrs von Endbenutzern — Der Datenverkehr der Endbenutzer wird sicher an die gewünschten Ressourcen weitergeleitet.

    Hinweis

    Die Citrix ADC-Appliance verwendet die formularbasierte Authentifizierung.

Konfigurieren Sie Citrix ADC für die Unterstützung des ADFS-Servers

Voraussetzungen

  • Konfigurieren Sie den 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
     <!--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-->
    
  • Fügen Sie einen ADFS-Dienst hinzu. Geben Sie an der Eingabeaufforderung Folgendes ein:

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

     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-->
    
  • Binden Sie den Dienst an den Server mit Lastausgleich. Geben Sie an der Eingabeaufforderung Folgendes ein:

     bind lb vserver <lb vserver name> <adfs service name>
     <!--NeedCopy-->
    

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 zur Verwendung mit dem ADFS-Proxy-Profil
  2. Erstellen eines ADFS-Proxyprofils
  3. Ordnen Sie das ADFS-Proxyprofil dem virtuellen LB-Server zu

Erstellen Sie ein SSL-Zertifikat mit privatem Schlüssel zur Verwendung mit dem ADFS-Proxy-Profil

Geben Sie an der Eingabeaufforderung Folgendes ein:

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

Hinweis: Die Zertifikatsdatei und die Schlüsseldatei müssen in der Citrix ADC-Appliance vorhanden sein. Erstellen eines ADFS-Proxyprofils 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>
<!--NeedCopy-->

Wo;

Profilname — Name des zu erstellenden AFDS-Proxy-Profils

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

Username — Benutzername eines Admin-Kontos, das auf dem ADFS-Server existiert

Kennwort — Kennwort des Admin-Kontos, das als Benutzername verwendet wird

certKeyName — Name des zuvor erstellten SSL certKey-Profils

Ordnen Sie das ADFS-Proxyprofil über die CLI dem virtuellen Lastausgleichsserver zu

In der ADFS-Bereitstellung werden zwei virtuelle Lastausgleichsserver verwendet, einer für den Clientdatenverkehr und der andere für den Metadatenaustausch. Das ADFS-Proxyprofil muss mit dem virtuellen Lastausgleichsserver verknüpft sein, der den ADFS-Server mit Front-End beendet.

Geben Sie an der Eingabeaufforderung Folgendes ein:

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

Unterstützung der Erneuerung des Vertrauens für ADFSPIP

Sie können das Vertrauen der vorhandenen Zertifikate erneuern, die kurz vor dem Ablauf stehen oder wenn das vorhandene Zertifikat nicht gü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.

Wichtig

Für die Erneuerung neuer Zertifikate ist ein manuelles Eingreifen erforderlich.

Im folgenden Beispiel werden die Schritte zur Erneuerung des Zertifikatsvertrauens aufgeführt:

  1. Die Citrix ADC-Appliance sendet sowohl alte (SerializedTrustCertificate) als auch neue (SerializedReplacementCertificate) Zertifikate in POST-Anforderung an den ADFS-Server zur Erneuerung des Vertrauens.
  2. Der ADFS-Server reagiert mit 200 OK erfolgreich, wenn das Vertrauen erfolgreich erneuert wurde.
  3. Die Citrix ADC-Appliance aktualisiert den Status “ESTABLISHED_RENEW_SUCCESS”, wenn die Erneuerung des Vertrauens erfolgreich ist. Wenn die Erneuerung des Vertrauens 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 Cert-Schlüssel nicht aktualisieren, wenn er bereits an ein ADFS-Proxy-Profil gebunden ist.

So konfigurieren Sie die Vertrauenserneuerung von Zertifikaten über die CLI

Geben Sie an der Eingabeaufforderung Folgendes ein:

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

Beispiel:

set authentication adfsProxyProfile adfs_2 –CertKeyName ca_cert1
<!--NeedCopy-->

Clientzertifikatbasierte Authentifizierung auf dem ADFS-Server

Ab Windows Server 2016 führte Microsoft eine neue Methode zur Authentifizierung von Benutzern ein, wenn über Proxyserver auf ADFS zugegriffen wird. Endbenutzer können sich jetzt mit ihren Zertifikaten anmelden und vermeiden so die Verwendung eines Kennworts.

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

Wenn ADFS mit einer Citrix ADC-Appliance Lastenausgleich durchgeführt wird, müssen sich Benutzer zur Unterstützung der zertifikatbasierten Authentifizierung auf dem ADFS-Server ebenfalls mit dem Zertifikat bei der Citrix ADC-Appliance anmelden. Auf diese Weise kann Citrix ADC das Benutzerzertifikat an ADFS übergeben, um SSO für den ADFS-Server bereitzustellen.

Das folgende Diagramm zeigt den Ablauf der Clientzertifikatauthentifizierung.

Workflow zur Clientzertifikat-Authentifizierung

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

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

Darüber hinaus müssen Sie die folgenden Schritte ausführen.

  • Ein zusätzlicher virtueller Kontextswitching-Server mit Port 49443 muss konfiguriert werden, und dieser virtuelle Kontextswitching-Server muss auf denselben virtuellen Lastausgleichsserver zeigen, der für alle Ports geöffnet ist, die Sie zuvor erstellt haben.

  • Der Port 49443 muss zur Authentifizierung auf der Citrix ADC-Appliance geöffnet werden.

  • Die Kontextswitching-Richtlinie muss an denselben virtuellen Lastausgleichsserver mit geöffnetem Port 443 gebunden sein, den Sie zuvor erstellt haben.

  • Sie müssen denselben SSL-Dienst, den Sie zuvor erstellt haben, an den virtuellen Lastausgleichsserver binden.

  • Wenn Sie bereits ein SSL-Profil für das Backend erstellt haben, müssen Sie dieses Profil verwenden.

Geben Sie an der Eingabeaufforderung Folgendes ein:

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-->

Beispiel:

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-->

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

Compliance des Active Directory-Verbunddienstproxy-