Ana içeriğe atla

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üzeyiAçıklama
RBAC0Tamamen DestekleniyorRBAC0, RBAC96'nın temel sürümüdür. Kullanıcılar, Roller ve İzinler arasındaki ilişkiyi açıklar.
RBAC1Tam Olarak DesteklenirRBAC1, 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.
RBAC2Karşı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.
RBAC3Karşı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

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

    Eğ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 ve role::admin gibi bir ön ek ekleyebilirsiniz.

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

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