Konfigurera OAuth/Access Token-autentisering i Drupal
Detta Drupal API-autentisering Metoden använder OAuth 2.0-protokollet för att generera en säker åtkomsttoken. Denna token används sedan för att autentisera och skicka förfrågningar till din Drupal-webbplats API:er. Med stark kryptering säkerställer OAuth-metoden att dina API:er förblir väl skyddade och säkra från obehörig åtkomst. Det anses allmänt vara en av de säkraste metoderna för att skydda Drupal REST- och JSON:API-slutpunkter. Modulen är helt kompatibel med Drupal 8, 9, 10 och 11.
- Använder Composer
- Använder Drush
- Manuell installation
Förutsättningar:
- REST-gränssnittDen här modulen tillhandahåller ett användarvänligt gränssnitt för att konfigurera REST-modulen.
- Aktivera följande webbtjänstmoduler från Förläng avsnittet (/admin/modules) på din Drupal-webbplats:
- JSON:API
- REST-gränssnitt
- RESTful webbtjänster
- serialisering
Aktivera API och tilldela metoder:
- Det första steget är att aktivera API:et och tilldela de metoder och operationer som är tillåtna för det API:et. Detta kan göras med hjälp av REST-gränssnitt modulen, eller genom att direkt ändra Drupal-konfigurationen.
- Klicka på Aktivera API knapp.
- För att aktivera API:et med hjälp av REST UI-modulen, klicka på Inställd knappen (som visas nedan).
- I vårt exempel behöver vi aktivera /enhet/användare API. För att göra detta, klicka på alternativet Aktivera framför det.
- Eftersom vårt mål är att skapa en användare i Drupal, välj följande konfigurationer:
- Metod: POST
- Format: JSON
- Autentiseringsleverantör: rest_api_authentication
- Detta gör att miniOrange API-autentiseringsmodulen kan autentisera API:et. Klicka på Spara konfiguration knappen för att fortsätta.
Konfigurationssteg
1. Konfigurera autentiseringsmetod för OAuth/Access Token:
- I det här steget konfigurerar vi OAuth/Access Token som API-autentiseringsmetod. För att göra detta, gå till API-autentisering fliken i modulen (/admin/config/people/rest_api_authentication/auth_settings).
- Enligt Grundläggande konfiguration, aktivera Aktivera autentisering växla.
- Ange applikationsnamn och välj OAuth/Åtkomsttoken från Autentiseringsmetod sektion.
- Bläddra ner till OAuth-konfiguration avsnitt på samma flik.
- Valfritt: Ange önskad utgångstid (i minuter) under Token Expiry Time.
- Använd åtkomsttoken genererad av:
- Rest API-autentisering: Klicka på Generera ett nytt klient-ID och en ny hemlighet knappen. (Ha klient-ID och hemlighet till hands. Du behöver dem senare för att autentisera API:et för att skapa användare.)
- OAuth-server: Du kan också få en åtkomsttoken från OAuth-server modulen (efter att ha utfört SSO) och använd den för autentisering.
- Klicka på Spara konfiguration knapp.
- Du har konfigurerat OAuth/Access Token-autentiseringsmetoden.
Obs: Använd den applikationsspecifika unika rubriken när du autentiserar API:et.
Ge rollbehörigheter för att skapa användare
- Om det behövs kan du tillåta Drupal-roller som inte är administratörer att skapa användare. För att göra detta, tilldela behörigheten Administrera användare till önskade roller från sidan Behörigheter (/admin/people/permissions) på din Drupal-webbplats.
2. Hämta token från REST API-modulen:
- Gör ett API-anrop för att hämta en åtkomsttoken. Du använder sedan denna token för att autentisera Drupal API och skapa en användare.
- miniOrange API-autentiseringsmodulen stöder två typer av beviljande för att erhålla en åtkomsttoken:
- I lösenordsbeviljandet kan vi få åtkomsttoken genom att göra en POST-begäran som innehåller användarens Drupal-användarnamn och lösenord tillsammans med klient-ID:t som utfärdats av REST API-autentiseringsmodulen.
Bevilja lösenord:
HTML-förfrågningsformat - Begäran: POST /rest_api/access_token Brödtext: grant_type = lösenord användarnamn = lösenord = klient_id = Begäran i CURL-format - curl --location --request POST /rest_api/access_token' \ --header 'Acceptera: application/json' \ --header 'Innehållstyp: application/x-www-form-urlencoded' \ --data-urlencode 'grant_type=lösenord' \ --data-urlencode 'klient_id=' ' \ --data-urlencode 'användarnamn= \ --data-urlencode 'lösenord= '
- Du kan också se bilden för Postman-förfrågan nedan.
Beviljande av klientlegitimationer:
- I klientautentiseringsbehörigheten kan vi hämta åtkomsttoken genom att göra en POST-begäran som innehåller klient-ID och klienthemlighet som utfärdats av API-autentiseringsmodulen tillsammans med användarens Drupal-användarnamn.
HTML-förfrågningsformat - Begäran: POST /rest_api/access_token Brödtext: grant_type = client_credentials client_id = klienthemlighet = Användarnamn = CURL-förfrågningsformat - curl --location --request POST/rest_api/access_token' \ --header 'Acceptera: application/json' \ --header 'Innehållstyp: application/x-www-form-urlencoded' \ --data-urlencode 'grant_type=client_credentials' \ --data-urlencode 'client_id=' ' \ --data-urlencode 'användarnamn= >' \ --data-urlencode 'klienthemlighet= '
- Ett lyckat svar returnerar åtkomsttoken tillsammans med tokens utgång och tokentyp (se bilden nedan)
3. Exempel:
- Nu ska vi skapa en användare med ett API-anrop med hjälp av OAuth/Access Token för autentisering.
- För en bättre förståelse, låt oss ta ett exempel på hur man lägger till OAuth/Access Token-baserad autentisering till API:et för att skapa användare i Drupal.
- Använda den mottagna åtkomsttoken för att auktorisera Drupals REST API:er:
- För att autentisera med en åtkomsttoken, lägg till token som en Bearer-token i Auktoriseringsrubriken för din begäran.
- Exempel på begäran för att skapa användare med tokenbaserad autentisering:
Obs: API:et /entity/user i Drupal används för att skapa en ny användare.
Obs: Alla åtkomsttokens, oavsett om de genereras av API-autentiseringsmodulen eller OAuth-servermodulen, kan användas.
HTML-förfrågningsformat - Begäran: POST /entity/user?_format=json Rubrik: AUT.METOD: application_id Acceptera: application/json Innehållstyp: application/json Auktorisering: Bearer Brödtext: { "namn": { "värde": " "}, "post": { "värde": " "}, "pass": { "värde": " "}, "status": { "värde": "1" } } CURL-förfrågan Format- curl --location --request POST ' /entity/user?_format=json' \ --header 'AUT.METOD: applikations-id' \ --header 'Acceptera: applikation/json' \ --header 'Innehållstyp: applikation/json' \ --header 'Auktorisering: Bärare ' \ --data-raw ' { "namn": [ { "värde": "Användarnamn" } ], "post": [ { "värde": "e-post" } ], "lösenord": [ { "värde": "Lösenord" } ], "status": [ { "värde": "1" } ] }
- Ett lyckat svar returnerar informationen om den användare du skapade (se bilden nedan).
Grattis! Du har konfigurerat OAuth/Access Token-autentiseringsmetoden med hjälp av Drupals API-autentiseringsmodul.
Om konfigurationen inte lyckades, vänligen kontakta oss på drupalsupport@xecurify.comVänligen bifoga en skärmdump av felfönstret så hjälper vi dig att lösa problemet och guidar dig genom installationen.
Tack för ditt svar. Vi återkommer snart.
Något gick fel. Skicka din fråga igen
