APP下载

基于角色的访问控制模型N—RBAC研究

2017-08-23郑亚涛

东方教育 2017年12期
关键词:角色信息系统

郑亚涛

摘要:本文提出了一种基于RBAC的角色层次控制与用户业务限制混合权限管理模型 ( N-RBAC),既简化了信息系统中对用户授权管理,又使相同角色的用户对相同的功能模块可以有不同的操作限制.

关键词:信息系统;权限管理;角色;基于角色的访问控制;层次控制

1 N-RBAC的基本原理

基于角色的访问控制,就是要在权限与用户之间增加一个角色,以达到安全访问的目的。有以下定义:

定义1 设角色集合R ( r1 ,r2 ,r3…,rn ) 、用户集合U ( u1 ,u2 ,u3…,un ) 、功能集合F ( f 1 ,f 2 ,f3…,f n )及业务集合T ( t1 ,t2 ,t3…,t n ) 構成N-RBAC体系的主体。

角色与用户之间是一个多对多的关系,即:一个角色可以有多个用户,一个用户可以具有多个角色,用户-角色集合UR ( U,R ) 表示。

每一个角色都至少具有一种权限,角色与权限的关系用角色-功能集合RF ( R,F) 表示,角色与用户、角色与权限之间都是多对多的关系。

定义2 一个功能模块的操作对象可以有多个不同的交互 ( Transaction ) ,称该模块具有交互约束,用二元集合FT ( F,T ) 表示。

具有相同角色的用户对具有公共权限的功能。F可操作的业务类可以不同,用用户2业务集合UT ( U,T) 表示,它描述了一个用户可操作哪些业务类。反映了“用户”与“角色”之间个体与整体的区别。当然,也可以赋予u1 、u2 不同的角色,并为他们分别开发不同的操作。但如此一来,角色就失去了意义,这显然不是基于角色访问控制模型的本意,它也就不再是RBAC模型而退化为传统的用户2功能权限控制模型了。

定义3 角色之间存在着层次关系,所谓角色层次控制是指当下级角色被授予某种权限时,它的上级角色自动地获得了相应的权限,称之为影子权限。角色是实际岗位在信息系统中的映射,有着不同的概念。岗位级别高的并不能自动获得低级岗位的权限。而系统中的角色则受层次级别的控制,当角色M或N或L具有某项F的操作权限时,它的上级角色B或上上级A也都获得了对功能F的相同操作权。虽然角色C的级别 ( 与B同级) 也比它们高,但不能享有它们的影子权限。

定义4 用户-功能集合UF ( U,F) 是通过用户-角色集合UR和角色-功能集合RF间接确定的,可以表示为UR与RF的自然连接在用户u和功能f上的投影,用户对功能的业务可以用一个三元组UFT( U,F,T) 来描述,它可以表示为用户2业务集合UT与功能2业务集合FT的自然连接,于是,用户的自有权限可以表示为A ={a|a∈A1 ∨a∈A2 }。其中,A1表示用户对没有业务约束的那些功能的权限;A2表示用户对有业务约束的那些功能的权限,它们是由用户2功能集合UF和三元组UFT共同确定的,即角色的总权限是自有权限与影子权限的并集,即角色总权限的并集 。

2 N-RBAC设计

该体系中有4个实体,分别是角色、用户、功能及业务,它们之间的关系可映射为如下8个基本表:

(1)用户表U ( 用户代码,用户名称,部门,…。)

(2)角色表R ( 角色代码,角色描述,上级角色,角色级别)

(3)功能表F ( 功能代码,功能名称,业务码标识) 。如果指定了业务码表示=‘Y,表示此功能需要检查用户只能操作指定的业务类,如果业务码标识为空,表示此功能不需要检查用户的业务限制。

(4)业务类别表T ( 业务码,业务名称) 。

(5)用户2角色表UR ( 用户代码,角色代码)。每个用户都至少赋与一个角色,但一个用户可以有多个角色,角色与用户之间是多对多关系。

(6)角色2功能表RF ( 角色代码,功能代码,权限类型1,权限类型2)。用以存储各角色可以拥有哪些功能,权限类型1、权限类型2分别表示自有权限和影子权限,它们的取值都为“A” 全权 ) 或“R”只读权) 或空( 无权)。

(7)功能2业务表FT ( 功能代码,业务码 ) 。如果在功能表F中定义的某项功能F1指定了业务码标识,则需要在功能业务表FT中定义该功能F1的业务类。

(8)用户2业务表UT ( 用户代码,业务码 ) 。用户与业务码之间也是多对多关系,表示一个用户可以操作哪些业务类。

由于用户功能是角色功能的子集,所以不需要独立的用户功能表。但为了操作方便,可以建立用户-功能视图UF。CREAT VIEW UF AS SELECT UR.用户代码,RF.功能代码,RF.权限类型1,RF.权限类型2 FROM UR,RF WHERE UR.角色代码=RF.角色代码。当然,视图UF中的记录只表明用户可以操作哪些功能模块,但可以操作这些模块中的哪些业务类还要通过UT表和FT表检查。在这些表中,用户表、角色表、功能表及业务表都只是一些简单的代码表,其维护是很方便的,另外4个交叉表也是不难用程序实现的。

参考文献:

[1]洪帆,邓磊.工作流管理系统中基于角色的访问控制[J].华中科技大学学报(自然科学版),2003(12):1~3

猜你喜欢

角色信息系统
基于信息系统的计量标准管理
基于项目化+翻转的物流信息系统课堂教学设计与实践
信息系统管理在社会中的应用
小议戏曲中角色的发展趋势
《冰雪奇缘》开启迪士尼剧本角色新模式
人力资源开发与智力资本提升的关系探析
普通高等学校思想政治教育辅导员角色问题研究
农民工子女融合教育:教师的角色与使命
教育部办公厅下发关于印发《教育行业信息系统安全等级保护定级工作指南(试行)》的通知
信息系统运行质量评估的研究与实现