PHP-Casbin 是一個強大的、高效的開源存取控制框架,它支援基於各種存取控制模型(RBAC ABAC ACL)的權限管理。
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 權限控制的詳細內容。更多資訊請關注PHP中文網其他相關文章!