Lewati ke konten utama

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 RBACTingkat DukunganDeskripsi
RBAC0Didukung SepenuhnyaRBAC0 adalah versi dasar dari RBAC96. Ini memperjelas hubungan antara Pengguna, Peran, dan Izin.
RBAC1Didukung SepenuhnyaRBAC1 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.
RBAC2Penanganan Saling Eksklusif Didukung (seperti ini)RBAC2 menambahkan batasan pada RBAC0. Ini memungkinkan RBAC2 untuk menangani kebijakan yang saling eksklusif. Namun, batasan kuantitatif tidak didukung.
RBAC3Penanganan 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

  1. 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, admin

    Jika 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 dan role::admin untuk memperjelas hubungan mereka.

  2. 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.

  3. Casbin RBAC mendukung domain.

    Di Casbin, Anda dapat melakukan otorisasi berdasarkan domain. Fitur ini membuat Model Kontrol Akses Anda lebih fleksibel.