Bỏ qua đến nội dung chính

Casbin RBAC vs. RBAC96

Casbin RBAC và RBAC96

Trong tài liệu này, chúng tôi sẽ so sánh Casbin RBAC với RBAC96.

Casbin RBAC hỗ trợ gần như tất cả các tính năng của RBAC96 và thêm các tính năng mới trên đó.

Phiên bản RBACMức độ hỗ trợMô tả
RBAC0Được Hỗ Trợ Đầy ĐủRBAC0 là phiên bản cơ bản của RBAC96. Nó làm rõ mối quan hệ giữa Người dùng, Vai trò và Quyền hạn.
RBAC1Được Hỗ trợ Đầy đủRBAC1 thêm cấu trúc phân cấp vai trò trên nền tảng của RBAC0. Điều này có nghĩa là nếu alicerole1, role1role2, thì alice cũng sẽ có role2 và kế thừa các quyền hạn của nó.
RBAC2Hỗ trợ Xử lý Loại trừ Lẫn nhau (như thế này)RBAC2 thêm các ràng buộc vào RBAC0. Điều này cho phép RBAC2 xử lý các chính sách loại trừ lẫn nhau. Tuy nhiên, giới hạn định lượng không được hỗ trợ.
RBAC3Xử lý Loại trừ Lẫn nhau Được Hỗ trợ (như thế này)RBAC3 là sự kết hợp của RBAC1 và RBAC2. Nó hỗ trợ cấu trúc phân cấp vai trò và các ràng buộc tìm thấy trong RBAC1 và RBAC2. Tuy nhiên, giới hạn định lượng không được hỗ trợ.

Sự Khác biệt Giữa Casbin RBAC và RBAC96

  1. Trong Casbin, sự phân biệt giữa Người dùng và Vai trò không rõ ràng như trong RBAC96.

    Trong Casbin, cả Người dùng và Vai trò đều được coi là chuỗi ký tự. Ví dụ, hãy xem xét tệp chính sách sau:

    p, admin, book, read
    p, alice, book, read
    g, amber, admin

    Nếu bạn gọi phương thức GetAllSubjects() sử dụng một thể hiện của Casbin Enforcer:

    e.GetAllSubjects()

    giá trị trả về sẽ là:

    [admin alice]

    Điều này là do trong Casbin, các chủ thể bao gồm cả Người dùng và Vai trò.

    Tuy nhiên, nếu bạn gọi phương thức GetAllRoles():

    e.GetAllRoles()

    giá trị trả về sẽ là:

    [admin]

    Từ đây, bạn có thể thấy rằng có sự phân biệt giữa Người dùng và Vai trò trong Casbin, nhưng nó không rõ ràng như trong RBAC96. Tất nhiên, bạn có thể thêm tiền tố vào chính sách của mình như user::alicerole::admin để làm rõ mối quan hệ của chúng.

  2. Casbin RBAC cung cấp nhiều quyền hạn hơn RBAC96.

    RBAC96 chỉ định nghĩa 7 quyền hạn: đọc, ghi, thêm, thực thi, tín dụng, ghi nợ và truy vấn.

    Tuy nhiên, trong Casbin, chúng tôi coi các quyền hạn như chuỗi ký tự. Điều này cho phép bạn tạo quyền hạn phù hợp hơn với nhu cầu của bạn.

  3. Casbin RBAC hỗ trợ các miền.

    Trong Casbin, bạn có thể thực hiện ủy quyền dựa trên các miền. Tính năng này làm cho Mô hình Kiểm soát Truy cập của bạn linh hoạt hơn.