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 RBAC | Mứ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 alice có role1 , role1 có role2 , thì alice cũng sẽ có role2 và kế thừa các quyền hạn của nó. |
RBAC2 | Hỗ 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ợ. |
RBAC3 | Xử 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
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, adminNế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::alice
vàrole::admin
để làm rõ mối quan hệ của chúng.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.
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.