组件分享之后端组件——基于Golang的访问控制库casbin
背景
近期正在探索前端、后端、系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类语言中的一些常用组件。欢迎大家进行持续关注。
组件基本信息
- 组件:casbin
- 开源协议:Apache-2.0 License
内容
之前给大家分享了认证全套模块Casdoor,今天我们再进行分享一个类似组件模块casbin,Casbin 是一个强大高效的 Golang 项目开源访问控制库。它支持基于各种访问控制模型执行授权。
Casbin支持以下语言进行集成使用:
支持的类型
- ACL(访问控制列表)
- 具有超级用户的 ACL
- ACL without users:对于没有身份验证或用户登录的系统特别有用。
- 没有资源的 ACL
write-article
:某些方案可能通过使用诸如,之类的权限来针对一种资源而不是单个资源read-log
。它不控制对特定文章或日志的访问。- RBAC(基于角色的访问控制)
- 具有资源角色的 RBAC:用户和资源都可以同时具有角色(或组)。
- 带有域/租户的 RBAC:用户可以为不同的域/租户拥有不同的角色集。
- ABAC(基于属性的访问控制):语法糖类
resource.Owner
可用于获取资源的属性。- RESTful:支持路径,如
/res/*
,/res/:id
和 HTTP 方法,如GET
,POST
,PUT
,DELETE
.- Deny-override:同时支持允许和拒绝授权,拒绝覆盖允许。
- 优先级:可以像防火墙规则一样对策略规则进行优先级排序。
本文声明:
知识共享许可协议
本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。