Citrix ADC

Citrix ADC als OAuth-IdP

Eine Citrix ADC Appliance kann nun mithilfe des OpenID-Connect-Protokolls (OIDC) als Identitätsanbieter konfiguriert werden. Das OIDC-Protokoll stärkt die Identitätsbereitstellungsfunktionen der Citrix ADC Appliance. Sie können jetzt mit einem Single Sign-On auf die unternehmensweite gehostete Anwendung zugreifen, da OIDC mehr Sicherheit bietet, indem das Benutzerkennwort nicht übertragen wird, sondern Token mit einer bestimmten Lebensdauer verwendet werden. OpenID ist auch für die Integration mit Nicht-Browser-Clients wie Apps und Dienste konzipiert. Daher wird das OIDC-Protokoll von vielen Implementierungen weit verbreitet übernommen.

Hinweis: Citrix ADC muss auf Version 12.1 oder höher installiert sein, damit die Appliance mit dem OIDC-Protokoll als OAuth-IdP funktioniert.

Vorteile der Verwendung von Citrix ADC als OAuth-IdP

  • Beseitigt den Aufwand für die Verwaltung mehrerer Authentifizierungskennwörter, da der Benutzer über eine einzige Identität in einer Organisation verfügt.
  • Bietet eine robuste Sicherheit für Ihr Kennwort, da das Kennwort nur für Ihren Identitätsanbieter und nicht für Anwendungen, auf die Sie zugreifen, freigegeben wird.
  • Weitreichende Interoperabilität mit verschiedenen Systemen, die es den gehosteten Anwendungen erleichtern, OpenID zu akzeptieren.

Hinweis: Citrix ADC Advanced Edition und höher ist erforderlich, damit die Lösung funktioniert.

