写作目的
在做一个管理型项目中,除了有基本的登录认证外,还需要对不同的资源进行访问授权,常见的访问控制模型有ACL、RBAC等模型,这里主要讲RBAC模型在Casbin中的使用。
核心概念
Casbin 中, 访问控制模型被抽象为基于 PERM (Policy, Effect, Request, Matcher)
四个核心:请求、策略、匹配器、效果
简单理解就是:将请求内容与策略规则按照匹配器进行匹配,然后过滤出满足条件的的策略规则(称为结果集),然后对这个结果集的效果做一个判断。
使用
默认使用方式是需要两个文件:模型文件,规则文件。这里可以直接抄代码 Editor | Casbin,这里选择RBAC模型的。
在写管理系统时,不会将规则保存在文件中,会存入数据库中使用。这个时候可能就需要我们自己写一个适配器来转换它的存储方式Policy的存储 | Casbin。
在进行匹配判断时,是将g类型的规则转换为p类型的规则,图中的例子,就是(g,42,1)= >(p,1,xxx)