logo

Extra Block Types (EBT) - New Layout Builder experience❗

Extra Block Types (EBT) - styled, customizable block types: Slideshows, Tabs, Cards, Accordions and many others. Built-in settings for background, DOM Box, javascript plugins. Experience the future of layout building today.

Demo EBT modules Download EBT modules

❗Extra Paragraph Types (EPT) - New Paragraphs experience

Extra Paragraph Types (EPT) - analogical paragraph based set of modules.

Demo EPT modules Download EPT modules

Scroll

Autenticazione REST API utilizzando un provider di identità esterno

02/09/2025, by Ivan

Se stai cercando di proteggere/restringere l’accesso alle tue API REST di Drupal utilizzando un provider di identità, allora dovresti utilizzare il metodo di Autenticazione tramite Provider di Identità Esterno.

L’autenticazione API di Drupal utilizzando un provider di identità esterno prevede l’uso di token ricevuti da provider terzi come Google, Azure AD, Keycloak, Okta, Gitlab, ecc. per accedere in modo sicuro alle API REST di Drupal.

In questo metodo, è necessario configurare il modulo con l’endpoint User Info fornito dal tuo provider di identità e l’attributo username del provider. In questo modo potrai autenticare tutte le richieste API di Drupal utilizzando il token fornito dal provider. Il modulo Drupal REST API verifica le credenziali ricevute rispetto all’account utente di Drupal. Questo modulo è compatibile con Drupal 7, Drupal 8, Drupal 9, Drupal 10 e Drupal 11.

Download

Video di configurazione:

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:
    • REST UI
    • RESTful Web Services
    • Serialization
    installa moduli

Passaggi per configurare l'autenticazione API usando un'applicazione/provider esterno:

  • Per una migliore comprensione, prenderemo come esempio l’aggiunta dell’autenticazione basata su provider esterno all’API di creazione utente in Drupal.
  • Nota: l’API /entity/user di Drupal viene utilizzata per creare un utente.

Abilita l’API e assegna metodi e operazioni:

  • Il primo passo è abilitare l’API e definire metodi e operazioni consentiti. Questo può essere fatto usando il modulo REST UI o modificando direttamente la configurazione.
  • Per abilitare l’API usando REST UI, clicca sul pulsante Configura del modulo REST UI (come mostrato sotto): REST UI
  • Nel nostro esempio, dobbiamo abilitare l’API /entity/user presente sotto Utente. Abilita questa API cliccando su “Abilita” davanti a essa.
    Aggiungi nodo
  • Poiché il nostro obiettivo è creare un utente in Drupal, seleziona le seguenti configurazioni:
    • Metodo: POST
    • Formato: json
    • Provider di autenticazione: rest_api_authentication
  • Selezionando rest_api_authentication permetterai al modulo miniOrange di autenticare le richieste API. Clicca su Salva configurazione per continuare. Contenuto risorsa

Configurazione del modulo Drupal REST API Authentication:

  • In questo passaggio, configureremo il Provider di identità esterno come metodo di autenticazione API. Vai alla scheda “API Authentication” del modulo REST API Authentication (/admin/config/people/rest_api_authentication/auth_settings)
    • Seleziona la casella Abilita Autenticazione e clicca su Salva impostazioni.
    • Sotto il pulsante, seleziona l’opzione External Identity Provider.
    • Nel campo “User Info Endpoint” inserisci l’URL fornito dal tuo provider per recuperare le informazioni dell’utente via token.
    • Nel campo “Username Attribute” inserisci la chiave/attributo dove viene inviato il nome utente dal provider esterno.
      Autenticazione esterna

Concedi i permessi ai ruoli Drupal per creare un utente:

  • Se necessario, puoi concedere ai ruoli non amministrativi il permesso di creare utenti. Vai a /admin/people/permissions e assegna il permesso Amministrare utenti al ruolo desiderato.
    Aggiungi permessi

Fatto!!!

  • Ora possiamo provare a creare un utente in Drupal tramite una chiamata API utilizzando un provider di identità esterno per l’autenticazione.

Esempi:

  • Per creare un utente in Drupal devi effettuare una richiesta POST con il token ricevuto dal provider.

    Richiesta: POST  <tuo_url_base_drupal>/entity/user?_format=json
    Header: Token: <token_ricevuto_dal_provider>
            Accept: application/json
            Content-Type: application/json

    Corpo:
    {
      "name": [ { "value": "<username>" } ],
      "mail": [ { "value": "<email>" } ],
      "pass": [ { "value": "<password>" } ],
      "status": [ { "value": "1" } ]
    }

    Formato richiesta CURL:

    curl --location --request POST '<tuo_url_base_drupal>/entity/user?_format=json' \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --header 'Token: <token_ricevuto_dal_provider>' \
    --data-raw '{
      "name": [{ "value": "Username" }],
      "mail": [{ "value": "email" }],
      "pass": [{ "value": "Password" }],
      "status": [{ "value": "1" }]
    }'
  • Puoi anche fare riferimento all’immagine della richiesta Postman qui sotto:

    postman

  • Una risposta corretta restituisce le informazioni dell’utente creato (vedi immagine sotto).

    Risposta Postman

  • Se ricevi un errore in risposta, consulta la seguente tabella con descrizione e possibili soluzioni.

Risposta di errore:

Errore Descrizione
INVALID_USER_INFO_ENDPOINT Riceverai questo errore se l’URL del user info endpoint inserito nella configurazione è errato.
INVALID_USERNAME_ATTRIBUTE Errore generato se il campo attributo username nella configurazione è errato o mancante.
INVALID_TOKEN Errore mostrato quando il token fornito è errato o mancante dall’header della richiesta.

Articolo da Drupal Documentation.