基于角和用户组的扩展访问控制模型

基于⾓⾊和⽤户组的扩展访问控制模型
  在信息系统安全机制中,访问控制是⼀项重要机制,有着许多重要应⽤。访问控制或权限管理系统是当前计算机应⽤系统重复开发率最⾼的模块之⼀。在企业中,不同的应⽤系统⼏乎都拥有⼀套独⽴的权限管理系统,不同的权限管理系统在数据存储、权限访问和访问控制机制等⽅⾯都可能不⼀样。近年来,访问控制的研究发展很快,有许多访问控制模型被提出[1~3]。建⽴规范的访问控制模型是实现严格访问控制策略所必需的,因此,访问控制模型的研究具有⼗分重要的现实意义。
  ⽬前, 基于⾓⾊访问控制模型(rolebased access control,RBAC)⼀直是系统安全管理的研究热点,在应⽤系统中也得到了很好的应⽤[4~6]。但是,笔者发现在⽬前⼤多数RBAC的实际应⽤中,属于相同⾓⾊的⽤户对功能对象都具有相同的访问权限,⽽属于同⼀⾓⾊的不同⽤户对数据或资源对象的访问权限却是不同的。其对资源的权限控制往往是根据实际访问控制要求,直接以⽤户为对象授予权限,将⽤户对数据或资源部分的访问权限⽤数据库中的某些业务数据来表⽰。在授权时预先将这些数据⼿⼯从相关业务表中抽取出来,以静态形式存储于资源权限表中,查权时再通过查表⽅法来确定⽤户所拥有的资源权限。但是,由于这些权限数据中包含了⼤量的业务数据,随着⽤户⾓⾊或职能的变动,系统管理员必须⼿⼯更新⼤量对应的权限数据,这样不但增加了他们的⼯作负担⽽且极易造成数据的不⼀致。针对以上问题,本⽂在RBAC基础上加⼊⽤户组,使⽤户的功能和资源权限由⾓⾊和⽤户组共同来确定。
  1 基于⾓⾊的访问控制模型
  传统的访问控制,如⾃主访问控制(discretionary access control)和强制访问控制(mandatory access control)是以⽤户为基本对象授予权限,这使得⼤型复杂系统的授权管理繁杂,且容易出错。随着对多⽤户、多系统的研究不断深⼊,⾓⾊的概念逐渐形成,并逐步产⽣了以⾓⾊为中⼼的访问控制模型,即RBAC。RBAC 包含三个实体,即⽤户(user)、⾓⾊(role)和权限(privilege)。⽤户是对数据对象进⾏操作的主体,可以是⼈、机器⼈和计算机等;权限是对某⼀数据对象可操作的权利。⾓⾊的概念源于实际⼯作中的职务;⼀个具体职务代表了在⼯作中处理某些事务的权利。⾓⾊管理是⼤型数据库管理⽤户的⼀种思想,将这个概念引⼊到授权管理中,则⾓⾊作为中间桥梁将⽤户与权限联系起来。⼀个⾓⾊与权限管理可以看做是该⾓⾊拥有的⼀组权限集合,与⽤户关联⼜可以看做是若⼲具有系统⾝份的⽤户集合。基于⾓⾊的访问控制技术的核⼼思想是将访问权限转换成⾓⾊的权限,通过给⽤户分配不同的⾓⾊,达到赋予⽤户不同权限的⽬的。它需要管理员根据情况创建⾓⾊,然后将有关权限赋予给此⾓⾊,最后将该⾓⾊授予合适的⽤户,这样⽤户就可以获得该⽤户所拥有的权限。
  RBAC模型如图1所⽰。⽤户和⾓⾊的关联表⽰若⼲具有相同⾝份的⽤户拥有的许可集,⼀个⽤户可被赋予若⼲⾓⾊,⼀个⾓⾊也可以被赋予给若⼲个具体⽤户,两者之间是多对多的关系。⾓⾊和权限的关联表⽰⾓⾊拥有的⼀组权限的集合,⼀个⾓⾊可以具有多项权限,⼀项权限也可以被赋予给多个不同的⾓⾊,它们之间也是多对多的关系。RBAC使访问控制适应性更强。管理者可以通过调节⽤户所属的⾓⾊、⾓⾊相关的操作与⾓⾊之间的层次关系,灵活地控制⽤户访问资源的⽅式。⽽且,很容易将⾓
