首頁  >  文章  >  後端開發  >  基於 PHP-Casbin 的 ABAC 權限控制

基於 PHP-Casbin 的 ABAC 權限控制

藏色散人
藏色散人轉載
2019-09-16 11:20:354237瀏覽

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中文網其他相關文章!

陳述:
本文轉載於:learnku.com。如有侵權,請聯絡admin@php.cn刪除