Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
casbin — مكتبة تفويض تفرض نماذج ACL وRBAC وABAC ونماذج تحكم وصول مخصصة، مع واجهات برمجة تطبيقات RESTful للمطابقة وإدارة السياسات للتطبيقات والخدمات. | Kitploit
أدوات/GitHubGitHub/apache/casbin
المصادقة والترخيصإدارة الهويةإدارة الهوية والوصول (IAM)أمن واجهات برمجة التطبيقات
GitHubapache/casbin

casbin

مكتبة تفويض تفرض نماذج ACL وRBAC وABAC ونماذج تحكم وصول مخصصة، مع واجهات برمجة تطبيقات RESTful للمطابقة وإدارة السياسات للتطبيقات والخدمات.

عرض المستودع
20.3k1.8kمنذ 2 أيامتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
الموقع الإلكتروني

Apache Casbin

Lint Build Coverage Status Godoc Release Discord

أخبار: هل ما زلت تقلق بشأن كيفية كتابة سياسة Apache Casbin الصحيحة؟ Apache Casbin online editor قادم لمساعدتك! جرّبه على: https://casbin.apache.org/editor/

شعار casbin

Apache Casbin هي مكتبة مفتوحة المصدر قوية وفعّالة للتحكم في الوصول لمشاريع Golang. توفر دعمًا لفرض التفويض استنادًا إلى نماذج التحكم في الوصول المختلفة.

جميع اللغات التي تدعمها Apache Casbin:

جدول المحتويات

  • النماذج المدعومة
  • كيف يعمل؟
  • الميزات
  • التثبيت
  • التوثيق
  • المحرر عبر الإنترنت
  • الدروس التعليمية
  • ابدأ من هنا
  • إدارة السياسات
  • تخزين السياسات
  • اتساق السياسات بين عدة عقد
  • مدير الأدوار
  • قياسات الأداء
  • أمثلة
  • البرمجيات الوسيطة
  • الجهات المتبنية

