官方文档链接:https://casbin.org/docs/zh-CN/function
相关论文:一种基于元模型的访问控制策略描述语言
PERM
Policy 策略/规则 缩写字母:p
Effect 允许/拒绝 缩写字母: e
Request 抽象请求 缩写字母: r
Matchers 关联r和p,得到e 缩写字母:m
Role 缩写字母: g _, _ 表示用户和角色 _, _, _ 表示用户, 角色, 域
[request_definition]
r = sub, obj, act
直译:主题,对象,操作
实际:角色(用户),模块,权限
张三,用户管理模块,查看
李四,用户管理模块,修改
r = sub, dom, obj, act, suf
实际:角色,域,模块,权限,?
Policy: 定义权限的规则
Effect: 定义组合了多个 Policy 之后的结果, allow/deny
Request: 访问请求, 也就是谁想操作什么
Matcher: 判断 Request 是否满足 Policy
支持域/租户的RBAC
【model文件】
[request_definition]
r = sub, dom, obj, act
[policy_definition]
p = sub, dom, obj, act
[role_definition]
g = _, _, _
[policy_effect]
e = some(where (p.eft == allow))
[matchers]
m = g(r.sub, p.sub, r.dom) && r.dom == p.dom && r.obj == p.obj && r.act == p.act
【策略文件】
p, admin, domain1, data1, read
p, admin, domain1, data1, write
p, admin, domain2, data2, read
p, admin, domain2, data2, write
g, alice, admin, domain1
g, bob, admin, domain2