Casbin:支持像Acl,RBAC,ABAC这样的Authz模型的授权库

2021-04-26 11:02:25

新闻:仍然担心如何编写正确的赌场政策? Casbin在线编辑即将帮助!尝试在:https://casbin.org/Editor/

Casbin是一个强大而有效的开源访问控制库,用于Golang项目。它提供了支持基于各种访问控制模型执行授权的支持。

无需资源的ACL:某些方案可以通过使用写入文章等权限来针对一种资源而不是单个资源来定位。它不控制对特定文章或日志的访问。

RBAC具有资源角色:用户和资源都可以同时具有角色(或组)。

ABAC(基于属性的访问控制):Syntax Sugar如Resource.Owner可用于获取资源的属性。

在CASBIN中,访问控制模型被抽象为基于PERM元模型(策略,效果,请求,匹配器)的CONF文件。因此,切换或升级项目的授权机制就像修改配置一样简单。您可以通过组合可用的型号自定义自己的访问控制模型。例如,您可以在一个模型内将RBAC角色和ABAC属性一起获得一组策略规则。

#请求定义[request_definition] r = sub,obj,作用#策略定义[policy_definition] p = sub,obj,act#策略效果[policy_effect] e = some(其中(p.eft ==允许))#匹配器[匹配器] m = r.sub == p.sub&& r.obj == p.obj&& R.ACT == P.ACT.

#匹配器[匹配器] m = r.sub == p.sub&& r.obj == p.obj \&& R.ACT == P.ACT. 此外,如果您使用的是ABAC,您可以尝试在Casbin Golang Edition中类似于以下操作员(尚未支持JCASBIN和Node-Casbin): #匹配器[匹配器] m = r.obj == p.obj&& r.act == p.act || r.obj in(' data2'' data3') 但是你应该确保数组的长度超过1,否则会导致恐慌。 在定义的情况下在Classic {主题,对象,Action}表单或自定义表单中执行策略,支持允许和拒绝授权。 支持内置超级用户,如root或管理员。 如果没有解释权限,超级用户可以做任何事情。 多个内置运算符来支持规则匹配。 例如,键盘可以将资源键/ foo / bar映射到模式/ foo *。

管理用户或角色列表。我相信项目本身更方便地管理这些实体。用户通常具有密码,赌场不是设计为密码容器。但是,Casbin存储RBAC方案的用户角色映射。

您还可以使用在线编辑器(https://casbin.org/Editor/)来在Web浏览器中编写Casbin模型和策略。它提供了语法突出显示和代码完成等功能,就像一个用于编程语言的IDE。

注意:您还可以在DB而不是文件中初始化具有策略的Enforcer,请参阅策略持久性部分以获取详细信息。

子:="爱丽丝" //想要访问资源的用户。 obj:=" data1" //将访问的资源。行为:="读" //用户在资源上执行的操作。如果Res:= e。强制执行(Sub,OBJ,ACT); res {//允许爱丽丝读取data1} else {//拒绝请求,显示错误}

除了静态策略文件之外,Casbin还提供了运行时的权限管理API。例如,您可以将分配给用户的所有角色如下:

RBAC API:RBAC更友好的API。此API是管理API的子集。 RBAC用户可以使用此API来简化代码。

通过成为赞助商来支持这个项目。您的徽标将在这里显示与您的网站的链接。 [成为赞助商]