النماذج المدعومة

  1. ACL (قائمة التحكم في الوصول)
  2. ACL مع مستخدم خارق
  3. ACL بدون مستخدمين: مفيدة بشكل خاص للأنظمة التي لا تحتوي على مصادقة أو تسجيل دخول للمستخدمين.
  4. ACL بدون موارد: قد تستهدف بعض السيناريوهات نوعًا من الموارد بدلاً من مورد فردي باستخدام أذونات مثل write-article و read-log. لا يتحكم هذا النموذج في الوصول إلى مقالة أو سجل معين.
  5. RBAC (التحكم في الوصول القائم على الأدوار)
  6. RBAC مع أدوار الموارد: يمكن لكل من المستخدمين والموارد أن يكون لديهم أدوار (أو مجموعات) في نفس الوقت.
  7. RBAC مع النطاقات/المستأجرين: يمكن للمستخدمين الحصول على مجموعات أدوار مختلفة لنطاقات/مستأجرين مختلفين.
  8. ABAC (التحكم في الوصول القائم على السمات): يمكن استخدام صيغة مختصرة مثل resource.Owner للحصول على سمة أحد الموارد.
  9. RESTful: يدعم مسارات مثل /res/* و /res/:id وطرق HTTP مثل GET و POST و PUT و .

كيف يعمل؟

في Casbin، يتم تجريد نموذج التحكم في الوصول إلى ملف CONF استنادًا إلى النموذج الفوقي PERM (السياسة، التأثير، الطلب، المطابقات). لذا فإن تبديل آلية التفويض لمشروع ما أو ترقيتها يكون ببساطة تعديل إعداد. يمكنك تخصيص نموذج التحكم في الوصول الخاص بك من خلال الجمع بين النماذج المتاحة. على سبيل المثال، يمكنك الجمع بين أدوار RBAC وسمات ABAC معًا داخل نموذج واحد ومشاركة مجموعة واحدة من قواعد السياسة.

النموذج الأساسي والأبسط في Casbin هو ACL. ملف CONF لنموذج ACL هو:

root@kitploit:~
# Request definition
[request_definition]
r = sub, obj, act

# Policy definition
[policy_definition]
p = sub, obj, act

# Policy effect
[policy_effect]
e = some(where (p.eft == allow))

# Matchers
[matchers]
m = r.sub == p.sub && r.obj == p.obj && r.act == p.act

مثال على سياسة لنموذج ACL:

root@kitploit:~
p, alice, data1, read
p, bob, data2, write

وهذا يعني:

  • يمكن لـ alice قراءة data1
  • يمكن لـ bob كتابة data2

كما ندعم وضع الأسطر المتعددة بإلحاق '\' في النهاية:

root@kitploit:~
# Matchers
[matchers]
m = r.sub == p.sub && r.obj == p.obj \
  && r.act == p.act

علاوة على ذلك، إذا كنت تستخدم ABAC، يمكنك تجربة عامل التشغيل in كما يلي في إصدار Casbin golang (إصدارا jCasbin وNode-Casbin غير مدعومين بعد):

root@kitploit:~
# Matchers
[matchers]
m = r.obj == p.obj && r.act == p.act || r.obj in ('data2', 'data3')

لكن يجب عليك التأكد من أن طول المصفوفة أكبر من 1، وإلا فسيتسبب ذلك في حدوث panic.

لمزيد من عوامل التشغيل، يمكنك إلقاء نظرة على govaluate

الميزات

ما تقوم به Apache Casbin:

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

ما لا تقوم به Apache Casbin:

  1. المصادقة (أي التحقق من username و password عند تسجيل دخول المستخدم)
  2. إدارة قائمة المستخدمين أو الأدوار. أعتقد أنه من الأنسب للمشروع نفسه إدارة هذه الكيانات. عادةً ما يكون لدى المستخدمين كلمات مرور خاصة بهم، وApache Casbin غير مصممة لتكون حاوية كلمات مرور. ومع ذلك، تقوم Apache Casbin بتخزين تعيين المستخدم-الدور لسيناريو RBAC.

التثبيت

root@kitploit:~
go get github.com/casbin/casbin/v3

التوثيق

https://casbin.apache.org/docs/overview

المحرر عبر الإنترنت

يمكنك أيضًا استخدام المحرر عبر الإنترنت (https://casbin.apache.org/editor/) لكتابة نموذج وسياسة Casbin في متصفح الويب الخاص بك. يوفر وظائف مثل syntax highlighting و code completion، تمامًا مثل IDE للغة برمجة.

الدروس التعليمية

https://casbin.apache.org/docs/tutorials

ابدأ من هنا

  1. أنشئ مُنفِّذ Casbin جديدًا باستخدام ملف نموذج وملف سياسة:

    root@kitploit:~
    e, _ := casbin.NewEnforcer("path/to/model.conf", "path/to/policy.csv")
    

ملاحظة: يمكنك أيضًا تهيئة مُنفِّذ مع سياسة في قاعدة بيانات بدلاً من ملف، راجع قسم تخزين السياسات للتفاصيل.

  1. أضف خطاف فرض إلى الكود الخاص بك مباشرة قبل حدوث الوصول:

    root@kitploit:~
    sub := "alice" // the user that wants to access a resource.
    obj := "data1" // the resource that is going to be accessed.
    act := "read" // the operation that the user performs on the resource.
    
    if res, _ := e.Enforce(sub, obj, act); res {
        // permit alice to read data1
    } else {
        // deny the request, show an error
    }
    
  2. بالإضافة إلى ملف السياسة الثابت، توفر Apache Casbin أيضًا واجهة برمجة تطبيقات (API) لإدارة الأذونات في وقت التشغيل. على سبيل المثال، يمكنك الحصول على جميع الأدوار المخصصة لمستخدم كما يلي:

    root@kitploit:~
    roles, _ := e.GetImplicitRolesForUser(sub)
    

راجع واجهات إدارة السياسات لمزيد من الاستخدامات.

إدارة السياسات

توفر Apache Casbin مجموعتين من واجهات برمجة التطبيقات (API) لإدارة الأذونات:

  • Management API: الواجهة الأساسية التي توفر دعمًا كاملًا لإدارة سياسات Apache Casbin.
  • RBAC API: واجهة أكثر سهولة لـ RBAC. هذه الواجهة هي مجموعة فرعية من Management API. يمكن لمستخدمي RBAC استخدام هذه الواجهة لتبسيط الكود.

كما نوفر واجهة مستخدم قائمة على الويب لإدارة النماذج وإدارة السياسات:

model editor

policy editor

تخزين السياسات

https://casbin.apache.org/docs/adapters

اتساق السياسات بين عدة عقد

https://casbin.apache.org/docs/watchers

مدير الأدوار

https://casbin.apache.org/docs/role-managers

قياسات الأداء

https://casbin.apache.org/docs/benchmark

أمثلة

البرمجيات الوسيطة

برمجيات Authz الوسيطة لأطر الويب: https://casbin.apache.org/docs/middlewares

الجهات المتبنية

https://casbin.apache.org/docs/adopters

كيفية المساهمة

يرجى قراءة دليل المساهمة.

المساهمون

هذا المشروع موجود بفضل جميع الأشخاص الذين يساهمون فيه.

سجل النجوم

Star History Chart

الترخيص

هذا المشروع مرخص بموجب رخصة Apache 2.0.

التواصل

إذا كانت لديك أي مشكلات أو طلبات ميزات، فيرجى التواصل معنا. نرحب بـ PR.

  • https://github.com/apache/casbin/issues
  • https://discord.gg/S5UjpzGZjN
تنزيل الأداة
golangjavanodejsphp
CasbinjCasbinnode-CasbinPHP-Casbin
جاهز للإنتاججاهز للإنتاججاهز للإنتاججاهز للإنتاج
pythondotnetc++rust
PyCasbinCasbin.NETCasbin-CPPCasbin-RS
جاهز للإنتاججاهز للإنتاججاهز للإنتاججاهز للإنتاج
DELETE
  • تجاوز الرفض: يتم دعم كل من تفويضات السماح والرفض، مع تجاوز الرفض للسماح.
  • الأولوية: يمكن ترتيب قواعد السياسة حسب الأولوية مثل قواعد جدار الحماية.
  • النموذجملف النموذجملف السياسة
    ACLbasic_model.confbasic_policy.csv
    ACL مع مستخدم خارقbasic_model_with_root.confbasic_policy.csv
    ACL بدون مستخدمينbasic_model_without_users.confbasic_policy_without_users.csv
    ACL بدون مواردbasic_model_without_resources.confbasic_policy_without_resources.csv
    RBACrbac_model.confrbac_policy.csv
    RBAC مع أدوار المواردrbac_model_with_resource_roles.confrbac_policy_with_resource_roles.csv
    RBAC مع النطاقات/المستأجرينrbac_model_with_domains.confrbac_policy_with_domains.csv
    ABACabac_model.confN/A
    RESTfulkeymatch_model.confkeymatch_policy.csv
    تجاوز الرفضrbac_model_with_deny.confrbac_policy_with_deny.csv
    الأولويةpriority_model.confpriority_policy.csv