Einrichtung der Basisauthentifizierung mit dem REST-API-Authentifizierungsmodul
Die Basic Authentication ist eine sehr einfache und unkomplizierte Authentifizierungsmethode. Der Client sendet HTTP-Anfragen mit einem Authorization-Header, der den base64-kodierten Benutzernamen und das Passwort Ihrer Drupal-Seite enthÀlt.
Bei der Basic Authentication prĂŒft das miniOrange API Authentication-Modul zuerst den Benutzer anhand seines Drupal-Benutzernamens und -Passworts. Nur wenn der Benutzer authentifiziert ist, kann er die gewĂŒnschte Operation ausfĂŒhren. Dieses Modul ist kompatibel mit Drupal 7, Drupal 8, Drupal 9, Drupal 10 und Drupal 11.
Einrichtungsvideo:
Voraussetzungen: Download und Installation:
- Laden Sie das Drupal REST & JSON API Authentication-Modul herunter und installieren Sie es.
- REST UI: Dieses Modul stellt eine BenutzeroberflĂ€che fĂŒr die Konfiguration des REST-Moduls bereit.
- Aktivieren Sie die folgenden Webservice-Module im Abschnitt âErweiternâ (/admin/modules) Ihrer Drupal-Seite:
- JSON: API
- REST UI
- RESTful Web Services
- Serialization
Schritte zur Konfiguration der Basic Authentication Methode in Drupal:
- Zum besseren VerstĂ€ndnis nehmen wir als Beispiel die HinzufĂŒgung der Basic Authentication zur Abfrage eines Nodes in Drupal per REST API.
- Bitte beachten Sie, dass die /node/{node}-API von Drupal verwendet wird, um Informationen zu einem Drupal-Node abzurufen.
API aktivieren, Methoden und Operationen zuweisen:
- Im ersten Schritt muss die API aktiviert und die erlaubten Methoden und Operationen zugewiesen werden. Dies kann ĂŒber das REST UI-Modul oder durch direkte Anpassung der Konfiguration erfolgen.
- Um die API ĂŒber das REST UI-Modul zu aktivieren, klicken Sie auf die SchaltflĂ€che âKonfigurierenâ des REST UI-Moduls (siehe unten).
- In unserem Beispiel möchten wir die /node/{node}-API im Abschnitt Content aktivieren. Aktivieren Sie diese API ĂŒber die Option âEnableâ davor.
- Da unser Ziel das Abrufen von Node-Informationen ist, wÀhlen Sie folgende Konfigurationen:
- Methode: GET
- Format: json
- Authentifizierungsanbieter: rest_api_authentication.
- Damit kann das miniOrange REST API Authentication-Modul Ihre API authentifizieren. Klicken Sie auf die SchaltflÀche Konfiguration speichern, um fortzufahren.
Schritte zur Aktivierung der Basic Authentication:
- In diesem Schritt richten wir die Basic Authentication als API Authentication-Methode ein. Navigieren Sie dazu zum Tab API Authentication des REST API Authentication Moduls (/admin/config/people/rest_api_authentication/auth_settings)
- Aktivieren Sie das KontrollkÀstchen Authentifizierung aktivieren und klicken Sie auf Einstellungen speichern oben.
- Unterhalb der SchaltflĂ€che Einstellungen speichern wĂ€hlen Sie âBasic Authenticationâ und klicken auf die SchaltflĂ€che Methode auswĂ€hlen.
Das warâs!!!
Jetzt können wir versuchen, Node-Informationen ĂŒber einen API-Call mit Basic Authentication abzurufen.
Beispiel:
- Um Node-Informationen in Drupal abzurufen, mĂŒssen Sie eine GET-Anfrage zusammen mit dem Drupal-Benutzernamen und -Passwort des Benutzers stellen. Der Wert von Benutzername und Passwort muss base64-kodiert sein. Siehe unten das Format fĂŒr eine Anfrage.
Anfrage: GET <your_drupal_base_url> /node/{node}?_format=json
Header:
Authorization: Basic base64encoded <username:password>
Accept: application/json
Content-Type: application/jsonCURL-Anfrageformat-
curl --location --request GET 'drupal_base_url/node/1?_format=json' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic base64encoded <username:password'>
- Sie können sich auch das Bild der Postman-Anfrage unten ansehen:
- Eine erfolgreiche Antwort gibt die Node-Informationen zurĂŒck, die Sie angefragt haben. (Siehe Bild unten)
- Falls Sie einen Fehler in der Antwort erhalten, können Sie die folgende Tabelle fĂŒr die Fehlerbeschreibung und mögliche Lösungen nutzen.
Fehler |
Beschreibung |
MISSING_AUTHORIZATION_HEADER |
Sie erhalten diesen Fehler, wenn Sie keinen Authorization Header in der API-Anfrage mitsenden oder wenn dieser aus irgendeinem Grund vom Server entfernt wurde. Beispiel: |
INVALID_AUTHORIZATION_HEADER_TOKEN_TYPE |
Sie erhalten diesen Fehler, wenn Sie den Authorization Header senden, aber nicht im gĂŒltigen Format. |
USER_NAME_MISSING |
Sie erhalten diesen Fehler, wenn das Modul den Benutzernamen in der API-Anfrage nicht finden kann. Beispiel: |
INVALID_CREDENTIALS |
Sie erhalten diesen Fehler, wenn entweder der Benutzername oder das Passwort falsch ist. Beispiel: |