⾊结构与部门内部⽤户结构结合起来,达到简化管理、明确责任的⽬的。从这些特点可以看出,引⼊⾓⾊概念实现了⽤户与权限的逻辑分离,极⼤地⽅便了权限的管理,这也是本⽂选择基于RBAC发展访问控制扩展模型的原因。
  2 引⼊⽤户组后的扩展型访问控制模型(ERBAC)
三聚氰胺模压门板  2.1 ⽤户组定义
  在RBAC的规范中没有提到关于⽤户是如何组织的,为了使系统适合于分散式权限管理,加⼊了⽤户组这⼀概念,它是指⼀⽤户的集合。很多系统在⾏业实际应⽤中,由于⾏业部门机构庞⼤,假如系统不引⼊⽤户组,当为部门内部⽤户授权时就显得⽐较混乱,授权也显得⾮常繁琐。当按树型结构⽅式将⾏业内所涉及的部门按⾏政或其他⾪属关系进⾏组织,授权就会清晰得多。⽽且当某个组的所有⽤户职能相同时,可以创建⼀个组⾓⾊,然后将这个⾓⾊授予整个组,则整个组的⼈员均获得了权限;当改变该组⾓⾊的权限时,整个组的权限也相应地改变了,从⽽⼤⼤简化了授权管理。⽤户是系统中权限控制的访问主体,引⼊⽤户组是⾮常有必要的。
  2.2 ⽤户组与⾓⾊关系
  既然可以直接对⽤户组授权,那么是否⽤户组就可以代替⾓⾊呢?从上⾯的分析可知,当⽤户组内⼈
员职能相同的情况下,⽤户组能够代替⾓⾊,这也是⼈们常把基于⽤户组的访问控制模式看成基于⾓⾊的访问控制模式的原因。但是,同⼀⽤户组内的⽤户有的职能不同,假如以组的授权模式授权,则组内职能不同的⽤户就会越权,整个系统显然是不安全的。再对RBAC中的⾓⾊分析得知,⾓⾊和⽤户组虽有相似之处,却有着根本区别:组是⽤户的集合, ⽽不是权限的集合;⾓⾊作为中介,既是⽤户⼜是权限的集合体。因此,⽤户组是不能代替⾓⾊的。rrggg
  2.3 ERBAC模型
  在⼤型企业系统中,由于⽤户众多、业务对象庞杂,使得⾓⾊的定义在权限管理中⽐较复杂。⽤户的业务需求灵活多变,系统的功能和数据资源可能不断增加或更新,权限也在随之变化;同时,系统⽤户由于⼯作职责的需要,各⾃的权限也可能相应变化。因此,⾓⾊的定义通常随时间和部门的调整发⽣变化;同时,多个⾓⾊的权限往往相互重叠,⽆法区别对数据资源的访问权限。如果仅仅采⽤通过调整⾓⾊的定义来改变授权,则难以满⾜复杂情况变化的需要。在⽬前⼤多数RBAC的实际应⽤中,属于相同⾓⾊的⽤户对功能对象都具有相同的访问权限,⽽属于同⼀⾓⾊的不同⽤户对数据或资源对象的访问权限却是不同的。例如在某管理信息系统中,属于相同⾓⾊但部门不同的⽤户对每个功能模块的菜单、窗⼝和按钮等功能对象的访问操作都是相同的,但其在相同的功能操作界⾯中只能访问属于⾃⼰部门的数据。⽤户对功能对象的访问权限完全可以按照RBAC的⽅法来管理,即管理员根据情况创建⾓⾊,然后将有关功能权限赋予此⾓⾊,最后将该⾓⾊授予合适⽤户,这样⽤户就可以获得该⽤户太阳能电池板制作