So konfigurieren Sie die Citrix ADC Appliance als OAuth-IdP mit der GUI

  1. Navigieren Sie zu Konfiguration > Sicherheit > AAA-Anwendungsdatenverkehr > Richtlinien > Authentifizierung > Erweiterte Richtlinien > OAuth-IdP.

  2. Klicken Sie auf Profil, und klicken Sie auf Hinzufügen.

    Legen Sie im Bildschirm Authentifizierungs-OAuth-IDP-Profil erstellen Werte für die folgenden Parameter fest, und klicken Sie auf Erstellen .

    • Name — Name des Authentifizierungsprofils. Muss mit einem Buchstaben, einer Zahl oder dem Unterstrich (_) beginnen und nur Buchstaben, Zahlen und Bindestrich (-), Punkt (.) Pfund (#), Leerzeichen (), at (@), Gleich (=), Doppelpunkt (:) und Unterstrich enthalten. Nach der Erstellung des Profils kann nicht geändert werden.

    • Client-ID — Eindeutige Zeichenfolge, die SP identifiziert. Der Autorisierungsserver leitet die Clientkonfiguration mit dieser ID ab. Maximale Länge: 127.
    • Client Secret — Geheime Zeichenfolge, die vom Benutzer und Autorisierungsserver eingerichtet wurde. Maximale Länge: 239.
    • Umleitungs-URL — Endpunkt auf SP, auf den Code/Token gepostet werden muss.
    • Name des Ausstellers — Identität des Servers, dessen Token akzeptiert werden sollen. Maximale Länge: 127.
    • Zielgruppe — Zielempfänger für das Token, das vom IdP gesendet wird. Dies kann vom Empfänger überprüft werden.
    • Verzerrungszeit — Mit dieser Option wird die zulässige Zeitspanne in Minuten angegeben, die Citrix ADC für ein eingehendes Token zulässt. Wenn beispielsweise SkewTime 10 ist, wäre das Token gültig von (aktuelle Zeit - 10) min bis (aktuelle Zeit + 10) min, also 20 min. Standardwert: 5.
    • Standardauthentifizierungsgruppe : Eine Gruppe, die der Sitzung für dieses Profil hinzugefügt wurde, um die Richtlinienbewertung zu vereinfachen und beim Anpassen von Richtlinien zu helfen. Dies ist die Standardgruppe, die ausgewählt wird, wenn die authenticatiob zusätzlich zu den extrahierten Gruppen erfolgreich ist. Maximale Länge: 63
  3. Klicken Sie auf Richtlinien, und klicken Sie auf Hinzufügen.

  4. Legen Sie im Bildschirm Authentifizierungs-OAuth-IDP-Richtlinie erstellen Werte für die folgenden Parameter fest, und klicken Sie auf Erstellen .

    • Name — Der Name der Authentifizierungsrichtlinie.
    • Aktion — Name des oben erstellten Profils.
    • Protokollaktion — Name der Messagelog-Aktion, die verwendet werden soll, wenn eine Anforderung mit dieser Richtlinie übereinstimmt. Kein Pflichtfeld eingereicht.
    • Aktion Undefiniertes Ergebnis — Aktion, die ausgeführt wird, wenn das Ergebnis der Policy-Evaluierung unbestraft ist (UNDEF). Kein Pflichtfeld.
    • Ausdruck — Standard-Syntaxausdruck, den die Richtlinie verwendet, um auf bestimmte Anforderungen zu antworten. Zum Beispiel wahr.
    • Kommentare — Alle Kommentare zu der Richtlinie.

Binden der OAuthIDP-Richtlinie und der LDAP-Richtlinie an den virtuellen Authentifizierungsserver

  1. Navigieren Sie zu Konfiguration > Sicherheit > AAA-Anwendungsdatenverkehr > Richtlinien > Authentifizierung > Erweiterte Richtlinien > Aktionen > LDAP.

  2. Klicken Sie auf dem Bildschirm LDAP-Aktionen auf Hinzufügen .

  3. Legen Sie im Bildschirm Authentifizierungs-LDAP-Server erstellen die Werte für die folgenden Parameter fest, und klicken Sie auf Erstellen.

    • Name — Der Name der ldap-Aktion
    • Servername/ServerIP — Bereitstellen von FQDN oder IP des LDAP-Servers
    • Wählen Sie geeignete Werte für Sicherheitstyp, Port, Servertyp, Timeout
    • Stellen Sie sicher, dass die Authentifizierung aktiviert ist
    • Basis-DN — Basis, von der aus die LDAP-Suche gestartet werden soll. Beispiel: dc=aaa, dc=local.
    • Administrator Bind DN: Benutzername der Bindung an LDAP-Server. Zum Beispiel admin@aaa.local.
    • Administratorkennwort/Kennwort bestätigen: Kennwort zum Binden von LDAP
    • Klicken Sie auf Verbindung testen, um Ihre Einstellungen zu testen.
    • Serveranmeldename Attribut: Wählen Sie SAMAccountName
    • Andere Felder sind nicht obligatorisch und können daher nach Bedarf konfiguriert werden.
  4. Navigieren Sie zu Konfiguration > Sicherheit > AAA-Anwendungsverkehr > Richtlinien > Authentifizierung > Erweiterte Richtlinien > Richtlinie.

  5. Klicken Sie im Fenster Authentifizierungsrichtlinien auf Hinzufügen.

  6. Legen Sie auf der Seite Authentifizierungsrichtlinie erstellen die Werte für die folgenden Parameter fest, und klicken Sie auf Erstellen.

    • Name — Name der LDAP-Authentifizierungsrichtlinie.
    • Aktionstyp — Wählen Sie LDAP.
    • Aktion — Wählen Sie die LDAP-Aktion aus.
    • Ausdruck — Standard-Syntaxausdruck, mit dem die Richtlinie auf bestimmte Anforderungen reagiert. Zum Beispiel wahr**.

So konfigurieren Sie die Citrix ADC Appliance als IdP mit dem OIDC-Protokoll über die Befehlszeile

Geben Sie an der Eingabeaufforderung die folgenden Befehle ein:

  • add authentication OAuthIDPProfile <name> [-clientID <string>][-clientSecret ][-redirectURL <URL>][-issuer <string>][-audience <string>][-skewTime <mins>] [-defaultAuthenticationGroup <string>]
  • add authentication OAuthIdPPolicy <name> -rule <expression> [-action <string> [-undefAction <string>] [-comment <string>][-logAction <string>]

  • add authentication ldapAction aaa-ldap-act -serverIP 10.0.0.10 -ldapBase "dc=aaa,dc=local"

  • ldapBindDn <administrator@aaa.local> -ldapBindDnPassword <password> -ldapLoginName sAMAccountName

  • add authentication policy aaa-ldap-adv-pol -rule true -action aaa-ldap-act

  • bind authentication vserver auth_vs -policy <ldap_policy_name> -priority 100 -gotoPriorityExpression NEXT

  • bind authentication vserver auth_vs -policy <OAuthIDPPolicyName> -priority 5 -gotoPriorityExpression END

  • bind vpn global –certkey <>

Hinweis:

Sie können mehrere Schlüssel binden. Öffentliche Teile von Zertifikaten, die gebunden sind, werden als Antwort auf gesendet jwks\_uri query (https://gw/oauth/idp/certs).

Unterstützung für verschlüsselte Tokens auf OIDC-Protokoll

Die Citrix ADC Appliance mit dem OIDC-Mechanismus unterstützt jetzt das Senden von verschlüsselten Token zusammen mit signierten Token. Die Citrix ADC Appliance verwendet JSON-Webverschlüsselungsspezifikationen, um die verschlüsselten Token zu berechnen und unterstützt nur die kompakte Serialisierung verschlüsselter Token. Um ein OpenID-Token zu verschlüsseln, benötigt eine Citrix ADC Appliance den öffentlichen Schlüssel der vertrauenden Partei (RP). Der öffentliche Schlüssel wird dynamisch abgerufen, indem der bekannte Konfigurationsendpunkt der vertrauenden Partei abgefragt wird.

Eine neue Option “relyingPartyMetadataURL” wird im “authentication OAuthIDPProfile”-Profil eingeführt.

So konfigurieren Sie den Endpunkt der vertrauenden Partei über die Befehlszeile

Geben Sie an der Eingabeaufforderung Folgendes ein:

set authentication OAuthIDPProfile <name> [-relyingPartyMetadataURL <URL>] [-refreshInterval <mins>] [-status < >]

  • relyingPartyMetadataURL - Endpunkt, an dem Citrix ADC IdP Details über die zu konfigurierende vertrauende Partei abrufen kann. Die Metadatenantwort muss Endpunkte für jwks_uri für öffentliche RP-Schlüssel enthalten.

  • RefreshInterval - Definiert die Rate, mit der dieser Endpunkt abgefragt werden muss, um die Zertifikate in Minuten zu aktualisieren.

  • status - Gibt den Status des Polling-Vorgangs an. Der Status ist abgeschlossen, sobald die Citrix ADC Appliance die öffentlichen Schlüssel erfolgreich abruft.

    Beispiel

     set authentication OAuthIDPProfile sample_profile -relyingPartyMetadataURL https://rp.customer.com/metadata -refreshInterval 50 -status < >
    

Nachdem der Endpunkt konfiguriert wurde, fragt eine Citrix ADC Appliance zuerst den bekannten Endpunkt der vertrauenden Partei zum Lesen der Konfiguration ab. Derzeit verarbeitet die Citrix ADC Appliance nur den Endpunkt jwks_uri.

  • Wenn die ‘jwks_uri’ in der Antwort nicht vorhanden ist, ist der Status des Profils nicht abgeschlossen.
  • Wenn die ‘jwks_uri’ in der Antwort vorhanden ist, fragt Citrix ADC diesen Endpunkt auch ab, um die öffentlichen Schlüssel der vertrauenden Partei zu lesen.

Hinweis: Nur RSAES-OAEP- und AES-GCM-Verschlüsselungsalgorithmen werden für die Tokenverschlüsselung unterstützt.

Unterstützung von benutzerdefinierten Attributen auf OpenID Connect

OpenID vertrauende Parteien benötigen möglicherweise mehr als einen Benutzernamen oder einen User Principal Name (UPN) im Token, um das Benutzerprofil zu erstellen oder Autorisierungsentscheidungen zu treffen. Meistens müssen die Benutzergruppen Autorisierungsrichtlinien für den Benutzer anwenden. Manchmal sind weitere Details wie der Vor- oder Nachname für die Provisioning eines Benutzerkontos erforderlich.

Als IdP konfigurierte Citrix ADC Appliance kann zum Senden zusätzlicher Attribute im OIDCID_Token mithilfe von Ausdrücken verwendet werden. Erweiterte Richtlinienausdrücke werden verwendet, um die benutzerdefinierten Attribute gemäß der Anforderung zu senden. Der Citrix IdP wertet die Ausdrücke aus, die den Attributen entsprechen, und berechnet dann das endgültige Token.

Citrix ADC Appliance automatisch JSONify die Ausgabedaten. Beispielsweise sind Zahlen (wie SSN) oder boolesche Werte (true oder false) nicht von Anführungszeichen umgeben. Mehrwertige Attribute wie Gruppen werden innerhalb einer Array-Markierung ([“und”]) platziert. Die komplexen Typattribute werden nicht automatisch berechnet, und Sie können den PI-Ausdruck dieser komplexen Werte entsprechend Ihrer Anforderung konfigurieren.

So konfigurieren Sie den Endpunkt der vertrauenden Partei über die Befehlszeile

Geben Sie an der Eingabeaufforderung Folgendes ein:

set oauthidpprofile <name> -attributes <AAA-custom-attribute-pattern>

Die<AAA-custom-attribute-pattern> kann beschrieben werden als:

Attribute1=PI-Expression@@@attribute2=PI-Expression@@@

‘attribute1’,’attribute2’ are literal strings that represent the name of the attribute to be inserted in the id_token.

Hinweis: Sie können bis zu 2.000 Bytes an Attributen konfigurieren.

Beispiel: set oauthidpprofile sample_1 -attributes q{myname=http.req.user.name@@@ssn="123456789"@@@jit="false"@@@groups=http.req.user.groups}

  • Der vorangehende PI-Ausdruck ist ein erweiterter Richtlinienausdruck, der den Wert darstellt, der für das Attribut verwendet werden soll. Der PI-Ausdruck kann verwendet werden, um ein String-Literal zu senden, wie ‘hardcoded string ‘. Das String-Literal ist umgeben von doppelten Anführungszeichen um einfache Anführungszeichen oder doppelte Anführungszeichen um einen Start und ein Muster (wie bereits erwähnt, ist das Startmuster “q {“). Wenn der Wert des Attributs kein String-Literal ist, wird der Ausdruck zur Laufzeit ausgewertet und sein Wert wird im Token gesendet. Wenn der Wert zur Laufzeit leer ist, wird das entsprechende Attribut dem ID-Token nicht hinzugefügt.
  • Wie im Beispiel definiert, ist “false” eine literale Zeichenfolge für das Attribut “jit”. Außerdem hat “ssn” einen fest codierten Wert als Referenz. Gruppen und “myname” sind PI-Ausdrücke, die Zeichenfolgen liefern.

Unterstützung für aktiv-aktive GSLB-Bereitstellungen auf Citrix Gateway

Citrix Gateway, das als Identity Provider (IdP) mit dem OIDC-Protokoll konfiguriert ist, kann aktiv-aktive GSLB-Bereitstellungen unterstützen. Die aktiv-aktive GSLB-Bereitstellung auf dem Citrix Gateway IdP bietet die Möglichkeit, einen Lastenausgleich einer eingehenden Benutzeranmeldeanforderung über mehrere geografische Standorte hinweg zu verteilen.

Wichtig

Citrix empfiehlt, Zertifizierungsstellenzertifikate an den SSL-Dienst zu binden und die Zertifikatvalidierung für den SSL-Dienst zu aktivieren, um die Sicherheit zu erhöhen.

Weitere Informationen zum Konfigurieren des GSLB-Setups finden Sie unter Beispiel für eine GSLB Einrichtung und Konfiguration.