Creare un'API
Creare un'APIDefinire il controllo degli accessi

Definire il controllo degli accessi

Possiamo gestire chi può accedere a ogni campo e direttiva dello schema tramite liste di controllo degli accessi.

Gato GraphQL include le seguenti regole di controllo degli accessi:

  • Disabilitare l'accesso
  • Concedere l'accesso se l'utente è connesso o disconnesso
  • Concedere l'accesso se l'utente ha un determinato ruolo
  • Concedere l'accesso se l'utente ha una determinata capacità
  • Concedere l'accesso se il visitatore proviene da un indirizzo IP autorizzato

Ogni volta che la query richiesta (eseguita tramite un endpoint personalizzato o come query persistita) contiene uno o più campi o direttive aggiunti alla lista di controllo degli accessi, le regole corrispondenti vengono valutate. Se una regola non è soddisfatta, l'accesso a quel campo o a quella direttiva viene negato.

La configurazione viene creata tramite una lista di controllo degli accessi (ACL) e fornita agli endpoint personalizzati e alle query persistite tramite la configurazione dello schema.

Accesso a tutte le liste di controllo degli accessi

Facendo clic su "Access Control Lists" nel menu del plugin, viene visualizzato l'elenco di tutte le liste di controllo degli accessi create:

Liste di controllo degli accessi nell'amministrazione
Liste di controllo degli accessi nell'amministrazione

Creazione di una nuova lista di controllo degli accessi

Fare clic sul pulsante "Add New Access Control List" per aprire l'editor WordPress:

Creazione di una lista di controllo degli accessi

Assegnare un titolo alla lista di controllo degli accessi, aggiungere voci con operazioni, campi e direttive, configurare le regole applicabili e definirne la visibilità (pubblica o privata):

Creazione di una lista di controllo degli accessi

Quando è pronta, fare clic sul pulsante Pubblica. La nuova lista di controllo degli accessi diventa quindi disponibile per la configurazione dello schema.

Voci di controllo degli accessi

Ogni lista di controllo degli accessi contiene una o più voci, ciascuna con i seguenti elementi:

  • Le operazioni a cui concedere o negare l'accesso
  • I campi a cui concedere o negare l'accesso
  • Le direttive a cui concedere o negare l'accesso
  • L'elenco delle regole da validare

Voce di controllo degli accessi

Selezione di campi dalle interfacce

Oltre ai campi dei tipi, è possibile selezionare anche campi dalle interfacce. In questo caso, la validazione del controllo degli accessi viene eseguita su tutti i tipi che implementano l'interfaccia.

Selezione di un campo da un'interfaccia
Selezione di un campo da un'interfaccia

Modalità pubblica/privata

Se il modulo "Public/Private Schema" è abilitato, quando l'accesso a un campo o a una direttiva viene negato, l'API può comportarsi in 2 modi:

  • Modalità pubblica: fornisce un messaggio di errore all'utente indicando il motivo del diniego di accesso
  • Modalità privata: il messaggio di errore indica che il campo o la direttiva non esiste

Se questo modulo non è abilitato, il comportamento predefinito è pubblico.

Modalità pubblica/privata granulare

Se l'opzione "Enable granular control?" del modulo "Public/Private Schema" è attivata, la voce presenta un elemento aggiuntivo:

  • Schema Pubblico/Privato: comportamento quando l'accesso viene negato
Modalità schema Pubblico/Privato individuale
Modalità schema Pubblico/Privato individuale

Descrizione della lista di controllo degli accessi

Utilizzare il campo "Estratto", nel pannello delle impostazioni del documento, per assegnare una descrizione alla lista di controllo degli accessi.

Ulteriori informazioni sono disponibili nella guida Aggiungere una descrizione all'API.

Utilizzo della lista di controllo degli accessi

Dopo aver creato l'ACL, è possibile fare in modo che l'Endpoint Personalizzato o la Query Persistita la utilizzi modificando la Configurazione dello Schema corrispondente, e selezionando l'ACL dall'elenco sotto il blocco "Access Control Lists".

Selezione di una lista di controllo degli accessi nella Configurazione dello Schema
Selezione di una lista di controllo degli accessi nella Configurazione dello Schema

Se la configurazione non viene personalizzata, verranno utilizzate le liste di controllo degli accessi predefinite definite nella pagina delle Impostazioni, nella scheda "Access Control":

Selezione delle liste di controllo degli accessi predefinite nella pagina delle Impostazioni