基于角色的权限管理系统设计与实现

时间:2022-07-25 11:50:28

基于角色的权限管理系统设计与实现

摘要:在权限管理系统中,用户灵活性与系统安全性始终是一对矛盾。如何有效降低系统授权管理的复杂性一直是权限管理系统设计的难点。基于角色的访问控制(RBAC)模型,通过引入角色的概念,采用分层技术,实现用户与权限的逻辑分离。层次RBAC模型的角色分层是权责分割的基础。将权责分割机制应用于权限管理系统的用例设计和访问控制中,给出了该系统中角色管理的具体实现。

关键词:访问控制;RBAC;权责分割;SSD;DSD;权限管理

中图分类号:TP311.52 文献标识码:A 文章编号:1009-3044(2012)33-7918-04

不同于自主或强制访问控制模型,基于角色的访问控制(简称RBAC,下同) 以角色作为中介,系统首先给角色授权,然后将角色分配给用户,角色架起了访问控制中访问主体与客体之间的一座桥梁。之所以不直接将权限授予用户,是因为角色比用户更具稳定性。当因为系统需求对用户进行变更时,只需修改角色与该用户的关联,而不必对角色与访问控制客体之间的关联进行修改,使系统设计的灵活性有所增强。

1 层次RBAC模型

在基于角色的访问控制模型(RBAC)中,通常采用分层技术对角色的职权和责任能力进行描述。通过添加对角色分层的支持,能够提高RBAC的管理效率、明晰角色间的逻辑关系。层次RBAC模型在RBAC角色集定义的基础上,提出了角色层次的概念,并添加了相应的访问控制规范。层次RBAC模型如图1所示。

层次RBAC中包含两类角色分层,常规角色层次和有限角色层次。常规角色层次在角色分层中支持任意偏序关系,可以实现不同角色间的许可集和用户集从属关系的多重继承;有限角色层次强加限制了角色分层系行为,使系统中分层技术被限制在简单的逻辑结构中,有利于增强系统授权的安全性。

2 角色控制的权责分割

权责分割是系统设计中常用的一条安全法则,主要用于加强有利害关系策略的冲突性。该冲突性允许一个用户可以同时获得两个(或以上)的冲突角色,通过角色分层和个性化角色集为高层次的组织安全策略提供约束机制。为了便于权限管理系统的设计,参照RBAC标准的有关内容,我们将权责分割分为两大类:静态权责分割和动态权责分割。

2.1静态权责分割

静态权责分割(SSD)属于静态约束,在角色集定义时就实施访问控制约束。SSD定义了一个包含两个(或以上)角色的集合,为角色集指定限制条件,限制用户指派关系。SSD还通过基数对策略违例做出了规定:如果系统的局部组织中有一个由5个角色组成的角色集,则在授权过程中仅能有不超过4个的用户角色数目。

2.2 动态权责分割

动态权责分割(DSD)属于动态约束,在激活角色时才实施访问控制约束。DSD限制了对用户有效的许可,为每个用户的最小权限提供了不同的扩展支持。我们定义DSD(×N)是动态权责分割中(rs,n)对的集合,其中rs代表角色集,n代表基数。我们认为在任意一个(rs,n)DSD的情况下,不存在用户会话能从rs中同时获得大于等于n的角色个数。该结论证明如下:

设t是rs的一个子集,据上述定义可得到:

SSD能够在用户指派角色时,解决潜在的利害冲突;DSD则是在角色激活时,解决产生的策略冲突。

3 基于角色的访问控制应用

在权限管理系统中,SSD用于用例设计,主要是对访问控制核心角色的定义;DSD用于访问控制,主要是对权限管理核心类的描述。

3.1系统用例设计

在采用RBAC模型的权限管理系统中,角色功能图的用例框图如图2所示。

该用例框图中的角色控制执行者主要有3个:安全管理员、用户和角色领域工程师。角色领域工程师是权限管理系统的核心角色,主要用于描述权限集,实施角色分层和附加约束操作。安全管理员管理负责管理基于角色的权限系统,为用户授权。用户被定义为一个真实的人或者一个外部的系统,他可以通过角色策略,要求系统执行针对某个对象的某种操作。

3.2 访问控制模块

访问控制模块是整个权限管理系统的核心部分,它的主要功能是用来验证用户或其角色是否具有访问权限。对外部系统而言,访问控制模块采用黑盒设计,通过返回值确定允许或拒绝用户的操作申请。此模块的流程图如图3所示,从建立权限与资源的对应关系入手,逐步实现角色实体与权限实体之间调用权限操作,从而建立权限实体与层次结构的关联。

访问控制模块设计中的主要成员类有User、Session、Role、Permission、Constrain、Object,其中Role是核心类用作主要类的连接。

User是一个接口,它包括RBAC 控制模块中不同功能的实现类,每一个User对应一个Session。在用户Logon成功后Session由系统提供,当会话时钟超时系统会要求用户重新进行身份验证。每一个Logon用户可以在自己的Session中激活符合条件的角色,在激活角色之前系统先要调用Constrain检查,确认用户角色之间是否存在冲突。Role类的设计也和Session一样使用了多例设计模式,其目的同样是为了控制被激活角色的数量。

3.3角色管理实现

权限管理系统中的角色管理包括:增加角色、角色管理范围设定、角色变更、角色删除等四部分功能, 角色管理功能可通过点击左边角色管理栏菜单或右键菜单来实现,权限管理系统中角色管理的部分源码如下。

4 结论

在权限管理系统中,角色控制比用户控制具有更好的灵活性,能够有效实现权责分割。基于角色的权限管理系统已经能够很好满足单域环境中的系统授权,针对跨域访问的授权机制和对权责分割理论的优化,是今后进一步工作的重点。

参考文献:

[1] David F,Richard K.Role-Based Access Control [C].Proceedings of 15th National Computer Security Conference,1992:1-11.

[2] 钟华,冯玉琳.扩充角色层次关系模型及其应用[ J] .软件学报,2000,11(6):779-784.

[3] 吕宜洪,宋瀚涛,龚元明.基于RBAC改进模型的角色权限及层次关系分析[J] .北京理工大学学报, 2002,22(5) :611-614.

[4] 余文森,张正秋,章志明,等.基于角色的访问控制模型中私有权限问题的研究[J].计算机应用研究,2004(4):50-51.

[5] 鞠成东,廖明宏.基于RBAC模型的角色权限及层次关系研究[J].哈尔滨工业大学学报,2005,10(4):95-99.

[6] 余文森,张正球.基于角色的访问控制模型中私有权限问题的研究[J].计算机应用研究,2004,21(4):5.

[7] 廖俊国,洪帆,朱贤,等.动态角色转换的关联优化[J].计算机工程与应用,2006(5).

[8] 冯学斌,郑峰,洪帆.IRBAC2000角色转换冲突处理策略[J].计算机工程与科学,2007,29(9):53-55.

上一篇:电脑维护系统的开发 下一篇:企业网络安全管理系统的设计与实现