برعاية
قم بإنشاء مصادقة مع منع الاحتيال بشكل أسرع.
جرّب Stytch للمصادقة الأولى لواجهة برمجة التطبيقات (API)، وإدارة المستخدم والمؤسسات، وتسجيل الدخول الموحّد (SSO) متعدد المستأجرين، وMFA، وبصمة الجهاز، والمزيد.
؟ هل تبحث عن حل لإدارة الهوية والوصول مفتوح المصدر مثل Okta وAuth0 وKeycloak؟ اعرف المزيد عن: كاسدور
الأخبار : هل مازلت تقلق بشأن كيفية كتابة سياسة jCasbin الصحيحة؟ Casbin online editor
قادم للمساعدة! جربه على: https://casbin.org/editor/
jCasbin هي مكتبة قوية وفعالة للتحكم في الوصول مفتوحة المصدر لمشاريع Java. وهو يوفر الدعم لفرض الترخيص بناءً على نماذج التحكم في الوصول المختلفة.
كاسبين | jCasbin | عقدة-Casbin | PHP-Casbin |
جاهزة للإنتاج | جاهزة للإنتاج | جاهزة للإنتاج | جاهزة للإنتاج |
بي كاسبين | Casbin.NET | كاسبين-CPP | كاسبين-RS |
جاهزة للإنتاج | جاهزة للإنتاج | اختبار بيتا | جاهزة للإنتاج |
write-article
read-log
. ولا يتحكم في الوصول إلى مقالة أو سجل معين.resource.Owner
يمكن استخدام المالك للحصول على سمة المورد./res/*
و /res/:id
وطرق HTTP مثل GET
و POST
و PUT
و DELETE
.في jCasbin، يتم تلخيص نموذج التحكم في الوصول إلى ملف CONF بناءً على نموذج تعريف PERM (السياسة، التأثير، الطلب، المطابقات) . لذا فإن تبديل آلية الترخيص لمشروع ما أو ترقيتها يعد أمرًا بسيطًا تمامًا مثل تعديل التكوين. يمكنك تخصيص نموذج التحكم في الوصول الخاص بك من خلال الجمع بين النماذج المتاحة. على سبيل المثال، يمكنك الحصول على أدوار RBAC وسمات ABAC معًا داخل نموذج واحد ومشاركة مجموعة واحدة من قواعد السياسة.
النموذج الأساسي والأبسط في jCasbin هو ACL. نموذج CONF الخاص بـ ACL هو:
# 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 يشبه:
p, alice, data1, read
p, bob, data2, write
يعني:
ما يفعله جي كاسبين:
{subject, object, action}
أو النموذج المخصص كما حددته، ويتم دعم كل من تفويضات السماح والرفض.root
أو administrator
. يمكن للمستخدم المتميز أن يفعل أي شيء دون أذونات صريحة.keyMatch
تعيين مفتاح المورد /foo/bar
إلى النمط /foo*
.ما لا يفعله jCasbin:
username
password
عند قيام المستخدم بتسجيل الدخول)بالنسبة لميفن:
<dependency>
<groupId>org.casbin</groupId>
<artifactId>jcasbin</artifactId>
<version>1.x.y (replace with latest version)</version>
</dependency>
https://casbin.org/docs/overview
يمكنك أيضًا استخدام المحرر عبر الإنترنت (https://casbin.org/editor/) لكتابة نموذج وسياسة jCasbin في متصفح الويب الخاص بك. فهو يوفر وظائف مثل syntax highlighting
code completion
، تمامًا مثل IDE للغة البرمجة.
https://casbin.org/docs/tutorials
منفذ jCasbin جديد بملف نموذج وملف سياسة:
Enforcer enforcer = new Enforcer ( "path/to/model.conf" , "path/to/policy.csv" );
ملاحظة: يمكنك أيضًا تهيئة منفذ باستخدام السياسة في قاعدة البيانات بدلاً من الملف، راجع قسم استمرارية السياسة للحصول على التفاصيل.
أضف رابط التنفيذ إلى التعليمات البرمجية الخاصة بك مباشرة قبل حدوث الوصول:
String sub = "alice" ; // the user that wants to access a resource.
String obj = "data1" ; // the resource that is going to be accessed.
String act = "read" ; // the operation that the user performs on the resource.
if ( enforcer . enforce ( sub , obj , act ) == true ) {
// permit alice to read data1
} else {
// deny the request, show an error
}
إلى جانب ملف السياسة الثابتة، يوفر jCasbin أيضًا واجهة برمجة التطبيقات (API) لإدارة الأذونات في وقت التشغيل. على سبيل المثال، يمكنك الحصول على جميع الأدوار المخصصة للمستخدم على النحو التالي:
Roles roles = enforcer . getRoles ( "alice" );
راجع واجهات برمجة التطبيقات لإدارة السياسات لمزيد من الاستخدام.
يوفر jCasbin مجموعتين من واجهات برمجة التطبيقات لإدارة الأذونات:
نوفر أيضًا واجهة مستخدم على الويب لإدارة النماذج وإدارة السياسات:
https://casbin.org/docs/adapters
https://casbin.org/docs/role-managers
نموذج | ملف النموذج | ملف السياسة |
---|---|---|
الرباط الصليبي الأمامي | basic_model.conf | basic_policy.csv |
ACL مع المستخدم المتميز | basic_model_with_root.conf | basic_policy.csv |
ACL بدون مستخدمين | basic_model_without_users.conf | basic_policy_without_users.csv |
ACL بدون موارد | basic_model_without_resources.conf | basic_policy_without_resources.csv |
RBAC | rbac_model.conf | rbac_policy.csv |
RBAC مع أدوار الموارد | rbac_model_with_resource_roles.conf | rbac_policy_with_resource_roles.csv |
RBAC مع المجالات/المستأجرين | rbac_model_with_domains.conf | rbac_policy_with_domains.csv |
أباك | abac_model.conf | لا يوجد |
مريح | keymatch_model.conf | keymatch_policy.csv |
رفض التجاوز | rbac_model_with_deny.conf | rbac_policy_with_deny.csv |
أولوية | Priority_model.conf | Priority_policy.csv |
برامج Authz الوسيطة لأطر عمل الويب: https://casbin.org/docs/middlewares
https://casbin.org/docs/adopters
نحن نقدم دعم SpringBoot، يمكنك استخدام casbin-spring-boot-starter للتطوير بسرعة في SpringBoot
في casbin-spring-boot-starter، أجرينا التعديلات التالية:
https://github.com/jcasbin/casbin-spring-boot-starter
هذا المشروع موجود بفضل جميع الأشخاص الذين ساهموا فيه.
شكرا لجميع الداعمين لدينا! [كن داعمًا]
ادعم هذا المشروع من خلال أن تصبح راعياً. سيظهر شعارك هنا مع رابط لموقعك على الويب. [كن راعياً]
هذا المشروع مرخص بموجب ترخيص Apache 2.0.
إذا كان لديك أي مشاكل أو طلبات الميزة، يرجى الاتصال بنا. العلاقات العامة موضع ترحيب.