Toegangstoken / OAuth-gebaseerde authenticatie instellen
OAuth (Open Authorization) is een open standaard voor token-gebaseerde authenticatie en autorisatieprotocol dat gebruikt kan worden om Single Sign-On (SSO) te bieden. OAuth maakt het mogelijk dat bepaalde informatie over het account van een eindgebruiker gebruikt wordt door externe diensten, zoals Facebook, zonder dat het wachtwoord van de gebruiker wordt blootgesteld. Het fungeert als tussenpersoon namens de eindgebruiker en verstrekt de dienst een toegangstoken dat autoriseert dat specifieke accountinformatie gedeeld wordt.
Deze Drupal API-authenticatiemethode gebruikt het OAuth 2.0-protocol om een beveiligd toegangstoken te verkrijgen. Dit token wordt gebruikt om toegang tot de API’s van je Drupal-site te authenticeren. De OAuth-methode biedt een sterk versleuteld en veilig toegangstoken, waardoor je Drupal API’s goed beschermd zijn. Het wordt beschouwd als een van de veiligste manieren om ongeautoriseerde toegang tot je Drupal REST- of JSONAPI-endpoints te voorkomen. Deze module is compatibel met Drupal 7, Drupal 8, Drupal 9, Drupal 10 en Drupal 11.
Installatievideo:
In OAuth 2.0 zijn de volgende drie partijen betrokken:
- De gebruiker bezit gegevens die via de API worden benaderd en wil de applicatie toegang geven.
- De applicatie wil namens de gebruiker via de API toegang krijgen tot de gegevens.
- De API-endpoint beheert en verleent toegang tot de gegevens van de gebruiker.
De API verleent alleen toegang wanneer het een geldig toegangstoken van de applicatie ontvangt. Hoe de applicatie een toegangstoken verkrijgt, hangt af van het gebruikte OAuth-schema.
Vereisten: Download en installatie:
- Download & installeer de Drupal REST & JSON API Authentication-module.
- REST UI: Deze module biedt je een gebruikersinterface voor het configureren van de REST-module.
- Activeer de volgende Web Services-modules via het gedeelte Uitbreiden (/admin/modules) van je Drupal-site:
- JSON: API
- REST UI
- RESTful Web Services
- Serialization
Stappen om OAuth/Access Token-gebaseerde API-authenticatie te configureren:
- Voor beter begrip nemen we als voorbeeld het toevoegen van OAuth/Access Token-gebaseerde authenticatie aan de API voor gebruikersinformatie ophalen in Drupal.
- Let op dat de Drupal API voor gebruikersinformatie ophalen gebruikt wordt om gebruikersinformatie op te vragen.
Schakel de API in en wijs methoden en operaties toe als volgt:
- De eerste stap is het inschakelen van de API en het toewijzen van methoden en operaties die op die specifieke API zijn toegestaan. Dit kan gedaan worden via de REST UI-module of door de config direct te bewerken.
- Om de API in te schakelen via de REST UI-module, klik je op de knop Configureren van de REST UI-module (zoals hieronder weergegeven)
- In ons voorbeeld willen we de /user/{user}-API inschakelen die onder het Content-gedeelte staat. Schakel deze API in via de optie Inschakelen ervoor.
- Aangezien ons doel is om gebruikersinformatie op te halen, selecteer je de volgende configuraties:
- Methode: GET
- Formaat: json
- Authenticatieprovider: rest_api_authentication.
- Dit zorgt ervoor dat de miniOrange REST API Authentication-module je API kan authenticeren. Klik op de knop Configuratie opslaan om verder te gaan.
OAuth/Access Token-gebaseerde API-authenticatie instellen:
- In deze stap stellen we OAuth/Access Token in als API-authenticatiemethode.
Ga hiervoor naar het tabblad API Authentication van de REST API Authentication Module (/admin/config/people/rest_api_authentication/auth_settings)- Selecteer het selectievakje Authenticatie inschakelen en klik op de knop Instellingen opslaan.
- Selecteer onder de knop Instellingen opslaan de optie OAuth/Access Token.
- Klik nu op de knop Genereer een nieuwe Client ID & Secret.
- Bewaar de Client ID en Secret goed, want die heb je later nodig bij het authenticeren van de Get User Info API.
Geef Drupal-rollen toestemming om gebruikersinformatie te bekijken:
- Indien gewenst kun je ook niet-beheerder-rollen toestemming geven om gebruikersinformatie te bekijken. Dit kan door Drupal-rollen toe te wijzen aan de permissie Gebruikersinformatie bekijken onder het permissiegedeelte (/admin/people/permissions) van je Drupal-site.
Dat is alles!!!
Laten we nu proberen gebruikersinformatie op te halen via een API-call met OAuth/Access Token voor authenticatie.
Voorbeelden:
- Allereerst moeten we een API-call doen om een toegangstoken te krijgen. Dit zullen we vervolgens gebruiken om de Drupal API te authenticeren en gebruikersinformatie op te vragen.
- De miniOrange API Authentication-module ondersteunt 2 grant types die je kunt gebruiken om een toegangstoken te verkrijgen: