NetScaler als OAuth IdP
NetScaler kann jetzt mithilfe des OpenID-Connect (OIDC) -Protokolls als Identitätsanbieter konfiguriert werden. Das OIDC-Protokoll stärkt die Funktionen von NetScaler zur Identitätsbereitstellung. Sie können jetzt mit einem Single Sign-On auf die unternehmensweit 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 in Nicht-Browser-Clients wie Apps und Dienste konzipiert. Daher wird das OIDC-Protokoll von vielen Implementierungen weitgehend übernommen.
Hinweis
NetScaler muss Version 12.1 oder höher verwenden, um als OAuth-IdP unter Verwendung des OIDC-Protokolls zu arbeiten.
Vorteile der Verwendung von NetScaler als OAuth IdP
- Eliminiert den Aufwand für die Pflege 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 mit Ihrem Identitätsanbieter und nicht mit einer Anwendung, auf die Sie zugreifen, freigegeben wird.
- Bietet umfassende Interoperabilität mit verschiedenen Systemen und erleichtert es den gehosteten Anwendungen, OpenID zu akzeptieren.
Hinweis
NetScaler Advanced Edition und höher ist erforderlich, damit die Lösung funktioniert.
So konfigurieren Sie NetScaler mit der GUI als OAuth-IdP
-
Erstellen Sie eine OAuth-IdP-Authentifizierungsrichtlinie.
- Navigieren Sie zu Sicherheit > AAA − Anwendungsverkehr > Richtlinien > Authentifizierung > Erweiterte Richtlinien > OAuth IDP> Richtlinien.
- Klicken Sie unter Richtlinienauf Hinzufügen.
-
Legen Sie auf der SeiteCreate Authentication OAuth IDP PolicyWerte für die folgenden Parameter fest und klicken Sie auf Create.
- Name: Der Name der Authentifizierungsrichtlinie.
- Aktion: Name des OAuth-IdP-Profils für die Authentifizierung, das auf Anfragen oder Verbindungen angewendet werden soll, die dieser Richtlinie entsprechen. Ausführliche Schritte finden Sie in Schritt 2.
- Protokollaktion: Name der Nachrichtenprotokollaktion, die verwendet werden soll, wenn eine Anfrage dieser Richtlinie entspricht. Ausführliche Schritte finden Sie in Schritt 3. Das Feld ist optional.
- Aktion mit undefiniertem Ergebnis: Aktion, die durchgeführt werden muss, wenn das Ergebnis der Richtlinienbewertung nicht definiert ist. Ein undefiniertes Ereignis weist auf einen internen Fehler hin. Verfügbare Aktionen sind DROP und RESET. Das Feld ist optional.
- Ausdruck: Erweiterter Ausdruck, den die Richtlinie verwendet, um auf bestimmte Anfragen zu antworten. Weitere Informationen zu Richtlinien und Ausdrücken finden Sie unter Richtlinien und Ausdrücke.
-
Erstellen Sie eine OAuth-IdP-Authentifizierungsaktion.
- Klicken Sie auf der SeiteCreate Authentication OAuth IDP Policyim FeldAktion auf Hinzufügen.
-
Legen Sie auf der daraufhin angezeigten SeiteCreate Authentication OAuth IDP ProfileWerte für die folgenden Parameter fest und klicken Sie auf Create.
- Name: Name für das neue OAuth-IdP-Single-Sign-On-Profil.
- Client-ID: Eindeutige Identität der vertrauenden Partei, die die Authentifizierung anfordert. Die maximal zulässige Länge beträgt 127 Zeichen.
- Client Secret: Eindeutige geheime Zeichenfolge zur Autorisierung der vertrauenden Partei auf dem Autorisierungsserver. Die maximal zulässige Länge beträgt 239 Zeichen.
- Umleitungs-URL: Der URL-Endpunkt der vertrauenden Partei, an den das OAuth-Token gesendet werden muss. Die maximal zulässige Länge beträgt 255 Zeichen.
- Name des Ausstellers: Der Name, der in Anfragen verwendet werden soll, die von NetScaler an den IdP gesendet werden, um NetScaler eindeutig zu identifizieren. Die maximal zulässige Länge beträgt 127 Zeichen.
- Zielgruppe: Zielempfänger für das Token, das vom IdP gesendet wird. Dies ist der Entitätsname oder die URL, die den Empfänger darstellt. Die maximal zulässige Länge beträgt 127 Zeichen.
- Skew Time: Diese Option gibt die Dauer an, für die das vom NetScaler IdP gesendete Token gültig ist. Wenn die Schräglaufzeit beispielsweise auf 10 Minuten festgelegt ist, wäre das Token gültig von (aktuelle Zeit minus 10) Minuten bis (aktuelle Zeit plus 10) Minuten, also insgesamt 20 Minuten. Die Standarddauer beträgt 5 Minuten.
- Standardauthentifizierungsgruppe: Gruppe, die der internen Gruppenliste der Sitzung hinzugefügt wurde. Dies ist nützlich für Administratoren, um die Konfiguration für die vertrauende Partei in einem nFactor-Flow zu bestimmen. Es kann im Ausdruck
AAA.USER.IS_MEMBER_OF("group name")
für Authentifizierungsrichtlinien verwendet werden, um den nFactor-Flow zu identifizieren, der sich auf die vertrauende Partei bezieht. Die maximal zulässige Länge beträgt 63 Zeichen. - Metadaten-URL der vertrauenden Partei: Endpunkt, an dem der NetScaler IdP Details zur Konfiguration der vertrauenden Partei abrufen kann. Die Metadatenantwort muss Endpunkte
jwks_uri
für öffentliche Schlüssel der vertrauenden Partei enthalten. Die maximal zulässige Länge beträgt 255 Zeichen. - Aktualisierungsintervall: Intervalle, in denen die Metadaten der vertrauenden Partei aktualisiert werden.
- Signature Service: Wählen Sie diese Option, um das Token zu verschlüsseln, wenn der NetScaler IdP eines sendet.
- Attribute: Name-Wert-Attributpaare, die in das ID-Token eingefügt werden sollen. Das Konfigurationsformat ist
name=value_expr@@@name2=value2_expr@@@
. Das@@@
Format wird als Trennzeichen zwischen den Name-Wert-Paaren verwendet. - Kennwort senden: Wählen Sie diese Option, um das verschlüsselte Kennwort im ID-Token zu senden.
- Erstellen Sie eine Überwachungsnachrichtenaktion.
- Klicken Sie auf der Seite Create Authentication OAuth IDP Policy im Feld Log Action auf Hinzufügen .
- Legen Sie auf der Seite “ Audit-Meldungsaktion erstellen “ Werte für die folgenden Parameter fest und klicken Sie auf Erstellen.
- Name: Name der Aktion für die Überwachungsnachricht.
- Protokollebene: Audit-Protokollebene, die den Schweregrad der generierten Protokollnachricht angibt.
- Ausdruck: Standard-Syntaxausdruck, der das Format und den Inhalt der Protokollnachricht definiert.
- In newnslog einloggen: Sendet die Nachricht an den neuen NSLOG-Server.
-
Erstellen Sie einen OAuth-Authentifizierungsserver.
- Navigieren Sie zuSicherheit > AAA − Anwendungsverkehr > Richtlinien > Authentifizierung > Erweiterte Richtlinien > Aktionen > OAUTH-Aktionenund klicken Sie auf Hinzufügen.
- Legen Sie auf der SeiteCreate Authentication OAuth ServerWerte für die erforderlichen Parameter fest und klicken Sie auf Erstellen.
- Binden Sie die OAuth-IdP-Richtlinie an den Authentifizierungs-OAuth-Server.
Die OAuth-Funktion unterstützt jetzt die folgenden Funktionen in der Token-API von Relying Party (RP) und von der IdP-Seite von NetScaler Gateway und NetScaler.
-
Unterstützung von PKCE (Proof Key for Code Exchange)
-
Unterstützung für client_assertion
So konfigurieren Sie NetScaler als IdP mithilfe des OIDC-Protokolls mithilfe der CLI
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 <>
<!--NeedCopy-->
Hinweise:
Sie können mehr als einen Schlüssel binden. Öffentliche Teile von Zertifikaten, die gebunden sind, werden als Antwort auf gesendet
jwks\_uri query (https://gw/oauth/idp/certs)
.Der introspektive OAuth-IdP-Endpunkt unterstützt die Eigenschaft
active: true
.Wenn der virtuelle Authentifizierungsserver als OAuth-IdP konfiguriert ist, muss die bekannte URL des OAuth-IdP-Discovery-Endpunkts angegeben werden.
https://<netscaler-oauth-idp-fqdn>/oauth/idp/.well-known/openid-configuration
NetScaler, der als OAuth-IdP konfiguriert ist, zeigt die Token-Endpunktauthentifizierungsmethoden
client_secret_post
,client_secret_jwt
,private_key_jwt
undclient_secret_basic
in der an den OAuth SP gesendeten.well-known-Endpoint
-Antwort nicht an.
Unterstützung von verschlüsselten Token im OIDC-Protokoll
NetScaler mit dem OIDC-Mechanismus unterstützt jetzt das Senden von verschlüsselten Tokens zusammen mit signierten Tokens. NetScaler 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 NetScaler 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” wurde im Profil “authentication OAuthIDPProfile” eingeführt.
So konfigurieren Sie den Endpunkt der vertrauenden Partei mithilfe von CLI
Geben Sie in der Befehlszeile Folgendes ein:
set authentication OAuthIDPProfile <name> [-relyingPartyMetadataURL <URL>] [-refreshInterval <mins>] [-status < >]
<!--NeedCopy-->
-
relyingPartyMetadataURL - Endpunkt, an dem NetScaler IdP Details über die konfigurierte Anbietergesellschaft 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 - Spiegelt den Status des Abrufvorgangs wider. Der Status ist abgeschlossen, sobald NetScaler die öffentlichen Schlüssel erfolgreich abgerufen hat.
Beispiel:
set authentication OAuthIDPProfile sample_profile -relyingPartyMetadataURL https://rp.customer.com/metadata -refreshInterval 50 -status < >
<!--NeedCopy-->
Nachdem der Endpunkt konfiguriert ist, fragt NetScaler zunächst den bekannten Endpunkt der vertrauenden Partei ab, um die Konfiguration zu lesen. Derzeit verarbeitet NetScaler nur den Endpunkt ‘jwks_uri’.
- Wenn ‘jwks_uri’ in der Antwort nicht vorhanden ist, ist der Status des Profils nicht vollständig.
- Wenn “jwks_uri” in der Antwort vorhanden ist, fragt NetScaler diesen Endpunkt auch ab, um die öffentlichen Schlüssel der vertrauenden Partei zu lesen.
Hinweis:
Für die Token-Verschlüsselung werden nur RSAES-OAEP- und AES256-GCM-Verschlüsselungsalgorithmen unterstützt.
Unterstützung von benutzerdefinierten Attributen auf OpenID Connect
Die OpenID
vertrauenden Parteien benötigen möglicherweise mehr als einen Benutzernamen oder einen Benutzerprinzipalnamen (UPN) im Token, um das Benutzerprofil zu erstellen oder Autorisierungsentscheidungen zu treffen. In den meisten Fällen müssen die Benutzergruppen Autorisierungsrichtlinien für den Benutzer anwenden. Manchmal sind weitere Details wie der Vor- oder Nachname für die Bereitstellung eines Benutzerkontos erforderlich.
NetScaler, der als IdP konfiguriert ist, kann verwendet werden, um mithilfe von Ausdrücken zusätzliche Attribute im OIDCid_token zu senden. Erweiterte Richtlinienausdrücke werden verwendet, um die benutzerdefinierten Attribute gemäß der Anforderung zu senden. Der NetScaler IdP wertet die Ausdrücke aus, die den Attributen entsprechen, und berechnet dann das endgültige Token.
NetScaler wendet automatisch JSONify
auf die Ausgabedaten an. 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 platziert (“[” und “]”). 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 mithilfe von CLI
Geben Sie in der Befehlszeile Folgendes ein:
set oauthidpprofile <name> -attributes <AAA-custom-attribute-pattern>
<!--NeedCopy-->
Die<AAA-custom-attribute-pattern>
kann beschrieben werden als:
Attribute1=PI-Expression@@@attribute2=PI-Expression@@@
‘attribute1’, ‘attribute2’ sind literale Zeichenketten, die den Namen des Attributs darstellen, das in das ID-Token eingefügt werden soll.
Hinweis:
Im folgenden Beispiel kann der Höchstwert des Ausdrucks
q"{myname=http.req.user.name@@@ssn="123456789"@@@jit="false"@@@groups=http.req.user.groups}"
2000 Byte betragen. Es enthält 4 benutzerdefinierte Attribute (myname, ssn, jit, groups). Der Höchstwert jedes benutzerdefinierten Attributs beträgt 10000 Byte. Beispielsweise kann das Gruppenattribut (basierend auf dem PI-Ausdruckhttp.req.user.groups
ausgewertet) bis zu 10000 Byte an Daten im OIDCid_token enthalten.Beispiel:
set oauthidpprofile sample_1 -attributes q"{myname=http.req.user.name@@@ssn="123456789"@@@jit="false"@@@groups=http.req.user.groups}"
- Der vorangegangene 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 Zeichenfolgenliteral zu senden, z. B. “‘hartcodierte String”’. Das Zeichenkettenliteral ist von doppelten Anführungszeichen um einfache Anführungszeichen oder um ein Startmuster herum von doppelten Anführungszeichen umgeben (das Startmuster ist
"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”. “
ssn
” hat auch einen fest codierten Referenzwert. Gruppen und “myname
” sind PI-Ausdrücke, die Zeichenfolgen ergeben.
Unterstützung für aktiv-aktive GSLB-Bereitstellungen auf NetScaler Gateway
NetScaler Gateway, das mit dem OIDC-Protokoll als Identity Provider (IdP) konfiguriert ist, kann aktiv-aktive GSLB-Bereitstellungen unterstützen. Die aktiv-aktive GSLB-Bereitstellung auf dem NetScaler Gateway IdP ermöglicht den Lastausgleich einer eingehenden Benutzeranmeldeanforderung an mehreren geografischen Standorten.
Wichtig
Wir empfehlen Ihnen, CA-Zertifikate an den SSL-Dienst zu binden und die Zertifikatsvalidierung für den SSL-Dienst zu aktivieren, um die Sicherheit zu erhöhen. Weitere Informationen zur Konfiguration eines GSLB-Setups finden Sie unter Beispiel für ein GSLB-Setup und eine GSLB-Konfiguration.