Open main menu
首页
专栏
课程
分类
归档
Chat
Sci-Hub
谷歌学术
Libgen
GitHub镜像
登录/注册
搜索
关闭
Previous
Previous
Next
Next
## 模型介绍 在上一个章节中,我们通过一个实例体验了`Casbin`的授权功能,但是并没有介绍Casbin是怎么定义权限模型的,本章节,我们来深入了解Casbin中的模型语法。 `Casbin` 的定义可以是文件字符串两种,文件的方式只需要在独立的文件中定义模型内容即可,字符串的方式是通过代码编码,在实例化的时候传入模型定义的字符变量完成模型的定义;如果系统比较简单,可以使用字符串定义的方式,否则,请使用文件的形式定义模型便于管理。 ## 语法介绍 下面我们回顾一下上一章节中使用的模型: ~~~txt [request_definition] r = sub, obj, act [policy_definition] p = sub, obj, act [policy_effect] e = some(where (p.eft == allow)) [matchers] m = r.sub == p.sub && r.obj == p.obj && r.act == p.act ~~~ - 模型至少应包含四个部分: | 名称 | 解释 | | --- | --- | | request_definition | 请求的定义 | | policy_definition | 策略的定义 | | policy_effect | 策略生效范围的定义 | | matchers | 策略匹配规则定义 | - `RBAC`模型则包含五个部分: | 名称 | 解释 | | --- | --- | | request_definition | 请求的定义 | | policy_definition | 策略的定义 | | policy_effect | 策略生效范围的定义 | | matchers | 策略匹配规则定义 | | role_definition | 角色定义 | ### request_definition `[request_definition]`部分用于request的定义,它明确了`e.Enforce(...)`函数中参数的含义。 ~~~txt [request_definition] r = sub, obj, act ~~~ `sub, obj, act`表示经典三元组: 访问实体 (Subject),访问资源 (Object) 和访问方法 (Action)。 但是, 你可以自定义你自己的请求表单, 如果不需要指定特定资源,则可以这样定义`sub、act`,或者如果有两个访问实体, 则为`sub、sub2、obj、act`。
登录查看更多内容
【Casbin】模型语法
作者
sockstack
许可协议
CC BY 4.0
发布于
2023-09-02
修改于
2023-11-16
尚未登录
登录 / 注册
专栏目录
【Casbin】快速入门
【Casbin】模型语法
【Casbin】策略存储
【Casbin】在线编辑器
【Casbin】权限模型