参数化的RBAC模型

1 动机

基于角色的访问控制(RBAC)模型被普遍认为是一种有效的访问控制模型,它比传统的自主访问控制(DAC)和强制访问控制(MAC)具有更高的灵活性和更好的扩展性。

在实际应用中,随着企业规模以及信息系统规模逐渐扩大,系统中角色的数目也随之急剧增加,从而使得角色管理、用户角色指派、权限角色指派的工作非常繁重且易于出错。

很多角色具有类似的权限,也赋给了类似的用户。

例如企业中不同分公司的经理角色,它们都具有查看其所属分公司的产品销售报表的权限,这些角色也分别赋给了各个分公司的经理。

对于这些角色,可以将影响角色的因素抽象成参数,从而简化角色管理、用户角色指派、权限角色指派的工作。

o_%E5%9B%BE%E7%89%872.jpg

 RBAC模型图

 

2 参数化的RBAC模型

以为企业管理设计的访问控制系统为例。

企业内部存在诸多机构层次,每个机构层次都有一些部门,每个部门里一般都有一些固定的职务。

机构:总公司、分公司。

       部门:家电部、彩电部。

       职务:经理、开发人员、销售人员、普通职员。

2.1 参数化的RBAC模型的直观意义

        机构、部门和职务的偏序关系如下:

o_%E5%9B%BE%E7%89%871.jpg

如果用RBAC基本模型,需要定义16个角色。

把机构和部门定义为参数。

这样用参数化的RBAC模型,则只需要定义4个角色,使得角色的管理很简单。

用户角色指派和权限角色指派是通过定义角色实例(Role Instance)来实现的。

一个角色实例是一个角色和一组实例化后的参数组成的有序组。例如:(经理,{总公司}{彩电部})是一个角色实例。

2.3 P-RBAC管理模型P-ARBAC

 

参数化的RBAC模型中的参数管理           

参数化的RBAC模型中的角色管理 P-RRA     

参数化的RBAC模型中的用户角色指派 P-URA     

参数化的RBAC模型中的权限角色指派 P-PRA     

 

2.3.1  参数的选择

       根据实际应用中的经验,我们给出了2条参数的选择条件作为参考。

1.参数与用户和权限有某种联系。

用户角色指派和权限角色指派可以实现一定程度的自动化。

简化用户角色指派和权限角色指派工作,避免出错。

 

2.参数的取值在含义上有明显的层次关系,但不能有多重继承。

使得参数集的偏序关系特殊化,简化角色实例中的偏序关系的判断。

参数值成树形结构,便于存储和查找。

 

o_%E5%9B%BE%E7%89%873.jpg 

2.3.2  参数取值集合中偏序的管理

由于参数的选择满足上面的条件(2),所以可以通过参数取值的层次来表示偏序。

例如对于机构这个参数的管理,我们可以用“/”表示总部,“/HBDQ/”表示华北大区,“/HBDQ/BJFGS/”表示北京分公司,用“/”作为分隔符即可方便的表示偏序。

这种结构也很适合在目录服务器中存储。

 

2.3.3  参数的增加和删除

增加参数,就在原有参数模板的最后新加一个参数集,原有角色实例在这个参数上赋空集。

删除参数,在每个角色实例中删除该参数对应的参数值集合。

**由于在P-RBAC模型中角色和参数是松耦合的,所以在实现中,增加和删除参数无需对原有角色实例作任何修改

参数的基数限制

 

2.3.4  参数的静态基数限制。

我们可以定义实例化角色时在该角色某个参数集上的基数限制。

可以实现“一个用户不能在多个机构中担任会计”这类限制。

eg:我们可以定义角色“会计”在“机构”这个参数上的静态基数是1。这样(会计,{北京,上海})将是一个非法的角色实例,不会被创建。

 

2.3.5  参数的动态基数限制。

我们可以定义激活角色实例时在该角色某个参数集上的基数限制。

可以实现“允许一个用户在多个机构中担任会计,但是在一次会话中只能激活其中的一个”这类限制。

 

P-RBAC模型中的角色管理 P-RRA

P-RBAC模型中的角色和RBAC基本模型中的角色没有,可以采用RBAC基本管理模型进行管理,也可以采用各种对RBAC基本管理模型的扩展来进行扩展的角色管理。

P-RBAC中的用户角色指派 P-URA

              在对用户指派角色实例时,从用户的信息中提取对应于P-RBAC模型中参数的信息,并作为角色实例该参数的默认值。

 

              同时允许管理员进行手工修改,以实现细粒度的管理

P-RBAC中的权限角色指派 P-PRA

              由于权限和用户的地位是对称的,所以P-PRA实际上是P-URA的对偶模型,同样可以利用参数和权限的联系实现一定程度的自动化。

3 有关参数化的RBAC模型的讨论

3.1  简化了角色管理工作。

通过引入参数模板,使得角色数目大大减小,从而使得角色管理的工作大大简化。

 