所拥有的功能权限。现在的关键是如何灵活地解决⽤户对数据资源对象的个性化访问要求呢?经过观察笔者发现,系统的数据是按部门或⽤户组来组织的,因此可以以⽤户组为单位来分配数据资源权限。本⽂基于这种思想,在RBAC基础上增加⽤户组资源权限赋予,采⽤对⾓⾊和⽤户组混合授权的⽅法,使得权限控制更加灵活和安全。图2是采⽤对⽤户组和⾓⾊混合授权的扩展型基于⾓⾊的权限控制模型(extended rolebased access control,ERBAC)。
硅链  ERBAC模型的描述如下:如果某个⽤户U对某个对象O具有的权限记为P(U,O),则有如下关系:
  P(U,O)=Pr(R(u),OF)∪Pg(G(u),OR)。其中,Pr(R(u),OF)是通过⽤户U所属的⾓⾊R对功能对象OF的权限;Pg(G(u),OR)是通过⽤户所在部门授权所确定的对资源对象OR的权限;P(U,O)是Pr和Pg两者的并集,即⽤户所属⾓⾊对功能对象的权限与⽤户所在部门对资源对象的权限之和。
  ERBAC模型除了RBAC模型的⾓⾊授权外,增加了⽤户组对数据资源进⾏授权。其中,⽤户与⾓⾊、⾓⾊与功能权限以及⽤户组与资源权限之间都是多对多的关系。授权分为功能授权和资源授权两步,⽤户所拥有的权限为⽤户所属⾓⾊的功能权限和⽤户所属部门的资源权限之和。这种采⽤混合授权的⽅法不仅有效解决了⾓⾊定义、⽤户职责、功能和资源等动态变化对系统所带来的问题,更增强了对⽤户授权的灵活性和可维护性。当权限授权后, ⼀个具体的⽤户要求访问系统某模块的功能时,系统同时判断该⽤户所属⾓⾊和⽤户所在⽤户组,同时判断⾓⾊所拥有的功能权限和⽤户组拥有的资源权限,
这样⽤户就可得到⾃⾝全部拥有的功能和资源权限。根据上述授权⽅法和权限访问控制,ERBAC 模型在企业应⽤中占有很⼤优势:
  a)⽤户、⽤户组、⾓⾊以及权限的设置将企业结构和岗位⼈员职责简单地映射到企业应⽤系统中,使得对系统权限部分的设计和应⽤更加直观、灵活,易于管理和维护;
  b)如果企业需求中某⼯作岗位职责变更,⽆须逐⼀更改处于该岗位的所有⼯作⼈员的权限,⽽只需更改执⾏该岗位职责的⾓⾊权限;
  c)若企业某些⽤户的职责发⽣变动,所在⽤户组或部门⽆变动时,只需简单地修改⽤户⾓⾊即可;
  d)当企业某些⽤户进⾏了部门调遣,⽽⽤户的职责没发⽣变动,只需更改⽤户的所属⽤户组,这样⽤户对资源的权限相应地发⽣了改变,⽽⽆须对⽤户进⾏资源的⼀⼀授权;
  e)如果企业某些⽤户的职责与所属部门同时发⽣变动,需要同时修改⽤户⾓⾊和⽤户的所属⽤户组,这样⽤户的功能和资源权限得到了相应的修改。
  ERBAC 模型的这些特点使得系统权限维护相当简单快捷、安全有效,⾮常适合于⼤型企业组织的系统开发。
  3 ERBAC的设计与实现
  3.1 ERBAC基本设计
  ERBAC的基本思想是:⽤户与功能、⽤户与资源不直接发⽣关系,⽽是分别增加⾓⾊和⽤户组,继⽽增加⽤户—⾓⾊关系表和⽤户组—⽤户关系表,使⽤户与功能、⽤户与资源发⽣关系,如图3所⽰。其中,⽤户组通过⽤户组—资源关系表为⽤户组分配资源,⽤户组通过⽤户组—⽤户关系表为⽤户组添加⽤户,⽤户通过⽤户—⾓⾊关系表为⽤户授予⾓⾊,⾓⾊通过⾓⾊—功能关系表为⾓⾊分配功能,这样⽤户与功能、⽤户与资源就产⽣了相应的关系。
  3.2 数据库设计
  根据整个流程可将ERBAC系统分为不同的功能模块,并可将⽤户按部门分为不同权限的访问⽤户。根据上述设计思路,⽤户及权限信息均被保存在系统的数据库九张表中,即⽤户表、⽤户组表、⾓⾊表、功能权限表、资源权限表、⽤户组与资源关系表、⽤户组与⽤户关系表、⽤户与⾓⾊关系表、⾓⾊与功能关系表。各表详细设计及其关系如图4所⽰。
  ERBAC的⽬的是建⽴⽤户与功能和资源之间的对应关系。由图4可知,⽤户与功能、⽤户与资源不直接发⽣关系,⽽是分别增加⾓⾊和⽤户组,继⽽增加⽤户—⾓⾊关系表和⽤户组—⽤户关系表,使⽤户与功能、⽤户与资源发⽣关系。这样处理的好处在于使得⽤户和⾓⾊的增加和维护相对独⽴,不发⽣相互⼲扰,使得数据库的设计变得更加灵活,⽤户和⾓⾊之间也可以建⽴动态的对应关系。⾓⾊与功能
