物流信息系统中RBAC模型角色继承关系的研究与实现

时间:2022-03-16 08:00:54

物流信息系统中RBAC模型角色继承关系的研究与实现

摘 要:首先对信息系统的访问控制进行简单介绍,着重介绍了基于RBAC权限角色的模型设计思想;并对现有模型提出了自己的改进方法,从角色的继承深度和继承范围这两个方面对模型进行了深入分析,最后完成了模型的系统实现。

关键字:访问控制;继承深度;继承范围

中图分类号:TP393.08 文献标识码:A DOI:10.3969/j.issn.1003-6970.2013.07.006

本文著录格式:[1]栗龙,卢山.物流信息系统rbac模型角色继承关系研究实现[J].软件,2013,34(7):15-18

0 引言

物流信息系统是把众多物流信息结合成一个有机系统,通过各种方式搜集、选择、输入与物流业务相关的各种有效数据,经过有针对性、有目的性的计算机处理,输出对管理工作有用的信息。从某种程度上说,供应链系统中的每个组织利用物流信息系统都是为了一个目的,那就是将企业的各个部门、环节链接成为一个统一的、协同运作的系统集合,实现充分的信息共享。供应链系统中的各个组织能否及时、准确地获取各种有效信息,直接关系到整个供应链效率的提高。当然,这个系统是柔性的、动态的,随时可以依据客户需求的变化进行实时地调整,并以快捷、有效的方式向客户提供其所需的一切产品和服务。

“访问控制(access control)”是一种保护资源免遭未授权访问的安全机制,是安全信息服务的一个重要组成模块。访问控制就是通过对信息系统访问主体授权的形式来显式地准许或者限制其对系统资源的访问范围和访问类型,利用不同资源重要程度的不同,对其赋予不同的操作访问权限,从而对关键资源的访问做出限制,使其不会因为非法用户的入侵或者合法用户的错误操作而造成丢失或者破坏,从而使应用系统中的信息交互一直被控制在合法范围。在基于角色的访问控制模型(role-based access control, RBAC)出现之前,自主访问控制(DAC)和强制访问控制(MAC)[1]已经提出并在诸多应用领域取得了巨大的成功。然而随着计算机网络的快速发展和应用系统规模的不断扩大,这两种传统的访问控制模型已经无法适应新的应用环境:它们都无法提供一种策略中立、具有强扩展性的访问控制框架。

基于角色的访问控制模型(role-based access control, RBAC)是一种被公认为较适合在大型物流信息系统中实施的访问控制技术。Ferraiolo等最早提出了基于角色的访问控制概念[2]。此后,Sandhu等提出的RBAC96模型得到了学术界的广泛认可。RBAC模型在用户和访问权限之间引入角色这一概念,根据安全策略划分角色,为用户指派角色,对每个角色分配操作许可,用户通过角色间接地对信息资源进行访问[3]。

当前,角色访问控制正在信息管理系统中逐渐被推广和应用,构成了信息管理系统安全机制的一个重要的组成部分。如何设计一个构建灵活、操作安全、管理分布的基于角色访问的控制系统,已经成为实现信息管理系统安全机制的一个重要课题。

1 RBAC模型的基本思想

在RBAC0模型中包含了:用户,角色,会话以及资源这四种要素。随着角色要素的提出,用户在每次访问系统时,都建立了一个与系统之间的会话。会话激活了用户的角色子集。一个用户可以拥有一个或多个角色,一个角色可以同时赋予多个用户。类似地,一个角色可以有多个权限,同一个权限可以被指派给多个角色。每个会话把一个用户和可能的许多角色联系起来。一个用户在激发本身所属角色的某些子集时,建立了一个会话。用户可用的权限是当前会话激发的所有角色权限的并集。每个会话和单个用户关联。这个关联在会话的生命期间保持不变。通过获得所属角色的可访问资源,完成系统所允许的工作,任何非角色授权的资源,用户都是无法访问的。[5](如图1)

在RBAC1模型对RBAC0进行了完善和补充,在RBAC0模型的基础上首次提出了角色层次的概念。所谓角色层次,是一种角色间的权限继承关系,即高级角色继承低级角色的权限。不过有时低级角色的某些权限拒绝被高级角色继承,这时就需要把低级角色的这些不能被继承的权限分离出去,而后形成一新的角色。那些可以被高级角色继承的权限叫公有权限,不能被继承的的权限叫私有权限,如图2所示。