在对TCL的角色统计中,角色数目由为引入参数模板前的近9000个角色减少为几十个角色。

3.2  减少用户和权限拥有的角色实例数

 

假设有个用户u同时是北京分公司和天津分公司的经理,则没有引入参数模板之前,需要指派给u两个角色:北京经理,天津经理。在引入参数模板之后,则u只有一个角色实例:(经理,{北京,天津})。这也简化了判断一个会话中用户是否拥有权限的工作。

 

TCL的权限记录中一个页面的访问权限原来有1000多条记录,但是引入参数模板后就简化成了1条记录。

3.3.  角色实例是基于内容的,方便管理员管理

 

              参数具有一定的含义,且有明显的层次关系,所以角色实例是基于内容(Content-Based)的。

              管理员在进行用户角色实例指派和权限角色实例指派时可以充分利用参数的含义,方便管理,减少出错。

 

 

3.4.  P-URAP-PRA可以实现一定程度自动化

 

              由于参数和用户及权限有一定的联系,所以在进行用户角色实例指派和权限角色实例指派时可以实现自动化,提供管理员默认的参数值,简化管理员的管理工作。

5.具有良好的可扩展性

 

              由于我们在P-RBAC模型中定义了增加参数和删除参数的操作,当企业业务发生变化或者管理员发现需要增加参数或者减少参数来简化管理时,可以方便的实现,而且不用修改原来的数据。从而提高了系统的适应性和可扩展性。

局限和解决方案

1.参数的选择需要仔细考虑,而且需要存储和管理参数上的偏序

 

对于一个实际系统,应该根据前面提到的参数选择的标准,根据实际需要来确定参数。一般来说,机构,部门等是合适的参数选择。

局限和解决方案

2.角色实例的继承关系没有存储,从而在每次访问控制决策时都要进行偏序判断。

由于角色数目大大减小,我们可以在角色中存储它所有的祖先角色和子孙角色,无需对角色偏序进行递归搜索。

 

由于我们的选择的参数有明显的层次关系,所以参数的取值一般会显式的表现出偏序关系。

 

我们引入了缓存机制来提高系统效率。

4 结论

本文提出了RBAC的一种扩展模型—参数化的RBAC模型,并给出了参数化的RBAC模型的形式化定义。

 

本文还讨论了参数化的RBAC管理模型,并且根据在实际应用中的经验,给出了参数选择和管理的一些建议。

 

最后对参数化的RBAC模型的优缺点进行了讨论。

 

转载于:https://www.cnblogs.com/meteorcui/archive/2005/12/31/2021237.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/301013.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用 ML.NET 进行保险价格预测

此前通过多篇文章已充分介绍过,ML.NET是一个开源的跨平台机器学习框架,特别适合 .NET 开发人员。它允许将机器学习集成到 .NET 应用中,而无需离开 .NET 生态系统,甚至拥有 ML 或数据科学背景。ML.NET 现有的各种内置模型训练器可用…

送礼物给女生,她哭了是怎么回事?

全世界只有3.14 % 的人关注了青少年数学之旅中秋节快要到了,超模君说要给我准备个惊喜,what?结果我在桌面上发现了一个盒子和一大堆 垃圾 零件,清洁阿姨你在哪?我需要你。不过仔细一看,我去?&am…

oracle+11g+rda,Oracle RDA 4.20 初体验

RDA 全名RemoteDiagnostic Agent,是Oracle用来收集、分析数据库的工具,但统计信息远远大于只是数据库的,也可以说是现在一个Oracle dba 角色需要掌握的Oracle DB SERVER的信息,包含数据库安装、配置、性能、备份等信息、操作系统各…

室内设计品牌网站搭建的作用是什么

随着人们生活质量日益提升,对其自身的居住环境也有了较高要求,每个人审美不一样,无论自己居住的房屋还是公司办公/商场等场景都需要设计不同的内容,还有各种设施的摆放及类别等都有讲究,尤其对公司及商场等环境&#x…

面向.NET开发人员的Dapr- actors 构建块

原文地址:https://docs.microsoft.com/en-us/dotnet/architecture/dapr-for-net-developers/actors The actor model originated in 1973. It was proposed by Carl Hewitt as a conceptual model of concurrent computation, a form of computing in which several…

史上最严重的忘拿钥匙事件 | 今日最佳

全世界只有3.14 % 的人关注了青少年数学之旅(视频源网络,侵权删)难搞噢↓ ↓ ↓

oracle经常开关好吗,频繁开关机对电脑有什么影响吗?

2005-08-03 08:01:45没关系的哦,一天五六次正常,只要是正常开关机就OK。全部2005-08-03 08:01:452005-08-03 07:49:392005-08-03 05:21:09影响不大完全在合理范围内,等到坏的时候也应该淘汰了全部2005-08-03 05:21:092005-08-03 04:09:04原则上经常性的开…

老是担心数学学不好?这些基础是时候正视了!

