ข้ามไปยังเนื้อหาหลัก

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

  1. ใน 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 เพื่อชี้แจงความสัมพันธ์ของพวกเขา

  2. Casbin RBAC มีสิทธิ์การเข้าถึงมากกว่า RBAC96

    RBAC96 กำหนดเพียง 7 สิทธิ์การเข้าถึง: อ่าน, เขียน, เพิ่ม, ปฏิบัติการ, เครดิต, เดบิต, และสอบถาม

    อย่างไรก็ตาม ใน Casbin เราจัดการสิทธิ์การเข้าถึงเป็นสตริง นี่ทำให้คุณสามารถสร้างสิทธิ์การเข้าถึงที่ตรงกับความต้องการของคุณได้ดียิ่งขึ้น

  3. Casbin RBAC รองรับโดเมน

    ใน Casbin คุณสามารถดำเนินการอนุญาตตามโดเมน คุณสมบัตินี้ทำให้โมเดลการควบคุมการเข้าถึงของคุณมีความยืดหยุ่นมากขึ้น