基于扩展RBAC模型的文档管理系统设计与实现
2017-09-04丁源
丁源
(上海市崇明县长兴岛4B军事代表室上海202150)
基于扩展RBAC模型的文档管理系统设计与实现
丁源
(上海市崇明县长兴岛4B军事代表室上海202150)
针对某型装备文档管理系统复杂,合理有效组织人员权限管理和分配困难问题,分析现有RBAC0模型的局限性,论文建立了跨过角色直接面向用户的扩展RBAC模型,设计了文档管理系统中的权限访问控制所需要的相关功能模块。该方法工程易用性和可配置性强,易升级和维护。
基于角色的访问控制;扩展RBAC;文档管理
Class NumberTN957;TP274
1 引言
随着办公自动化程度提高,电子文档越来越多,各种影音、图像等多媒体信息文档大量出现。由于电子文档存储分散,缺乏合理科学的管理,文档使用性和安全性差,因此访问控制策略在文档管理中起着重要的作用,它能够有效防止对任何资源进行未经授权的使用、泄漏、修改、销毁信息及颁发指令等。访问控制策略定义了系统运行期间的授权和非授权行为,即哪些行为是允许发生的,哪些是不允许发生的。一般访问控制策略有三种:自主访问控制(Discretionary Access Control,DAC)、强制访问控制(Mandatory Access Control,MAC)和基于角色的访问控制(Role-Based Access Control, RBAC)[1]。RBAC相对于传统访问控制策略如DAC和MAC来说,RBAC更加多样化、更能有效地满足客户的业务需求。RBAC与传统访问控制策略有所不同,它将角色的概念引入了访问控制的过程,灵活多变的角色使得用户脱离了直接与访问权限的联系,用户通过对角色使用来获取相应的访问权限[2~3]。用户通过模拟现实世界中组织结构的访问控制原则来建立不同拥有不同权限的角色,再将设立的角色授予用户,从而极大地简化了授权的复杂性。
RBAC的概念早在20世纪70年代就已提出,1995年ACM成立了RBAC工作组专门致力于RBAC模型及相关技术研究工作。2000年,由美国国家标准与技术局(National Institute of Standardsand Technology,NIST)的D.F.Ferraiolo,R.Sandhu,S. Gavrila三位作者,整理了过去学术界以及美国国家标准与技术局在RBAC领域的研究成果,提出了RBAC最新的定义与理论模型。基于角色的访问控制是传统的自主性访问控制(DAC)和强制性访问控制(MAC)策略之后一种新的访问控制技术。其通过角色概念来表达访问控制策略的语义结构,角色对应于组织中某一特定职能岗位,代表特定的任务范畴[4]。用户和权限之间通过角色间接发生联系,实现了用户与权限的逻辑分离。这种方式更便于授权管理,角色划分,职责分担,目标分级和实现了最小权限原则。
本项目研发的文档管理系统服务于复杂程度很高的某型装备,该型装备需要很多组织结构和人员来配合完成,因此合理有效组织人员权限管理和分配成为重要问题。针对该问题,分析现有RBAC模型的局限性,扩展RBAC模型跨过角色,直接授权用户,实现文档管理系统职责权限和临时权限的分配,解决文档管理系统复杂的访问控制问题。
2 RBAC模型
NIST标准RBAC模型由四个概念模型组成。它们分别是Core RBAC,Hierarchal RBAC和Con⁃straint RBAC中的两个责任分离部件模型:静态授权约束(SSD)和动态授权约束(DSD)[5]。通过这四个概念模型就可以了解各种RBAC实现所支持的特性。
现在使用比较广泛的有RBAC0、RBAC1、RBAC2三种模型,本文在RBAC0模型基础上扩展。RBAC0是任何支持RBAC系统需要满足的最低要求,它包括用户集合(U)、角色集合(R)、许可权集合(P)和会话集合(S)。用户(U)是系统中的个体用户集,随用户的添加与删除动态变化。角色(R)是系统角色集,由系统管理员定义角色。对象(Obj)是系统中所有受控对象的集合[6~7]。操作(Ops)是系统中所有操作的集合。许可(P)是定义了受控对象与操作的对应关系。PA是P×R表示许可权与角色之间多对多的指派关系。UA是U×R表示用户与角色之间多对多的指派关系。用户是S→U每个会话si到单个用户user(si)的映射函数(常量代表会话的声明周期)。角色是S→2R每个会话si到角色子集roles(si){r|user(si,r‘)∈UA}(能随时间改变)的映射函数,会话(si)是有许可权Ur∈roles(si){p|(p,r’)∈PA}。图1为RBAC0详细模型。
在RBAC0中,用户就是一个可以独立访问计算机系统中的数据或者用数据表示的其他资源的主体。角色是指一个组织或任务中的工作或者位置,它代表了一种权利、资格和责任[8]。许可(特权)就是允许对一个或多个客体执行的操作。一个用户可经授权而拥有多个角色,一个角色可由多个用户构成;每个角色可拥有多种许可,每个许可也可授权给多个不同的角色。每个操作可施加于多个客体(受控对象),每个客体也可以接受多个操作[9]。
3 扩展的RBAC模型
RBAC模型把角色作为访问控制中访问主体和受控对象之间的一座桥梁,将访问权限与角色相联系,并通过为用户指派合适角色的方式为用户授权。通过角色对用户进行授权时RBAC的一个最大优点,但是同时也带来了一个局限性,就是只能为角色授权,不能对用户进行直接二次授权。由于客户业务对象复杂,参与业务的组织机构和用户众多,权限管理中的角色定义十分复杂。在某个用户由于业务需求需要暂时拥有某项文档的知悉权限,而此时现有角色均不合适,如果给该用户所属角色赋予此权限,则必然同样会给赋予该角色的所有用户增加此权限,这显然给不符合访问控制要求。如果再建一个合适的角色,然后赋予该用户,但该用户的此权限是暂时的。当撤销该权限时,还必须删除这个角色的定义,这样又比较繁琐。在这种情况下,将这部分工作的权限被称为临时权限。临时权限是针对单独的用户,而不是针对角色,这种情况则是RBAC模型不能解决的[10]。
通常情况下,用户所具有的权限是不会发生变化的,这种权限是职责权限,此时RBAC模型可以通过角色对用户赋予权限。特殊情况下,本系统就跨过角色,对用户直接授权,这时就必须对原有的RBAC模型进行改进。本系统中对RBAC模型进行了扩展,以达到能够满足对用户进行临时授权的要求。扩展的RBAC模型包括用户集合(U)、角色集合(R)、许可权集合(P)和会话集合(S)。用户(U)是系统中的个体用户集,随用户的添加与删除动态变化。图2为扩展RBAC详细模型。
用户(U):系统中的个体用户集,随用户的添加与删除动态变化。
角色(R):系统角色集,由系统管理员定义角色。
对象(Obj):系统中所有受控对象的集合。
操作(Ops):系统中所有操作的集合。
许可(P):定义了受控对象与操作的对应关系。
PRA:P×R表示许可权与角色之间多对多的指派关系,为用户授予职责权限。
UA:U×R表示用户与角色之间多对多的指派关系。
PUA:U×P表示用户与角色之间多对多的指派关系,为用户授予临时权限。
用户:S→U每个会话si到单个用户user(si)的映射函数(常量代表会话的声明周期)。
角色:S→2R每个会话si到角色子集roles(si){r|user(si,r‘)∈UA}(能随时间改变)的映射函数,会话si有许可权Ur∈roles(si){p|(p,r’)∈PA}。
在扩展的RBAC模型中,对用户的授权被分成PRA和PUA两个部分。PRA实现为用户授予职责权限,由于职责权限相对固定并且可以为其他用户所用,所以职责权限的授予是通过角色完成的。PUA实现为用户授予临时权限,由于临时权限的不固定性和暂时性,所以临时权限是通过对用户直接授权完成的。这样,通过PRA和PUA对用户进行授权,很好解决了职责权限和临时权限的问题,也形成一个完整的用户访问控制策略。
4 扩展的RBAC模型的设计与实现
4.1 总体设计
本项目的文档管理系统采用三层架构,即显示层、控制层、数据层。在访问控制过程中,显示层由责任权限模块、临时权限模块、客户端应用构成,控制层由访问控制模块和策略管理模块构成,数据层存储了策略数据库和业务数据库。图3为访问控制整体设计图。
根据以上访问控制整体设计,给出了一个对文档内容进行访问控制的典型流程。如图4所示。用户提出对访问对象的访问请求,被访问控制实施点截获,访问控制实施点将请求信息和目标信息以决策请求的方式提交给访问控制决策点,访问控制决策点根据相关信息返回决策结果,执行点根据决策结果决定是否执行访问。若允许用户访问资源,则访问控制实施点查询访问者需要的信息,然后再返回给客户端。这个体系结构体现了“安全与应用分离”的思想。具体的应用资源统一受控于安全访问控制系统,实施统一的授权与访问控制管理。其中,访问控制实施点和访问控制决策点不必是分开的。访问控制实施点和访问控制决策点合起来完成了访问控制的功能。典型访问控制流程如图4所示。
4.2 用户管理模块设计与实现
用户管理对用户的个人信息进行管理,用户信息以用户列表的形式进行统一显示,系统管理员可通过用户列表实现对用户信息的快速添加、修改、删除、查看、查询、导入/导出、启用/禁用、解锁。用户管理模块的界面,如图5所示。
4.3 角色管理设计
1)PRA授权管理设计
系统管理员通过PRA授权管理将责任权限分配角色,用户在与角色之间进行关联,实现授权的实际分配。PRA授予用户固定的权限,用户登录系统后,在会话中存储了给用户所有能够使用的权限集合。用户在访问系统应用的时候,会话将用户的请求发送到访问控制模块以角色其访问范围,最后访问控制模块将用户权限范围内的操作授予用户。PRA授权管理模块,如图6所示。
2)PUA授权管理及数据库设计
用户通过PRA授权可以获得PUA的操作权限,获得PUA操作权限的用户自动成为了PUA管理员。对不同的用户组的用户,PUA管理员通过该功能实现为用户授予临时权限、修改临时权限和收回临时权限,以达到对不同用户组授予不同权限的目的。PUA授权管理模块如图7所示。
5 结语
本文主要针对某型装备文档管理系统合理有效组织人员权限管理和分配问题,提出了一种基于扩展RBAC模型。该模型以RBAC0为基础扩展跨过角色,直接授权用户实现文档管理系统职责权限和临时权限的分配,解决文档管理系统复杂的访问控制问题。同时设计了文档管理系统中的权限访问控制所需要的相关功能模块。该文档管理系统可配置性强,升级和维护容易。
[1]范银琛,吴远红,张艳艳.基于工作流的文档管理系统的研究与实现[J].现代计算机,2009(4):116-118.
[2]杨振平,张学平,王伟全.基于RBAC扩展模型的实验室综合管理系统设计与实现[J].海南师范大学学报,2010,23(1):21-24.
[3]杜兴盛.面向计算机网络的物流信息管理系统的权限控制研究[J].物流技术,2012,31(9):402-404.
[4]姚婷,胡业发.制造企业内容管理系统中基于角色和任务访问控制的研究[J].计算机应用研究,2008,25(12):247-249.
[5]杨柳,危韧勇,陈传波.一种扩展型基于角色权限管理模型的研究[J].计算机工程与科学,2006,28(9):126-128.
[6]D.J.Kewley.一种浏览器信息检索注释工具[J].RIAO工程,2000.
[7]Barry E.Fridling,Oliver E.Drummond.代理及语义浏览器[J].IEEE智能系统,2001,16(2):30-37.
[8]安沛,王春玲.OA系统中RBAC扩展模型的研究与实现[J].西安工程大学学报,2015,2:78-83.
[9]何建飞.OA系统中敏感数据安全的研究[D].沈阳:辽宁工程技术大学,2011:31-35.
[10]张靖康,石宇良,王海豹.扩展的RBAC权限管理模型的设计与研究[J].电子设计工程,2013,21(3):50-53.
Design and Implementation of Document Management System Based on Extended Role-Based Access Control Model
DING Yuan
(4B Office of Military Representatives in Chongming Changxing Island,Shanghai202150)
According to the question of certain type equipment document management system complexity and the difficulties of reasonably and effectively organizing the personnel authority and distribution management,the paper analyses the limits of RBAC0 model and builds the extended RBAC model by crossing the roles and facing directly the users.Further,the paper designs the relevant model of authority access control in the document management system.The method is easy to use,configure,update and maintenance.
role-based access control,extend RBAC,document management
TN957;TP274
10.3969/j.issn.1672-9730.2017.08.024
2017年2月10日,
2017年3月28日
丁源,男,助理工程师,研究方向:作战指挥系统。