Imposta autenticazione basata su Access Token / OAuth
OAuth (Open Authorization) è uno standard aperto per l’autenticazione e l’autorizzazione basata su token che può essere utilizzato per fornire il single sign-on (SSO). OAuth consente a servizi di terze parti, come Facebook, ecc. di utilizzare determinate informazioni sull’account di un utente finale senza esporre la password dell’utente. Agisce come intermediario per conto dell’utente finale, fornendo al servizio un access token che autorizza la condivisione di specifiche informazioni dell’account.
Questo metodo di autenticazione API di Drupal utilizza il protocollo OAuth 2.0 per ottenere un access token di sicurezza. Questo token viene utilizzato per autenticare l’accesso alle API del tuo sito Drupal. Il metodo OAuth fornisce un access token altamente crittografato e sicuro, garantendo che le tue API Drupal siano ben protette. È considerato uno dei modi più sicuri per prevenire accessi non autorizzati agli endpoint REST o JSONAPI di Drupal. Questo modulo è compatibile con Drupal 7, Drupal 8, Drupal 9, Drupal 10 e Drupal 11.
Video di configurazione:
In OAuth 2.0, sono coinvolte le seguenti tre parti:
- L’utente possiede i dati a cui si accede tramite l’API e vuole consentire all’applicazione di accedervi.
- L’applicazione desidera accedere ai dati tramite l’API per conto dell’utente.
- L’endpoint API, controlla e abilita l’accesso ai dati dell’utente.
L’API concederà l’accesso solo quando riceve un access token valido dall’applicazione. Il modo in cui l’applicazione ottiene un access token dipende dallo schema OAuth in uso.
Prerequisiti: Download e Installazione:
- Scarica e installa il modulo Drupal REST & JSON API Authentication.
- REST UI: Questo modulo fornisce un’interfaccia utente per configurare il modulo REST.
- Abilita i seguenti moduli Web Services dalla sezione Estendi (/admin/modules) del tuo sito Drupal:
- JSON: API
- REST UI
- RESTful Web Services
- Serialization
Passaggi per configurare l’autenticazione API basata su OAuth/Access Token:
- Per una migliore comprensione, prenderemo come esempio l’aggiunta dell’autenticazione basata su OAuth/Access Token all’API get user information per Drupal.
- Nota bene: l’API get user information di Drupal viene utilizzata per recuperare le informazioni sull’utente.
Abilita l’API e assegna metodi e operazioni come segue:
- Il primo passaggio consiste nell’abilitare l’API e assegnare anche i metodi e le operazioni consentite su quella particolare API. Questo può essere fatto usando il modulo REST UI oppure modificando semplicemente la configurazione.
- Per abilitare l’API utilizzando il modulo REST UI, fai clic sul pulsante Configura del modulo REST UI (come mostrato di seguito)
- Considerando il nostro esempio, vogliamo abilitare l’API /user/{user} presente nella sezione Content. Abilita questa API utilizzando l’opzione Enable di fronte ad essa.
- Ora, poiché il nostro obiettivo è recuperare le informazioni sull’utente, seleziona le seguenti configurazioni:
- Metodo: GET
- Formato: json
- Provider di autenticazione: rest_api_authentication.
- Ciò consentirà al modulo miniOrange REST API Authentication di autenticare la tua API. Fai clic sul pulsante Salva configurazione per continuare.
Configura l’autenticazione API basata su OAuth/Access Token:
- In questo passaggio, configureremo OAuth/Access Token come metodo di autenticazione API.
Per farlo, vai alla scheda API Authentication del modulo REST API Authentication (/admin/config/people/rest_api_authentication/auth_settings)- Seleziona la casella Abilita autenticazione e fai clic sul pulsante Salva impostazioni.
- Sotto il pulsante Salva impostazioni seleziona il pulsante di opzione OAuth/Access Token.
- Ora fai clic sul pulsante Genera un nuovo Client ID & Secret.
- Tieni a portata di mano il Client ID e il Secret poiché verranno utilizzati successivamente durante l’autenticazione dell’API Get User Info.
Concedi ai ruoli Drupal l’autorizzazione per visualizzare le informazioni dell’utente:
- Se necessario, puoi anche concedere ai ruoli Drupal non amministrativi il permesso di visualizzare le informazioni dell’utente. Puoi farlo assegnando i ruoli Drupal al permesso View User Information dalla sezione permessi (/admin/people/permissions) del tuo sito Drupal.
Questo è tutto!!!
Ora proviamo a recuperare le informazioni dell’utente tramite una chiamata API utilizzando OAuth/Access Token per l’autenticazione
Esempi:
- Prima di tutto, dobbiamo effettuare una chiamata API per ottenere un access token. Lo utilizzeremo quindi per autenticare l’API di Drupal al fine di ottenere le informazioni di un utente.
- Il modulo miniOrange API Authentication supporta 2 grant type che puoi utilizzare per ottenere un access token: