跳到主要内容

支持的模型

Casbin 支持以下访问控制模型和模式。如果你不确定需要哪种模型,请先阅读 选择访问控制模型。

  1. ACL(访问控制列表)
  2. 带有 superuser 的 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 — 同时包含允许和拒绝策略;拒绝优先于允许。
  18. Priority — 策略规则按顺序排列(类似防火墙规则);首个匹配项生效。

示例​

ModelModel filePolicy file
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
显式优先级priority_model_explicitpriority_policy_explicit.csv
主体优先级subject_priority_model.confsubject_priority_policyl.csv

Comments are powered by giscus and GitHub Discussions. They load from giscus.app and GitHub only after you click the button below.