美文网首页
casbin 基于角色的访问控制(RBAC)

casbin 基于角色的访问控制(RBAC)

作者: 风亡小窝 | 来源:发表于2023-11-21 16:55 被阅读0次

模型 model

[request_definition] # 请求定义
r = sub, obj, act

[policy_definition] # 策略定义
p = sub, obj, act

[role_definition] # 角色定义
g = _, _

[policy_effect] # 策略效果
e = some(where (p.eft == allow))

[matchers] # 匹配器
m = g(r.sub, p.sub) && r.obj == p.obj && r.act == p.act

策略 policy

p, userA, file1, read
p, userB, file2, write

p, admin, file2, read # admin 对 file2 可读
p, admin, file2, write # admin 对 file2 可写

g, userA, admin # 授予 userA  admin 角色权限,这样 userA 就继承 admin 角色权限,对 file2 可读可写

几种不同的Policy Effect

白名单模式。只要存在一条策略 allow 就允许,否则拒绝。

[policy_effect]
e = some(where (p.eft == allow))

黑名单模式。只要存在一条策略 deny 就拒绝,否则允许。

[policy_effect]
e = !some(where (p.eft == deny))

黑白名单模式,黑名单优先。存在一条策略 allow 且 不存在一条策略 deny 就允许,否则拒绝。

[policy_effect]
e = some(where (p.eft == allow)) && !some(where (p.eft == deny))

相关文章

网友评论

      本文标题:casbin 基于角色的访问控制(RBAC)

      本文链接:https://www.haomeiwen.com/subject/wuabwdtx.html