Eine API erstellen
Eine API erstellenZugriffskontrolle definieren

Zugriffskontrolle definieren

Wir können verwalten, wer auf jedes Feld und jede Direktive im Schema zugreifen darf – über Zugriffskontrolllisten.

Gato GraphQL enthält die folgenden Zugriffskontrollregeln:

  • Zugriff deaktivieren
  • Zugriff gewähren, wenn der Nutzer eingeloggt oder ausgeloggt ist
  • Zugriff gewähren, wenn der Nutzer eine bestimmte Rolle hat
  • Zugriff gewähren, wenn der Nutzer eine bestimmte Berechtigung hat
  • Zugriff gewähren, wenn der Besucher von einer erlaubten IP-Adresse kommt

Immer wenn die angeforderte Query (entweder über einen benutzerdefinierten Endpoint oder als Persisted Query ausgeführt) ein oder mehrere Felder oder Direktiven enthält, die der Zugriffskontrollliste hinzugefügt wurden, werden die entsprechenden Regeln ausgewertet. Wenn eine Regel nicht erfüllt ist, wird der Zugriff auf dieses Feld oder diese Direktive verweigert.

Die Konfiguration wird über eine Zugriffskontrollliste (ACL) erstellt und über die Schema-Konfiguration an benutzerdefinierte Endpoints und Persisted Queries übergeben.

Alle Zugriffskontrolllisten aufrufen

Ein Klick auf „Access Control Lists" im Menü des Plugins zeigt die Liste aller erstellten Zugriffskontrolllisten an:

Zugriffskontrolllisten im Adminbereich
Zugriffskontrolllisten im Adminbereich

Eine neue Zugriffskontrollliste erstellen

Klicke auf die Schaltfläche „Add New Access Control List", um den WordPress-Editor zu öffnen:

Eine Zugriffskontrollliste erstellen

Gib der Zugriffskontrollliste einen Titel, füge Einträge mit Operationen, Feldern und Direktiven hinzu, konfiguriere die geltenden Regeln und lege ihre Sichtbarkeit (öffentlich oder privat) fest:

Eine Zugriffskontrollliste erstellen

Wenn du fertig bist, klicke auf die Schaltfläche Publish. Die neue Zugriffskontrollliste steht dann für die Schema-Konfiguration zur Verfügung.

Einträge der Zugriffskontrolle

Jede Zugriffskontrollliste enthält einen oder mehrere Einträge, die jeweils folgende Elemente haben:

  • Die Operationen, für die der Zugriff gewährt oder verweigert werden soll
  • Die Felder, für die der Zugriff gewährt oder verweigert werden soll
  • Die Direktiven, für die der Zugriff gewährt oder verweigert werden soll
  • Die Liste der zu validierenden Regeln

Eintrag der Zugriffskontrolle

Felder aus Interfaces auswählen

Zusätzlich zu Feldern aus Typen können wir auch Felder aus Interfaces auswählen. In diesem Fall wird die Zugriffskontrollvalidierung für alle Typen durchgeführt, die das Interface implementieren.

Ein Feld aus einem Interface auswählen
Ein Feld aus einem Interface auswählen

Öffentlicher/privater Modus

Wenn das Modul „Public/Private Schema" aktiviert ist und der Zugriff auf ein Feld oder eine Direktive verweigert wird, kann sich die API auf 2 Arten verhalten:

  • Öffentlicher Modus: Dem Nutzer wird eine Fehlermeldung angezeigt, die erklärt, warum der Zugriff verweigert wird
  • Privater Modus: Die Fehlermeldung gibt an, dass das Feld oder die Direktive nicht existiert

Wenn dieses Modul nicht aktiviert ist, ist das Standardverhalten öffentlich.

Granularer öffentlicher/privater Modus

Wenn die Option „Enable granular control?" des Moduls „Public/Private Schema" aktiviert ist, hat der Eintrag ein zusätzliches Element:

  • Public/Private Schema: Verhalten, wenn der Zugriff verweigert wird
Individueller öffentlicher/privater Schema-Modus
Individueller öffentlicher/privater Schema-Modus

Die Zugriffskontrollliste beschreiben

Verwende das Feld „Excerpt" im Einstellungsbereich des Dokuments, um der Zugriffskontrollliste eine Beschreibung zu geben.

Weitere Informationen findest du in der Anleitung Eine Beschreibung zur API hinzufügen.

Die Zugriffskontrollliste verwenden

Nach dem Erstellen der ACL kannst du dafür sorgen, dass der Custom Endpoint oder die Persisted Query sie verwendet, indem du die entsprechende Schema-Konfiguration bearbeitest und die ACL aus der Liste unter dem Block „Access Control Lists" auswählst.

Eine Zugriffskontrollliste in der Schema-Konfiguration auswählen
Eine Zugriffskontrollliste in der Schema-Konfiguration auswählen

Wenn die Konfiguration nicht angepasst wird, werden die auf der Einstellungsseite unter dem Tab „Access Control" festgelegten Standard-Zugriffskontrolllisten verwendet:

Die Standard-Zugriffskontrolllisten auf der Einstellungsseite auswählen