Casbin 使用介绍

发布时间: 更新时间: 总字数:526 阅读时间:2m 作者: IP上海 分享 网址

Casbin是一个强大而高效的开源访问控制库,用于Golang项目。它提供了对基于各种访问控制模型的强制授权的支持。

介绍

常见的授权模型

  • ACL(Access Control List,访问控制列表) 定义谁可以对某个数据进行何种操作,数据模型有:用户权限
  • RBAC(Role-based Access Aontrol,基于角色的访问控制) 用户具有角色,角色具有权限,从而表达用户具有权限,数据模型有:用户角色权限
  • ABAC(Attribute-based Access Control,基于属性的访问控制) 权限和资源当时的状态(属性)有关,属性的值可以用于正向判断(符合某种条件则通过)

Casbin 使用

  • 在Casbin中,访问控制模型被抽象成一个基于PERM元模型(政策Policy、效果Effect、请求Request、匹配器Matchers)的CONF文件,示例 basic_policy.csv
# Request definition
[request_definition]
r = sub, obj, act

# Policy definition
[policy_definition]
p = sub, obj, act

# Policy effect
[policy_effect]
e = some(where (p.eft == allow))

# Matchers
[matchers]
m = r.sub == p.sub && r.obj == p.obj && r.act == p.act

casbin 模型 定义里会出现 4 个部分:

  • [request_definition] 访问请求的定义
  • [policy_definition] 描述授权Policy的定义
  • [policy_effect] 如果找到匹配的多条的授权 Policy,最终给出的验证授权结果
  • [matchers] 根据访问请求如何找到匹配的授权policy

更多

Home Archives Categories Tags Statistics
本文总阅读量 次 本站总访问量 次 本站总访客数