Entdecken Sie grenzenlose Möglichkeiten mit Drupal Headless SSO unter Verwendung des SAML-Protokolls
Übersicht
Die Headless-SSO-Sicherheitslösung von miniOrange ermöglicht nahtloses Single Sign-On (SSO) zwischen der Headless-Anwendung, dem Drupal-Backend und dem Identitätsanbieter (IdP). Bei diesem Authentifizierungsprozess werden Benutzer zunächst zur Authentifizierung auf die Anmeldeseite des Identitätsanbieters weitergeleitet. Nach erfolgreicher Authentifizierung werden sie zurück zur Frontend-Anwendung geleitet. In diesem Schritt wird ein JSON Web Token (JWT) generiert, um die Benutzeridentität sicher zu verifizieren und an die Frontend-Site zu senden. (Optional: Dieses Token kann zur API-Validierung verwendet werden, während weitere Informationen von Drupal abgerufen werden.) Im Folgenden werden die Schritte zur Konfiguration von SSO für ein Headless-Drupal-Setup erläutert.
Voraussetzungen:
- miniOrange SAML SP-Modul : Diese Modulen ermöglicht SSO zwischen der Drupal-Site und dem SAML-Anbieter.
- REST- und JSON-API-Authentifizierungsmodul :
- Nach der Durchführung des SSO wird Modulen hilft, das JWT zu generieren und dieses Token an die Frontend-Anwendung zu senden.
- Dieses Token kann im Header zusammen mit der API-Anfrage an Drupal verwendet werden, um weitere APIs zu authentifizieren/validieren. Das REST- und JSON-API-Authentifizierungsmodul validiert das JWT, bevor API-Aufrufe zugelassen werden, um einen sicheren Zugriff zu gewährleisten.
Backend-Konfigurationen
- miniOrange SAML-Modul: Beziehen Sie sich darauf Installationsanleitung zum Einrichten des SSO zwischen der Drupal-Site und dem gewünschten SAML-Identitätsanbieter.
- REST- und JSON-API-Authentifizierungsmodul:
- Um die Drupal-APIs mit dem JWT zu authentifizieren, konfigurieren Sie die JWT-basierte Authentifizierungsmethode im Modul, indem Sie diesen Schritt befolgen. Installationsanleitung.
- Konfigurieren Sie die Anmelde-URL zum Frontend:
- Um die Anmelde-URL zu erhalten, gehen Sie zum Modul miniorange_saml und navigieren Sie dann zum Dienstanbieter-Setup Registerkarte. Kopieren Sie den SSO-Link und integrieren Sie ihn in die Frontend-Anmeldeseite.
- Konfigurieren Sie den Frontend-Endpunkt:
- Das REST- und JSON-API-Authentifizierungsmodul generiert ein JWT, das dem angemeldeten Benutzer entspricht. Um dieses JWT vom Modul abzurufen, konfigurieren Sie die Weiterleitungs-URL im API-Authentifizierungsmodul wie folgt:
- Navigieren Sie zu der Erweiterte Einstellungen Registerkarte der REST- und JSON-API-Authentifizierung Modul.
- Im Token-Endpunktkonfiguration für das Headless-SSO Geben Sie im Abschnitt den Endpunkt der Frontend-Anwendung ein, an den der Browser nach dem Single Sign-On (SSO)-Prozess mit einem Code und einem Relay-Statusparameter umleitet. Klicken Sie anschließend auf das Konfiguration des Token-Endpunkts speichern .
- Konfigurieren Sie die Abmelde-Umleitungs-URL des Frontends:
- Nachdem sich der Benutzer von der Drupal-Site abgemeldet hat, wird er zurück zur Frontend-Seite geleitet. Um diesen Endpunkt der Frontend-Anwendung einzurichten, gehen Sie zur Registerkarte „Anmelden“ des miniOrange_saml Modul.
- Im „Standard-Umleitungs-URL nach der Abmeldung“ Geben Sie in das Textfeld den Endpunkt der Frontend-Seite ein, zu dem der Benutzer nach der Abmeldung weitergeleitet werden soll.
Aufdecken der Frontend-Szenen
Dieser Abschnitt beleuchtet alles, was ein Benutzer im Frontend tun muss. Außerdem werden die möglichen Änderungen im Frontend erläutert. Los geht's:
- Anmeldeablauf:
- Initiieren Sie die Anmeldung von der Frontend-Anwendung mithilfe der SSO-URL.
- Der Benutzer wird zum konfigurierten IdP umgeleitet.
- Geben Sie zur Authentifizierung die Anmeldeinformationen des Benutzers ein.
- Nach erfolgreicher Authentifizierung wird der Benutzer mit dem Code und dem Relay-Status als Abfrageparameter in der URL zurück zum Frontend geleitet.
- Verwenden Sie den im vorherigen Schritt erhaltenen Code, um eine Anfrage an den Token-Endpunkt von Drupal zu stellen. Führen Sie dazu die folgenden Schritte aus:
- Suchen Sie den Token-Endpunkt in der Token-Endpunktkonfigurationen für Headless-SSO Details. Siehe hierzu das Bild unten.
- Beispiel für das Erstellen einer POST-Anfrage mit dem empfangenen Code:
- Angenommen, der Benutzer hat am Frontend einen Code „(received_code)“ erhalten.
- Verwenden Sie nun das folgende Format, um mit diesem Code eine POST-Anfrage zu stellen.
Hinweis: Der Relay-Status ist der Parameter, von dem aus die Anmeldung initiiert wird. Wenn der Zielparameter die aktuelle Anmelde-URL ist, ist der Relay-Status der Wert des Zielparameters.
Postman-Format:
HTTP: POST /drupal10_1_1/web/getToken HTTP/1.1 Host: localhost Inhaltstyp: application/x-www-form-urlencoded Inhaltslänge: 35 Code=MjEOxuSuQyd1vUE7Ft5K5fT8Syh25c CURL: curl --location 'http://localhost/drupal10_1_1/web/getToken' \ --header 'Inhaltstyp: application/x-www-form-urlencoded' \ --data-urlencode 'Code=MjEOxuSuQyd1vUE7Ft5K5fT8Syh25c'
- Leiten Sie eine Abmeldung von der Frontend-Anwendung ein. (mithilfe der URL- {drupal-base-url}/Benutzer/Abmelden)
- Stellen Sie sicher, dass die einmalige Abmeldung konfiguriert ist.
- Dadurch wird der Benutzer sowohl von der Drupal-Site als auch vom IdP abgemeldet.
- Nach dem Abmelden von der Drupal-Site wird der Benutzer weitergeleitet auf die konfigurierter Endpunkt.
Hinweis: Das Format von API-Anfragen, die das JWT-Token im Header enthalten, finden Sie hier. Setup-Anleitung.

Kontakt