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 وترث أذوناته. |
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، يمكنك تنفيذ التفويضات بناءً على النطاقات. هذه الميزة تجعل نموذج التحكم في الوصول لديك أكثر مرونة.