一种RBAC优化模型在大型煤矿ERP系统中的应用

2013-06-23 09:36刘新强曾兵义
电子设计工程 2013年5期
关键词:访问控制关联资源

刘新强,曾兵义

(1.西安铁路职业技术学院 电子信息系,陕西 西安 710014;2.陕西开拓者软件有限责任公司 陕西 西安 710052)

随着互联网的发展,Internet服务迅速崛起,基于Web的ERP(企业资源计划)系统以其优越的方便性和快捷性掀起了企业信息化的新潮流;另一方面,由于网络信息的共享特性,系统的安全问题变得越来越突出。在ERP综合应用系统中,对用户进行权限划分,形成有效的访问控制,是保证系统安全的重要措施之一。

在企业环境中的访问控制方法,一般有3种[1]:

1)自主型访问控制(DAC):是在确认主体身份的基础上,对访问进行限定的一种控制策略,多用于中小型软件系统,属于较弱的一种访问控制策略。

2)强制型访问控制(MAC):是指系统强制主体服从事先制订的访问控制政策,常用于多层次安全级别的军事软件系统,属于较强的一种访问控制策略。

3)基于角色的访问控制(RBAC):该技术主要研究将用户划分成与其在组织结构体系相一致的角色,这是目前公认的解决大型企业的统一资源访问控制的有效方法。

然而,ERP系统毕竟是企业综合性的信息系统,涉及大量的操作、页面和数据,几乎所有工作人员均是用户,系统的功能和人员的身份也在不断变化,权限管理的任务繁杂而且庞大[2]。基于传统的RBAC模型在ERP权限管理中难以满足轻便、快捷的权限管理性能。本文在研发一个国有大型煤矿ERP系统过程中,通过深入研究RBAC权限策略,提出了基于用户组和权限组的RBAC改进模型,通过扩充用户组、权限组来强化角色的权限分配。

1 RBAC模型设计

1.1 RBAC模型

RBAC控制模型的最小元素集合包括用户users、角色roles、目标objects、操作operations、许可permissions 5个基本数据元素[3]。权限被赋予角色而不是用户,当一个角色被赋予一个用户,该用户就拥有了该角色的所有权限[4],这就简化了对权限分配的管理。如图1所示。

图1 RBAC基本模型Fig.1 Basic model of RBAC

1)用户users:是权限的拥有者或主体,用户和权限通过角色实现分离。

2)角色roles:权限分配的单位与载体,通过继承关系支持分级的权限实现。如:科长角色同时具有科长角色、科内业务人员角色。

3)目标objects:是系统所要保护的资源(Resource),可以被访问的对象。如:网页是资源,网页上的按钮、文本框等也是资源,属于网页节点的子节点。要想访问按钮,必须要能够访问页面。

4)操作operations:完成资源的类别和访问策略之间的绑定,如:浏览、增加、删除、修改、审阅等。

5)权限permissions:对受保护的资源操作的访问许可(Access Permission),是绑定在特定的资源实例上的,不同的资源类别可能采用不同的访问模式(Access Mode)。如:页面具有能打开、不能打开的访问模式,按钮具有可用、不可用的访问模式,文本编辑框具有可编辑、不可编辑的访问模式。同一资源的访问策略可能存在排斥和包含关系,某个数据集的可修改访问模式就包含了可查询访问模式。

1.2 权限分配

在一个组织中,角色是为了完成各种工作而创造的,用户则依据它的责任和资格来被指派相应的角色,用户可以很容易地从一个角色被指派到另一个角色。角色可依据新的需求和系统的合并而赋予新的权限,而权限也可根据需要而从某角色中回收。在图1中,权限的分配是通过2个步骤完成的。即为角色指派权限PA(Permission Assignment)和为用户指派角色UA(Users Assignmen)[5]。

1)分配角色权限PA:为角色指派权限,实现角色和操作之间的关联关系映射。

2)分配用户角色UA:为用户指派角色,实现用户和角色之间的关联关系映射。

该对象模型最终将访问控制模型转化为访问矩阵形式。访问矩阵中的行对应于用户,列对应于操作,每个矩阵元素规定了相应的角色,对应于相应的目标被准予的访问许可、实施行为。

