Python 权限控制模块 Casbin
作者:星星在线? 发布时间:2022-09-21 07:35:46
简介
Casbin是一个强大的、高效的开源访问控制框架,其权限管理机制支持多种访问控制模型。
casbin 的主要特性包括:
支持自定义请求的格式,默认的请求格式为{subject, object, action};
具有访问控制模型 model 和策略 policy 两个核心概念;
支持 RBAC 中的多层角色继承,不止主体可以有角色,资源也可以具有角色;
支持超级用户,如 root 或 Administrator,超级用户可以不受授权策略的约束访问任意资源;
支持多种内置的操作符,如 keyMatch,方便对路径式的资源进行管理,如 /foo/bar 可以映射到 /foo*;
casbin 不做的事情:
身份认证
authentication(即验证用户的用户名、密码),casbin 只负责访问控制。应该有其他专门的组件负责身份认证,然后由 casbin 进行访问控制,二者是相互配合的关系;管理用户列表或角色列表
casbin 认为由项目自身来管理用户、角色列表更为合适,casbin 假设所有策略和请求中出现的用户、角色、资源都是合法有效的。
为什么我要使用 Casbin?
在我做的那么多的项目中,权限处理经常是一个比较头疼的问题,而且每个项目有不同的权限控制方式,我一直在想有没有一种通用的权限控制框架,可以适用各种不同的权限控制,每个项目只要做简单的修改就能完全适用,直到无意中看到 casbin 这个库。
目前我只是在初步的尝试使用,因此这里只做简单的使用记录,把我在项目中使用的记录下来,供自己后面继续研究使用,也算是给想要使用此库的 pythoner 一个例子。
官方文档地址
官方提供了一个非常好的编辑器,可以让我们直接体验和测试 casbin 的权限处理。
我们简单的以官方提供的例子来做一个说明,首先 Policy 里面配置的是权限策略,从权限策略中可以看出用户 alice 拥有角色 data2_admin,而角色 data2_admin 对数据 data2 有 read/write 权限,因此用户 alice 对数据 data2 拥有 read/write,可以看到下面的测试中也是 true。
来源:https://juejin.cn/post/7085490095955902501


猜你喜欢
- 投资有风险,选择需谨慎。 股票交易数据分析可直观股市走向,对于如何把握股票行情,快速解读股票交易数据有不可替代的作用!1 数据预处
- 网上找了半天 不是dataframe转化成array的就是array转化dataframe,所以这里给汇总一下,相互转换的python代如下
- 本文实例分析了python多线程用法。分享给大家供大家参考。具体如下:今天在学习尝试学习python多线程的时候,突然发现自己一直对supe
- 如何让你的CSS代码更具有组织性和易维护性,为什么你的样式表总是臃肿和混乱的?有些时候是源于一开始书写时的混乱和草率,有时候也是因为后期的维
- 1、合并列表(extend)跟元组一样,用加号(+)将两个列表加起来即可实现合并:In [1]: x=list(range(1, 13, 2
- DataFrame对象本质上是带有行列索引的二维矩阵,所以欲对DataFrame对象进行转置操作,需要交换行列索引,同时使二维矩阵转置。首先
- Mysql的分页的两个参数select * from user limit 1,21表示从第几条数据开始查(默认索引是0,如果写1,从第二条
- 今天再为大家提供一种方法:不需要安装Excel也可以导入到我们的SQL Server数据库。首先用SQL Server自身的数据转换功能把E
- 对于一个初级学习python的人,这将是一个非常简单而有趣的内容;代码非常简单,主要是:随机函数–需要导入random模块与条件语句的一个简
- 如何显示已在数据库编码了的相对应的记录?我做了一个歌曲库,在查询中使用了几个下拉菜单供选择条件用,如歌手的性别、区域、爱好等,由于选项太多,
- Numpy模块被广泛用于科学和数值计算,自然有它的强大之处,之前对于特征处理中需要进行数据列表或者矩阵拼接的时候都是自己写的函数来完成的,今
- 我就废话不多说了,大家还是直接看代码吧!import socketimport sysimport timeimport structHOS
- __new__ 方法是什么?如果将类比喻为工厂,那么__init__()方法则是该工厂的生产工人,__init__()方法接受的初始化参 数
- 本文实例为大家分享了Python实现学生管理系统的具体代码,供大家参考,具体内容如下实现从面向过程到面向对象的过度,通过更改前面的学生管理系
- 使用MySQL,安全问题不能不注意。以下是MySQL提示的23个注意事项:1.如果客户端和服务器端的连接需要跨越并通过不可信任的网络,那么就
- 最近在部署Azure虚拟机的时候,一直访问不了网络数据库,一搜资料才知道,Azure默认是不打开入网规则的,需要手动设置。在 Windows
- 在使用列表、数组和矩阵的过程中,经常需要相互转换。特此总结相互间转换的过程及结果,供大家参考。第三方包:numpy
- 后台收到一个读者需求人事部门有最近3年每个月全公司的工资Excel文件,一共500多个。现在和1位员工有一件劳动纠纷,需要把这1位员工散落在
- 关于数据库的逻辑设计,是一个很广泛的问题。本文主要针对开发应用中遇到在MS SQL Server上进行表设计时,对表的主键设计应注意的问题以
- 问题描述我自己根据edgelist计算的邻接矩阵,与调用networkx.adjacency_matrix(g)返回的结果不一样,经过调试发