logo

Extra Block Types (EBT) - Neue Erfahrung im Layout Builder❗

Extra Block Types (EBT) - gestylte, anpassbare Blocktypen: Diashows, Registerkarten, Karten, Akkordeons und viele andere. Eingebaute Einstellungen für Hintergrund, DOM Box, Javascript Plugins. Erleben Sie die Zukunft der Layouterstellung schon heute.

Demo EBT-Module EBT-Module herunterladen

❗Extra Absatztypen (EPT) - Erfahrung mit neuen Absätzen

Extra Paragraph Types (EPT) - analoger, auf Absätzen basierender Satz von Modulen.

Demo EPT-Module EPT-Module herunterladen

Scroll

REST-API-Authentifizierung mit externem Identitätsanbieter

21/05/2025, by Ivan

Wenn Sie den Zugriff auf Ihre Drupal REST-APIs über Ihren Identitätsanbieter schützen oder einschränken möchten, sollten Sie die Authentifizierungsmethode „Externer Identitätsanbieter“ verwenden. 

Die Drupal API-Authentifizierung über einen externen Identitätsanbieter beinhaltet die Verwendung von Tokens, die von Drittanbietern wie Google, Azure AD, Keycloak, Okta, Gitlab usw. bereitgestellt werden, um sicher auf Drupal REST-APIs zuzugreifen.

Bei dieser Methode müssen Sie das Modul mit dem User Info Endpoint Ihres Identitätsanbieters sowie dem Benutzernamen-Attribut aus Ihrem Identitätsanbieter konfigurieren. Danach können Sie alle Drupal-API-Anfragen mit dem vom Anbieter bereitgestellten Token authentifizieren. Das Drupal REST API Modul prüft die erhaltenen Benutzeranmeldedaten gegen das Drupal-Benutzerkonto. Dieses Modul ist kompatibel mit Drupal 7, Drupal 8, Drupal 9, Drupal 10 und Drupal 11.

 Download 

Einrichtungsvideo:

Voraussetzungen: Download und Installation:

  • Laden Sie das Drupal REST & JSON API Authentication-Modul herunter und installieren Sie es.
  • REST UI: Dieses Modul bietet eine Benutzeroberfläche zur Konfiguration des REST-Moduls. 
  • Aktivieren Sie die folgenden Webservices-Module im Abschnitt „Erweitern“ (/admin/modules) Ihrer Drupal-Seite:
    • REST UI
    • RESTful Web Services
    • Serialization
    install modules

Schritte zur Einrichtung der API-Authentifizierung mit externer Anwendung/Identitätsanbieter:

  • Für ein besseres Verständnis nehmen wir als Beispiel die Hinzufügung einer Authentifizierung über einen externen Identitätsanbieter für die Create User API in Drupal.
  • Bitte beachten Sie, dass die Drupal-API /entity/user verwendet wird, um einen Benutzer in Drupal zu erstellen.

Aktivieren Sie die API und weisen Sie Methoden und Operationen wie folgt zu:

  • Der erste Schritt ist das Aktivieren der API sowie die Zuweisung der erlaubten Methoden und Operationen für die jeweilige API. Dies kann über das REST UI-Modul erfolgen oder indem Sie die Konfiguration direkt bearbeiten.
  • Um die API über das REST UI-Modul zu aktivieren, klicken Sie auf die Schaltfläche Konfigurieren des REST UI-Moduls (wie unten dargestellt). REST UI
  • In unserem Beispiel muss die /entity/user-API unter „Benutzer“ aktiviert werden. Aktivieren Sie diese API, indem Sie auf die Option „Aktivieren“ davor klicken.
    Add node
  • Da unser Ziel ist, einen Benutzer in Drupal zu erstellen, wählen Sie folgende Konfigurationen:
    • Methode: POST
    • Format: json
    • Authentifizierungsanbieter: rest_api_authentication.
  • Die Auswahl von rest_api_authentication ermöglicht es dem miniOrange REST API Authentication-Modul, Ihre API zu authentifizieren. Klicken Sie auf die Schaltfläche Konfiguration speichern, um fortzufahren. Resource content

