Casbin权限模型在教育培训领域的实用秘诀、创新实践和高效优化策略

发布于:2024-10-24 编辑:匿名 来源:网络

策略描述语言(论文) 摘要:“为了保护云资源的安全,防止数据泄露和越权访问,云平台的资源必须实现访问控制,但是当前主流的云平台通常使用自己的安全策略语言和访问控制机制,这会带来两个问题:如果云用户想要使用多个云平台,则需要进行访问控制。学习不同的策略语言并分别编写;云服务提供商需要设计自己的符合自己平台的安全策略语言和访问控制机制,开发成本很高。

提出了基于访问控制策略描述语言PML及其实现机制PML-EM,PML支持BLP、RBAC、ABAC等访问控制模型的表达。 PML-EM实现了策略语言独立性、访问控制模型独立性和编程语言独立性三个特性,从而降低了用户编写策略的成本和云服务提供商开发访问控制机制的成本。

在线论文地址:它是一个强大高效的开源访问控制框架,支持Go、Java、Node.js、Javascript(React)、Python、PHP、.NET、C++、Rust等十几种语言。 Casbin开源项目由北京大学罗阳博士于2007年创立,核心维护团队20多人。

Casbin在行业内具有广泛的影响力。目前,它被 Intel、VMware、Orange、RedHat 和 T-Mobile 等公司作为开源使用,而被腾讯云、思科和 Verizon 等公司作为闭源使用。

详情请参阅 Casbin 主页。 Casbin Go 主项目目前在 GitHub 上有 0+ star,随着所有语言、插件等的实现,可以达到 0+ star。

官方地址:Effect、Request、MatcherModel 语法及策略存储 模型语法 模型 CONF 至少应包含四个部分:[request_definition]、[policy_definition]、[policy_effect]、[matchers] 如果模型使用 RBAC,还需要添加[角色定义]部分。模型 CONF 可以包含注释。

注释以 # 开头,对整行进行注释。模型存储与策略不同。

模型只能加载,不能保存。因为我们认为模型不是动态组件,不应该在运行时修改,所以我们没有实现 API 来将模型保存到存储中。

策略存储在Casbin中,适配器(Casbin的中间件)实现了将策略规则写入持久层的细节。 Casbin用户可以调用适配器的LoadPolicy()方法从持久层加载策略规则,也可以调用SavePolicy()方法将策略规则保存到持久层。

支持的 ModelACL(访问控制列表) 具有超级用户 ACL 且不具有用户 ACL 的访问控制列表:对于没有身份验证或用户登录的系统特别有用。不带资源的ACL:有些场景可能只针对资源类型,而不是单一资源,比如写文章、读日志等权限。

它不控制对特定文章或博客的访问。 RBAC(基于角色的访问控制)支持资源角色的RBAC:用户和资源可以同时拥有角色(或组)。

对域/租户的RBAC支持:用户可以为不同的域/租户设置不同的角色集。 ABAC(基于属性的访问控制):支持使用resource.Owner这种语法糖来获取元素的属性。

