基于RBAC模型车辆管理系统权限管理设计与实现
2012-11-13陈寿文杨颖颖
陈寿文, 杨颖颖
(1.滁州学院 数学科学学院,安徽 滁州239000;2.滁州职业技术学院 基础部,安徽 滁州 239000)
基于RBAC模型车辆管理系统权限管理设计与实现
陈寿文1, 杨颖颖2
(1.滁州学院 数学科学学院,安徽 滁州239000;2.滁州职业技术学院 基础部,安徽 滁州 239000)
从系统开发的角度提出了基于RBAC模型车辆管理系统权限管理的设计与实现关键技术。系统实现中,利用枚举类型实现用户权限编码,通过TreeView控件显示权限树,使用二进制位运算计算用户权限,并借助存储过程转换用户及角色操作规则。这既增强了车辆管理系统的安全性,又为RBAC模型的扩展与应用提供了参考。
RBAC参考模型;权限管理;车辆管理系统
访问控制是针对越权使用资源的防御措施,通过约束合法用户的操作许可,以避免其越权操作,从而提高系统的安全性。随着企业规模以及应用系统的逐渐扩大,系统中的角色、用户、权限的数目都随之增加,传统的访问机制,如DAC[1](Discretionary Access Control,自主访问控制模型)、MAC[2](Mandatory Access Control,强制访问控制模型)已难以满足这种信息化的需求。用户权限控制的核心是授权模型的选择与建立。选择正确的授权模型,就从本质上决定了权限系统的易用性和通用性。目前,比较通用的授权模型是 RBAC[3,4,5](Role -Based Access Control)模型。该模型在中小型系统中已经得到了广泛应用,文[6]将其应用于操作系统中,扩展了用户范围,增强了系统可操作性。文[7]将其应用于高校办公自动化系统中,增强了系统的安全性和稳定性。文[8,9]将其应用在电子政务系统中,提高了管理效率。针对车辆管理系统不同用户操作权限受限需求,将RBAC模型引入该系统中,可增强系统的安全性和通用性。为此,本文提出了基于RBAC模型车辆管理系统权限管理设计与实现。
1 RBAC模型简介
RBAC模型主要由3部分构成,即用户、角色和权限。其中,用户(Users)是指信息系统的合法使用者,包括普通用户和系统管理员;角色(Roles)是指权限的集合,包括普通角色和管理角色,并且这两种角色可以有不同的等级,它对应于组织结构中一定的职能岗位;权限(Permission)是指用户对信息系统的操作功能,包括普通用户权限和管理权限。角色作为用户和权限的中介,通过为用户指定角色,进而为角色分配权限,实现了用户和权限的分离,从而简化了用户权限的管理工作。
更进一步,RBAC模型中,当一个用户被赋予多个角色时,由于不同角色对应的操作权限不同,为了有效地控制角色冲突,R.S.Sandhu[3,4,5]等将会话功能引入 RBAC模型中,提出了RBAC96模型。通过激活某一个会话,使用户只能扮演该激活会话中包含的角色,其他会话所包含的角色暂时禁用,实现了角色冲突的有效控制,模型示意图如图1所示。
图1 RBAC96模型图
2 车辆管理系统角色集对应的操作权限分布
依据实际需求,车辆管理系统支持权限管理、车辆日常管理、用车申请等功能,系统用例图参见图2。由图2可知,该系统用户分为6组,包括系统管理员、普通员工、驾驶员、部门主任、副总经理和总经理。其中,系统权限管理包括3个部分:用户管理、角色管理和各用户操作权限的设置。
角色对应用户群体,不同用户组享有相应操作权限。根据图2所示,该系统对应的角色及其操作权限如表1所示。
表1 各角色对应的操作权限分布
图2 车辆管理系统用例图
3 基于RBAC模型系统权限管理模块设计与实现
3.1 RBAC模型数据库设计
RBAC模型包括用户、角色和操作权限3个构件。就这三者之间的关系来说,通常情况下,根据系统的业务规则,一个角色应被赋予一定的操作权限,不同的角色或不同级别的角色可能拥有相同的操作权限,这就使得角色与权限之间具有多对多的关系。系统的合法用户应被赋予一定的角色,一个用户可以同时被赋予多个角色,不同的用户也可能拥有相同的角色,这使得用户和角色之间也成为多对多的联系,角色等3实体间关系如图3所示。
图3 RBAC模型图角色等实体关系
采用Sql Server 2005管理系统数据库。按照关系模式分解原理,引入TB_UserRole关系以辅助实现角色同权限间的m:n映射。同理,权限同操作间的m:n映射由TB_RoleACtion关系辅助实现,对应的数据库关系图如图4所示。
图4 RBAC模型数据库视图
3.2 系统角色及用户操作规则[10]
就该系统权限管理模块来说,操作权限较稳定。更新TB_Action记录集可实现系统操作权限的添加;同步更新TB_Action记录集和TB_RoleAction中待删除操作对应的记录可实现系统操作权限的删除,本文假定系统操作权限不变动。添加用户时需要为其授予相应角色,删除时需要将该用户对应的权限记录移除;添加角色时需要为其设置操作权限,移除时需要将具有该角色的用户删除。为保持数据库一致性,下面给出这四个操作的具体执行规则。
(1)添加/删除用户。添加系统用户时,需要判定该用户是否已经注册过。若为新用户,则需要为其设置所属角色({user→Φ}),当其拥有多个角色时,可并发向TB_User-Role表添加多条记录。删除用户时,需要将该用户的权限记录移除。
(2)添加/删除角色。为系统添加角色时,需要为待添加角色设置具体操作权限,相应权限用TB_Role表ActionList字段记录。删除角色时,需要删除TB_RoleAction表中拥有该角色的用户记录。
3.3 基于RBAC模型系统权限管理模块的实现
系统开发运行环境为:①Windows XP操作系统;②SQLServer 2005+Visual Studio 2008,采用 Asp.net Web应用程序设计用户界面并实现系统权限管理原型。权限管理实现过程中,通过递归算法构建系统权限树,用户添加、用户操作权限设置等均使用存储过程辅助实现。其中,使用带CheckBox功能的TreeView控件显示权限树状结构。下面结合车辆管理系统来阐述RBAC模型设计中3项关键技术。
图5 添加Data信息流程图
(1)用户及角色操作规则实现[11]。对4.2节中添加用户等4个业务操作均使用存储过程辅助实现,各操作的流程图参见图5-图7。其中,图5为添加用户/角色操作流程。①图5中Data为用户ID(UserID)时,对应的存储过程如表2所示。②图5中Data为角色名(rolename)时,对应的存储过程如表3所示。同时,添加角色时需要为其设置相应操作集合(permission)。③删除用户时,其过程如4.2节所述,对应的操作流程如图6所示。④删除角色时,对应的操作流程如图7所示。
表2 添加用户并为其设置角色对应的存储过程
表3 添加角色对应的存储过程
图6 删除用户操作流程图[]
(2)递归生成权限树12。以 TB_Action表为数据集,通过带CheckBox功能的TreeView控件显示权限树状结构,以便为待添加角色指定操作权限、依据用户权限生成操作导航条,该功能实现过程流程图如图8所示。
图7 删除用户操作流程图
图8 权限树生成流程图
(3)用户操作权限计算[13]。用户操作权限集合的获取是通过检测其所属角色来计算的,这涉及到角色对应权限的编码和解码两个操作。
令:所有操作集合为P={p1,p2,…,pn},Pi={pi1,pi2,…,pim}为角色Ri的操作权限集合,定义枚举类型T={t(pi)|t(pi)=2i,i=1..n},Tk=t(pi)为T中对应操作pi的项,TB_Role表中Ri对应记录的ActionList字段为整数类型(int)。
表4 用户操作权限计算算法
实现角色权限编码和解码时,本文使用.net支持的枚举类型对系统中所有操作编码,利用位与(&)、逻辑相等(==)运算进行解码。在用户登录系统之后,依据其所属角色进行操作权限的解码,从而获取该用户对应的合法操作集合,对应的计算算法如表4所示,其中,T为枚举类型。
4 结论
本文结合系统实际需求,从系统开发的角度,通过对用户权限计算、递归生成权限树和用户及角色操作规则的阐述,给出了基于RBAC模型车辆管理系统权限管理的设计与实现。这既增强了系统的安全性,又为RBAC模型的扩展与应用提供了参考。
[1]R.Sandhu,Q.Munawer.How To Do Discretionary Access Control Using Roles[J].Proceedings of the 3rd ACMWorkshop on Role-Based Access Control,1998:47-54.
[2]Matunda Nyanchama,Sylvia LOsborn.Modeling Mandatory Access Control in Role-Based Security Systems[J].Database Security,1995:129-144.
[3]R.S.Sandhu,E.J.Coyne,H.L.Feinstein,et al.Role-based access control models[J].IEEE Computer,1996,29(2):38-47.
[4]R.S.Sandhu et al.The NIST Model for Role-Based Access Control:Towards A Unified[C].Standard Proceedings of the 5th ACMWorkshop on Role-Based Access Control,2000:47-63.
[5]D.Ferraiolo,R.S.Sandhu et al.Proposed NIST Standard for Role-Based Access Control[J].ACMTrans.on Information and System Security(TISSEC),2001,4(3):224-274.
[6]刘 伟,孙玉芳.基于角色访问控制模型及其在操作系统中的实现[J].计算机科学,2003,30(8):166-168.
[7]揭安全,化志章,薛锦云,等.基于RBAC的高校办公自动化系统 设 计 [J].计 算 机 工 程 与 设 计,2009,30(11):2800-2802.
[8]张晓燕,张素伟.基于RBAC的电子政务权限访问控制模块的设计与实现 [J].计算机工程与设 计,2007,28(3):680-682.
[9]胡 昊,李 茜,刘素红.扩展的RBAC模型在政府机关中的应用[J].计算机工程与设计,2010,31(24):5236-5239.
[10]Serban I Gavrila,John F.Barkley.Formal Specification for Role Based Access Control User/Role and Role/Role Relationship Management[C].Proceedings of the Third ACMWorkshop on Role Based Access Control,1998:81-90.
[11]倪东英,张晓丽.基于RBAC的用户权限管理的设计与实现[J].济南大学学报(自然科学),2010,24(2):167-171.
[12]范明虎,樊红,伍孝金.ASP.net中基于RBAC的通用权限管理系统[J].计算机工程,2010,36(1):143-145.
[13]曾隽芳,温大勇,杨一平.电子政务系统基于角色的权限管理研究[J].计算机工程与应用,2004,40(22):156-160.
Design and Implementation of Rights Management for Vehicle Management System Based on RBAC Model
Chen Shouwen,Yang Yingying
From the perspective of system development,this paper presents some key technology about the design and implementation of rights management for Vehicle Management System based on RBAC Model.In the realization of the system,enumeration type is used to code the user's rights,the Tree-View Control in .net is employed to display rights tree,and user's rights are computed based on Binary bit arithmetic.At last,the paper transforms the former rules about users and roles by utilizing Stored Procedure in database.That enhances the security of Vehicle Management System and provides a reference for the RBAC model's extension and its application.
RBAC reference model;privilege management;vehicle management system
TP311
A
1673-1794(2012)02-0035-04
陈寿文(1979-)男,安徽怀宁人,硕士,讲师,研究领域为数据挖掘、MIS研发等。杨颖颖(1982-)女,安徽濉溪人,硕士,助教。
滁州学院产学研项目(2010kj004Z);滁州学院《软件工程》教学改革类项目(2011jyy018);滁州学院《数据结构》优质课程建设项目
2012-01-22