基於 PHP-Casbin 的 ABAC 權限控制

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章