RBAC:Role Based Access Control,翻译过来基本上就是基于角色的访问控制系统,ACL:Access Control List,访问控制列表,是前几年盛行的一种权限设计,它的核心在于用户直接和权限挂钩。RBAC的核心是用户只和角色关联,而角色代表对了权限,这样设 计的优势在于使得对用户而言,只需角色即可以,而某角色可以拥有各种各样的权限并可继承。ACL和RBAC相比缺点在于由于用户和权限直接挂钩,导致在授 予时的复杂性,虽然可以利用组来简化这个复杂性,但仍然会导致系统不好理解,而且在取出判断用户是否有该权限时比较的困难,一定程度上影响了效率。
RBAC的使用,个人认为RBAC在使用时在管理程序的表现为首先创建一个角色,对该角色授权,给用户授予此角色使得用户拥有该权限。权限系统的基本概念 就是谁对谁进行某操作的权限,其中第一个谁指的是操作者,通常即为用户id,而第二个谁通常是指资源id,如部门id呀等等,操作则通常指的是删除、修 改、查看等权限,资源id和操作的组合两者组合构成了权限,被授予相关权限的是角色,然后用户只需属于此角色即可进行操作。
标准RBAC模型由4个部件模型组成,这4个部件模型分别是基本模型RBAC0(Core RBAC)、角色分级模型RBAC1(Hierarchal RBAC)、角色限制模型RBAC2(Constraint RBAC)和统一模型RBAC3(Combines RBAC)[1]。RBAC0模型如图1所示。
a. RBAC0定义了能构成一个RBAC控制系统的最小的元素集合。在RBAC之中,包含用户users(USERS)、角色roles(ROLES)、目标objects(OBS)、操作operations(OPS)、许可权permissions(PRMS)五个基本数据元素,权限被赋予角色,而不是用户,当一个角色被指定给一个用户时,此用户就拥有了该角色所包含的权限。会话sessions是用户与激活的角色集合之间的映射。RBAC0与传统访问控制的差别在于增加一层间接性带来了灵活性,RBAC1、RBAC2、RBAC3都是先后在RBAC0上的扩展。
b. RBAC1引入角色间的继承关系,角色间的继承关系可分为一般继承关系和受限继承关系。一般继承关系仅要求角色继承关系是一个绝对偏序关系,允许角色间的多继承。而受限继承关系则进一步要求角色继承关系是一个树结构。
c. RBAC2模型中添加了责任分离关系。RBAC2的约束规定了权限被赋予角色时,或角色被赋予用户时,以及当用户在某一时刻激活一个角色时所应遵循的强制性规则。责任分离包括静态责任分离和动态责任分离。约束与用户-角色-权限关系一起决定了RBAC2模型中用户的访问许可。
d. RBAC3包含了RBAC1和RBAC2,既提供了角色间的继承关系,又提供了责任分离关系。
分享到:
相关推荐
NULL 博文链接:https://lindows.iteye.com/blog/300564
Laravel RBAC 适用于Laravel 8及更高版本的简单RBAC / ACL,具有缓存权限和权限组,以提供更好的便利性。的角色权限权限组安装使用以下命令通过composer安装此软件包: composer require yaroslavmolchan/rbac...
在 Yii 里使用 Casbin,支持 ACL、RBAC多种模型的权限管理框架
ABAC除了RBAC和ACL模型之外,还为您提供了对规则定义的细粒度控制,这些规则限制了对资源的访问,通常被认为是“下一代”授权模型。 Vakt的形式类似于IAM策略,但具有更好的属性管理方式。 有关更多详细信息,请...
Yii2 ExtJs5 RBAC 支持 ACL RBAC。安装安装这个扩展的首选方式是通过composer。执行composer require --prefer-dist myweishanli/yii2-extjs-rbac或添加"myweishanli/yii2-extjs-rbac": "~1.0.0"配置@app/config...
go.sec golang 安全框架包括 rbac acl 等。
Laravel RBAC 适用于Laravel 5的超简单RBAC / ACL实现安装使用以下命令将此文件与作曲家( )一起使用 composer require phpzen/laravel-rbac或修改您的composer.json "require": { ... "phpzen/laravel-rbac": "^...
Api-middleware-acl.zip,中间件acl访问控制库rbac casbinmiddleware acl,一个api可以被认为是多个软件设备之间通信的指导手册。例如,api可用于web应用程序之间的数据库通信。通过提取实现并将数据放弃到对象中,api...
卡斯宾 新闻:仍然担心如何编写正确的jCasbin策略? Casbin online editor... 没有资源的ACL :通过使用诸如write-article , read-log类的权限,某些方案可能针对一种资源而不是单个资源。 它不控制对特定文章或日
访问控制 用于NodeJS和Typescript的简单,灵活和可靠的 / 访问控制。要求node >= 8.6 ,已通过以下测试: node@8.6.0 node@12.8.1 typescript >= 4.0 ,经过以下测试: typescript@4.0.2安装npm i @bluejay/access-...
casbin-cpp:一个授权库,支持CC ++中的访问控制模型,如ACL,RBAC,ABAC
casbin 支持混合访问控制模型的授权框架,它支持基于ACL,RBAC,ABAC等各种模式实施授权
卡斯宾 新闻:仍然担心如何编写正确的Casbin策略? Casbin online editor提供帮助!... 没有资源的ACL :通过使用诸如write-article , read-log类的权限,某些方案可能针对一种资源而不是单个资源。 它不控制对特定
皮卡斯宾 新闻:仍然担心如何编写正确的Casbin策略? Casbin online editor提供帮助! 请尝试: : Casbin是用于Python项目的功能强大且高效的开源访问控制库。... 没有资源的ACL :通过使用诸如write-a
感谢KarlDüüna( )和他 入门 安装 yarn add @rbac/rbac或npm install @rbac/rbac RBAC是一种咖喱函数,其最初使用具有配置的对象,然后返回另一个采用具有角色的对象的函数,最后返回具有“ can”属性的对象,该...
最简单,灵活和易于使用的JavaScript角色/访问控制列表( ACL,RBAC )库。 特征 支持用户 支持角色 支持层次结构 支援资源 支持通配符表示法定义用户,角色,资源和权限。 您可以编写的与驱动程序无关的数据库 ...
卡宾网 新闻:仍然担心如何编写正确的Casbin策略? Casbin online editor提供帮助!... 没有资源的ACL :通过使用诸如write-article , read-log类的权限,某些方案可能针对一种资源而不是单个资源。 它不控制对特定
它基于Casbin(一个授权库,它支持访问控制模型,如ACL,RBAC,ABAC)。 您需要的所有Laravel授权Laravel-authz是laravel框架的授权库。 它基于Casbin(一个授权库,它支持访问控制模型,如ACL,RBAC,ABAC)。 您...
该代码提供了Vertx和Neo4j的简单集成,以为RBAC提供用户,角色和权限。 如何运行这个例子 克隆neo4vertx git clone https://github.com/raaftech/neo4vertx 将neo4vertx 2.0.0-SNAPSHOT安装到本地Maven存储库mvn ...
casbin-rs:一个授权库,支持Rust中的访问控制模型,如ACL,RBAC,ABAC