OAuth/Access Token-Authentifizierung in Drupal einrichten
Dieser Drupal API-Authentifizierung Die Methode verwendet das OAuth 2.0-Protokoll, um ein sicheres Zugriffstoken zu generieren. Dieses Token wird dann zur Authentifizierung und für Anfragen an die APIs Ihrer Drupal-Site verwendet. Dank starker Verschlüsselung stellt die OAuth-Methode sicher, dass Ihre APIs gut geschützt und vor unbefugtem Zugriff geschützt sind. Es gilt allgemein als eine der sichersten Methoden zum Schutz von Drupal REST- und JSON:API-Endpunkten. Dieses Modul ist vollständig kompatibel mit Drupal 8, 9, 10 und 11.
- Verwenden von Composer
- Mit Drush
- Manuelle Installation
Voraussetzungen:
- REST DES TAGES: Dieses Modul bietet eine benutzerfreundliche Schnittstelle zur Konfiguration des REST-Moduls.
- Aktivieren Sie die folgenden Webdienstmodule aus dem Erweitern Abschnitt (/admin/modules) Ihrer Drupal-Site:
- JSON: API
- REST DES TAGES
- RESTful-Webdienste
- Serialisierung
API aktivieren und Methoden zuweisen:
- Der erste Schritt besteht darin, die API zu aktivieren und die für diese API zulässigen Methoden und Operationen zuzuweisen. Dies kann mithilfe der REST DES TAGES Modul oder durch direkte Änderung der Drupal-Konfiguration.
- Klicken Sie auf API aktivieren .
- Um die API mithilfe des REST-UI-Moduls zu aktivieren, klicken Sie auf das Einrichtung Schaltfläche (wie unten gezeigt).
- In unserem Beispiel müssen wir die /Entität/Benutzer API. Klicken Sie dazu davor auf die Option Aktivieren.
- Da unser Ziel darin besteht, einen Benutzer in Drupal zu erstellen, wählen Sie die folgenden Konfigurationen aus:
- Anleitung: jetzt lesen
- Format: JSON
- Authentifizierungsanbieter: rest_api_authentication
- Dadurch kann das miniOrange API-Authentifizierungsmodul die API authentifizieren. Klicken Sie auf das Konfiguration speichern um fortzufahren.
Konfigurationsschritte
1. Richten Sie die OAuth/Access Token-Authentifizierungsmethode ein:
- In diesem Schritt konfigurieren wir OAuth/Access Token als API-Authentifizierungsmethode. Gehen Sie dazu zum API-Authentifizierung Registerkarte des Moduls (/admin/config/people/rest_api_authentication/auth_settings).
- Der Grundlegende Einstellung, aktivieren Sie die Aktivieren Sie die Authentifizierung Umschalten.
- Geben Sie die Anwendungsname und wählen Sie OAuth/Zugriffstoken von dem Authentifizierungsmethode .
- Scrollen Sie nach unten zum OAuth-Konfiguration Abschnitt auf derselben Registerkarte.
- Optional: Geben Sie unter Token-Ablaufzeit die gewünschte Ablaufdauer (in Minuten) ein.
- Verwenden Sie das von folgendem generierte Zugriffstoken:
- Rest-API-Authentifizierung: Klicken Sie auf die Generieren Sie eine neue Client-ID und ein neues Geheimnis Schaltfläche. (Behalten Sie die Client-ID und das Geheimnis griffbereit. Sie benötigen sie später zur Authentifizierung der API zum Erstellen von Benutzern.)
- OAuth-Server: Sie können auch ein Zugriffstoken von der OAuth-Server Modul (nach Durchführung von SSO) und verwenden Sie es zur Authentifizierung.
- Klicken Sie auf die Konfiguration speichern .
- Sie haben die OAuth/Access Token-Authentifizierungsmethode erfolgreich konfiguriert.
Hinweis: Verwenden Sie bei der Authentifizierung der API den anwendungsspezifischen eindeutigen Header.
Erteilen von Rollenberechtigungen zum Erstellen von Benutzern
- Bei Bedarf können Sie auch Benutzern ohne Administratorrechte das Erstellen von Benutzern in Drupal erlauben. Weisen Sie dazu den gewünschten Rollen auf der Seite „Berechtigungen“ (/admin/people/permissions) Ihrer Drupal-Site die Berechtigung „Benutzer verwalten“ zu.
2. Token vom REST-API-Modul abrufen:
- Führen Sie einen API-Aufruf durch, um ein Zugriffstoken zu erhalten. Dieses Token verwenden Sie dann zur Authentifizierung der Drupal-API und zum Erstellen eines Benutzers.
- Das miniOrange API-Authentifizierungsmodul unterstützt zwei Berechtigungstypen zum Erhalten eines Zugriffstokens:
- Bei der Kennwortzuweisung können wir das Zugriffstoken erhalten, indem wir eine POST-Anfrage stellen, die den Drupal-Benutzernamen und das Kennwort des Benutzers sowie die vom REST-API-Authentifizierungsmodul ausgegebene Client-ID enthält.
Passwortgewährung:
HTML-Anforderungsformat – Anforderung: POST /rest_api/access_token Body: grant_type = Passwort Benutzername = Passwort = Client-ID = Anfrage im CURL-Format - curl --location --request POST ' /rest_api/access_token' \ --header 'Akzeptieren: application/json' \ --header 'Inhaltstyp: application/x-www-form-urlencoded' \ --data-urlencode 'grant_type=Passwort' \ --data-urlencode 'Client-ID= ' \ --data-urlencode 'Benutzername= \ --data-urlencode 'Passwort= '
- Sie können sich auch das unten stehende Bild der Postman-Anforderung ansehen.
Gewährung von Client-Anmeldeinformationen:
- Bei der Client Credentials-Zuweisung können wir das Zugriffstoken erhalten, indem wir eine POST-Anfrage stellen, die die vom API-Authentifizierungsmodul ausgegebene Client-ID und das Client-Geheimnis zusammen mit dem Drupal-Benutzernamen des Benutzers enthält.
HTML-Anforderungsformat – Anforderung: POST /rest_api/access_token Body: grant_type = client_credentials client_id = Client-Geheimnis = Benutzername = CURL-Anforderungsformat - curl --location --request POST '/rest_api/access_token' \ --header 'Akzeptieren: application/json' \ --header 'Inhaltstyp: application/x-www-form-urlencoded' \ --data-urlencode 'grant_type=client_credentials' \ --data-urlencode 'client_id= ' \ --data-urlencode 'Benutzername= >' \ --data-urlencode 'client_secret= '
- Eine erfolgreiche Antwort gibt das Zugriffstoken zusammen mit dem Token-Ablauf und dem Token-Typ zurück (siehe Abbildung unten).
3. Beispiel:
- Erstellen wir nun einen Benutzer mit einem API-Aufruf unter Verwendung von OAuth/Access Token zur Authentifizierung.
- Zum besseren Verständnis betrachten wir als Beispiel das Hinzufügen einer OAuth/Access Token-basierten Authentifizierung zur API zum Erstellen von Benutzern in Drupal.
- Verwenden des erhaltenen Zugriffstokens zum Autorisieren der Drupal REST-APIs:
- Um sich mit einem Zugriffstoken zu authentifizieren, fügen Sie das Token als Bearer-Token in den Autorisierungsheader Ihrer Anfrage ein.
- Beispielanforderung zum Erstellen eines Benutzers mit tokenbasierter Authentifizierung:
Hinweis: Die /entity/user-API in Drupal wird zum Erstellen eines neuen Benutzers verwendet.
Hinweis: Es kann jedes beliebige Zugriffstoken verwendet werden, unabhängig davon, ob es vom API-Authentifizierungsmodul oder vom OAuth-Servermodul generiert wurde.
HTML-Anforderungsformat – Anforderung: POST /entity/user?_format=json Header: AUTH-METHOD: application_id Akzeptieren: application/json Inhaltstyp: application/json Autorisierung: Träger Text: { "Name": { "Wert": " " }, "mail": { "value": " " }, "pass": { "value": " " }, "status": { "value": "1" } } CURL-Anforderungsformat - curl --location --request POST ' /entity/user?_format=json' \ --header 'AUTH-METHOD: application_id' \ --header 'Akzeptieren: application/json' \ --header 'Inhaltstyp: application/json' \ --header 'Autorisierung: Träger ' \ --data-raw ' { "name": [ { "value": "Benutzername" } ], "mail": [ { "value": "email" } ], "pass": [ { "value": "Passwort" } ], "status": [ { "value": "1" } ] }
- Bei einer erfolgreichen Antwort werden die Details des von Ihnen erstellten Benutzers zurückgegeben (siehe Abbildung unten).
Herzlichen Glückwunsch! Sie haben die OAuth/Access Token-Authentifizierungsmethode mithilfe des Drupal API-Authentifizierungsmoduls erfolgreich eingerichtet.
Wenn die Konfiguration nicht erfolgreich war, kontaktieren Sie uns bitte unter drupalsupport@xecurify.com. Bitte fügen Sie einen Screenshot des Fehlerfensters bei. Wir helfen Ihnen dann bei der Lösung des Problems und führen Sie durch die Einrichtung.