按访问矩阵中的行看,是访问能力表CL(Access Capabilities)的内容;按访问矩阵中的列看,是访问控制表ACL(Access Control Lists)的内容。这种权限机制实质上仍然是一种静态权限,当资源和用户量激增时,访问矩阵的容量就变得很大,维护工作量快速上升。

2 RBAC的优化扩充模型

文中在研发一个大型国有煤矿的ERP系统时,因为资源和用户数据量的急剧增大,用户身份和业务逻辑灵活多变。在设计访问控制模型时,需要强化分层次的RBAC权限模型,本文在传统RBAC模型的基础上,引入用户组和权限组层级,并从这两个侧面来强化基于角色的三级权限机制。

2.1 用户组

在一个大型煤矿企业中,用户权限全部让管理员来一次分配是不现实的,即使要某部门领导人员为其下属的员工逐一分配操作权限,也是非常耗时和繁琐的事情。为了简单快捷的批量指定用户的角色UA,可以将某一类型的人、具有相同特征人组合一起的集合体。通过对组授予角色,快速使某一类人具有相同的权限,来简化对用户授权。用户组的划分,可以按职位、项目或任务来实现[6]。一个用户可以属于某一个组或多个组。

2.2 权限组

常见的资源权限有菜单功能、页面功能和数据表功能。尝试对资源进行分类,进一步进行权限分组。将一个菜单、页面或一个数据表下的所有权限组合一起,形成一个“权限组”,也就是一个模块管理权限,包括所有基本权限操作。如:一个权限组(用户管理),包括用户的浏览、添加、删除、修改、审核等操作,它自身也是一个权限。因为新的RBAC引入了用户组和权限组的层级,本文把该访问模型暂且命名为RBAC-G(Group)模型,如图2所示。用户组的设置,优化了分配用户角色UA的工作;权限组的设置,优化了分配角色权限PA的工作。

图2 RBAC-G扩充模型Fig.2 Extended model of RBAC-G

2.3 动态权限

该模型不存储任何用户权限表,每个用户在每次登录系统时需要进行权限计算。在扩充的RBAC-G模型中,权限的计算不仅依据用户、用户组、角色、权限组、权限等基本信息,而且涉及到这些基本信息的关联信息,如用户角色、用户组角色、角色权限、角色权限组、权限组权限等。计算的结果存放在个人会话Session中,当系统发生变更或重新登录后需要重新计算[7]。对于关键操作的权限,可以要求在每次进行前,再次计算刷新。

因为模型采用基于组的动态权限,当一个用户所在的用户组、拥有的角色、角色所拥有的权限、权限组任一发生变化,该用户的权限都受到影响。如某用户脱离了某个部门或项目,则自动丢弃对应用户组的权利;同样,如果一个权限组的权限减少,同样,拥有该权限组的角色的所有用户均减少该项权限。在RBAC基础上,按照优化扩充的思想对煤矿企业ERP系统设计了新的权限访问控制系统。

3.1 实体关系模型

在ERP系统的关系模型设计时,除了要将RBAC的基本元素设计为表外,还需要增加用户组和权限组的相关表。即用户表、角色表、资源表、操作表、权限表,而权限表实际上是资源表和操作表的组合;另外增加权限组(菜单、页面、数据表)、用户组(部门、项目、任务)等表。根据分析,需要增加以下几个关联表:

1)用户角色关联表:一个用户可以有0~n个角色,一个角色可以0~n个用户。

2)角色权限关联表:一个角色可以有0~n个权限,一个权限可以0~n个角色。

3)用户、用户组关联表:一个用户可以属于0~n个用户组,一个用户组可以0~n个用户。

4)权限、权限组关联表:一个权限可以属于0~n个权限组,一个权限组可以0~n个权限。

经过分析设计,煤矿ERP系统中权限管理的表设计如图3所示。上图中,新增加了4个关联表:即用户-用户组,角色-用户组关联表;权限-权限组,角色-权限组关联表。

图3 基于RBAC-G模型的煤矿ERP权限管理的表设计Fig.3 Table design in a coal mine ERP rights management based on RBAC-G model

3.2 基本元素管理

在该设计模型中,传统的RBAC仍然是基础,基本元素当然需要维护。如:用户、角色、资源、操作、权限等表的增加、删除、修改、查询等功能[8],此外,需要组织以下数据:

