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: |