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 คุณสามารถดำเนินการอนุญาตตามโดเมน คุณสมบัตินี้ทำให้โมเดลการควบคุมการเข้าถึงของคุณมีความยืดหยุ่นมากขึ้น