ABAC 是 基於屬性的存取控制,可以使用主體、客體或動作的屬性,而不是字串本身來控制存取。
推薦:《PHP教學》
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
以上就是基於 PHP-Casbin 的 ABAC 許可權控制的詳細內容,更多請關注TW511.COM其它相關文章!