RESTful:支持路径,例如 /res/*、/res/:id 和 HTTP 方法,例如 GET、POST、PUT、DELETE。拒绝优先:支持允许和拒绝授权,拒绝优先于允许。

优先级:策略规则按照优先顺序排列,类似于防火墙规则。模型 模型原语定义说明 最简单的 ACL 模型配置代码语言: javascript copy[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 在线编辑器: * @desc 权限验证 * @author Tinywan(万少博) * @date /3/29 10:37 */declare(strict_types=1);命名空间 app\common\library;使用 app\common\service\JwtService;使用 Casbin\Exceptions\CasbinException;使用 tauthz\facade\Enforcer ;使用 think \facade\Log;use think\Request;class Permission{ //不验证权限节点 protected array $public_rule = [ '/f/v1/books', '/f/v1/homes', ]; /* * * @desc: 权限验证检测 * @return bool * @author Tinywan(ShaoBo Wan) */ public function check(): bool { $url = $this->request->baseUrl(); if (in_array($url , $this->public_rule)) { 返回 true; } 尝试 { $uid = JwtService::getCurrentUID();$action = $this->request->method(); if (!Enforcer::enforce(strval($uid), $url, strtoupper($action))) { 返回 false; } } catch (CasbinException $exception) { Log::error('机舱授权异常' . $exception->getMessage());返回假;返回真; }}中间件调用 class AuthorizationMiddleware.php 代码语言:javascript 复制 class AuthorizationMiddleware{ /** * @param $request * @param Closure $next * @return mix * @throws AuthorizationException * @throws Exception */ public function handle($request , 闭包 $next): Response { if (!(new Permission($request))-> check()) { throw new AuthorizationException(); }返回 $next($request); }}接口访问权限流程代码语言:javascript copy+-------------------- ----- |资源存在吗? (如果是私有的,通常会在身份验证检查后进行检查)+------------------------ | |否 | v 是v +------------------------ |已登录? (经过身份验证,又名具有会话或 JWT cookie)或 +-------------------- ---------------- | |否 | |是 3xx v v +------------------------(不透露) |可以访问资源吗? (许可、授权、...)或 +------------------------ 重定向 | |登录 否 | |是 | | v v OK ,重定向,...(或:不显示)(或:如果私有,则资源不存在)(或 3xx:重定向) 基于角色的 RBAC 模型(Model)配置 keyMatch2 函数:URL 路径或:模式 ,例如: /v1/notices/:idregexMatch 函数:任意字符串、正则表达式模式,如:GET、get、Get、(GET|POST|DELETE) 实际代码模型配置 rbac-model.conf 代码语言:javascript copy[request_definition]r = sub, obj, act[policy_definition]p = sub, obj, act[role_definition]g = _, _[policy_effect]e = some(其中 (p.eft == 允许))[匹配器]m = g (r.sub, p.sub) && keyMatch2(r.obj, p.obj) && regexMatch(r.act, p.act) || r.sub == 6 策略表记录区县策略:上面针对区县区域角色定义了5个策略,分别是通知公告接口的列表、创建、修改、删除、详情。

帐号权限:帐号33、帐号34继承区县政策组区域,帐号33、帐号34会有通知。公告界面的列表、创建、修改、删除、详情的访问权限。

小问题:只需要为账户开通特殊的接口权限(如:健康码查询接口)。该权限不能添加到策略组区域。

那么可能的解决方案有哪些呢? : 《第一版方案(低级):入侵,修改代码,在代码级别添加判断并释放到账户》 《第二版方案(中级):非入侵,修改代码,通过AOP解决》第三版方案(进阶):非侵入式,无需修改代码,策略规则表只需添加以下策略之一》传统框架VS现代框架原理中使用Casbin。常驻内存框架。

Swoole、Workerman、ReactPHP以多进程模式运行,多个进程中的数据相互隔离(每个进程独立,互不干扰,这意味着每个进程维护自己的资源、变量、类实例) , ETC。 )。

注意:内存溢出,垃圾收集机制(GC)。场景:当Enforcer中的策略发生变化时,调用Watcher将消息推送到消息队列(MQ)。

监听消息队列的Enforcer收到后,会自动刷新实例中的策略。注意:在 PHP-FPM 环境中,不需要 Watcher,因为每个请求都是一个独立的 fpm 进程,并且会实例化一个新的 Enforcer 实例。

这是通过workerman/redis的发布订阅模式实现的,workerman/redis是一个基于workererman(观察者模式)的PHP异步redis客户端。 Enforcer & Watcher实例化Enforcer并同时监控订阅策略的变化并实时刷新到内存中。

Casbin权限模型在教育培训领域的实用秘诀、创新实践和高效优化策略

站长声明

版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

标签:

相关文章

  • 阿里拍卖4个深交所交易席位各60万成交

    阿里拍卖4个深交所交易席位各60万成交

    据投资界7月30日消息,据财联社报道,今日,阿里拍卖4个深交所交易席位司法拍卖平台。 具体来说,被拍卖的四枚深交所席位号分别是00、00、00、00。 起拍价60万元,市场价60万元,保证金6万元,加价元,拍卖开始时间为8月23日,竞拍期为一天。 席位号原持有人为珠海中业信托投

    06-18

  • 隐形正畸品牌美狮获数千万元A轮融资

    隐形正畸品牌美狮获数千万元A轮融资

    据投资界4月8日消息,隐形正畸品牌美狮完成数千万元A轮融资,投资方包括中信资本和雅惠投资。 此前,其曾获得世纪河、天宇医疗等机构的融资。 这些资金主要用于研发投入,包括数字图形软件、高分子材料、临床医学基地建设等。 美视团队于年底成立。 截至目前,美视产品已覆盖

    06-18

  • 产融深度融合,九和集团战略投资中国华融

    产融深度融合,九和集团战略投资中国华融

    投资行业动态,近日,九和集团战略投资中国华融。 双方将携手进军军工领域,携手地方政府平台打造军民融合综合体。 当地经济腾飞。 作为一家国有背景、产融结合的企业集团,九和集团通过资本赋能,助力地方经济和企业发展。 投资多家军工企业,与多个地方政府共同建设军工园区

    06-17

  • 证监会:启动私募创投基金向投资者实物配置股票试点

    证监会:启动私募创投基金向投资者实物配置股票试点

    投资界(ID:pedaily)据7月10日消息,证监会发布公告称,为完善私募股权投资基金和创业投资基金(以下简称私募创业投资基金)非现金分配机制,拓宽私募股权创业投资基金退出渠道,促进投资-退出-再投资的良性循环。 近日,证监会启动私募股权创业投资基金向投资者实物派发股

    06-17

  • 解决2亿灵活就业人员问题,小包智工获盖亚工场战略投资

    解决2亿灵活就业人员问题,小包智工获盖亚工场战略投资

    投资圈(ID:pedaily)据12月8日消息,在线招聘平台“小包智工”完成劳动力SaaS战略制造商“Gaia Works”投资。 小包智工联合创始人及CEO鲍冠羽表示,本轮融资将主要用于小包智工4.0版本的产品开发,服务更多城市和行业。 去年,小包智工获得了云歌情报的战略投资。 小包智工

    06-17

  • 每日游鲜完成新一轮融资4.95亿美元,由中金资本领投

    每日游鲜完成新一轮融资4.95亿美元,由中金资本领投

    在投资界,7月23日,每日游鲜宣布完成新一轮4.95亿美元融资。 本轮融资由中金资本旗下基金领投,工银国际、腾讯、阿布扎比资本集团、苏州常熟政府产业基金、老虎环球、高盛资管旗下基金等数家机构共同跟投,华兴资本跟投作为专属财务顾问。 本轮融资也是目前生鲜配送行业最大

    06-18

  • 联发科将于今年晚些时候推出支持 5G 的 7nm 芯片组

    联发科将于今年晚些时候推出支持 5G 的 7nm 芯片组

    据一份新报告称,台湾芯片制造商联发科计划今年推出 5G 芯片组。 这款新芯片组将与高通 Snapdragon 和海思麒麟竞争。 联发科芯片组主要应用于入门级和中端智能手机。 新的联发科5G芯片组将采用7nm制造工艺。 据联发科称,新芯片组将比最新的 Helio P90 更强大。 与其他产品不

    06-06

  • 1药网:四季度营收34.6亿元,同比增长30.9%

    1药网:四季度营收34.6亿元,同比增长30.9%

    1药网发布四季度及全年业绩报告。 财报显示,第四季度营收34.6亿元,同比增长30.9%; 2019年1月,药网实现全年营收破亿元,同比增长52%,营收首次突破百亿。

    06-18

  • “艺赛旗”获金蝶超亿元战略投资,联合推出“苍穹+RPA”一体化产品及智能自动化解决方案

    “艺赛旗”获金蝶超亿元战略投资,联合推出“苍穹+RPA”一体化产品及智能自动化解决方案

    今日举行的金蝶云苍穹峰会上,金蝶宣布战略投资国内RPA企业艺赛旗。 金蝶在企业云服务和云原生技术领域拥有多年的经验和行业理解,结合艺赛旗在RPA领域的技术优势,联合推出“琼+RPA”一体化产品和智能自动化解决方案,致力于打造为数万企业用户带来数十亿的利益。 提高数字虚

    06-18

  • 云南意外诞生独角兽:耀明半导体近百亿

    云南意外诞生独角兽:耀明半导体近百亿

    此次抵达云南。 投资界获悉,耀明半导体近日正式宣布完成B轮股权融资,金额超12亿元,投后估值近百亿元。 本轮融资由国家绿色发展基金有限责任公司领投,金石投资、国投创合、浙江海港集团、宁波开投集团、楚雄城乡投资等跟投。 于是,这家来自云南的新能源公司成为了独角兽公

    06-18

  • 阿里云【AI24小时】2024年5月6日

    阿里云【AI24小时】2024年5月6日

    阿里云创业平台推出AI24小时系列文章,搜集国内外最新的AI人工智能前沿资讯,帮助AI创业者掌握最新行业资讯。 1.AI PC激战,联想、华为、荣耀出击>> 随着AI技术的快速发展,AI PC已成为消费电子领域的热点。 联想、华为、荣耀等各大厂商相继推出了自己的AI PC产品。 近年来,

    06-17

  • 张剑锋谈阿里云新定位:数字经济基础设施

    张剑锋谈阿里云新定位:数字经济基础设施

    9月25日,在杭州云栖大会上,阿里云智能总裁张剑锋在主题演讲中表示,阿里云已经从单纯的云基础设施逐步演变今天,我们已经成为智能云提供商:从大数据、AI、物联网到协同办公,以及未来软硬件一体化的云平台。 他表示,“阿里巴巴走过了十年,一步一步走到了今天。 我认为未

    06-18