Casbin RBAC vs. RBAC96
Casbin RBAC dan RBAC96
Dalam dokumen ini, kami akan membandingkan Casbin RBAC dengan RBAC96.
Casbin RBAC mendukung hampir semua fitur RBAC96 dan menambahkan fitur baru di atasnya.
Versi RBAC | Tingkat Dukungan | Deskripsi |
---|---|---|
RBAC0 | Didukung Sepenuhnya | RBAC0 adalah versi dasar dari RBAC96. Ini memperjelas hubungan antara Pengguna, Peran, dan Izin. |
RBAC1 | Didukung Sepenuhnya | RBAC1 menambahkan hierarki peran di atas RBAC0. Ini berarti jika alice memiliki role1 , role1 memiliki role2 , maka alice juga akan memiliki role2 dan mewarisi izin-izinnya. |
RBAC2 | Penanganan Saling Eksklusif Didukung (seperti ini) | RBAC2 menambahkan batasan pada RBAC0. Ini memungkinkan RBAC2 untuk menangani kebijakan yang saling eksklusif. Namun, batasan kuantitatif tidak didukung. |
RBAC3 | Penanganan Eksklusif Bersama Didukung (seperti ini) | RBAC3 adalah kombinasi dari RBAC1 dan RBAC2. Ini mendukung hierarki peran dan kendala yang ditemukan dalam RBAC1 dan RBAC2. Namun, batasan kuantitatif tidak didukung. |
Perbedaan Antara Casbin RBAC dan RBAC96
Di Casbin, perbedaan antara Pengguna dan Peran tidak sejelas di RBAC96.
Di Casbin, baik Pengguna maupun Peran diperlakukan sebagai string. Misalnya, perhatikan file kebijakan berikut:
p, admin, book, read
p, alice, book, read
g, amber, adminJika Anda memanggil metode
GetAllSubjects()
menggunakan instance dari Casbin Enforcer:e.GetAllSubjects()
nilai kembaliannya akan menjadi:
[admin alice]
Hal ini karena dalam Casbin, subjek mencakup baik Pengguna maupun Peran.
Namun, jika Anda memanggil metode
GetAllRoles()
:e.GetAllRoles()
nilai kembaliannya akan menjadi:
[admin]
Dari ini, Anda dapat melihat bahwa ada perbedaan antara Pengguna dan Peran dalam Casbin, tetapi tidak sejelas dalam RBAC96. Tentu saja, Anda dapat menambahkan awalan pada kebijakan Anda seperti
user::alice
danrole::admin
untuk memperjelas hubungan mereka.Casbin RBAC menyediakan lebih banyak izin daripada RBAC96.
RBAC96 hanya mendefinisikan 7 izin: baca, tulis, tambah, eksekusi, kredit, debit, dan penyelidikan.
Namun, dalam Casbin, kami memperlakukan izin sebagai string. Ini memungkinkan Anda untuk membuat izin yang lebih sesuai dengan kebutuhan Anda.
Casbin RBAC mendukung domain.
Di Casbin, Anda dapat melakukan otorisasi berdasarkan domain. Fitur ini membuat Model Kontrol Akses Anda lebih fleksibel.