日志审计之间也不直接相关,⽽是通过⾓⾊—功能表发⽣关系,从⽽避免了⾓⾊和功能之间的相互影响,使得⾓⾊与功能之间也形成了动态的对应关系。⽽⽤户—⽤户组—资源之间的设计也是如此,这样更易于数据库的维护。
  3.3 ERBAC的实现
  笔者以Visual C# 2005为开发⼯具,数据库为Oracle 10g,设计实现了某信息管理系统中的访问控制模块,并使⽤模拟数据对本⽂的模型进⾏了实验验证。与⼀般的信息管理系统相⽐,该系统具有组织机构庞⼤、内部⼈员⾏政⾪属等关系复杂、⽤户职责变化频繁、⽤户数量多等特点。本⽂设计的ERBAC模型很好地适应了该信息管理系统的特点,有效解决了⾓⾊定义、⽤户职责、功能和资源等动态变化对系统所带来的问题,增强了对⽤户授权的灵活性和可维护性。访问控制系统在⼀定程度上独⽴于整个信息管理系统,具有很好的可重⽤性。
  在访问控制系统中,由系统管理员动态地对各个⽤户组的⽤户设置不同的访问权限。在打开系统时,⾸先启动⽤户登录界⾯,当输⼊⽤户名和密码后,系统根据存储在数据库中⽤户与⾓⾊关系表、⾓⾊与功能关系表确定哪些页⾯或窗体能够使⽤,对于每⼀窗体的每⼀个按钮,根据⽤户的⾓⾊判断按钮是否可⽤,⽆效的设置为灰⾊;同时根据存储在数据库中⽤户与⽤户组关系表、⽤户组与资源关系表确定哪些资源或数据可以使⽤。其基本流程如图5所⽰。
  4 结束语
  ERBAC模型通过对⽤户和⾓⾊混合授权,有效地弥补了RBAC⾓⾊授权机制的缺陷,符合现代企业组织结构的管理特点,使得整个系统权限管理⽅便灵活、安全有效,在实际应⽤系统的⽤户权限管理中取得了良好的效果。同时,该模型具有很强的通⽤性,可⼴泛应⽤于其他系统权限管理。

本文发布于:2024-09-21 16:39:56,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/99331.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:权限   资源   户组   系统   授权   功能   访问控制
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议