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