用户组信息维护:新增部门、项目、任务等基础数据,设置命名的用户组和用户类型,将对应成员用户,添加到不同的用户组中(添加关联记录)。

权限组信息维护:新增菜单、页面、数据表等基础数据,设置命名的权限组和权限类型,将对应权限,添加到不同的权限组中(添加关联记录)。

3.3 授权管理

1)授权

系统仍可采用用户、角色、权限授权模式,系统兼容了RBAC授权的2个步骤:把一个权限或多个权限授予一个角色,把一个或多个角色授予一个用户。授权用户获得授予角色的所有权利。

RBAC-G模型的授权还增加了2种情况:把一个或多个权限组授予一个角色,把一个或多个角色授予一个用户组。授权用户组中的所有用户,均获得授予角色的所有权限组的所有权限。

当用户的数量非常大时,扩充的授权方式可以极大地提高授权效率。

2)权限计算

每个用户权限的多少,重点体现在6个关联表中:以角色为中心的关联表有:用户-角色表、角色-用户组表、角色-权限表、角色-权限组表;此外还有用户-用户组关联表和权限-权限组关联表。这些表的元素实质上体现了整个ERP系统的权限管理的思想。换句话说,用户的权限就是按照用户标识从上述6个表中计算出来的所有权限数据。

4 结束语

文中在研究RBAC模式的基础上,提出了扩充组功能的动态RBAC-G权限模型,并在国有煤矿的ERP系统中实现了对统一资源的访问控制,优点是:

1)用户组从用户一侧强化了基于角色的权限分配机制,便于对多个用户同时授权;

2)权限组从权限一侧强化了基于角色的权限分配机制,便于将多个权限同时指派;

3)权限关联计算用动态权限代替了权限列表,适应了权限灵活多变的要求。

随着系统的日益庞大,为了方便管理,可引入角色组对角色进行分类管理,与用户组不同的是角色组不参与授权。这个思想只是本文的一个构想,并未进行实践。

[1]王成良,姜黎.B/S应用系统中的细粒度权限管理模型[J].计算机系统应用,2010,19(07):79-82.WANG Cheng-liang,JIANG Li. Fine-grained privilege management model and its application in B/S application system[J].Computer Systerms&Applications,2010,19(7):79-82.

[2]董乐红,耿国华,周明全.一种基于ASP技术的Web MIS权限控制系统的设计[J].计算机工程,2003,29(10):127-128.DONG Le-hong,GENG Guo-hua,ZHOU Ming-quan.Design of web MIS authority control system based on ASP[J].Computer Engineering,2003,29(10):127-129.

[3]Gail J A,Shin M E.Role-based authorization constraints specification using object constraint language[C]//Tenth IEEE International Workshops on Enabling Technologies:Infrastructure for Collaborative Enterprises,2001:157-157.

[4]Ravi S S,Edward J C,Hal L F,et al.Role-based access control models[J].IEEE Computer,1996,29(2):38-47.

[5]ZHANG Long-hua,Gail J A,Bei T C.A rule-based framework for role-based delegation[C]//Proceedings of the 6th ACM Symposium on Access Control Models and Technologies(SACMAT 2001),2001:153-162

[6]周俊.大型信息系统用户权限管理的探讨与实现[J].计算机应用研究,2004,21(12):143-146.ZHOUJun.Discussion and realization of user power management in large information system[J].Application Research of Computers,2004,21(12):143-146.

[7]刘佳,刘洪冰.RBAC访问控制模型的会话优先级扩展[J].计算机应用与软件,2008,25(10):30-37.LIU Jia,LIU Hong-bing.Session priority extension for rolebased access control model[J].Computer Applications and Software,2008,25(10):30-37.

[8]Wampler B E.Java与UML面向对象程序设计[M].王海鹏,译.北京:人民邮电出版社,2002.

猜你喜欢
访问控制关联资源
基础教育资源展示
不惧于新,不困于形——一道函数“关联”题的剖析与拓展
一样的资源,不一样的收获
“一带一路”递进,关联民生更紧
资源回收
奇趣搭配
资源再生 欢迎订阅
智趣
ONVIF的全新主张:一致性及最访问控制的Profile A
动态自适应访问控制模型