Casbin RBAC vs. RBAC96
Casbin RBAC และ RBAC96
ในเอกสารนี้ เราจะเปรียบเทียบ Casbin RBAC กับ RBAC96
Casbin RBAC รองรับคุณสมบัติเกือบทั้งหมดของ RBAC96 และเพิ่มคุณสมบัติใหม่ๆเข้าไปด้วย
| เวอร์ชัน RBAC | ระดับการสนับสนุน | คำอธิบาย |
|---|---|---|
| RBAC0 | รองรับอย่างเต็มที่ | RBAC0 เป็นเวอร์ชันพื้นฐานของ RBAC96 มันชี้แจงความสัมพันธ์ระหว่างผู้ใช้งาน, บทบาท, และสิทธิ์การเข้าถึง |
| RBAC1 | รองรับอย่างเต็มที่ | RBAC1 เพิ่มลำดับชั้นของบทบาทเข้าไปใน RBAC0 นั่นหมายความว่าถ้า alice มี role1, role1 มี role2, แล้ว alice ก็จะมี role2 และรับสิทธิ์การเข้าถึงจาก role2 |
| RBAC2 | การจัดการที่เป็นอิสระต่อกันได้รับการสนับสนุน (เช่นนี้) | RBAC2 เพิ่มข้อจำกัดเข้าไปใน RBAC0 นี่ทำให้ RBAC2 สามารถจัดการกับนโยบายที่เป็นอิสระต่อกันได้ อย่างไรก็ตาม ข้อจำกัดทางปริมาณไม่ได้รับการสนับสนุน |
| RBAC3 | การจัดการที่เป็นอิสระต่อกันได้รับการสนับสนุน (เช่นนี้) | RBAC3 เป็นการรวมกันของ RBAC1 และ RBAC2 มันรองรับลำดับชั้นของบทบาทและข้อจำกัดที่พบใน RBAC1 และ RBAC2 อย่างไรก็ตาม ข้อจำกัดทางปริมาณไม่ได้รับการสนับสนุน |
ความแตกต่างระหว่าง Casbin RBAC และ RBAC96
ใน Casbin การแยกแยะระหว่างผู้ใช้งานและบทบาทไม่ชัดเจนเท่ากับใน RBAC96
ใน Casbin ทั้งผู้ใช้งานและบทบาทถูกจัดการเป็นสตริง ตัวอย่างเช่น พิจารณาไฟล์นโยบายต่อไปนี้:
p, admin, book, read
p, alice, book, read
g, amber, adminหากคุณเรียกใช้เมธอด
GetAllSubjects()โดยใช้ตัวอย่างของ Casbin Enforcer:e.GetAllSubjects()ค่าที่จะได้คืนคือ:
[admin alice]นี่เป็นเพราะใน Casbin วัตถุประสงค์รวมทั้งผู้ใช้งานและบทบาท
อย่างไรก็ตาม หากคุณเรียกใช้เมธอด
GetAllRoles():e.GetAllRoles()ค่าที่จะได้คืนคือ:
[admin]จากนี้ คุณสามารถเห็นได้ว่ามีการแยกแยะระหว่างผู้ใช้งานและบทบาทใน Casbin แต่ไม่ชัดเจนเท่ากับใน RBAC96 แน่นอน คุณสามารถเพิ่มคำนำหน้าในนโยบายของคุณ เช่น
user::aliceและrole::adminเพื่อชี้แจงความสัมพันธ์ของพวกเขาCasbin RBAC มีสิทธิ์การเข้าถึงมากกว่า RBAC96
RBAC96 กำหนดเพียง 7 สิทธิ์การเข้าถึง: อ่าน, เขียน, เพิ่ม, ปฏิบัติการ, เครดิต, เดบิต, และสอบถาม
อย่างไรก็ตาม ใน Casbin เราจัดการสิทธิ์การเข้าถึงเป็นสตริง นี่ทำให้คุณสามารถสร้างสิทธิ์การเข้าถึงที่ตรงกับความต้องการของคุณได้ดียิ่งขึ้น
Casbin RBAC รองรับโดเมน
ใน Casbin คุณสามารถดำเนินการอนุญาตตามโดเมน คุณสมบัตินี้ทำให้โมเดลการควบคุมการเข้าถึงของคุณมีความยืดหยุ่นมากขึ้น