跳转到主要内容

支持的模型

Casbin 支持以下访问控制模型和模式:

  1. ACL(访问控制列表)
  2. 带 超级用户 的 ACL
  3. 不带用户的 ACL —— 适用于没有认证或用户身份的系统(例如纯 API 访问或设备访问)。
  4. 不带资源的 ACL —— 当权限作用于资源类型而不是具体实例时(例如 "write-article"、"read-log")。
  5. RBAC(基于角色的访问控制)
  6. 带资源角色的 RBAC —— 用户和资源都可以拥有角色(或组成员身份)。
  7. 带域/租户的 RBAC —— 用户在不同的域或租户中可以拥有不同的角色。
  8. ABAC(基于属性的访问控制) —— 在规则中使用属性(例如 resource.Owner)。
  9. PBAC(基于策略的访问控制) —— 授权由基于规则的策略驱动,实现动态的、上下文感知的决策。
  10. BLP(Bell–LaPadula) —— 带有安全标签和许可级别的形式化模型。
  11. Biba —— 通过限制信息流来防止未授权修改的完整性模型。
  12. LBAC(基于格的访问控制) —— 在基于格的框架中同时结合了机密性和完整性。
  13. OrBAC(基于组织的访问控制) —— 通过抽象层扩展的 RBAC,适用于多组织策略。
  14. UCON(使用控制) —— 涵盖持续授权、可变属性、义务和条件。
  15. RESTful —— 路径模式(例如 /res/*、/res/:id)和 HTTP 方法(GET、POST、PUT、DELETE)。
  16. IP Match —— 通过 IP 地址或 CIDR 匹配,实现网络级别的控制。
  17. Deny-override —— 同时支持 allow 和 deny 策略;deny 优先于 allow。
  18. Priority —— 策略规则是有序的(例如类似于防火墙规则);第一个匹配的规则生效。

示例​

模型模型文件策略文件
ACLbasic_model.confbasic_policy.csv
ACL with superuserbasic_with_root_model.confbasic_policy.csv
ACL without usersbasic_without_users_model.confbasic_without_users_policy.csv
ACL without resourcesbasic_without_resources_model.confbasic_without_resources_policy.csv
RBACrbac_model.confrbac_policy.csv
RBAC with resource rolesrbac_with_resource_roles_model.confrbac_with_resource_roles_policy.csv
RBAC with domains/tenantsrbac_with_domains_model.confrbac_with_domains_policy.csv
ReBACrebac_model.confrebac_policy.csv
ABACabac_model.confN/A
BLPblp_model.confN/A
Bibabiba_model.confN/A
LBAClbac_model.confN/A
OrBACorbac_model.conforbac_policy.csv
IP Matchipmatch_model.confipmatch_policy.csv
RESTfulkeymatch_model.confkeymatch_policy.csv
Deny-overriderbac_with_not_deny_model.confrbac_with_deny_policy.csv
Allow-and-denyrbac_with_deny_model.confrbac_with_deny_policy.csv
Prioritypriority_model.confpriority_policy.csv
Explicit Prioritypriority_model_explicitpriority_policy_explicit.csv
Subject-Prioritysubject_priority_model.confsubject_priority_policyl.csv