Casbin RBAC vs. RBAC96
Casbin RBAC ve RBAC96
Bu belgede, Casbin RBAC'yi RBAC96 ile karşılaştıracağız.
Casbin RBAC, RBAC96'nın neredeyse tüm özelliklerini destekler ve bunun üzerine yeni özellikler ekler.
RBAC Sürümü | Destek Düzeyi | Açıklama |
---|---|---|
RBAC0 | Tamamen Destekleniyor | RBAC0, RBAC96'nın temel sürümüdür. Kullanıcılar, Roller ve İzinler arasındaki ilişkiyi açıklar. |
RBAC1 | Tam Olarak Desteklenir | RBAC1, RBAC0 üzerine rol hiyerarşileri ekler. Bu, eğer alice role1 'e sahipse, role1 'in role2 'ye sahip olması durumunda, alice de role2 'ye sahip olacak ve onun izinlerini miras alacaktır. |
RBAC2 | Karşılıklı Dışlayıcı İşlem Desteklenir (bunun gibi) | RBAC2, RBAC0 üzerine kısıtlamalar ekler. Bu, RBAC2'nin karşılıklı dışlayıcı politikaları işlemesine olanak tanır. Ancak, nicel sınırlar desteklenmemektedir. |
RBAC3 | Karşılıklı Dışlayan İşlem Desteklenir (bunun gibi) | RBAC3, RBAC1 ve RBAC2'nin birleşimidir. Rol hiyerarşilerini ve RBAC1 ve RBAC2'de bulunan kısıtlamaları destekler. Ancak, nicel sınırlar desteklenmemektedir. |
Casbin RBAC ile RBAC96 Arasındaki Fark
Casbin'de, Kullanıcı ile Rol arasındaki ayrım RBAC96'daki kadar açık değildir.
Casbin'de, hem Kullanıcı hem de Rol dizeler olarak ele alınır. Örneğin, aşağıdaki politika dosyasını ele alalım:
p, admin, book, read
p, alice, book, read
g, amber, adminEğer Casbin Enforcer'ın bir örneğini kullanarak
GetAllSubjects()
metodunu çağırırsanız:e.GetAllSubjects()
dönüş değeri şu olacaktır:
[admin alice]
Bunun nedeni, Casbin'de konuların hem Kullanıcıları hem de Rolleri içermesi.
Ancak, eğer
GetAllRoles()
metodunu çağırırsanız:e.GetAllRoles()
dönüş değeri şu olacaktır:
[admin]
Buradan, Casbin'de Kullanıcılar ve Roller arasında bir ayrım olduğunu görebilirsiniz, ancak RBAC96'daki kadar keskin değil. Tabii ki, ilişkilerini açık hale getirmek için politikalarınıza
user::alice
verole::admin
gibi bir ön ek ekleyebilirsiniz.Casbin RBAC, RBAC96'dan daha fazla izin sunar.
RBAC96 sadece 7 izin tanımlar: okuma, yazma, ekleme, çalıştırma, kredi, borç ve sorgulama.
Ancak, Casbin'de izinleri dizeler olarak ele alıyoruz. Bu, ihtiyaçlarınıza daha uygun izinler oluşturmanıza olanak tanır.
Casbin RBAC, etki alanlarını destekler.
Casbin'de, etki alanlarına göre yetkilendirmeler gerçekleştirebilirsiniz. Bu özellik, Access Control Modelinizi daha esnek hale getirir.