超级管理员
超级管理员(Super Admin)(例如 root)是一个绕过正常 policy、总是获得允许的主体。你可以在 matcher 中通过添加类似 r.sub == "root" 的条件来实现它。示例:
[request_definition]
r = sub, obj, act
[policy_definition]
p = sub, obj, act
[policy_effect]
e = some(where (p.eft == allow))
[matchers]
m = r.sub == p.sub && r.obj == p.obj && r.act == p.act || r.sub == "root"
只要满足以下两者之一,matcher 就允许该请求:(1)匹配到一条 policy 规则,或(2)r.sub == "root"。因此 root 永远不会被拒绝。同样的模式也适用于 RBAC、ABAC 或带域的 RBAC:在 matcher 中添加 || r.sub == "root"(或你的超级用户名)即可。