Membuat API
Membuat APIMendefinisikan kontrol akses

Mendefinisikan kontrol akses

Kita dapat mengelola siapa yang dapat mengakses setiap field dan direktif dalam skema melalui daftar kontrol akses.

Gato GraphQL hadir dengan aturan kontrol akses berikut:

  • Nonaktifkan akses
  • Berikan akses jika pengguna sudah masuk atau belum masuk
  • Berikan akses jika pengguna memiliki peran tertentu
  • Berikan akses jika pengguna memiliki kapabilitas tertentu
  • Berikan akses jika pengunjung berasal dari alamat IP yang diizinkan

Setiap kali query yang diminta (baik dieksekusi melalui custom endpoint maupun sebagai persisted query) mengandung satu atau lebih field atau direktif yang ditambahkan ke daftar kontrol akses, aturan yang sesuai akan dievaluasi. Jika ada aturan yang tidak terpenuhi, akses ke field atau direktif tersebut akan ditolak.

Konfigurasi dibuat melalui daftar kontrol akses (ACL), dan dikirimkan ke custom endpoint serta persisted query melalui konfigurasi skema.

Mengakses semua daftar kontrol akses

Mengklik "Access Control Lists" pada menu plugin akan menampilkan daftar semua daftar kontrol akses yang telah dibuat:

Daftar Kontrol Akses di admin
Daftar Kontrol Akses di admin

Membuat daftar kontrol akses baru

Klik tombol "Add New Access Control List" untuk membuka editor WordPress:

Membuat Daftar Kontrol Akses

Beri judul pada daftar kontrol akses, tambahkan entri dengan operasi, field, dan direktif, konfigurasikan aturan apa yang berlaku untuk mereka, dan tentukan visibilitasnya (publik atau privat):

Membuat Daftar Kontrol Akses

Setelah siap, klik tombol Publish. Kemudian, daftar kontrol akses baru tersebut akan tersedia untuk konfigurasi skema.

Entri Kontrol Akses

Setiap Daftar Kontrol Akses berisi satu atau beberapa entri, masing-masing dengan elemen-elemen berikut:

  • Operasi yang akan diberikan atau ditolak aksesnya
  • Field yang akan diberikan atau ditolak aksesnya
  • Direktif yang akan diberikan atau ditolak aksesnya
  • Daftar aturan yang akan divalidasi

Entri kontrol akses

Memilih field dari antarmuka

Selain field dari tipe, kita juga dapat memilih field dari antarmuka. Dalam hal ini, validasi kontrol akses dilakukan pada semua tipe yang mengimplementasikan antarmuka tersebut.

Memilih field dari antarmuka
Memilih field dari antarmuka

Mode publik/privat

Jika modul "Public/Private Schema" diaktifkan, ketika akses ke suatu field atau direktif ditolak, ada 2 cara perilaku API:

  • Mode publik: Memberikan pesan kesalahan kepada pengguna, yang menjelaskan alasan akses ditolak
  • Mode privat: Pesan kesalahan menunjukkan bahwa field atau direktif tidak ada

Jika modul ini tidak diaktifkan, perilaku default adalah publik.

Mode publik/privat granular

Jika opsi "Enable granular control?" dari modul "Public/Private Schema" dalam keadaan aktif, entri memiliki elemen tambahan:

  • Skema Publik/Privat: perilaku ketika akses ditolak
Mode skema Publik/Privat individual
Mode skema Publik/Privat individual

Mendeskripsikan daftar kontrol akses

Gunakan field "Excerpt", dari panel pengaturan Dokumen, untuk memberikan deskripsi pada daftar kontrol akses.

Temukan informasi lebih lanjut di panduan Menambahkan deskripsi ke API.

Menggunakan daftar kontrol akses

Setelah membuat ACL, kita dapat membuat Custom Endpoint atau Persisted Query menggunakannya dengan mengedit Konfigurasi Skema yang sesuai, dan memilih ACL dari daftar di bawah blok "Access Control Lists".

Memilih Daftar Kontrol Akses dalam Konfigurasi Skema
Memilih Daftar Kontrol Akses dalam Konfigurasi Skema

Jika tidak menyesuaikan konfigurasi, Daftar Kontrol Akses default yang ditentukan di halaman Pengaturan, di bawah tab "Access Control", akan digunakan:

Memilih Daftar Kontrol Akses default di halaman Pengaturan