分享好友 最新动态首页 最新动态分类 切换频道
Casbin-authz-plugin:基于Casbin的Docker权限管理、访问控制插件
2024-12-26 23:16

Docker是目前主流的一种容器技术。为了解决多用户同时访问Docker时产生的安全问题,Docker设计了访问控制插件(Authorization Plugin,见官方文档)这一机制,通过对Docker请求进行过滤,来实现对Docker的权限管理。

这里需要注意,Docker并没有自己设计一套权限管理机制,而是设计了一套权限管理插件的机制,允许第三方的开发者自行设计权限管理的架构、模型、策略格式,然后通过统一的插件接口接入Docker,为Docker提供权限管理的服务,非常的灵活。这个插件机制的设计思想其实很简单,就是每当Docker daemon接收到一个访问请求时,就会把这个请求的context信息(三元组)发送给Authorization Plugin,Authorization Plugin自己判断一下是否允许这个请求,然后向Docker daemon返回结果,allow or deny,即是否允许这个请求的访问。具体的插件接口格式,大家可以参考上面的文档,这里不再赘述。

Casbin(https://github.com/casbin/casbin)作为目前Golang语言中最主流的访问控制、权限管理开源库,也实现了一个Docker的Authorization Plugin,叫做:Casbin-authz-plugin。

这里首先介绍一下Casbin项目。Casbin是一个国产开源项目,专注于解决Go语言中的权限管理问题。Casbin由北京大学罗杨博士在2017年4月发起,罗杨博士的研究方向为,目前已发表数十篇相关学术论文,曾经在ICWS、IEEE CLOUD、ICICS等多个顶级学术会议进行论文宣讲。Casbin项目则是其研究成果的落地。目前经过一年多的发展,。下面则是Casbin及其作者的相关信息

源码:https://github.com/casbin/casbin
官网:http://casbin.org/
在线策略编辑器:http://casbin.org/editor/
官方QQ群:546057381

下面列举了Casbin项目主要的一些特点

  1. 支持多语言:Go + Java,Java版本的叫做jCasbin,保持与Casbin一致的接口
  2. 获美国身份管理与认证创业公司 Auth0 ([2018年5月17日,该公司获得D轮5500万美元融资];(http://www.yidianzixun.com/article/0J5VMI4t))的赞助,并且有进一步合作意向
  3. 支持多种访问控制模型:ACL、RBAC、ABAC、RESTful
  4. 支持16种策略存储插件(Storage Adapter
  5. 支持2种分布式插件(Watcher
  6. 支持4种角色管理插件(Role Manager)。

目前,Casbin已在150个开源项目获得应用,知名的有

  1. Intel的RMD项目:Intel公司的资源管理服务,用来管理Intel CPU相关的硬件资源
  2. VMware的Dispatch项目:部署Serverless服务的应用框架平台
  3. 法国电信公司Orange的Gobis项目:轻量级API网关项目。

更详细的应用情况,大家可以在这里看到:https://github.com/casbin/casbin#our-adopters。另外,在闭源、商业项目上的使用,因为无法统计,并没有计入。但是据作者了解,Casbin已经在Cisco(思科)、Verizon(美国电信)等公司得到大规模实际应用。

以上是对Casbin项目的介绍,本文下面部分主要介绍Casbin的Docker插件的用法。

举个例子:当你执行这条命令时,其实你是执行了一条CLI命令,以为参数执行了这个client。这个client会向Docker daemon发送一个类HTTP请求

其中就是访问的URL路径,就是HTTP method。Casbin插件通过查询安全策略可以帮助你决定是否允许某用户以动作访问路径。实际上,Casbin插件的本质就是做这样一个简单的事情。那么,该如何判断是否允许某个请求呢,这个具体逻辑就要涉及到Casbin的原理了,在Casbin插件的例子中,提供了一个策略文件,这个文本文件只含有一行内容

代表授权策略,后面就是允许执行的URL和HTTP method,整个策略文件的含义就是:允许任何人访问,而其他的任何访问都被禁止。

下面是一个禁止访问的例子

我们可以看到,当执行命令的时候,提示了禁止访问错误。这就说明,我们的Casbin插件产生了效果。

Casbin其实远比上面的例子复杂,首先,可配置的内容就有两大块:模型文件和策略文件。在Casbin插件中,模型文件的内容是

策略文件的内容是

,可以理解为一套Casbin自己的脚本语言,被Casbin解释执行,作为权限判断的逻辑。则提供具体的安全策略的文本。你可以把Casbin理解为一个,那么模型文件就是这个程序的,策略文件就是这个程序的。代码在执行过程中,接受输入,并对数据进行读写,最终产生输出,其实本质上Casbin的访问控制就是这样一个过程。

Casbin插件的安装步骤因为比较琐碎,这里就不在介绍了,大家可以去GitHub源码中查看README文档即可:https://github.com/casbin/casbin-authz-plugin

最后,列举一下使用Casbin插件进行Docker权限管理的好处

  1. Casbin权限管理灵活度高,可定制性强,几乎能满足任何苛刻、复杂的权限管理需求,这样就省的开发者自己编写一套权限管理的逻辑了,方便开发者把精力集中在其他业务逻辑的部分。
  2. Casbin有完善的测试用例,产生的结果正确性有保证。自己手写权限控制的逻辑,则难免会有出错。
  3. Casbin应用广泛,基本支持了所有的Golang Web框架,如Beego、Gin、Revel、Echo等等。同时Casbin还包含Java版本:jCasbin和PHP版本:PHP-Casbin。帮助开发者实现
  4. Casbin支持图形化的Web策略编辑:Casbin Online Editor (http://casbin.org/editor/)。其支持对Casbin模型和策略的编辑,并且支持等多个功能,基本达到了IDE的级别,对开发者非常友好。相比传统的安全策略复杂的配置过程,通过该GUI界面进行策略设计、编辑,可以显著降低学习Casbin难度。下面是Casbin Online Editor界面的截图

最后,欢迎大家加入Casbin讨论QQ群:546057381(或扫下方二维码,有疑问的话,在群里可以获得及时解答。谢谢

最新文章
环幕影院
苏州图腾机柜有限公司_网络服务器机柜|工业控制柜|配电柜|高低压...苏州图腾机柜有限公司位于江苏苏州高新技术开发区,是深圳图腾总部授权专业销售图腾网络服务器机柜,工业控制柜,配电柜,高低压开关柜,CB电子箱等电气化产品公司,公司
网站制作费用多少合适?小白必看的超实用费用指南
  “做网站会不会很贵啊?”“一万块够不够?几百块行不行?”关于网站制作费用,这些问题估计在不少新手的脑海里盘旋过吧!实际上,网站制作的成本是一个综合考量内容、设计和功能的过程,没有标准答案,但绝对有规律可循。本文结合真实案例
苹果手机助手有哪些?苹果手机用什么助手最好?
  你知道苹果手机助手有哪些?苹果手机用什么助手最好?iOS手机助手哪个好用吗?  现在的苹果手机助手越来越强大,海量游戏应用和软件可随意让用户免费下载。大到几十上百元,小到付费测试版,以及还没有正式上线的所有应用,只需一键
谷歌深夜发布Gemini 2.0,人工智能(159819)、软件30ETF(562930)备受关注
  消息面上,12月11日晚,刚刚发布量子芯片的谷歌,又投下一枚重磅炸弹,正式发布其最新版大模型Gemini 2.0系列,谷歌表示这是他们迄今为止最强大的人工智能模型,“专为智能体时代设计”,并同时介绍了多个智能体应用(AI Agent)。  
航海王鱼人岛篇特别编辑版
影片名称:航海王鱼人岛篇特别编辑版影片别名:影片类型:动漫影片导演:尾田荣一郎影片演员:田中真弓 , 冈村明美 , 中井和哉 , 山口胜平 , 平田广明 , 大谷育江 , 山口由里子 , 矢尾一树 , 长岛雄一 , 宝龟克寿年份地区:2024/日本更新时
规则引擎 drools_Java常用的规则引擎,让你变动的代码更加容易维护
在本文中,我们将介绍Java中一些最受欢迎的规则引擎。规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入
草根站长的源动力-国内站长网站缩影
随着互联网的发展,国内个人网站也迅速雨后春笋般迅速发展。犹如80年代的私营企业发展个人网站的故事也频繁登上各媒体的版面 非官方的统计:目前国内已经有草根站长300万个。已经开始盈利的个人网站 近5万个个人网站的总收入已经超过3亿 这
背包有个十字架的牌子 十大奢侈品包包排名及图标志
背包有个十字架的牌子,是一个备受关注的奢侈品包包品牌。随着时尚产业的发展和消费观念的改变,越来越多的消费者对于高品质、独特设计的包包有着强烈的需求。在这样的市场环境下,背包有个十字架的牌子以其独特的设计和卓越的品质迅速崛起
港股开盘:恒生指数开盘跌0.59%,恒生科指跌0.61%,美团跌近2%
金融界12月17日消息 港股恒生指数开盘跌0.59%,报19678.03点,恒生科技指数跌0.61%,报4387.62点,国企指数跌0.53%,报7095.14点,红筹指数跌0.1%,报3691.93点。大型科技股中,阿里巴巴-W跌0.53%,腾讯控股跌0.89%,京东集团-SW跌1.39%,
玩转serv00虚拟主机(一):零成本搭建wordpress个人博客&入门
不少童鞋在搭建博客、alist、图床等各类web服务的时候苦于云的成本望而却步,但其实搭建web服务也可以用虚拟主机,不少厂商都有免费的虚拟主机,但对于很多童鞋可能是第一次听说虚拟主机,这里就开一个新的系列,玩转serv00家的免费虚拟主
相关文章
推荐文章
发表评论
0评