我们都知道,数学是学生生涯的一门重要学科,与其担心三年级掉队,不如从小培养良好的学习兴趣和数感直觉,之后的学习就是水到渠成的事了,这可不是报个奥数班就万事大吉了,最关键的,还得从培养孩子…

老师“鬼话”全曝光!哈哈哈哈哈哈全国的老师都这样吗?

老师您辛苦了明天就是教师节啦今天超模君有幸采访到一位从教多年的数学老师01请问您教的科目是?数学收到,over02您从教多久了?唔…快10年了您当过班主任吗?当过,现在也是班主任工作日常是怎样的?备课、改作…

单体系统如何拆分为微服务

当单体系统越来越大,并难于维护时,很多企业开始有意把单体系统拆分为微服务风格架构。这么做很有意义,但不容易。要做好这件事情我们必须学习,我们从一个简单的服务开始,另一方面拉出以垂直功能为基础的服务&#xff0…

Wiki及其他

大概是2年多以前,我几乎是和blog一起听到wiki的概念的。当时blog正备受推崇,而个性色彩稍逊一筹、讲究严肃协作的wiki则没怎么受公众注意。我也一样。后来进入行业之后,我一直想有一套知识库(Knowledge Base)系统,多分类、复杂查找…

linux服务器管理公司用户,在Linux服务器Jenkins中管理用户和角色的方法

下面将教你如何在Linux服务器Jenkins中管理用户和角色,它需要创建角色并分配给用户,你需要运行Jenkins服务器才能操作接下来的工作。安装Jenkins参考文章在Jenkins中管理用户和角色默认情况下,当你在Jenkins中创建用户时,它几乎可…

还在用Excel做数据分析?两大方法5分钟完成别人一天的工作

全世界只有3.14 % 的人关注了青少年数学之旅我是个只会用Excel的数据分析工作者。有一天,我和同事大鹏约好晚上一起喝酒,离下班还有5分钟,老板突然Q我:我怀着忐忑的心情打开了一个神秘的压缩包:912个CSV表格&#xff0…

poj1033

模拟题&#xff0c;注意不需要移动的情况要特殊输出 #include <cstdio> #include <cstring> #include <cstdlib> using namespace std;#define MAX_CLUSTER_NUM 10005int cluster_num, file_num; int link[MAX_CLUSTER_NUM]; bool is_free[MAX_CLUSTER_NUM];…

ABP Framework V4.4 RC 新增功能介绍

新增功能概述•启动模板删除 EntityFrameworkCore.DbMigrations 项目•CMS-Kit 模块新增 动态菜单管理 功能•对象扩展管理系统新增两个扩展方法&#xff1a;MapEfCoreDbContext MapEfCoreEntity&#xff0c;分别对 数据上下文和实体 自定义映射配置。•文本模板系统新增 Razor…

论文排版怕翻车?这个排版神器赶紧用起来!

论文的重要加分点除了内容&#xff0c;还有它相信每年临近准备毕设或者毕业论文的同学会遇到这些问题&#xff1a;“我的毕业论文提交一次就被导师批评一次&#xff0c;内容不行就算了&#xff0c;格式也有问题&#xff01;改论文改到绝望”“期刊的版式要求不是统一的&#xf…

[正则表达式] 可以解析HTML/XHTML页面的所有元素和结构的Regular Expression![ZT]

ZT: http://www.cnblogs.com/Laser_Lu/archive/2005/04/21/142605.html哈哈&#xff0c;继 昨天的那个正则表达式 之后又写了一个更长的Regular Expression&#xff0c;全长527&#xff0c;是用于查找出所有的XHTML/HTML的标记外面的所有空格&#xff0c;并将之转换为 的。 希望…

我用段子讲.NET之依赖注入(一)

我用段子讲.NET之依赖注入&#xff08;一&#xff09;1&#xff09;西城的某个人工湖畔&#xff0c;湖水清澈见底&#xff0c;湖畔柳树成荫。人工湖往北&#xff0c;坐落着两幢写字楼&#xff0c;水晶大厦靠近地铁站&#xff0c;由于为了与湖面天际线保持一致&#xff0c;楼层只…

.net core 嵌入 js(javascript)脚本引擎

漂亮的目录1、万能的脚本2、内部嵌入引擎方式3、调用NodeJs服务&#xff0c;与之通信方式结论1、万能的脚本折腾无止境&#xff0c;.net core 提供了更多的可能&#xff0c;今天我们就来看看脚本引擎。提起脚本&#xff0c;不得不说说Javascript——WEB互联网世界的一大半江山都…

用一个小球揭开地球的面纱,探索地球运转的秘密!

一个人一旦对某事物有了浓厚的兴趣&#xff0c;就会主动去求知、去探索、去实践&#xff0c;并在求知、探索、实践中产生愉快的情绪和体验。所以&#xff0c;古今中外的教育家无不重视兴趣在智力开发中的作用。小木之前推荐过一款AR地球仪&#xff0c;它是一个互动性强、内容丰…