- ACL (Access Control List, 访问控制列表)
- 具有 超级用户 的 ACL
- 没有用户的 ACL: 对于没有身份验证或用户登录的系统尤其有用。
- 没有资源的 ACL: 某些场景可能只针对资源的类型, 而不是单个资源, 诸如
write-article
,read-log
等权限。 它不控制对特定文章或日志的访问。 - RBAC (基于角色的访问控制)
- 支持资源角色的RBAC: 用户和资源可以同时具有角色 (或组)。
- 支持域/租户的RBAC: 用户可以为不同的域/租户设置不同的角色集。
- ABAC (基于属性的访问控制): 支持利用
resource.Owner
这种语法糖获取元素的属性。 - RESTful: 支持路径, 如
/res/*
,/res/: id
和 HTTP 方法, 如GET
,POST
,PUT
,DELETE
。 - 拒绝优先: 支持允许和拒绝授权, 拒绝优先于允许。
- 优先级: 策略规则按照先后次序确定优先级,类似于防火墙规则。
例子
访问控制模型 | Model 文件 | Policy 文件 |
---|---|---|
ACL | basic_model.conf | basic_policy.csv |
具有超级用户的ACL | basic_model_with_root.conf | basic_policy.csv |
没有用户的ACL | basic_model_without_users.conf | basic_policy_without_users.csv |
没有资源的ACL | basic_model_without_resources.conf | basic_policy_without_resources.csv |
RBAC | rbac_model.conf | rbac_policy.csv |
支持资源角色的RBAC | rbac_model_with_resource_roles.conf | rbac_policy_with_resource_roles.csv |
支持域/租户的RBAC | rbac_model_with_domains.conf | rbac_policy_with_domains.csv |
ABAC | abac_model.conf | 无 |
RESTful | keymatch_model.conf | keymatch_policy.csv |
拒绝优先 | rbac_model_with_deny.conf | rbac_policy_with_deny.csv |
优先级 | priority_model.conf | priority_policy.csv |