التخطي إلى المحتوى الرئيسي

Overview

Casbin هو مكتبة مفتوحة المصدر قوية وفعالة للتحكم في الوصول تدعم مختلف نماذج التحكم في الوصول لفرض التفويض عبر اللوحة.

تطبيق مجموعة من القواعد بسيط مثل سرد الموضوعات والكائنات والإجراء المسموح به المطلوب (أو أي تنسيق آخر حسب احتياجاتك) في ملف policy. هذا مترادف في جميع التدفقات التي يُستخدم فيها Casbin. للمطور/المسؤول السيطرة الكاملة على التخطيط والتنفيذ والشروط للتفويض، والتي يتم تعيينها عبر ملف model. Casbin يوفر Enforcer للتحقق من صحة طلب وارد بناءً على ملفات السياسة والنموذج المقدمة للمنفذ.

اللغات التي يدعمها Casbin

Casbin يوفر دعمًا لمختلف لغات البرمجة، جاهزة للتكامل ضمن أي مشروع وسير عمل:

golangjavanodejsphp
CasbinjCasbinnode-CasbinPHP-Casbin
جاهز للإنتاججاهز للإنتاججاهز للإنتاججاهز للإنتاج
pythondotnetc++rust
PyCasbinCasbin.NETCasbin-CPPCasbin-RS
جاهز للإنتاججاهز للإنتاججاهز للإنتاججاهز للإنتاج

مجموعة الميزات للغات المختلفة

نحن دائمًا نعمل بأفضل ما لدينا لجعل Casbin يمتلك نفس مجموعة الميزات لجميع اللغات. ومع ذلك، الواقع ليس بهذا الجمال.

الميزةGoJavaNode.jsPHPPythonC#DelphiRustC++LuaDartElixir
Enforcement
RBAC
ABAC
Scaling ABAC (eval())
Adapter
Management API
RBAC API
Batch API
Filtered Adapter
Watcher
Role Manager
Multi-Threading
'in' of matcher

ملاحظة - ✅ لـ Watcher أو Role Manager يعني فقط وجود الواجهة في المكتبة الأساسية. هذا لا يدل على ما إذا كان هناك تنفيذ لـ watcher أو role manager متاحًا.

ما هو Casbin؟

Casbin هو مكتبة تفويض يمكن استخدامها في التدفقات التي نريد فيها كائنًا معينًا أو object ليتم الوصول إليه من قبل مستخدم محدد أو subject. نوع الوصول، أي action، يمكن أن يكون read، write، delete، أو أي إجراء آخر كما حدده المطور. هكذا يُستخدم Casbin على نطاق واسع، ويُسمى بالتدفق "القياسي" أو الكلاسيكي { subject, object, action }.

Casbin قادر على التعامل مع العديد من السيناريوهات المعقدة للتفويض بخلاف التدفق القياسي. يمكن أن يكون هناك إضافة الأدوار (RBAC)، الخصائص (ABAC)، إلخ.

ماذا يفعل Casbin

  1. فرض السياسة بالشكل الكلاسيكي { subject, object, action } أو بشكل مخصص كما حددت. يتم دعم كل من التفويضات المسموح بها والمرفوضة.
  2. التعامل مع تخزين نموذج التحكم في الوصول وسياسته.
  3. إدارة تعيينات الدور-المستخدم وتعيينات الدور-الدور (المعروفة أيضًا بالتسلسل الهرمي للأدوار في RBAC).
  4. دعم المستخدمين الفائقين المدمجين مثل root أو administrator. يمكن للمستخدم الخارق أن يقوم بأي شيء دون الحاجة إلى صلاحيات صريحة.
  5. توفير عدة عوامل تشغيل مدمجة لدعم مطابقة القواعد. على سبيل المثال، يمكن لـ keyMatch أن يقوم بتعيين مفتاح المورد /foo/bar إلى النمط /foo*.

ما لا يقوم به Casbin

  1. المصادقة (أي التحقق من username و password عند تسجيل دخول المستخدم)
  2. إدارة قائمة المستخدمين أو الأدوار.

من الأكثر ملاءمة للمشاريع أن تدير قوائمها الخاصة بالمستخدمين، الأدوار، أو كلمات المرور. عادة ما يكون للمستخدمين كلمات مرور خاصة بهم، ولم يتم تصميم Casbin كحاوية لكلمات المرور. ومع ذلك، يخزن Casbin تعيين المستخدم-الدور لسيناريو RBAC.