auth_model.conf 789 B

123456789101112131415161718192021
  1. [request_definition]
  2. r = sub, obj, act
  3. # 请求的规则
  4. # r 是规则的名称,sub 为请求的实体,obj 为资源的名称, act 为请求的实际操作动作
  5. [policy_definition]
  6. p = sub, obj, act
  7. # 策略的规则
  8. # 同请求
  9. [role_definition]
  10. g = _, _
  11. # 角色的定义
  12. # g 角色的名称,第一个位置为用户,第二个位置为角色,第三个位置为域(在多租户场景下使用)
  13. [policy_effect]
  14. e = some(where (p.eft == allow))
  15. # 任意一条 policy rule 满足, 则最终结果为 allow
  16. [matchers]
  17. m = g(r.sub, p.sub) == true \
  18. && keyMatch2(r.obj, p.obj) == true \
  19. && regexMatch(r.act, p.act) == true \
  20. || r.sub == "root"
  21. # 前三个用来匹配上面定义的请求的规则, 最后一个或条件为:如果实体是root 直接通过, 不验证权限