PHP-Casbin 是一個強大的、高效的開源訪問控制框架,它支援基於各種訪問控制模型(RBAC
ABAC
ACL
)的許可權管理。
ABAC
是 基於屬性的訪問控制
,可以使用主體、客體或動作的屬性,而不是字串本身來控制訪問。
ABAC的官方例項如下:
[request_definition]
r = sub, obj, act
[policy_definition]
p = sub, obj, act
[policy_effect]
e = some(where (p.eft == allow))
[matchers]
m = r.sub == r.obj.owner
這是r.obj
類的定義:
$data1 = new \stdClass();
$data1->name = 'data1';
$data1->owner = 'alice';
$data2 = new \stdClass();
$data2->name = 'data2';
$data2->owner = 'bob';
然後使用決策器進行決策:
$e->enforce('alice', $data1, 'read'); // true
$e->enforce('alice', $data2, 'read'); // false
$e->enforce('bob', $data1, 'read'); // false
$e->enforce('bob', $data2, 'read'); // true
本作品採用《CC 協議》,轉載必須註明作者和本文連結