NetScaler als OAuth SP
Die Authentifizierungs-, Autorisierungs- und Überwachungsfunktion zur Verkehrsverwaltung unterstützt die OAuth-Authentifizierung zur Authentifizierung von Benutzern gegenüber Anwendungen, die auf Anwendungen wie Google, Facebook und Twitter gehostet werden.
Wichtige Hinweise
- NetScaler Advanced Edition und höher ist erforderlich, damit die Lösung funktioniert.
- OAuth on NetScaler ist für alle SAML-IdPs qualifiziert, die mit “OpenID Connect 2.0” kompatibel sind.
Wichtig:
NetScaler reagiert möglicherweise mit einem CSRF-Fehler, wenn eine Website mit vielen Inhalten nach Ablauf der Sitzung mehrere Authentifizierungsanfragen sendet. Als Problemumgehung wird empfohlen, dass Sie bei der Konfiguration der OAuth-Richtlinie sicherstellen, dass die Richtlinie sowohl für den Hostnamen als auch für den Pfad konfiguriert ist, die die Haupteintrittspunkte sind.
Konfigurieren von OAuth über die GUI
-
Konfigurieren Sie die OAuth -Aktion und -Richtlinie.
Navigieren Sie zu Sicherheit > AAA — Anwendungsdatenverkehr > Richtlinien > Authentifizierung > Erweiterte Richtlinien > Richtlinie, erstellen Sie eine Richtlinie mit OAuth als Aktionstyp, und verknüpfen Sie die erforderliche OAuth-Aktion mit der Richtlinie.
-
Ordnen Sie die OAuth-Richtlinie einem virtuellen Authentifizierungsserver zu.
Navigieren Sie zu Sicherheit > AAA — Anwendungsdatenverkehr > Virtuelle Server, und ordnen Sie die OAuth-Richtlinie dem virtuellen Authentifizierungsserver zu.
Hinweis:
Attribute (1 bis 16) können in der OAuth-Antwort extrahiert werden. Derzeit werden diese Attribute nicht ausgewertet. Sie werden zur zukünftigen Bezugnahme hinzugefügt.
Konfigurieren von OAuth über die CLI
-
Definieren Sie eine OAuth-Aktion.
add authentication OAuthAction <name> [-OAuthType <OAuthType>] [-authorizationEndpoint <URL>] [-tokenEndpoint <URL>] [-idtokenDecryptEndpoint <URL>] [-clientID <string>][-clientSecret ] [-defaultAuthenticationGroup <string>] [-Attribute1 <string>] [-Attribute2 <string>] [-Attribute3 <string>] [-Attributes <string>] [-tenantID <string>] [-GraphEndpoint <string>] [-refreshInterval <positive_integer>] [-CertEndpoint <string>][-audience <string>] [-userNameField <string>] [-skewTime <mins>] [-issuer <string>] [-UserInfoURL <URL>] [-CertFilePath <string>] [-grantType ( CODE | PASSWORD )] [-authentication ( ENABLED | DISABLED )] [-introspectURL <URL>][-allowedAlgorithms <allowedAlgorithms> ...] [-PKCE ( ENABLED | DISABLED )] [-tokenEndpointAuthMethod <tokenEndpointAuthMethod>] [-metadataUrl <URL>] [-resourceUri <URL>] <!--NeedCopy-->
-
Ordnen Sie die Aktion einer erweiterten Authentifizierungsrichtlinie zu.
add authentication Policy <name> -rule <expression> -action <string> <!--NeedCopy-->
Beispiel:
add authentication oauthAction a -authorizationEndpoint https://example.com/ -tokenEndpoint https://example.com/ -clientiD sadf -clientsecret df <!--NeedCopy-->
Weitere Informationen zur Authentifizierung von OAuthAction-Parametern finden Sie unter Authentifizierung OAuthAction.
Hinweis:
- Wenn ein CertEndPoint angegeben ist, fragt NetScaler diesen Endpunkt mit der konfigurierten Frequenz ab, um die Schlüssel zu ermitteln.
Um einen NetScaler so zu konfigurieren, dass er die lokale Datei liest und Schlüssel aus dieser Datei analysiert, wird eine neue Konfigurationsoption wie folgt eingeführt:
set authentication OAuthAction <name> -CertFilePath <path to local file with jwks>
<!--NeedCopy-->
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
Unterstützung von Name-Wert-Attributen für OAuth-Authentifizierung
Sie können jetzt OAuth-Authentifizierungsattribute mit einem eindeutigen Namen zusammen mit den Werten konfigurieren. Die Namen werden im Aktionsparameter von OAuth entweder als “Attribute” konfiguriert und die Werte werden durch Abfragen der Namen abgerufen. Die extrahierten Attribute werden in der Authentifizierungs-, Autorisierungs- und Überwachungssitzung gespeichert. Administratoren können diese Attribute entweder mit http.req.user.attribute("attribute name")
oder http.req.user.attribute(1)
abfragen, basierend auf der ausgewählten Methode zur Angabe von Attributnamen.
Durch Angabe des Attributnamens können Administratoren einfach nach dem Attributwert suchen, der mit diesem Attributnamen verknüpft ist. Außerdem müssen sich Administratoren das “attribute1 to attribute16” nicht mehr allein anhand seiner Nummer merken.
Wichtig!
In einem OAuth-Befehl können Sie maximal 64 durch Komma getrennte Attribute mit einer Gesamtgröße von weniger als 1024 Byte konfigurieren.
Hinweis
Der Sitzungsfehler kann vermieden werden, wenn die Gesamtwertgröße von “Attribut 1 bis Attribut 16” und die Werte der in “Attribute” angegebenen Attribute nicht mehr als 10 KB betragen.
So konfigurieren Sie die Name-Wert-Attribute mit der CLI
Geben Sie in der Befehlszeile Folgendes ein:
add authentication OAuthAction <name> [-Attributes <string>]
set authentication OAuthAction <name> [-Attributes <string>]
<!--NeedCopy-->
Beispiele
add authentication OAuthAction a1 –attributes "email,company" –attribute1 email
set authentication OAuthAction oAuthAct1 -attributes "mail,sn,userprincipalName"
<!--NeedCopy-->