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 的权限处理。

Python 权限控制模块 Casbin

我们简单的以官方提供的例子来做一个说明,首先 Policy 里面配置的是权限策略,从权限策略中可以看出用户 alice 拥有角色 data2_admin,而角色 data2_admin 对数据 data2 有 read/write 权限,因此用户 alice 对数据 data2 拥有 read/write,可以看到下面的测试中也是 true。

来源:https://juejin.cn/post/7085490095955902501

标签:Python,权限,控制,模块,Casbin
0
投稿

猜你喜欢

  • Elasticsearch索引的分片分配Recovery使用讲解

    2022-03-25 18:00:18
  • pycharm 实现本地写代码,服务器运行的操作

    2023-04-10 21:12:44
  • 推荐个辅助软件FastStone Capture

    2008-12-23 13:23:00
  • 优雅地扩大链接响应区域

    2010-09-25 13:04:00
  • python jinjia2的项目使用

    2021-03-16 04:57:21
  • Python批量修改图片分辨率的实例代码

    2023-01-30 01:59:10
  • 对numpy Array [: ,] 的取值方法详解

    2023-02-05 17:33:23
  • 学习ASP.NET八天入门:第七天

    2007-08-07 13:52:00
  • Python基于递归算法求最小公倍数和最大公约数示例

    2021-07-20 09:36:23
  • 利用Python找出序列中出现最多的元素示例代码

    2023-01-19 09:54:43
  • MySQL创建带特殊字符的数据库名称方法示例

    2024-01-26 15:31:30
  • 在Django中实现添加user到group并查看

    2021-12-08 21:47:07
  • oracle 时间格式的调整

    2009-05-24 19:32:00
  • 深入理解Python中range和xrange的区别

    2023-06-22 06:10:09
  • 瞎扯之Web导航

    2009-03-18 19:32:00
  • 学习ASP.NET八天入门:第四天

    2007-08-07 13:40:00
  • Python中字符编码简介、方法及使用建议

    2021-10-11 21:58:33
  • SQL Server数据库查询优化3种技巧

    2008-10-17 10:10:00
  • Pandas 同元素多列去重的实例

    2023-02-09 21:03:32
  • 使用mss2sql工具将SqlServer转换为Mysql全记录

    2024-01-24 11:59:37
  • asp之家 网络编程 m.aspxhome.com