基于RBAC的权限管理系统设计

时间:2022-06-17 06:26:34

基于RBAC的权限管理系统设计

摘要:权限管理系统是应用系统中不可缺少的一个部分,构建一个通用的、安全的、易于管理的权限管理系统,是十分必要的。本文论述了一种基于.NET Framework 2.0架构的多层次结构,它是一个基于RBAC模型的权限管理系统,但对RBAC模型进行了相应的改进,更加符合现实的需求。

关键词:RBAC;权限管理;角色;访问控制

中图分类号:TP311.52 文献标识码:A 文章编号:1007—9599 (2012) 14—0000—02

一、引言

权限管理系统是应用系统中不可缺少的一部分,因此,构建一个健壮的权限管理系统,以确保系统的安全性是不容忽视的问题。同时,权限管理系统模块的重复开发率很高,一般情况下,不同的应用系统都拥有一套自己的权限管理系统。这样,各套权限管理系统在数据存储、权限访问和权限控制机制等方面都只能满足自身的权限管理需要。但是,不同的系统都可能涉及到相同的权限需求,例如用户对资源的访问权限以及对资源进行操作的权限等。因此,构建出一个通用、安全、易于管理的、有良好可扩展性的权限管理系统,是十分紧迫的任务。

本文论述了一种基于角色的访问控制(Role—Based Access Control)的权限管理系统模型,系统采用基于.NET Framework 2.0架构的多层架构,并讨论了应用系统如何实现权限的访问和控制。

二、基于角色的访问控制——RBAC

基于角色的访问控制RBAC(Role—Based Access Control)是美国NIST(National Institute of Standards and Technology)于20世纪90年代初提出的一种新的访问控制技术。传统的自主访问控制和强访问控制,都是将用户于权限直接联系在一起,而在基于角色的访问控制中,引入了角色这一概念,实现了逻辑上对用户与权限的分离,从而降低了管理开销,减小了授权管理的复杂性,并增加了系统的灵活性。

(一) RBAC基本概念

基本的RBAC有五个基本的数据元素:用户users、角色roles、目标objects、操作operations、许可权permissions。它们之间的关系如下:用户被分配一定角色,角色被分配一定许可权,当某个角色被指定给某个用户时,该用户就拥有了此角色包含的所有权限。用户与激活的角色集合之间的映射称为会话(sessions),用户在一次会话中激活所属角色的一个子集,获得一组许可权,对目标进行操作。

(二)扩展的RBAC模型

在现实情况中,不同职位的人员、不同部门的人员都具有不同的权限;系统管理员可以操作所有的数据,部门用户只能操作自己所在的、或者是自己所管辖的几个部门内的数据;此外,不同的人员即使操作同样的功能,由于所在的部门不同其拥有的权限也不相同。总之,系统中可能有很多的角色,这样系统也会因此变得非常的复杂。

根据上述的实际需求,我们改进了RBAC基本模型,引入了部门这一对象,将角色和部门组合成功能,再通过用户和角色、用户和部门的关系,抽象出用户与功能的关系。这样,权限的管理就划分成了部门级的权限管理。即在一定的服务、数据共享的前提下,允许一个高级别的用户访问和操作低级别部门的数据,但不允许一个部门的用户访问和操作另外一个同级别或更高级别的部门数据。当用户—角色—功能授权与部门—功能授权两条路径发生重叠时,系统将按照取并集的规则进行管理,使之更有效地实现访问控制的功能,提升系统的安全性能。

扩展的RBAC模型如图1。

三、整体结构设计

整体结构采用了.NET Framework 2.0的架构。 .NET Framework 2.0采用了先进的软件体系架构集成思想和多层分布式的应用模型,它基于组件并且能重用组件,能统一完全模型、灵活的事务处理控制。在需要的时候,可以无缝连接Windows Server 2003的Active Directory,从而通过Active Directory直接管理用户的帐户。整体结构的设计在逻辑上可分为以下四层。

(1)表现层:进行人机交互。可使用户通过web浏览器访问,用户所做的各种输入及后台返回的所有信息都通过表现层呈现给用户。表现层可通过的Web Forms来实现。

(2)业务层:主要负责提供业务服务,集中了系统业务处理,包括业务数据和业务逻辑。

(3)数据访问层:对数据的访问和处理在该层中进行,如数据的查找、增加、修改和删除等。

(4)数据层:对数据的存储、组织和管理在该层中进行。可用SQL Server 2000或SQL Server 2005 来实现。整体结构设计图如图2。

四、基于RBAC的权限管理系统设计

(一)功能模块的设计

主要设计为4个功能模块,各模块的说明如下:

1.身份认证模块。用户身份的识别和认证,用于识别访问者的身份,采用密码机制,用户可以登录系统,只有当他/她可以输入正确的密码、用户名和验证码时才能登陆。验证码是系统程序自动生成一个图片混合的随机字母和数字的字符串,用户通过视觉识别,输入验证码,系统验证成功后方能进入系统。在另一方面,通过用户表中的唯一标识符——用户ID,来确定每个用户的合法配置。

2.用户管理模块。包括用户的增加、删除、更改,用户的注册,登录,密码修改,密码找回,用户信息获取,以及当前用户状态获取,帐号的启用和停止等。

3.角色管理模块。对角色的添加、删除、修改等进行操作。

4.访问控制接口。在用户界面,监察授权和控制访问的范围是非常重要的。其过程为:用户登陆系统,建立了一个会话,并在会话中激活他被授权的角色的一个子集,用户获得与他在会话激活的角色相关联的所有权限。图3说明了授权处理的流程。

(二)核心对象模型设计

依据RBAC扩展模型的原理,建立权限管理实体关系模型图,模型如图4。通过以上的对应关系,可找到一个用户到权限的映射,从而达到访问控制的目的。

(三)数据库设计

权限管理涉及的表有八类,说明如下:

1.用户信息表:主要是描述用户信息,随用户的添加与删除动态变化;

2.部门信息表:定义部门及其属性,随用户的添加与删除动态变化;

3.角色信息表:定义、存储系统角色的角色集,随角色的添加与删除动态变化;

4.模块表:系统的栏目;

5.功能表:系统的功能实体;

6.人员角色表:角色与用户间的关系;

7.角色部门表:角色与部门间的关系。

8.角色功能表:角色拥有的功能;

五、结束语

本文论述了一种基于RBAC模型的权限管理系统的设计方案,并结合实际对RBAC模型进行了相应的改进,更加符合现实的需求。改进的RBAC权限管理系统,在权限配置的灵活性、安全性和稳定性方面均有所提高。权限控制模块的重用性好,可以方便地再其它系统中使用。模型的可扩展性强,可将新功能集成到权限控制系统,也便于维护。但是该系统对角色、功能的继承和职责分离等方面未做系统的研究,还有待加强。

参考文献:

[1]王纯,龚向阳.信息安全原理与应用[M].清华大学出版社,2003,7

[2]洪帆.访问控制概论[M].华中科技大学出版社,2010,8

[3]宁葵.访问控制安全技术及应用[M].电子工业出版社,2005,10

[4]陈继南,姜莹,孔祥荣.基于角色的Web信息系统权限管理方法[J].武汉理工大学学报.信息与管理工程版,2008,30(2):265—268

上一篇:黑莓帝国残阳 下一篇:每月小抄 第10期