NetScaler ADC als SAML SP
Der SAML-Dienstanbieter (SP) ist eine vom Dienstanbieter bereitgestellte SAML-Entität. Wenn ein Benutzer versucht, auf eine geschützte Anwendung zuzugreifen, wertet der SP die Client-Anfrage aus. Wenn der Client nicht authentifiziert ist (kein gültiges NSC_TMAA- oder NSC_TMAS-Cookie hat), leitet der SP die Anfrage an den SAML-Identitätsanbieter (IdP) weiter.
Der SP validiert auch SAML-Assertionen, die vom IdP empfangen werden.
Wenn die NetScaler ADC Appliance als SP konfiguriert ist, empfängt ein virtueller Server für das Verkehrsmanagement (Load Balancing oder Content Switching) alle Benutzeranfragen, die der entsprechenden SAML-Aktion zugeordnet sind.
Die NetScaler ADC-Appliance unterstützt auch POST- und Redirect-Bindungen beim Abmelden.
Hinweis
Eine NetScaler ADC-Appliance kann als SAML-SP in einer Bereitstellung verwendet werden, in der der SAML-IdP entweder auf der Appliance oder auf einem externen SAML-IdP konfiguriert ist.
Bei Verwendung als SAML-SP gilt eine NetScaler ADC-Appliance:
-
Kann die Benutzerinformationen (Attribute) aus dem SAML-Token extrahieren. Diese Informationen können dann in den Richtlinien verwendet werden, die auf der NetScaler ADC-Appliance konfiguriert sind. Wenn Sie beispielsweise die Attribute GroupMember und emailaddress extrahieren möchten, geben Sie in der SAMLAction den Parameter Attribute2 als GroupMember und den Parameter Attribute3 als emailaddress an.
Hinweis
Standardattribute wie Benutzername, Kennwort und Abmelde-URL dürfen in den Attributen 1—16 nicht extrahiert werden, da sie implizit analysiert und in der Sitzung gespeichert werden.
-
Kann Attributnamen von bis zu 127 Byte aus einer eingehenden SAML-Assertion extrahieren. Das vorherige Limit lag bei 63 Byte.
-
Unterstützt Post-, Redirect- und Artifact-Bindungen.
Hinweis
Verwenden Sie die Umleitungsbindung nicht für große Datenmengen, wenn die Assertion nach der Aufblähung oder Dekodierung größer als 10.000 ist.
-
Kann Assertionen entschlüsseln.
-
Kann mehrwertige Attribute aus einer SAML-Assertion extrahieren. Diese Attribute werden in Form von verschachtelten XML-Tags gesendet, wie zum Beispiel:
<AttributeValue> <AttributeValue>Value1</AttributeValue> <AttributeValue>Value2</AttributeValue> \</AttributeValue\>
Hinweis
Ab NetScaler ADC 13.0 Build 63.x und höher wurde die individuelle maximale Länge für SAML-Attribute auf maximal 40.000 Byte erhöht. Die Größe aller Attribute darf 40.000 Byte nicht überschreiten.
Bei Vorlage von vorherigem XML kann die NetScaler ADC-Appliance sowohl Value1 als auch Value2 als Werte eines bestimmten Attributs extrahieren, im Gegensatz zur alten Firmware, die nur Value1 extrahiert.
-
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 Time” bezeichnet wird, gibt die Anzahl der Minuten an, für die die Nachricht akzeptiert werden kann. Die Skew Time kann auf dem SAML-SP und dem SAML-IdP konfiguriert werden.
-
Kann ein zusätzliches Attribut namens ‘ForceAuth’ in der Authentifizierungsanfrage an einen externen IdP (Identitätsanbieter) senden. Standardmäßig ist ForceAuthn auf “False” gesetzt. Es kann auf “True” gesetzt werden, um dem IdP vorzuschlagen, die Authentifizierung trotz des vorhandenen Authentifizierungskontextes zu erzwingen. Außerdem sendet NetScaler ADC SP eine Authentifizierungsanfrage im Abfrageparameter, wenn es mit Artefaktbindung konfiguriert ist.
So konfigurieren Sie die NetScaler ADC-Appliance als SAML-SP mit der CLI
-
Konfigurieren Sie eine SAML SP-Aktion.
Beispiel
Mit dem folgenden Befehl wird eine SAML-Aktion hinzugefügt, die nicht authentifizierte Benutzeranforderungen umleitet.
add authentication samlAction SamlSPAct1 -metadataUrl "https://ksidp1.ksaaa.local/metadata/samlidp/SAML_IDP_profile" -samlIdPCertName nssp -samlSigningCertName nssp –samlRedirectUrl https://auth1.example.com -relaystateRule "AAA.LOGIN.RELAYSTATE.EQ(\"https://lb.example1.com/\")"
Wichtige Hinweise
- Das Zertifikat, das für
-samlIdPCertName
im samlAction-Befehl angegeben wurde, muss mit dem entsprechenden Zertifikat von IdP übereinstimmen, damit die Signaturüberprüfung erfolgreich ist. - SAML unterstützt nur das RSA-Zertifikat. Andere Zertifikate wie HSM, FIPS werden nicht unterstützt.
- Es wird empfohlen, einen vollständigen Domainnamen mit einem abschließenden ‘/’ im Ausdruck zu verwenden.
- Administratoren müssen einen Ausdruck für relaysStateRule im Befehl samlAction konfigurieren. Der Ausdruck muss die Liste der veröffentlichten Domänen enthalten, mit denen der Benutzer eine Verbindung herstellt, bevor er zum virtuellen Authentifizierungsserver umgeleitet wird. Der Ausdruck muss beispielsweise die Domänen des virtuellen Front-End-Servers (VPN, LB oder CS) enthalten, die diese SAML-Aktion zur Authentifizierung verwenden.
- Wenn der virtuelle Authentifizierungsserver als SAML-IdP konfiguriert ist, lautet die Metadaten-URL, die in der SAML-SP-Aktion verwendet werden muss.
https://<citrix-adc-saml-idp-fqdn>/metadata/samlidp/SAML_IDP_profile
Hinweis:
Wenn es mehrere SAML-Richtlinien als Teil einer IdP-Kette gibt, reicht es aus, eine Relay-State-Regel nur für die erste SAML-Richtlinie zu konfigurieren.
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.
- Das Zertifikat, das für
-
Konfigurieren Sie die SAML-Richtlinie.
Beispiel
Der folgende Befehl definiert eine SAML-Richtlinie, die die zuvor definierte SAML-Aktion auf den gesamten Datenverkehr anwendet.
add authentication policy SamlSPPol1 -rule true -action SamlSPAct1
-
Binden Sie die SAML-Richtlinie an den virtuellen Authentifizierungsserver.
Beispiel
Der folgende Befehl bindet die SAML-Richtlinie an einen virtuellen Authentifizierungsserver mit dem Namen “av_saml”.
bind authentication vserver av_saml -policy SamlSPPol1
-
Binden Sie den virtuellen Authentifizierungsserver an den entsprechenden virtuellen Server für das Verkehrsmanagement.
Beispiel
Der folgende Befehl fügt einen virtuellen Lastausgleichsserver mit dem Namen “lb1_ssl” hinzu und ordnet den virtuellen Authentifizierungsserver mit dem Namen “av_saml” dem virtuellen Lastausgleichsserver zu.
add lb vserver lb1_ssl SSL 10.217.28.224 443 -persistenceType NONE -cltTimeout 180 -AuthenticationHost auth1.example.com -Authentication ON -authnVsName av_saml
Weitere Informationen zu dem Befehl finden Sie unter https://developer-docs.netscaler.com/en-us/adc-command-reference-int/current-release/authentication/authentication-samlaction
So konfigurieren Sie eine NetScaler ADC-Appliance als SAML-SP mit der GUI
-
Navigieren Sie zu Sicherheit>AAA-Richtlinien>Authentifizierung> Grundrichtlinien>SAML.
-
Wählen Sie die Registerkarte Server aus, klicken Sie auf Hinzufügen, geben Sie Werte für die folgenden Parameter ein und klicken Sie auf Erstellen.
Parameter-Beschreibungen:
-
Name — Name des Servers
-
Umleitungs-URL — URL, mit der sich Benutzer authentifizieren. Einige IdPs haben spezielle URLs, die nur unter SAML-Setup erreichbar sind.
-
Single Logout-URL - Eine URL wurde angegeben, damit der NetScaler ADC erkennen kann, wann der Client zurück an den IdP gesendet werden muss, um den Abmeldevorgang abzuschließen. Wir werden es in dieser einfachen Bereitstellung nicht verwenden.
-
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.
Hinweis:
Für die Artefaktbindung muss der Transportmechanismus auf dem SP und dem IdP derselbe sein.
-
Logout-Bindung — Gibt den Transportmechanismus von SAML-Abmeldungsnachrichten an. Der Standard-Bindungsmechanismus ist Post.
-
IDP-Zertifikatsname — IdPCert-Zertifikat (Base64) unter SAML-Signaturzertifikat.
-
Benutzerfeld — Abschnitt des SAML-Authentifizierungsformulars des IdP, der den Benutzernamen enthält, den der SP bei Bedarf extrahieren kann.
-
Signieren des Zertifikatsnamens - Wählen Sie das SAML SP-Zertifikat (mit privatem Schlüssel) aus, das NetScaler ADC verwendet, um Authentifizierungsanforderungen an den IdP zu signieren. Das gleiche Zertifikat (ohne privaten Schlüssel) muss in den IdP importiert werden, damit der IdP die Signatur der Authentifizierungsanfrage überprüfen kann. Die meisten IdPs benötigen den Namen des Signaturzertifikats nicht.
-
IssuerName — Identifier. Eindeutige ID, die sowohl auf dem SP als auch auf dem IdP angegeben ist, um den Dienstanbieter untereinander zu identifizieren.
- Unsignierte Assertion ablehnen — Option, die Sie angeben können, wenn die Assertionen des IdP signiert werden sollen. Die Standardeinstellung ist EIN.
- ON: Lehnt Assertions ohne Signatur ab
- STRICT: Stellt sicher, dass sowohl Antwort als auch Assertion signiert sind
- OFF: Erlaubt unsignierte Assertions
-
Zielgruppe - Zielgruppe, für die eine vom IdP gesendete Assertion anwendbar ist. Dies ist in der Regel ein Entitätsname oder eine URL, die den Dienstanbieter darstellt.
-
Signaturalgorithmus — Algorithmus, der zum Signieren/Verifizieren von SAML-Transaktionen verwendet wird. Der Standardwert ist RSA-SHA256.
-
Digest-Methode — Algorithmus, der zur Berechnung/Überprüfung von Digest für SAML-Transaktionen verwendet wird. Der Standardwert ist SHA256.
-
Standardauthentifizierungsgruppe — Die Standardgruppe, die zusätzlich zu den extrahierten Gruppen ausgewählt wird, wenn die Authentifizierung erfolgreich ist.
-
Feld Gruppenname — Name des Tags in einer Assertion, die Benutzergruppen enthält.
- Skew Time (Minuten) - Diese Option gibt die Zeitversatz in Minuten an, die der Citrix 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.
-
-
Erstellen Sie eine entsprechende SAML-Richtlinie.
Navigieren Sie zu Sicherheit > AAA-Application Traffic > Policies > Authentication > Advanced Policies > Policy und klicken Sie auf Hinzufügen.
Geben Sie auf der Seite SAML-Authentifizierungsrichtlinie erstellen die folgenden Details an:
- Name — Geben Sie einen Namen für die SAML-Richtlinie an.
- Aktionstyp — Wählen Sie SAML als Authentifizierungsaktionstyp aus.
- Aktion — Wählen Sie das SAML-Serverprofil aus, an das die SAML-Richtlinie gebunden werden soll.
- Ausdruck — Zeigt den Namen der Regel oder des Ausdrucks an, anhand dessen die SAML-Richtlinie bestimmt, ob sich der Benutzer beim SAML-Server authentifizieren muss. Stellen Sie im Textfeld den Wert “rule = true” ein, damit die SAML-Richtlinie wirksam wird und die entsprechende SAML-Aktion ausgeführt wird.
-
Binden Sie die SAML-Richtlinie an den virtuellen Authentifizierungsserver.
Navigieren Sie zu Sicherheit > AAA - Anwendungsdatenverkehr > Virtuelle Server, und ordnen Sie die SAML-Richtlinie dem virtuellen Authentifizierungsserver zu.
-
Ordnen Sie den Authentifizierungsserver dem entsprechenden virtuellen Verkehrsverwaltungsserver zu.
Navigieren Sie zu Traffic Management > Load Balancing (oder Content Switching) > Virtuelle Server, wählen Sie den virtuellen Server aus und ordnen Sie ihm den virtuellen Authentifizierungsserver zu.