Controllo degli Accessi
Concedi un accesso granulare allo schema, in base al fatto che l'utente sia connesso (o meno), abbia un determinato ruolo o capacità, e altro ancora.
Descrizione
Questa estensione ci permette di creare delle Liste di Controllo degli Accessi, per gestire chi può accedere ai diversi elementi (operazioni, campi e direttive) dello schema GraphQL.
Un nuovo Custom Post Type "Lista di Controllo degli Accessi" viene aggiunto al sito. Possiamo sfogliare le sue voci nella pagina "Liste di Controllo degli Accessi" nel menu, e cliccare su "Aggiungi Nuova Lista di Controllo degli Accessi" per aggiungere una nuova voce nell'editor.


Nell'editor, indichiamo quali regole devono essere soddisfatte per accedere a quali elementi dello schema, tra le operazioni (query o mutation), i campi, i campi globali e le direttive.

Assegniamo la Lista di Controllo degli Accessi all'endpoint desiderato (endpoint privato, endpoint singolo, endpoint personalizzati o persisted queries) tramite la Configurazione dello Schema.

Durante l'esecuzione di una query GraphQL, se contiene uno qualsiasi degli elementi dello schema selezionati nella Lista di Controllo degli Accessi, le regole scelte vengono valutate.
Se una regola non viene soddisfatta, l'accesso a quell'operazione, campo o direttiva viene negato, e possiamo configurare il modo in cui l'API deve fornire la risposta:
- Modalità pubblica: Fornisce un messaggio di errore all'utente, indicando perché l'accesso è negato
- Modalità privata: Il messaggio di errore indica che l'operazione, il campo o la direttiva non esiste
Ad esempio, in modalità pubblica, potremmo ottenere questa risposta:
{
"errors": [
{
"message": "You must have role 'author' to access field 'title' for type 'Post'",
"locations": [
{
"line": 86,
"column": 3
}
]
}
]
}Mentre in modalità privata potremmo ottenere questa risposta:
{
"errors": [
{
"message": "There is no field 'title' on type 'Post'",
"locations": [
{
"line": 86,
"column": 3
}
]
}
]
}Elenco delle regole di Controllo degli Accessi
L'estensione fornisce le seguenti regole di Controllo degli Accessi:
- Disabilita l'accesso
- Concedi l'accesso solo se l'utente è connesso o disconnesso
- Concedi l'accesso solo se l'utente possiede un determinato ruolo
- Concedi l'accesso solo se l'utente possiede una determinata capacità