Um Sicherheit zu erhöhen und das Nutzererlebnis zu verbessern, unterstützt F5 NGINX Plus (R29+) jetzt Security Assertion Markup Language (SAML). Als etabliertes Protokoll ermöglicht SAML Single Sign-On (SSO) für Webanwendungen. Es lässt einen Identitätsanbieter (IdP) Nutzer für den Zugriff auf Ressourcen authentifizieren und gibt die Daten zur Autorisierung an einen Dienstanbieter (SP) weiter.
In diesem Blogbeitrag erläutern wir Schritt für Schritt, wie Sie NGINX mit Microsoft Entra ID , früher bekannt als Azure Active Directory (Azure AD), mithilfe einer Webanwendung integrieren, die SAML nicht nativ unterstützt. Wir erläutern auch, wie SSO für die Anwendung implementiert und in das Microsoft Entra ID-Ökosystem integriert wird. Indem Sie dem Tutorial folgen, erfahren Sie außerdem, wie NGINX Ansprüche aus einer SAML-Assertion (einschließlich UPN, Vorname, Nachname und Gruppenmitgliedschaften) extrahieren und diese dann über HTTP-Header an die Anwendung übergeben kann.
Das Tutorial umfasst drei Schritte:
Zum Abschließen dieses Tutorials benötigen Sie:
dev.sports.com.crt und dev.sports.com.key
)demonginx.cer
vom IdP erfolgen kannNotiz : Dieses Tutorial gilt nicht für NGINX Open Source-Bereitstellungen, da der Schlüssel-Wert-Speicher exklusiv für NGINX Plus ist.
In diesem Setup fungiert NGINX Plus als SAML SP und kann an einer SSO-Implementierung mit einem SAML IdP teilnehmen, der indirekt über den User Agent mit NGINX Plus kommuniziert.
Das folgende Diagramm veranschaulicht den SSO-Prozessablauf mit SP-Initiierung und POST-Bindungen für Anforderung und Antwort. Es ist wichtig, noch einmal darauf hinzuweisen, dass dieser Kommunikationskanal nicht direkt ist und über den User Agent verwaltet wird.
Abbildung 1: SAML SP-initiiertes SSO mit POST-Bindungen für AuthnRequest und Response
Um auf Ihr Microsoft Entra ID-Verwaltungsportal zuzugreifen, melden Sie sich an und navigieren Sie zum linken Bereich. Wählen Sie „Microsoft Entra ID“ und klicken Sie dann auf den Titel des Verzeichnisses, für das eine SSO-Konfiguration erforderlich ist. Wählen Sie nach der Auswahl „Unternehmensanwendungen“ aus.
Abbildung 2: Auswählen von Enterprise-Anwendungen im Verwaltungsportal
Um eine Anwendung zu erstellen, klicken Sie oben im Portal auf die Schaltfläche Neue Anwendung . In diesem Beispiel haben wir eine Anwendung namens demonginx erstellt.
Abbildung 3: Erstellen einer neuen Anwendung in Microsoft Entra ID
Nachdem Sie zur neu erstellten Anwendung Übersicht weitergeleitet wurden, gehen Sie über das linke Menü zu Erste Schritte und klicken Sie unter Verwalten auf Einmaliges Anmelden . Wählen Sie dann SAML als Single Sign-On-Methode aus.
Abbildung 4: Verwenden des SSO-Abschnitts zum Starten der SAML-Konfiguration
Um SSO in Ihrer Unternehmensanwendung einzurichten, müssen Sie NGINX Plus als SP innerhalb von Microsoft Entra ID registrieren. Klicken Sie dazu auf das Bleistiftsymbol neben „Bearbeiten“ in der grundlegenden SAML-Konfiguration , wie in Abbildung 5 dargestellt.
Fügen Sie die folgenden Werte hinzu und klicken Sie dann auf Speichern :
Die Verwendung von Verifizierungszertifikaten ist optional. Beim Aktivieren dieser Einstellung müssen zwei Konfigurationsoptionen in NGINX berücksichtigt werden:
$saml_sp_sign_authn
auf true setzen. Dadurch wird der SP angewiesen, die an den IdP gesendete AuthnRequest zu signieren.$saml_sp_signing_key
konfigurieren. Denken Sie daran, das entsprechende öffentliche Schlüsselzertifikat zur Signaturüberprüfung auf die Microsoft Entra ID hochzuladen.Notiz : In dieser Demo wurden Attribute und Ansprüche geändert und neue SAML-Attribute hinzugefügt. Diese SAML-Attribute werden vom IdP gesendet. Stellen Sie sicher, dass Ihre NGINX-Konfiguration so eingerichtet ist, dass diese Attribute ordnungsgemäß empfangen und verarbeitet werden. Sie können die zugehörigen Einstellungen im NGINX-GitHub-Repository überprüfen und anpassen.
Laden Sie das IdP -Zertifikat (Raw) von Microsoft Entra ID herunter und speichern Sie es in Ihrer NGINX Plus-Instanz.
Abbildung 5: Herunterladen des IdP-Zertifikats (Raw) von Microsoft Entra ID
Abbildung 6: Hinzufügen eines neuen Benutzers oder einer neuen Gruppe
In Microsoft Entra ID können Sie Zugriff auf Ihre SSO-fähigen Unternehmensanwendungen gewähren, indem Sie Benutzer und Gruppen hinzufügen oder zuweisen.
Klicken Sie im linken Menü auf „Benutzer und Gruppen“ und dann auf die obere Schaltfläche „Benutzer/Gruppe hinzufügen“ .
Stellen Sie sicher, dass Sie über die erforderlichen Zertifikate verfügen, bevor Sie Dateien in Ihrem NGINX Plus SP konfigurieren:
dev.sports.com.crt und dev.sports.com.key
)demonginx.cer
)Notiz : Die Zertifikate müssen im SPKI-Format vorliegen.
Laden Sie zum Starten dieses Schritts das IdP-Zertifikat von Microsoft Entra ID zur Signaturüberprüfung herunter. Konvertieren Sie dann PEM in das DER-Format:
Falls Sie SAML SP-Assertionen überprüfen möchten, wird empfohlen, andere öffentliche/private Schlüssel zu verwenden als die, die für die TLS-Terminierung verwendet werden.
Extrahieren Sie das öffentliche Schlüsselzertifikat im SPKI-Format:
Bearbeiten Sie die Datei frontend.conf, um diese Elemente zu aktualisieren:
ssl_certificate
– Update, um den TLS-Zertifikatspfad einzuschließen.ssl_certificate_key
– Update, um den privaten TLS-Schlüsselpfad einzuschließen.Bei der Produktionsbereitstellung können Sie je nach Geschäftsanforderung unterschiedliche Back-End-Ziele verwenden. In diesem Beispiel liefert das Backend eine angepasste Antwort:
Wir haben die Attribute und Ansprüche in Microsoft Entra ID geändert, indem wir neue Ansprüche für die E-Mail und Objekt-ID des Benutzers hinzugefügt haben. Diese Aktualisierungen ermöglichen Ihnen eine persönlichere und maßgeschneiderte Antwort auf Ihre Bewerbung, was zu einem verbesserten Benutzererlebnis führt.
Abbildung 7: Geänderte Attribute und Ansprüche in Microsoft Entra ID
Der nächste Schritt besteht darin, NGINX zu konfigurieren, das den Datenverkehr an die Backend-Anwendung weiterleitet. In dieser Demo ist die SAML-Backend-Anwendung öffentlich unter https://dev.sports.com verfügbar.
Bearbeiten Sie Ihre Datei frontend.conf
:
# This is file frontend.conf
# This is the backend application we are protecting with SAML SSO
upstream my_backend {
zone my_backend 64k;
server dev.sports.com;
}
# Custom log format to include the 'NameID' subject in the REMOTE_USER field
log_format saml_sso '$remote_addr - $saml_name_id [$time_local] "$request" "$host" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
# The frontend server - reverse proxy with SAML SSO authentication
#
server {
# Functional locations implementing SAML SSO support
include conf.d/saml_sp.server_conf;
# Reduce severity level as required
error_log /var/log/nginx/error.log debug;
listen 443 ssl;
ssl_certificate /home/ubuntu/dev.sports.com.crt;
ssl_certificate_key /home/ubuntu/dev.sports.com.key;
ssl_session_cache shared:SSL:5m;
location / {
# When a user is not authenticated (i.e., the "saml_access_granted."
# variable is not set to "1"), an HTTP 401 Unauthorized error is
# returned, which is handled by the @do_samlsp_flow named location.
error_page 401 = @do_samlsp_flow;
if ($saml_access_granted != "1") {
return 401;
}
# Successfully authenticated users are proxied to the backend,
# with the NameID attribute passed as an HTTP header
proxy_set_header mail $saml_attrib_mail; # Microsoft Entra ID's user.mail
proxy_set_header objectid $saml_attrib_objectid; # Microsoft Entra ID's objectid
access_log /var/log/nginx/access.log saml_sso;
proxy_pass http://my_backend;
proxy_set_header Host dev.sports.com;
return 200 "Welcome to Application page\n My objectid is $http_objectid\n My email is $http_mail\n";
default_type text/plain;
}
}
# vim: syntax=nginx
Damit die Attribute saml_attrib_mail
und saml_attrib_objectid
in NGINX-Konfigurationen berücksichtigt werden, aktualisieren Sie den Schlüssel-Wert-Speicherteil von saml_sp_configuration.conf
wie folgt:
keyval_zone zone=saml_attrib_mail:1M state=/var/lib/nginx/state/saml_attrib_email.json timeout=1h;
keyval $cookie_auth_token $saml_attrib_mail zone=saml_attrib_mail;
keyval_zone zone=saml_attrib_objectid:1M state=/var/lib/nginx/state/saml_attrib_objectid.json timeout=1h;
keyval $cookie_auth_token $saml_attrib_objectid zone=saml_attrib_objectid;
Konfigurieren Sie als Nächstes die SAML SSO-Konfigurationsdatei. Diese Datei enthält die primären Konfigurationen für SP und IdP. Um es entsprechend Ihrem spezifischen SP- und IdP-Setup anzupassen, müssen Sie die mehreren in der Datei enthaltenen Map{}-Blöcke anpassen.
Diese Tabelle enthält Beschreibungen der Variablen in saml_sp_configuration.conf
:
Variable | Beschreibung |
---|---|
saml_sp_entity_id | Die von den Benutzern verwendete URL zum Zugriff auf die Anwendung. |
saml_sp_acs_url | Die URL, die der Dienstanbieter nutzt, um die SAML-Antwort zu empfangen, die Benutzeridentität zu extrahieren und den Zugriff auf die angeforderte Ressource entsprechend den Angaben zu erlauben oder abzulehnen. |
saml_sp_sign_authn | Gibt an, ob die SAML-Anforderung vom SP an den IdP signiert werden soll oder nicht. Die Signatur erfolgt mit dem SP-Signaturschlüssel und Sie müssen das zugehörige Zertifikat zum IdP hochladen, um die Signatur zu überprüfen. |
saml_sp_signing_key | Der Signaturschlüssel, der zum Signieren der SAML-Anforderung vom SP an den IdP verwendet wird. Denken Sie daran, das zugehörige Zertifikat zum IdP hochzuladen, um die Signatur zu verifizieren. |
saml_idp_entity_id | Die Identität, die zum Definieren des IdP verwendet wird. |
saml_idp_sso_url | Der IdP-Endpunkt, an den der SP die SAML-Assertion-Anforderung sendet, um die Authentifizierungsanforderung zu initiieren. |
SAML_IDP_Verifizierungszertifikat | Die Zertifizierung wird zum Überprüfen signierter SAML-Assertionen verwendet, die vom IdP empfangen wurden. Das Zertifikat wird vom IdP bereitgestellt und muss im SPKI-Format vorliegen. |
saml_sp_slo_url | Der SP-Endpunkt, an den der IdP die SAML-Abmeldeanforderung (beim Einleiten eines Abmeldevorgangs) oder die Logout-Antwort (beim Bestätigen der Abmeldung) sendet. |
saml_sp_sign_slo | Gibt an, ob das Logout-SAML vom SP signiert werden soll oder nicht. |
saml_idp_slo_url | Der IdP-Endpunkt, an den der SP die LogoutRequest (beim Einleiten eines Abmeldevorgangs) oder die LogoutResponse (beim Bestätigen der Abmeldung) sendet. |
saml_sp_want_signed_slo | Gibt an, ob der SAML-SP möchte, dass die SAML-Abmeldeantwort oder -Anforderung vom IdP signiert wird oder nicht. |
Der folgende Code zeigt die bearbeiteten Werte nur für diesen Anwendungsfall in saml_sp_configuration.conf.
Notiz : Stellen Sie sicher, dass die restlichen Teile der Konfigurationsdatei weiterhin in der Datei enthalten sind (z. B. die Schlüssel-Wert-Speicher). Stellen Sie außerdem sicher, dass Sie die Variablen in der Datei saml_sp_configuration.conf
basierend auf Ihrer Bereitstellung richtig anpassen.
# SAML SSO configuration
map $host $saml_sp_entity_id {
# Unique identifier that identifies the SP to the IdP.
# Must be URL or URN.
default "https://dev.sports.com";
}
map $host $saml_sp_acs_url {
# The ACS URL, an endpoint on the SP where the IdP
# will redirect to with its authentication response.
# Must match the ACS location defined in the "saml_sp.serer_conf" file.
default "https://dev.sports.com/saml/acs";
}
map $host $saml_sp_request_binding {
# Refers to the method by which an authentication request is sent from
# the SP to an IdP during the Single Sign-On (SSO) process.
# Only HTTP-POST or HTTP-Redirect methods are allowed.
default 'HTTP-POST';
}
map $host $saml_sp_sign_authn {
# Whether the SP should sign the AuthnRequest sent to the IdP.
default "false";
}
map $host $saml_sp_decryption_key {
# Specifies the private key that the SP uses to decrypt encrypted assertion
# or NameID from the IdP.
default "";
}
map $host $saml_sp_force_authn {
# Whether the SP should force re-authentication of the user by the IdP.
default "false";
}
map $host $saml_sp_nameid_format {
# Indicates the desired format of the name identifier in the SAML assertion
# generated by the IdP. Check section 8.3 of the SAML 2.0 Core specification
# (http://docs.oasis-open.org/security/saml/v2.0/saml-core-2.0-os.pdf)
# for the list of allowed NameID Formats.
default "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified";
}
map $host $saml_sp_relay_state {
# Relative or absolute URL the SP should redirect to
# after successful sign on.
default "";
}
map $host $saml_sp_want_signed_response {
# Whether the SP wants the SAML Response from the IdP
# to be digitally signed.
default "false";
}
map $host $saml_sp_want_signed_assertion {
# Whether the SP wants the SAML Assertion from the IdP
# to be digitally signed.
default "true";
}
map $host $saml_sp_want_encrypted_assertion {
# Whether the SP wants the SAML Assertion from the IdP
# to be encrypted.
default "false";
}
map $host $saml_idp_entity_id {
# Unique identifier that identifies the IdP to the SP.
# Must be URL or URN.
default "https://sts.windows.net/8807dced-9637-4205-a520-423077750c60/";
}
map $host $saml_idp_sso_url {
# IdP endpoint that the SP will send the SAML AuthnRequest to initiate
# an authentication process.
default "https://login.microsoftonline.com/8807dced-9637-4205-a520-423077750c60/saml2";
}
map $host $saml_idp_verification_certificate {
# Certificate file that will be used to verify the digital signature
# on the SAML Response, LogoutRequest or LogoutResponse received from IdP.
# Must be public key in PKCS#1 format. See documentation on how to convert
# X.509 PEM to DER format.
default "/etc/nginx/conf.d/demonginx.spki";
}
######### Single Logout (SLO) #########
map $host $saml_sp_slo_url {
# SP endpoint that the IdP will send the SAML LogoutRequest to initiate
# a logout process or LogoutResponse to confirm the logout.
default "https://dev.sports.com/saml/sls";
}
map $host $saml_sp_slo_binding {
# Refers to the method by which a LogoutRequest or LogoutResponse
# is sent from the SP to an IdP during the Single Logout (SLO) process.
# Only HTTP-POST or HTTP-Redirect methods are allowed.
default 'HTTP-POST';
}
map $host $saml_sp_sign_slo {
# Whether the SP must sign the LogoutRequest or LogoutResponse
# sent to the IdP.
default "false";
}
map $host $saml_idp_slo_url {
# IdP endpoint that the SP will send the LogoutRequest to initiate
# a logout process or LogoutResponse to confirm the logout.
# If not set, the SAML Single Logout (SLO) feature is DISABLED and
# requests to the 'logout' location will result in the termination
# of the user session and a redirect to the logout landing page.
default "https://login.microsoftonline.com/8807dced-9637-4205-a520-423077750c60/saml2";
}
map $host $saml_sp_want_signed_slo {
# Whether the SP wants the SAML LogoutRequest or LogoutResponse from the IdP
# to be digitally signed.
default "true";
}
map $host $saml_logout_landing_page {
# Where to redirect user after requesting /logout location. This can be
# replaced with a custom logout page, or complete URL.
default "/_logout"; # Built-in, simple logout page
}
map $proto $saml_cookie_flags {
http "Path=/; SameSite=lax;"; # For HTTP/plaintext testing
https "Path=/; SameSite=lax; HttpOnly; Secure;"; # Production recommendation
}
map $http_x_forwarded_port $redirect_base {
"" $proto://$host:$server_port;
default $proto://$host:$http_x_forwarded_port;
}
map $http_x_forwarded_proto $proto {
"" $scheme;
default $http_x_forwarded_proto;
}
# ADVANCED CONFIGURATION BELOW THIS LINE
# Additional advanced configuration (server context) in saml_sp.server_conf
######### Shared memory zones that keep the SAML-related key-value databases
# Zone for storing AuthnRequest and LogoutRequest message identifiers (ID)
# to prevent replay attacks. (REQUIRED)
# Timeout determines how long the SP waits for a response from the IDP,
# i.e. how long the user authentication process can take.
keyval_zone zone=saml_request_id:1M state=/var/lib/nginx/state/saml_request_id.json timeout=5m;
# Zone for storing SAML Response message identifiers (ID) to prevent replay attacks. (REQUIRED)
# Timeout determines how long the SP keeps IDs to prevent reuse.
keyval_zone zone=saml_response_id:1M state=/var/lib/nginx/state/saml_response_id.json timeout=1h;
# Zone for storing SAML session access information. (REQUIRED)
# Timeout determines how long the SP keeps session access decision (the session lifetime).
keyval_zone zone=saml_session_access:1M state=/var/lib/nginx/state/saml_session_access.json timeout=1h;
# Zone for storing SAML NameID values. (REQUIRED)
# Timeout determines how long the SP keeps NameID values. Must be equal to session lifetime.
keyval_zone zone=saml_name_id:1M state=/var/lib/nginx/state/saml_name_id.json timeout=1h;
# Zone for storing SAML NameID format values. (REQUIRED)
# Timeout determines how long the SP keeps NameID format values. Must be equal to session lifetime.
keyval_zone zone=saml_name_id_format:1M state=/var/lib/nginx/state/saml_name_id_format.json timeout=1h;
# Zone for storing SAML SessionIndex values. (REQUIRED)
# Timeout determines how long the SP keeps SessionIndex values. Must be equal to session lifetime.
keyval_zone zone=saml_session_index:1M state=/var/lib/nginx/state/saml_session_index.json timeout=1h;
# Zone for storing SAML AuthnContextClassRef values. (REQUIRED)
# Timeout determines how long the SP keeps AuthnContextClassRef values. Must be equal to session lifetime.
keyval_zone zone=saml_authn_context_class_ref:1M state=/var/lib/nginx/state/saml_authn_context_class_ref.json timeout=1h;
# Zones for storing SAML attributes values. (OPTIONAL)
# Timeout determines how long the SP keeps attributes values. Must be equal to session lifetime.
keyval_zone zone=saml_attrib_uid:1M state=/var/lib/nginx/state/saml_attrib_uid.json timeout=1h;
keyval_zone zone=saml_attrib_name:1M state=/var/lib/nginx/state/saml_attrib_name.json timeout=1h;
keyval_zone zone=saml_attrib_memberOf:1M state=/var/lib/nginx/state/saml_attrib_memberOf.json timeout=1h;
######### SAML-related variables whose value is looked up by the key (session cookie) in the key-value database.
# Required:
keyval $saml_request_id $saml_request_redeemed zone=saml_request_id; # SAML Request ID
keyval $saml_response_id $saml_response_redeemed zone=saml_response_id; # SAML Response ID
keyval $cookie_auth_token $saml_access_granted zone=saml_session_access; # SAML Access decision
keyval $cookie_auth_token $saml_name_id zone=saml_name_id; # SAML NameID
keyval $cookie_auth_token $saml_name_id_format zone=saml_name_id_format; # SAML NameIDFormat
keyval $cookie_auth_token $saml_session_index zone=saml_session_index; # SAML SessionIndex
keyval $cookie_auth_token $saml_authn_context_class_ref zone=saml_authn_context_class_ref; # SAML AuthnContextClassRef
# Optional:
keyval $cookie_auth_token $saml_attrib_uid zone=saml_attrib_uid;
keyval $cookie_auth_token $saml_attrib_name zone=saml_attrib_name;
keyval $cookie_auth_token $saml_attrib_memberOf zone=saml_attrib_memberOf;
keyval_zone zone=saml_attrib_mail:1M state=/var/lib/nginx/state/saml_attrib_mail.json timeout=1h;
keyval $cookie_auth_token $saml_attrib_mail zone=saml_attrib_mail;
keyval $cookie_auth_token $saml_attrib_objectid zone=saml_attrib_objectid;
keyval_zone zone=saml_attrib_objectid:1M state=/var/lib/nginx/state/saml_attrib_objectid.json timeout=1h;
######### Imports a module that implements SAML SSO and SLO functionality
js_import samlsp from conf.d/saml_sp.js;
Zum Testen der Konfiguration sind zwei Teile erforderlich:
Nachdem Sie den SAML-SP mit NGINX Plus und den IdP mit Microsoft Entra ID eingerichtet haben, prüfen Sie unbedingt den SAML-Ablauf. So stellen Sie sicher, dass die Benutzerauthentifizierung über den IdP klappt und Sie Zugriff auf die durch den SP geschützten Ressourcen erhalten.
Um den vom SP initiierten SAML-Fluss zu überprüfen, öffnen Sie Ihren bevorzugten Browser und geben Sie https://dev.sports.com in die Adressleiste ein. Sie werden zur IdP-Anmeldeseite weitergeleitet.
Abbildung 8: Die IdP-Anmeldeseite
Geben Sie die Anmeldeinformationen eines Benutzers ein, der auf der Anmeldeseite des IdP konfiguriert ist. Der IdP authentifiziert den Benutzer beim Absenden.
Abbildung 9: Eingabe der Anmeldeinformationen des konfigurierten Benutzers
Sie erhalten Zugriff auf die zuvor angeforderte geschützte Ressource, sobald Sie eine Sitzung erfolgreich aufgebaut haben. Danach zeigt Ihr Browser die Ressource an.
Abbildung 10: Die erfolgreich geladene Anwendungsseite
Wertvolle Informationen zum SAML-Fluss können durch Überprüfen der SP- und IdP-Protokolle erhalten werden. Stellen Sie auf der SP-Seite (NGINX Plus) sicher, dass die Auth_token-Cookies richtig gesetzt sind. Stellen Sie auf der IdP-Seite (Microsoft Entra ID) sicher, dass der Authentifizierungsprozess ohne Fehler abgeschlossen wird und die SAML-Assertion an den SP gesendet wird.
Das NGINX access.log
sollte folgendermaßen aussehen:
127.0.0.1 - - [14/Aug/2023:21:25:49 +0000] "GET / HTTP/1.0" 200 127 "https://login.microsoftonline.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.1 Safari/605.1.15" "-"
99.187.244.63 - Akash Ananthanarayanan [14/Aug/2023:21:25:49 +0000] "GET / HTTP/1.1" "dev.sports.com" 200 127 "https://login.microsoftonline.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.1 Safari/605.1.15" "-
Während das NGINX- Debug.log
folgendermaßen aussieht:
2023/08/14 21:25:49 [info] 27513#27513: *399 js: SAML SP success, creating session _d4db9b93c415ee7b4e057a4bb195df6cd0be7e4d
Mit SAML Single Logout (SLO) können sich Benutzer mit einer Aktion von allen beteiligten IdPs und SPs abmelden. NGINX Plus unterstützt SP- und IdP-initiierte Abmeldeszenarien und verbessert so die Sicherheit und das Benutzererlebnis in SSO-Umgebungen. In diesem Beispiel verwenden wir ein SP-initiiertes Abmeldeszenario.
Abbildung 11: SAML SP-initiiertes SLO mit POST/Redirect-Bindungen für LogoutRequest und LogoutResponse
Melden Sie sich nach der Authentifizierung Ihrer Sitzung ab, indem Sie auf die in Ihrem SP konfigurierte Abmelde-URL zugreifen. Wenn Sie beispielsweise https://dev.sports.com/logout als Abmelde-URL in NGINX Plus eingerichtet haben, geben Sie diese URL in die Adressleiste Ihres Browsers ein.
Abbildung 12: Erfolgreiche Abmeldung von der Sitzung
Um eine sichere Abmeldung zu gewährleisten, muss der SP eine SAML-Anfrage initiieren, die dann vom IdP überprüft und verarbeitet wird. Durch diese Aktion wird die Benutzersitzung effektiv beendet und der IdP sendet dann eine SAML-Antwort, um den Browser des Benutzers zurück zum SP umzuleiten.
Glückwunsch! NGINX Plus kann jetzt als SAML SP dienen und dem Authentifizierungsprozess eine weitere Sicherheitsebene und mehr Komfort bieten. Diese neue Funktion stellt einen bedeutenden Fortschritt für NGINX Plus dar und macht es zu einer robusteren und vielseitigeren Lösung für Unternehmen, bei denen Sicherheit und Effizienz im Vordergrund stehen.
Sie können noch heute mit der Verwendung von SAML mit NGINX Plus beginnen, indem Sie eine 30-tägige kostenlose Testversion von NGINX Plus starten. Wir hoffen, Sie finden es nützlich und freuen uns über Ihr Feedback.
Ausführlichere Informationen zu NGINX Plus mit SAML stellen wir Ihnen in den folgenden Ressourcen bereit.
„Dieser Blogbeitrag kann auf Produkte verweisen, die nicht mehr verfügbar und/oder nicht mehr unterstützt werden. Die aktuellsten Informationen zu verfügbaren F5 NGINX-Produkten und -Lösungen finden Sie in unserer NGINX-Produktfamilie . NGINX ist jetzt Teil von F5. Alle vorherigen NGINX.com-Links werden auf ähnliche NGINX-Inhalte auf F5.com umgeleitet."