组件分享之后端组件——基于Golang的访问控制库casbin

背景

近期正在探索前端、后端、系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类语言中的一些常用组件。欢迎大家进行持续关注。

组件基本信息

内容

之前给大家分享了认证全套模块Casdoor,今天我们再进行分享一个类似组件模块​​casbin​​,Casbin 是一个强大高效的 Golang 项目开源访问控制库。它支持基于各种​​访问控制模型​​执行授权。

Casbin支持以下语言进行集成使用:

组件分享之后端组件——基于Golang的访问控制库casbin_优先级

image.png


支持的类型

  1. ACL(访问控制列表)
  2. 具有超级用户的 ACL
  3. ACL without users:对于没有身份验证或用户登录的系统特别有用。
  4. 没有资源的 ACL​write-article​​​ :某些方案可能通过使用诸如,之类的权限来针对一种资源而不是单个资源​​read-log​​。它不控制对特定文章或日志的访问。
  5. RBAC(基于角色的访问控制)
  6. 具有资源角色的 RBAC:用户和资源都可以同时具有角色(或组)。
  7. 带有域/租户的 RBAC:用户可以为不同的域/租户拥有不同的角色集。
  8. ABAC(基于属性的访问控制)​​:语法糖类​​resource.Owner​​可用于获取资源的属性。
  9. RESTful​​:支持路径,如​​/res/*​​​,​​/res/:id​​​和 HTTP 方法,如​​GET​​​,​​POST​​​,​​PUT​​​,​​DELETE​​.
  10. Deny-override:同时支持允许和拒绝授权,拒绝覆盖允许。
  11. 优先级:可以像防火墙规则一样对策略规则进行优先级排序。


本文声明:

组件分享之后端组件——基于Golang的访问控制库casbin_golang_02

88x31.png


​知识共享许可协议​

本作品由 ​​cn華少​​ 采用 ​​知识共享署名-非商业性使用 4.0 国际许可协议​​ 进行许可。