التوثيق | دروس | ملحقات
الأخبار العاجلة : Laravel-authz متاحة الآن، وهي مكتبة ترخيص لإطار عمل Laravel.
PHP-Casbin هي مكتبة قوية وفعالة للتحكم في الوصول مفتوحة المصدر لمشاريع PHP. وهو يوفر الدعم لفرض الترخيص بناءً على نماذج التحكم في الوصول المختلفة.
كاسبين | jCasbin | عقدة-Casbin | PHP-Casbin |
جاهزة للإنتاج | جاهزة للإنتاج | جاهزة للإنتاج | جاهزة للإنتاج |
بيكاسبين | Casbin.NET | كاسبين-CPP | كاسبين-RS |
جاهزة للإنتاج | جاهزة للإنتاج | جاهزة للإنتاج | جاهزة للإنتاج |
اطلب هذه الحزمة في ملف composer.json
الخاص بمشروعك. سيؤدي هذا إلى تنزيل الحزمة:
composer require casbin/casbin
require_once ' ./vendor/autoload.php ' ;
use Casbin Enforcer ;
$ e = new Enforcer ( " path/to/model.conf " , " path/to/policy.csv " );
$ 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 ( $ e -> enforce ( $ sub , $ obj , $ act ) === true ) {
// permit alice to read data1
} else {
// deny the request , show an error
}
write-article
read-log
. ولا يتحكم في الوصول إلى مقالة أو سجل معين.resource.Owner
. يمكن استخدام المالك للحصول على سمة أحد الموارد./res/*
و /res/:id
وطرق HTTP مثل GET
و POST
و PUT
و DELETE
.في php-casbin، يتم تلخيص نموذج التحكم في الوصول إلى ملف CONF بناءً على نموذج تعريف PERM (السياسة، التأثير، الطلب، المطابقات) . لذا فإن تبديل آلية الترخيص لمشروع ما أو ترقيتها يعد أمرًا بسيطًا تمامًا مثل تعديل التكوين. يمكنك تخصيص نموذج التحكم في الوصول الخاص بك من خلال الجمع بين النماذج المتاحة. على سبيل المثال، يمكنك الحصول على أدوار RBAC وسمات ABAC معًا داخل نموذج واحد ومشاركة مجموعة واحدة من قواعد السياسة.
النموذج الأساسي والأبسط في php-casbin هو 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
يعني:
ما يفعله php-casbin:
{subject, object, action}
أو النموذج المخصص كما حددته، ويتم دعم كل من تفويضات السماح والرفض.root
أو administrator
. يمكن للمستخدم المتميز أن يفعل أي شيء دون أذونات صريحة.keyMatch
تعيين مفتاح المورد /foo/bar
إلى النمط /foo*
.ما الذي لا يفعله php-casbin:
username
password
عند قيام المستخدم بتسجيل الدخول)https://casbin.org/docs/en/overview
يمكنك أيضًا استخدام المحرر عبر الإنترنت (http://casbin.org/editor/) لكتابة نموذج وسياسة php-casbin في متصفح الويب الخاص بك. فهو يوفر وظائف مثل syntax highlighting
code completion
، تمامًا مثل IDE للغة البرمجة.
https://casbin.org/docs/tutorials
يوفر php-casbin مجموعتين من واجهات برمجة التطبيقات لإدارة الأذونات:
https://casbin.org/docs/en/adapters
https://casbin.org/docs/en/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
هذا المشروع موجود بفضل جميع الأشخاص الذين ساهموا فيه.
شكرا لجميع الداعمين لدينا! [كن داعمًا]
ادعم هذا المشروع من خلال أن تصبح راعياً. سيظهر شعارك هنا مع رابط لموقعك على الويب. [كن راعيًا]
هذا المشروع مرخص بموجب ترخيص Apache 2.0.
إذا كان لديك أي مشاكل أو طلبات الميزة، يرجى الاتصال بنا. العلاقات العامة موضع ترحيب.