Konfiguration des Drupal REST API Authentication-Moduls:

  • In diesem Schritt richten wir Externer Identitätsanbieter als API-Authentifizierungsmethode ein. Navigieren Sie dazu zum Tab „API Authentication“ des REST API Authentication-Moduls (/admin/config/people/rest_api_authentication/auth_settings)
    • Wählen Sie das Kontrollkästchen Authentifizierung aktivieren und klicken Sie auf Einstellungen speichern.
    • Unter der Schaltfläche Einstellungen speichern wählen Sie die Option „Externer Identitätsanbieter“.
    • Geben Sie im Textfeld „User Info Endpoint“ den User Info Endpoint Ihres Identitätsanbieters ein, damit das Modul die Benutzerinformationen mit dem bereitgestellten Token abrufen kann.
    • Tragen Sie im Feld „Username Attribute“ das Attribut/den Schlüssel ein, über den Ihr Identitätsanbieter den Benutzernamen sendet.
      External authentication

Erteilen Sie Drupal-Rollen die Berechtigung, einen Benutzer in Drupal zu erstellen:

  • Bei Bedarf können Sie auch Nicht-Admin-Rollen die Berechtigung erteilen, Benutzer in Drupal zu erstellen. Weisen Sie dazu der gewünschten Drupal-Rolle die Berechtigung „Benutzer verwalten“ unter dem Berechtigungsbereich (/admin/people/permissions) Ihrer Drupal-Seite zu.
    Add permissions

Das war’s!!!

  • Nun versuchen wir, einen Benutzer in Drupal über einen API-Call mithilfe eines externen Identitätsanbieters zu erstellen.

Beispiele:

  • Um einen Benutzer in Drupal zu erstellen, müssen Sie eine POST-Anfrage zusammen mit dem von Ihrem Identitätsanbieter erhaltenen Token senden.

    Anfrage:  POST  <your_drupal_base_url>/entity/user?_format=json
    Header:   Token: <Token_vom_externen_Identitätsanbieter>
                    Accept: application/json
                    Content-Type: application/json

    Body:  {
        "name": [
            {"value": "<username>"}
        ],
        "mail": [
            {"value": "<email>"}
        ],
        "pass":[
            {"value": "<password>"}
        ],
        "status":[
            {"value": "1"}
        ]
    }

    CURL Anfrage-Format-

    curl --location --request POST  ‘<your_drupal_base_url>/entity/user?_format=json' \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --header 'Token: <Token_vom_externen_Identitätsanbieter>' \
    --data-raw '{
        "name": [
            {"value": "Username"}
        ],
        "mail": [
            {"value": "email"}
        ],
        "pass":[
            {"value": "Password"}
        ],
        "status":[
            {"value": "1"}
        ]
    }'

  • Sie können sich auch das unten stehende Bild der Postman-Anfrage ansehen:

    postman

  • Eine erfolgreiche Antwort liefert die Benutzerdaten, die Sie erstellt haben. (Siehe Bild unten)

    Postman response

  • Falls Sie einen Fehler in der Antwort erhalten, können Sie die folgende Tabelle für die Fehlerbeschreibung und mögliche Lösungen verwenden.

Fehlerantwort:

Fehler Beschreibung
INVALID_USER_INFO_ENDPOINT Sie erhalten diesen Fehler, wenn Sie eine falsche User Info URL in der Modulkonfiguration angeben.
INVALID_USERNAME_ATTRIBUTE Sie erhalten diesen Fehler, wenn Sie das falsche Benutzername-Attribut angeben oder ein Fehler beim Abrufen des Benutzernamens auftritt.
INVALID_TOKEN Sie erhalten diesen Fehler, wenn das bereitgestellte Token falsch ist oder im Header fehlt.

Artikel aus der Drupal Dokumentation.