NetScaler ADC als SAML-IdP
Der SAML-IdP (Identity Provider) ist eine SAML-Entität, die im Kundennetzwerk bereitgestellt wird. Der IdP empfängt Anfragen vom SAML-SP und leitet Benutzer auf eine Anmeldeseite weiter, auf der sie ihre Anmeldeinformationen eingeben müssen. Der IdP authentifiziert diese Anmeldeinformationen mit dem Active Directory (externer Authentifizierungsserver wie LDAP) und generiert dann eine SAML-Assertion, die an den SP gesendet wird.
Der SP validiert das Token und dem Benutzer wird dann Zugriff auf die angeforderte geschützte Anwendung gewährt.
Wenn die NetScaler ADC Appliance als IdP konfiguriert ist, werden alle Anfragen von einem virtuellen Authentifizierungsserver empfangen, der mit dem entsprechenden SAML-IdP-Profil verknüpft ist.
Hinweis
Eine NetScaler ADC Appliance kann als IdP in einer Bereitstellung verwendet werden, in der der SAML-SP entweder auf der Appliance oder auf einem externen SAML-SP konfiguriert ist.
Bei Verwendung als SAML-IdP eine NetScaler ADC Appliance:
-
Unterstützt alle Authentifizierungsmethoden, die es für herkömmliche Anmeldungen unterstützt.
-
Signiert digital Behauptungen.
-
Unterstützt Einzelfaktor- und Zwei-Faktor-Authentifizierung. SAML darf nicht als sekundärer Authentifizierungsmechanismus konfiguriert werden.
-
Kann Assertionen mithilfe des öffentlichen Schlüssels des SAML-SP verschlüsseln. Dies wird empfohlen, wenn die Assertion sensible Informationen enthält.
-
Kann so konfiguriert werden, dass nur digital signierte Anfragen vom SAML-SP akzeptiert werden.
-
Kann sich mit den folgenden 401-basierten Authentifizierungsmechanismen am SAML-IdP anmelden: Negotiate, NTLM und Certificate.
-
Kann so konfiguriert werden, dass zusätzlich zum NameID-Attribut 16 Attribute gesendet werden. Die Attribute müssen vom entsprechenden Authentifizierungsserver extrahiert werden. Für jeden von ihnen können Sie den Namen, den Ausdruck, das Format und einen Anzeigenamen im SAML-IdP-Profil angeben.
-
Wenn die NetScaler ADC Appliance als SAML-IdP für mehrere SAML-SP konfiguriert ist, kann ein Benutzer Zugriff auf Anwendungen auf den verschiedenen SPs erhalten, ohne sich jedes Mal explizit zu authentifizieren. Die NetScaler ADC Appliance erstellt ein Sitzungscookie für die erste Authentifizierung, und jede nachfolgende Anforderung verwendet dieses Cookie zur Authentifizierung.
-
Kann mehrwertige Attribute in einer SAML-Assertion senden.
-
Unterstützt Post- und Umleitungsbindungen. Die Unterstützung für Artefaktbindung wird in NetScaler ADC Release 13.0 Build 36.27 eingeführt.
-
Kann die Gültigkeit einer SAML-Assertion angeben.
Wenn die Systemzeit auf NetScaler ADC SAML IdP und Peer-SAML-SP nicht synchron ist, werden die Nachrichten möglicherweise von beiden Parteien ungültig gemacht. Um solche Fälle zu vermeiden, können Sie jetzt die Zeitdauer festlegen, für die die Assertionen gültig sind.
Diese Dauer, die als “Skew-Zeit” bezeichnet wird, gibt die Anzahl der Minuten an, für die die Nachricht akzeptiert werden muss. Die Skew Time kann auf dem SAML-SP und dem SAML-IdP konfiguriert werden.
-
Kann so konfiguriert werden, dass Assertionen nur für SAML-SPs verwendet werden, die auf dem IdP vorkonfiguriert sind oder denen er vertraut. Für diese Konfiguration muss der SAML-IdP die Dienstanbieter-ID (oder den Namen des Ausstellers) der entsprechenden SAML-SPs haben.
Hinweis
-
Bevor Sie fortfahren, stellen Sie sicher, dass Sie über eine Authentifizierungsrichtlinie verfügen, die an einen virtuellen LDAP-Authentifizierungsserver gebunden ist.
-
Einzelheiten zur Konfiguration einer LDAP-Aktion zum Abrufen der erforderlichen Attribute finden Sie unter Unterstützung von Name-Value-Attributen fürdie LDAP-Authentifizierung.
-
Konfigurieren Sie eine NetScaler ADC Appliance als SAML IdP mithilfe der CLI
-
Konfigurieren Sie ein SAML-IdP-Profil.
Beispiel
Hinzufügen von NetScaler ADC Appliance als IdP mit SiteMinder als SP.
add authentication samlIdPProfile samlIDPProf1 -samlSPCertName siteminder-cert -encryptAssertion ON -metadataUrl https://samlidp.example.com/metadata -samlIdPCertName ns-cert -assertionConsumerServiceURL https://example.com/cgi/samlauth -rejectUnsignedRequests ON -signatureAlg RSA-SHA256 -digestMethod SHA256 –acsUrlRule AAA.LOGIN.SAML_REQ_ACS_URL.REGEX_MATCH(re#^https://example\.com/cgi/samlauth$#)
-
Konfigurieren Sie das SAML-IdP-Profil. Im folgenden Beispiel enthält die IdP-Sitzung das Attribut „userPrincipalName“.
set samlidPProfile SAML-IDP-Profile -Attribute1 "userPrincipalName" -Attribute1Expr "AAA.USER.ATTRIBUTE(\"userPrincipalName\")"
Wichtige Hinweise
-
Konfigurieren Sie im SAML-IdP-Profil AcsURLRule, die einen Ausdruck der Liste der anwendbaren Dienstanbieter-URLs für diesen IdP verwendet. Dieser Ausdruck hängt vom verwendeten SP ab. Wenn NetScaler ADC als SP konfiguriert ist, lautet die ACS-URL
https://<SP-domain_name>/cgi/samlauth
. Citrix empfiehlt, eine vollständige URL im Ausdruck zum Abgleichen zu haben. -
Wenn Sie möchten, dass der SAML-IdP nur eine ACS-URL zulässt, verwenden Sie den folgenden Befehl:
Das folgende CLI-Beispiel verwendet
https://testlb.aaa.local
als ACS-URL:set samlidpprofile SAML_IDP_profile -acsurlrule "AAA.LOGIN.SAML_REQ_ACS_URL.eq("https://testlb.aaa.local")" <!--NeedCopy-->
-
Wenn Sie möchten, dass der SAML-IdP eine Reihe von ACS-URLs zulässt, verwenden Sie die folgenden Befehle:
Das folgende CLI-Beispiel verwendet
{"https://testlb.aaa.local", "https://testav.aaa.local"}
als Satz von ACS-URLs:add patset saml_acsUrl bind patset saml_acsUrl https://testlb.aaa.local bind patset saml_acsUrl https://testav.aaa.local set samlidpprofile SAML_IDP_profile -acsurlrule "AAA.LOGIN.SAML_REQ_ACS_URL.contains_any("saml_acsUrl")" <!--NeedCopy-->
-
Wenn Sie möchten, dass der SAML-IdP die ACS-URL mit einem regulären Ausdruck abgleicht, verwenden Sie den folgenden Ausdruck:
–acsUrlRule AAA.LOGIN.SAML_REQ_ACS_URL.REGEX_MATCH(re#^https://example.com/cgi/samlauth$#)
Der obige Ausdruck stellt sicher, dass die ACS-URL mit übereinstimmt
https://example.com/cgi/samlauth
. Das „^“ -Zeichen am Anfang des regulären Ausdrucks stellt sicher, dass NetScaler ADC vor „https“ nichts zulässt. Das „$“ -Zeichen am Ende des regulären Ausdrucks stellt sicher, dass NetScaler ADC nach „samlauth“ nichts zulässt.Wenn der Ausdruck lautet
-acsUrlRule AAA.LOGIN.SAML_REQ_ACS_URL.REGEX_MATCH(re#https://example.com/cgi/#)
, lässt der SAML-IdP jede ACS-URL zu, wie in den folgenden Beispielen gezeigt:-
https://example.com/cgi/samlauth
-
abcdhttps://example.com/cgi/xyz
-
https://example.com/cgi/abcde
-
-
SAML unterstützt nur das RSA-Zertifikat. Andere Zertifikate wie HSM, FIPS werden nicht unterstützt.
Weitere Informationen zum Befehl finden Sie unter https://developer-docs.citrix.com/projects/citrix-adc-command-reference/en/latest/authentication/authentication-samlAction und https://support.citrix.com/article/CTX316577.
-
Wenn sich die IdP-Abmelde-URL von der Umleitungs-URL unterscheidet und der Benutzer länger als 2 Minuten auf der Citrix ADC-Anmeldeseite ist, wird ein Serverfehler
HTTP/1.1 Internal Server Error 43549
angezeigt, wenn der Benutzer versucht, sich zu authentifizieren. In den NetScaler ADC-Protokollen wird eine Meldung angezeigt, die angibt, dass die Umleitungs-URL für eingehende Nachrichten nach der Abmeldung nicht in den zulässigen Abmeldeumleitungs-URLs für den Benutzer enthalten ist.Um dieses Problem zu beheben, binden Sie den Mustersatz wie im folgenden Beispiel gezeigt:
bind patset ns_aaa_oauthidp_logout_redirect_uris "https://FQDN and path to the logout url"
-
Wenn der virtuelle Authentifizierungsserver als SAML-SP konfiguriert ist, lautet die Metadaten-URL, die im SAML-IdP-Profil verwendet werden muss.
https://<citrix-adc-saml-sp-fqdn>/metadata/samlsp/saml_sp_act
Beispiel:add authentication samlIdPProfile SAML_IDP_profile -samlIdPCertName aaa_local -assertionConsumerServiceURL "https://ksav.ksaaa.local/cgi/samlauth" -samlIssuerName "https://ksidp1.aaa.local/saml/login" -rejectUnsignedRequests OFF -serviceProviderID kslb.ksaaa.local -signAssertion NONE -SPLogoutUrl "https://ksav.ksaaa.local/cgi/tmlogout" -logoutBinding REDIRECT -metadataUrl "https://ksav.ksaaa.local/metadata/samlsp/saml_sp_act" -metadataRefreshInterval 1
-
-
Konfigurieren Sie die SAML-Authentifizierungsrichtlinie, und ordnen Sie das SAML-IdP-Profil als Aktion der Richtlinie zu.
add authentication samlIdPPolicy samlIDPPol1 -rule true -action samlIDPProf1
Hinweis:
Wenn der Richtlinienname ein oder mehrere Leerzeichen enthält, setzen Sie den Namen in doppelte oder einfache Anführungszeichen (z. B. “meine Richtlinie” oder ‘meine Richtlinie’).
-
Binden Sie die Richtlinie an den virtuellen Authentifizierungsserver.
bind authentication vserver saml-auth-vserver -policy samlIDPPol1 -priority 100
Weitere Informationen zum Befehl finden Sie unter https://developer-docs.citrix.com/projects/citrix-adc-command-reference/en/latest/authentication/authentication-samlIdPProfile.
NetScaler ADC Appliance als SAML IdP mithilfe der GUI konfigurieren
-
Konfigurieren Sie ein SAML-IdP-Profil. Dieses Profil wird verwendet, um die eingehenden Authentifizierungsanfragen vom SP zu überprüfen und die Assertion zu erstellen und zu signieren, bevor sie an den SP gesendet wird.
Navigieren Sie zu Sicherheit > AAA — Anwendungsdatenverkehr > Richtlinien > Erweiterte Authentifizierungsrichtlinien > SAML-IDP-Richtlinien.
Wählen Sie Serveraus, klicken Sie auf Hinzufügen, geben Sie Werte für die folgenden Parameter ein und klicken Sie auf Erstellen.
Parameter-Beschreibungen:
-
Name — Der Name des neuen SAML-Single-Sign-On-Profils.
-
SAML IDP-Metadaten exportieren — Klicken Sie auf diesen Link, wenn Sie die Metadaten des SAML IdP-Profils auf einen virtuellen NetScaler Gateway VPN-Server exportieren möchten.
-
Metadaten importieren — Diese Option importiert die SAML-IdP-Metadaten. Diese Option ist standardmäßig aktiviert.
-
Assertion Consumer Service Url — Die URL, an die die Assertion gesendet werden soll.
-
Service Provider-Abmelde-URL — Der SP-Endpunkt, an den Abmeldenachrichten gesendet werden sollen.
-
Logout-Bindung — Gibt den Transportmechanismus der SAML-Abmeldenachrichten an. Verfügbare Optionen sind POST und REDIRECT.
-
SAML SP-Metadaten-URL — Die URL, die zum Abrufen der SAML-IdP-Metadaten verwendet wird.
Hinweis:
Wenn die SAML SP-Metadaten-URL konfiguriert ist, werden die folgenden Parameter aus dem SAML-IdP-Profil übernommen und in der SAML SP-Konfiguration automatisch ausgefüllt:
- Assertion Consumer Service URL
- Abmelde-URL des Dienstanbieters
- SP-Zertifikatsname
- Abmeldebindung
- SAML-Bindung
- Assertion unterschreiben
-
Aktualisierungsintervall für Metadaten (Minuten) — Das Zeitintervall (in Minuten) für das Abrufen der Metadaten von der angegebenen Metadaten-URL. Das Standardzeitintervall ist 3600 Minuten.
-
Assertion Consumer Service URL Rule — Ausdruck, der die zulässigen ACS-URLs definiert, die von einem SAML-SP stammen. Mit anderen Worten, es erlaubt Listen von ACS-URLs, um Angriffe zu verhindern, bei denen betrügerische ACS-URLs in SAML-Anfragen eingefügt werden.
-
Assertion Consumer Service URL — Die URL, zu der der authentifizierte Benutzer umgeleitet wird.
-
IdP-Zertifikatname - Zertifikatschlüsselpaar, das für die Authentifizierungsseite verwendet wird.
-
Name des SP-Zertifikats - Zertifikat des Dienstanbieters In diesem Szenario ist der Schlüssel dafür nicht erforderlich.
-
Assertion signieren - Die Option, die Behauptung und die Antwort zu signieren, wenn der Client zurück zum Dienstanbieter weitergeleitet wird.
-
Name des Ausstellers — Ein Zeichenfolgenwert, der in der vom IdP ausgegebenen SAML-Assertion enthalten ist.
-
Service Provider-ID — Eindeutige ID, die auf SP angegeben ist, um den Dienstanbieter zu identifizieren. Die ID kann beliebig sein und nicht immer eine URL. Die ID muss jedoch sowohl für SP- als auch für IdP-Profile identisch sein.
-
Standardauthentifizierungsgruppe — Die Standardgruppe, die zusätzlich zu den extrahierten Gruppen ausgewählt wird, wenn eine Authentifizierung erfolgreich ist. Diese Gruppe ist nützlich für Administratoren, die den nFactor-Flow verwenden, um die geeigneten Konfigurationen für die weiterleitende Partei zu bestimmen. Wenn Sie beispielsweise eine Authentifizierungsrichtlinie konfigurieren, können Sie den Standardgruppennamen als Teil des folgenden Ausdrucks angeben:
AAA.USER.IS_MEMBER_OF("Default Authentication Group name").
-
Unsignierte Anfragen ablehnen — Option, die Sie angeben können, um sicherzustellen, dass nur mit dem SP-Zertifikat signierte Assertions akzeptiert werden.
-
Zielgruppe — Die Zielgruppe, an die die Assertion vom IdP gesendet wird. Dies ist normalerweise ein Entitätsname oder eine URL, die den SP darstellt.
-
Skew Time (Minuten) - Skew Time (Minuten) - Diese Option gibt den Uhrzeitversatz in Minuten an, den der NetScaler ADC Service Provider für eine eingehende Assertion zulässt. Wenn Sie beispielsweise die Skew-Zeit um 16:00 Uhr auf 10 Minuten festlegen, ist die SAML-Assertion von 15:50 bis 16:10 gültig, also insgesamt 20 Minuten. Die Standardschiefzeit beträgt 5 Minuten.
-
NAME-ID-Format — Format der in der Assertion gesendeten Namenskennung.
-
Namen-ID-Ausdruck — Ausdruck, der ausgewertet wird, um die in der Assertion zu sendende Namenskennung zu erhalten.
-
Assertion signieren — Option zum Signieren von Teilen der vom IdP gesendeten Assertion. Die verfügbaren Optionen sind “Keine”, “Assertion”, “Antwort” oder “Beide”.
-
Signaturalgorithmus - Algorithmus, der zum Signieren und Verifizieren der Behauptungen zwischen IdP und SP verwendet wird. Dies muss im IdP-Profil und im SP-Profil identisch sein.
-
Digest Method - Algorithmus, der verwendet wird, um die Integrität der Assertions zwischen IdP und SP zu überprüfen. Dies muss im IdP-Profil und im SP-Profil identisch sein.
-
SAML-Bindung — Ein Mechanismus, der verwendet wird, um SAML-Anforderungs- und Responder-Nachrichten zwischen dem SP und dem IdP zu transportieren. Wenn Citrix ADC als SP fungiert, unterstützt es Post-, Redirect- und Artifact-Bindungen. Die Standardbindungsmethode ist POST. Ordnen Sie die SAML-IdP-Richtlinie einem virtuellen Authentifizierungsserver zu. Für die Artefaktbindung muss der Transportmechanismus auf dem SP und dem IdP derselbe sein.
-
Attribut 1 — Name des Attributs in der SAML-Assertion, dessen Wert extrahiert und als Attribut1 gespeichert werden muss. Ein ähnliches Muster gilt auch für die übrigen Attribute.
-
Attribute1Expr — Ausdruck, der ausgewertet wird, um den Wert von Attribut 1 zu erhalten.
-
attribute1FriendlyName — Name des Attributs 1, das in der SAML-Assertion gesendet werden muss.
-
Attribute1Format — Format des Attributs 1, das in der SAML-Assertion gesendet werden soll.
-
-
Konfigurieren Sie die SAML-Authentifizierungsrichtlinie, und ordnen Sie das SAML-IdP-Profil als Aktion der Richtlinie zu.
Navigieren Sie zu Sicherheit > AAA — Anwendungsdatenverkehr > Richtlinien > Erweiterte Authentifizierungsrichtlinien > SAML-IDP-Richtlinien.
Wählen Sie Richtlinienaus, klicken Sie auf Hinzufügen, geben Sie Werte für die folgenden Parameter ein und klicken Sie auf Erstellen.
Parameter-Beschreibungen:
-
Name — Name der SAML-IdP-Authentifizierungsrichtlinie.
-
Aktion — Name des SAML-IdP-Profils, das auf Anfragen oder Verbindungen angewendet werden soll, die dieser Richtlinie entsprechen.
-
Aktion protokollieren — Name der Nachrichtenprotokollaktion, die verwendet werden soll, wenn eine Anfrage dieser Richtlinie entspricht. Wählen Sie eine Log-Aktion aus der Dropdownliste aus oder erstellen Sie eine Log-Aktion, indem Sie auf Hinzufügen klicken.
-
Aktion ohne definiertes Ergebnis — Aktion, die ausgeführt werden soll, wenn das Ergebnis der politischen Bewertung nicht definiert ist. Ein undefiniertes Ereignis weist auf einen internen Fehler hin. Es können nur die integrierten Aktionen verwendet werden.
-
Kommentare — Alle Kommentare zur Aufbewahrung von Informationen zu dieser Richtlinie.
-
-
Ordnen Sie die SAML-IdP-Richtlinie einem virtuellen Authentifizierungsserver zu.
Navigieren Sie zu Sicherheit > AAA - Anwendungsverkehr > Virtuelle Serverund binden Sie die SAML-IdP-Richtlinie an den virtuellen Authentifizierungsserver.