一种描述RBAC角色层次关系和互斥关系的模型及实现
2020-08-11
来源:独旅网
维普资讯 http://www.cqvip.com 第3O卷第6期 2006年l2月 南昌大学学报(理科版) Journal of Nanchang University(Natural Science) V01.3O NO.6 DeC.2006 文章编号:1006—0464(2006)06—0601—04 一种描述RBAC角色层次关系和互斥 关系的模型及实现 段隆振,文 锋,黄水源,冯豫华 (南昌大学信息工程学院。江西南昌 330031) 摘要:RBAC角色访问控制逐渐被软件业所认同,在概述了目前的RBAC模型的特点后,对其角色的继承关系和 瓦斥关系进行r讨论,并提出了一种逻辑模型和实现方法,_最后给出了一个实例。 关键词:RBAC;角色层次;角色互斥 中图分类号:TP302.7 文献标识码:A 基于角色的访问控制技术是通过在用户和权限 问加入角色的概念以使用户通过所赋予的角色获得 图1描述了用户、角色、权限三者的关系。一个 用户可以建立多个角色,一个角色也可以拥有多个 相应的权限。用户被相对稳定的角色所取代,以便 获得系统权限管理的简单化。但目前RBAC模型的 研究还并未形成规范,2001的NIST(RBAC技术的 提出者)提出的也只是一个参考基准(见文献 ), RBAC的研究有待于进一步的发展。但RBAC的这 用户,它们之间是多对多的关系。同样,一个角色可 以拥有多种权限,一种权限也可以赋给多个角色,角 色和权限之间也是多对多的关系。这里的权限分为 操作权限和对象权限。如对某个企业集合进行更改 医疗保险中的计算基数,企业集则为对象权限,而对 这个集合进行更改计算基数的操作则为对应的操作 种角色思想已经深得人心,在很多的C/S,B/S软件 产品中都体现出了这一特征。RBAC访问控制模式 的主要核心体现在对角色的控制管理上,如何运用 角色。对角色进行管理,成了RBAC的核心问题。而 权限。对象操作是为一体的概念,操作必然是对一 定的对象,对应对象也应有一定的操作。某项操作 可以针对多个对象,某个对象也可拥有多项操作,操 作权限和对象权限也是多对多的关系。 角色控制主要体现在对角色的层次和互斥的控制 上,许多文献对这些角色的层次和互斥做了较深的 理论研究,如文献 ,但均未提出一种有效的实现 模型。ARBAC97(详见文献 )依靠角色的层次关 系来构筑企业的权限体系,但这样会带来过多的授 权。而且一个前提角色依赖它的上级或下级的前提 ⑩ ..卜...多对多关系 控制 角色,这会引起角色级别越高,授权步骤越多。另外 我们可以分析得出,所有角色的层次连接并不能完 全反映显示世界中的工作关系,而且还会带来许多 不必要的限制。因此,角色之间的关系不能只强调 图1 用户、角色、权限三者的关系 1.2 RBAC中的角色控制 角色控制是RBAC中的关键。主要含对角色层 次的控制和对角色互斥的控制。角色层次是针对角 色的继承来讲的,而角色互斥则是对角色的用户分 配而设。角色互斥是用来实现职责分离的一种有效 途径。用户:U.、U 、U3、…、U 用一种偏序关系而用树来描述,而应该用图。用图 来描述角色之间的依赖关系以及它们之间的独立性 更加接近于实际。本文就这一问题展开讨论,并提 出~种逻辑模型和实现方法。 角色:R.、R2、R3、…、R 权限:OP.、OP2、OP3、…、OP 用户角色集:URi(Ri.、Ri:、RI3、…、Ri ) 1 RBAC概述 1.1 RBAC模型描述 收稿日期:2006—09—12 权限角色集:OP (R..、R R …、R ) 作者简介:段隆振(1961一),男,教授 维普资讯 http://www.cqvip.com ・602- 南昌大学学报(理科版) 2006正 角色用户集:RU,(U..、Ui:、U …、Ui ) 角色权限集:ROP.(0P 0Pi 、OP …、OP ) 定义2 角色互斥:在单位任务运行时,一个用 户不允许拥有两个或两个以上互斥的角色。可描述 如下: 左列的用户的U 和右列集合中的uij等价,角 色Ri和右列集合中的R i等价,权限OPi和右列集 合中的OP i等价。 由于角色控制主要是对角色的层次(即继承关 (V Ri,Ri)R 互斥Ri(j 7(]k)(R;∈URk (Rk1、Rk2、Rk3、…、Rk )(Ri(URk(Rkl、Rk2、Rk3、…、 Rk ) 系)和角色的互斥(即实现职责分离)的控制,我们 互斥控制是为了防止一个用户可以拥有两个或 有必要对角色的继承和互斥作数学上的分析。定义 两个以上在现实世界中不允许的角色,以阻止欺诈 如下: 行为的出现。例如一个企事业中的审核人员和批准 定义1角色继承:只有当角色i完全拥有角色 人员角色,不允许一个用户同时拥有这两个角色。 J的所有权限时才定义为角色继承关系,可描述如 批准人员角色中所具有的批准权限在审核人员角色 下: 中是不允许出现的,同样审核人员的审核权限在批 (V R.,Ri)R 继承Ri(ROPi(OP OP OP|3、 准人员角色中也不允许出现。经过分析我们可以得 …、OP )(ROPi(OPi.、OPi2、OP|3、…、OP. ) 出,互斥是反自反、对称,传递的。 角色的继承是允许某一些角色定义为另一角色 的子角色,通过角色之间的继承关系,间接地拥有其 2 一种描述角色层次关系和互斥关系 子角色所定义的权限。这样可以简化系统管理员的 的逻辑模型 操作,也减少了出错的可能性。例如业务总负责岗 角色之间的逻辑关系是图,我们提出一种类似 可进行所有业务员的工作,则业务总负责岗的权限 于多重邻接表的模型来描述角色之间的继承关系和 完全包含所有业务员的权限,因此业务总负责岗和 互斥关系。 其他业务员之间是继承和被继承的关系。 综合以上定义,给出下面模型:见图2。 系 系 图2角色关系的多重邻接衰的模型 引入类似邻接多重表的结构来规范化角色,对 角色的关系进行描述以及实现相应的控制,为此提 出本逻辑模型的核心部分一角色结构体。 角色结构体(角色代码,角色名称,角色权限 集,角色层次集,角色互斥集) 解释如下:角色数组中储存着所有的角色,每一 个角色对应着一个角色结构体。角色结构体中的角 色层次集和角色互斥集的信息描述着角色之间的层 次关系和互斥关系,见图3。 图3角色结构体模型 维普资讯 http://www.cqvip.com 第6期 段降振等:一种拙述l{l{Ac角色层次关系和互斥天系的模犁及实现 ・603・ 角色1的角色名称为岗 A,它的权限集合为 ROP.(OP 、…、()P ),由于在层次集合中为4,则 Ixl 佗A继承岗 D的所有权限。ROI (OP..、…、 0P )(ROP (OP .、-一、()P ),岗f A币【J岗位(:角 色互斥。 角色2的角色名为岗位B,它的权限集合为 ROP,(OP……、()P ),在层次集合中为1,4,则继承 岗位A和岗位D的所有权限,ROP (OP 一、OP 。。) (ROP.(OP..、…、OP. )(ROP (OP …、()P )由十 岗位集合巾足采取的冗余集合(考虑授权步骤的简 化),则实现时只须将角色1(即岗位A)的所有权限 加入即可,同样岗位B和岗位c角色 斥 角色3的角色名称为岗位C,它的卡义限集合为 ROI, (OP …、OP ),不继承任何其他角色,它. 岗位A,岗他B,岗位D互斥。 角色4的角色名称为岗位D,它的权限集合为 ROP (OP 一、OP 。 ),不继承任何其他角色,它与 岗位c‘ 斥。 角色5的角色名称为岗位E,它的权限集合为 ROP (Ol ……、0 ’ ),不继承仟何其他角色,也不 与任何其他角色 斥,是个独立的角色。 3 角色层次关系和互斥关系的实现 3.1角色的层次关系实现 首先按照岗位职责建立 本的角色,并赋予卡H 应的权限。 增加角色时,如果这个角色是独立的,!JlIJ 接赋 予特定的权限;如果具有继承关系,则只需将下一级 别中的角色;7,-Dn入高级别角色结构休中的角色集合 中即町,操作的 时,自动将下一级别的角色『fI的所 有权限加入高级别角色的权限集合中,再选择高级 别角色所特有的权限即可。 删除角色时,如果浚角色为独立,则直接 角色 表巾删除该角色和 应的结构体;如果具有继乐关 系,则按链丧的操作。分=种情况:1)删除角色为 当前最高角色, 接删除改角色和结构体;2)删除 角色为当前最低级别角色,先轮询角色 将层次集 巾角色号为删除角色号的值清空,阿删除角色【JIJ可; 3)删除角色为继承中的rf1 角色,先找出潋角色的 下一级角色 ‘temp—role, 轮渤角色表,将结卡句体 中层次集中为删除角色号的值改为temp—role的优。 3.2角色的互斥关系实现 角色的互斥火系体现仵角色结构体巾的 斥集 中。我们 样采川1冗余的 斥集合来简化实现瓦斥 的操作 。 斥关系的实现只需在添加 斥角色的同 【IIf 两端互斥角色结构体巾的互斥集中添加对方的 角色号码即可。 根据我们的定义,我们不采Jf_j管理者直接继承 F面各个负责人的角色这种做法,这样可以避免过 多的授权。我们只是将其创建个相对独立的角色, r其特有的权限即可, 在其角色结构中的互斥集 中增加与其相应的互斥角色即可。 赋予同一用户角色时,应检查该用户的角色集 中的q:斥集是否与将要赋予角色的互斥集是l甭有交 集,存在交集则拒绝该操作。 4该模型的一个实例 我们在江西省 疗保险系统中使用这种模型来 描述角色的层次关系和可斥关系,开发环境是Win— dows2000+Oracle9 i。 发工具是Powerbuilder0。 在系统维护子系统中进行RBAC中角色、用户 以及权限的拄制设计。在其他子系统中的主菜单开 始时调用函数米实现对川 的权限控制。 4.1 功能模块 系统维护子系统巾的RBAC模块设计部分为三 项:用户模块、角色模块和权限模块。用户模块中有 川 的添加,删除,和修改功能;角色模块中同样含 有添加角色,删除角色和修改角色项;权限模块为角 色对象进行赋予权限。角色控制函数成为管理角色 的核心。 医疗保险中的普通业务员按. [作范围每人只负 责一个企事业集合(一般是每人负责特定的几个乡 镇 事业),但有医保业务总负责岗角色可以对所 有企事业进行操作。L大J此建立他们之间的继承关 系。 医保业务总负责岗角色和医保管理岗’ 作角色 斥,所以建立他们的 斥_火系。 4.2 相关描述 为简化描述:这里只举例说明。 流稚为: l 务员岗位A对企业集(企业1,企业 2,企业3)进行对 业数据进行十u关的数据处理,行 成数据表后递交给部医保负 岗进行审核。业务员 岗位B对 业集(企业4,企业5, 业6)进行和业 务员岗位A 样的操作,医疗保险负责岗人员将市 核后的数据表递交给医保管理者批准。医保管理者 批准后数据表正式形成生效。我们进行下列设置相 关的角色: 角色1.1\I 务岗位A 权限为:生成数据表, 维普资讯 http://www.cqvip.com 南昌大学学报(理科版) 2006拉 业1,企业2,企业3 存用户与角色及角色与权限之间关系的表。他们之 问的关系很明显,这里不做过多说明。 角色2:业务岗位B 权限为:生成数据表,企 业4,企业5,企业6 角色3:医保业务总负责岗 权限为:生成数据 5 讨 论 该模型的特点:1)对角色的层次概念进行了重 表,审核数据表,企业1,…,企业6 角色4:医保管理者岗 权限为:批准数据表, 企业1,…,企业6 新的认识,增加的冗余权限集合,以简化授权的步骤 操作。2)角色之间的关系从单由偏序的角度(树) 到图的概念的转化,更适合现实世界中的组织关系。 但本模型未对互斥进行深入讨论,对这一方面如何 进行控制还有待于进一步的研究。 分析得出:医保负责岗对业务岗位A和业务岗 位B具有继承的性质,医保管理者和医保业务总负 责岗位之间是互斥关系。 制定如下模型: 操作权限主要针对菜单。我们是这样设置的, 参考文献: [1]David F Ferraiolo,Ravi S Sandu,Serban Gavfila,et a1. Proposed NIST Standard for Role—Based Access Control 利用菜单的TAG属性设值,主菜单和其对应的子菜 单中的TAG用匹配方式来描述。如主菜单中的第 一项为O1,下拉菜单中的第一项为0101,以次类推。 [J].ACM Transactions on Information and Systems Se- curity,2001,3(4):182—186. 对象权限则在每显示记录时调用对象权限函数来进 行。 [2] Ferraiolo D,Cugini J.Role Based Access Control:Fea. tures and Motivations[A].Annual Computer Security Application Conference[c].IEEE Computer Society Press,1995:263—266. 对象权限的实现我们是通过函数,即在每个数 据窗口打开时对用户进行判断他的对象权限范围, 根据结构体中的对象数据进行显示或编辑。 4.3数据库设计 [3] Ravi Sandhu,Venkata Bhamidipati,Qamar Munawer.The ARBAC97 Model for Role Based Administration of Roles 涉及的表有四类,分别是:1)权限表:用来保存 所有的功能菜单的表;2)用户表:用来保存用户信 息的表;3)角色表:用来保存角色信息和被赋予的 权限的表;4)用户一角色和角色一权限表:用来保 [J].ACM Transaction on Information and System Securi— ty,1999,3(1):1 052—1 351. [4] 严悍,张宏,许满武.基于角色访问控制对象建模 及实现[J].计算机学报,2000,23(10):1 064—1 071. A RBA C§Realization Model of Description Roles Hierarchy and Exclusion Relations DUAN Long—zhen,WEN Feng,HUANG Shui—yuan,FENG Yu-hua (College of Information Engineering,Nanchang University,Nanchang 33003 1,China) Abstract:The RBAC role access control was approved gradually by the software industry,this article first had out- lined the present RBAC model,inherited the relations and the incompatible relations to its role had ca ̄ied on the discussion,and proposed one realization model,finally had produced an example. Key words:RBAC;role hierarchy;mutual exclusion of roles