Tworzenie API
Tworzenie APIDefiniowanie kontroli dostępu

Definiowanie kontroli dostępu

Możemy zarządzać tym, kto ma dostęp do każdego pola i dyrektywy w schemacie, za pomocą list kontroli dostępu.

Gato GraphQL zawiera następujące reguły kontroli dostępu:

  • Wyłącz dostęp
  • Przyznaj dostęp, jeśli użytkownik jest zalogowany lub wylogowany
  • Przyznaj dostęp, jeśli użytkownik ma określoną rolę
  • Przyznaj dostęp, jeśli użytkownik ma określone uprawnienie
  • Przyznaj dostęp, jeśli odwiedzający pochodzi z dozwolonego adresu IP

Gdy żądane query (wykonywane przez niestandardowy endpoint lub jako utrwalone query) zawiera co najmniej jedno pole lub dyrektywę dodaną do listy kontroli dostępu, odpowiednie reguły są oceniane. Jeśli którakolwiek reguła nie jest spełniona, dostęp do danego pola lub dyrektywy jest odmawiany.

Konfiguracja jest tworzona za pomocą listy kontroli dostępu (ACL) i dostarczana do niestandardowych endpointów oraz utrwalonych queries poprzez konfigurację schematu.

Przeglądanie wszystkich list kontroli dostępu

Po kliknięciu "Access Control Lists" w menu wtyczki wyświetlana jest lista wszystkich utworzonych list kontroli dostępu:

Listy kontroli dostępu w panelu administracyjnym
Listy kontroli dostępu w panelu administracyjnym

Tworzenie nowej listy kontroli dostępu

Kliknij przycisk "Add New Access Control List", aby otworzyć edytor WordPress:

Tworzenie listy kontroli dostępu

Nadaj liście kontroli dostępu tytuł, dodaj wpisy z operacjami, polami i dyrektywami, skonfiguruj obowiązujące reguły i określ widoczność (publiczna lub prywatna):

Tworzenie listy kontroli dostępu

Gdy będzie gotowa, kliknij przycisk Opublikuj. Nowa lista kontroli dostępu będzie wówczas dostępna w konfiguracji schematu.

Wpisy kontroli dostępu

Każda lista kontroli dostępu zawiera jeden lub więcej wpisów, z których każdy posiada następujące elementy:

  • Operacje, do których dostęp ma być przyznany lub odmówiony
  • Pola, do których dostęp ma być przyznany lub odmówiony
  • Dyrektywy, do których dostęp ma być przyznany lub odmówiony
  • Lista reguł do zweryfikowania

Wpis kontroli dostępu

Wybieranie pól z interfejsów

Oprócz pól typów możemy również wybierać pola z interfejsów. W takim przypadku walidacja kontroli dostępu jest przeprowadzana na wszystkich typach implementujących dany interfejs.

Wybieranie pola z interfejsu
Wybieranie pola z interfejsu

Tryb publiczny/prywatny

Jeśli moduł "Public/Private Schema" jest włączony, gdy dostęp do jakiegoś pola lub dyrektywy jest odmówiony, API może zachować się na 2 sposoby:

  • Tryb publiczny: wyświetla użytkownikowi komunikat o błędzie wskazujący, dlaczego dostęp jest odmówiony
  • Tryb prywatny: komunikat o błędzie informuje, że dane pole lub dyrektywa nie istnieje

Jeśli ten moduł nie jest włączony, domyślnym zachowaniem jest tryb publiczny.

Szczegółowy tryb publiczny/prywatny

Jeśli opcja "Enable granular control?" modułu "Public/Private Schema" jest włączona, wpis posiada dodatkowy element:

  • Schemat publiczny/prywatny: zachowanie w przypadku odmowy dostępu
Indywidualny tryb schematu publicznego/prywatnego
Indywidualny tryb schematu publicznego/prywatnego

Opisywanie listy kontroli dostępu

Użyj pola "Excerpt" w panelu ustawień dokumentu, aby dodać opis do listy kontroli dostępu.

Więcej informacji znajdziesz w przewodniku Dodawanie opisu do API.

Korzystanie z listy kontroli dostępu

Po utworzeniu ACL możemy sprawić, by Niestandardowy Endpoint lub Utrwalone Query z niej korzystało, edytując odpowiednią Konfigurację Schematu i wybierając ACL z listy w bloku "Access Control Lists".

Wybieranie listy kontroli dostępu w Konfiguracji Schematu
Wybieranie listy kontroli dostępu w Konfiguracji Schematu

Jeśli konfiguracja nie jest dostosowana, zostaną użyte domyślne listy kontroli dostępu zdefiniowane na stronie Ustawień, w zakładce "Access Control":

Wybieranie domyślnych list kontroli dostępu na stronie Ustawień