RBAC2从另一个方面对RBAC0进行了完善。在RBAC2模型中,提出了约束的概念,约束通常包括:互斥角色、前提角色、基数约束和最小权限等。RBAC2中的约束条件(Constraints)指向UA,PA和会话中的user,role等。在实际的应用环境中,约束条件和实现的方式是各不相同的,必须根据实际情况选取合适的约束条件。

RBAC3模型是对RBAC1和RBAC2模型的集合和延续,他不仅包括角色的层次,还涵盖了约束的概念。RBAC3的实际模型如图3所示。

2 对RBAC模型的改进

现有的RBAC模型,引入了角色继承、角色层次以及约束等内容,形成了一套功能比较完善和便于扩展的权限管理模型,很好的解决了访问控制的问题,但是在使用中,人们逐渐发现他的一些缺点和不足,随着公有权限和私有权限的提出,角色的层次越来越复杂,角色的数目也越来越多,在实际的系统之中,必须耗费大量的人力、物力和财力来管理,降低了RBAC模型的管理优势。

为了解决上述问题,本文从两个不同的方面提出了自己的改进模型。

2.1 角色的继承深度

在角色的继承当中,下级角色的权限可以被上级角色直接继承。比如,角色r1可以直接从他的下属角色r2中继承权限。因此,越高级的角色继承了下属角色越多的资源权限。如此就带来了一系列问题。比如,如何做到某些角色的权限不能被他的上级角色所继承。

基于此,本文提出了权限的继承深度这一概念。所谓权限的继承深度,就是对权限设置一个变量deep,权限每被继承一次,deep就减少1,当deep=0时,表明该权限不能再被继承。也就是变成了传统RBAC模型中的私有权限。(如表1)

2.2 角色的继承范围

所谓角色的继承范围,就是某个角色能拥有的最大直接下级角色数量。本文用scope表示继承范围。当角色的当前直接下级角色数小于scope时,可以指派下级角色给他,反之,则不行。

如图所示,角色S继承自角色T,S的权限包含了继承自T的t1、t2,同时,也有S自己的权限s1、s2,在S继承T这一行为中,T的继承范围(scope)限制了S的数量。即S的集合所含有元素数量必须小于或等于T的继承范围(scope)。

通过设置角色的继承范围,可以控制每个角色所能拥有的直接下级角色数量。从而避免由于角色的继承导致的角色数量呈现几何式增长问题。

3 模型实现

本文的模型应用于一套实际运行的物流信息系统之中,该系统为中石油某公司设计开发,解决了该公司各生产环节的物资调配和相关信息数据的管理问题。系统采用流行的Java EE框架SpringMVC+Spring+Hibernate,并采用了开源的Mysql数据库。

3.1 系统功能模块设计

系统采用本文设计的RBAC改进模型,主要由用户管理模块和角色资源管理模块两部分组成。用户模块涉及用户添加、修改、查询和删除以及用户所属角色分配的功能。角色资源管理模块的功能包括:角色添加、修改、查询和删除功能,以及角色与系统资源的分配管理功能。

3.2 数据库设计

系统相关数据表有用户表、角色表、资源表、用户—角色表和角色—资源表这五张。主要功能介绍:

1.用户表:记录用户信息;

2.角色表:记录角色信息;

3.资源表:记录系统资源信息;

4.用户—角色表:记录用户与角色关联关系;

5.角色—资源表:记录角色与资源的权限关系。

(如图5)

4 结束语

本文在现有RBAC模型中角色私有权限解决方案的基础上,提出了继承深度的概念,使得角色的传播深度可以根据实际情况进行处理,避免了两个存在继承关系的角色之间不必要的层次环节。为了解决角色数量在继承中几何增长的问题,本文又提出了角色的继承范围这一概念,使得角色在继承过程中,可以通过继承范围这一属性来直接控制其下级角色的数量,从而避免角色数量在继承中的过多增长。

参考文献

[1] B Lampson·Protection [J]·In: Proc the 5th Annual Princeton Conf on Information Sciences and Systems·Princeton, New Jer-sey: Princeton University Press, 1974·437-443

[2] R S Sandhu·Lattice-based access control models [J]·IEEE Computer, 1993, 26(11): 9-19

[3] Ferraiolo David, Kuhn Richard. Role-based access controls [A]. Proceedings of 15th NIST-NCSC National Computer Security Conference [C].Baltimore, Maryland:NIST-NCSC,1992. 554-563.

[4] 周文峰,尤军考,何香基.基于RBAC模型的权限管理系统设计与实现.《微计算机信息》(管控一体化).2006

上一篇:湖北省科技厅:让龙头企业舞动高新技术产业链条 下一篇:商界风云 变幻莫测