工具系列 | Casbin 中 ABAC 的使用方法

2023-03-08 20:01:40 浏览数 (1)

Casbin 中 ABAC 的使用方法

PHP-Casbin是一个强大的、高效的开源访问控制框架,它支持基于各种访问控制模型的权限管理。

ABAC基于属性的访问控制,可以使用主体、客体或动作的属性,而不是字符串本身来控制访问。

ABAC的官方实例如下:

代码语言:javascript复制
[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类的定义:

代码语言:javascript复制
$data1 = new stdClass();
$data1->name = 'data1';
$data1->owner = 'alice';

$data2 = new stdClass();
$data2->name = 'data2';
$data2->owner = 'bob';

然后使用决策器进行决策:

代码语言:javascript复制
$e->enforce('alice', $data1, 'read');  // true
$e->enforce('alice', $data2, 'read');  // false

$e->enforce('bob', $data1, 'read');  // false
$e->enforce('bob', $data2, 'read');  // true

0 人点赞