APP下载

一种面向数字化校园的扩展权限控制模型的研究与实现

2014-04-14倩,包

电子测试 2014年8期
关键词:访问控制管理系统数据库

王 倩,包 岩

(1.天津职业大学网络中心,300402;2.天津钢铁集团有限公司炼钢厂检修自动化组,300301)

1 访问控制和RBAC

访问控制是通过某种途径显式的准许或者限制主体对客体访问能力及范围的一种方法,它是针对越权使用系统资源的防御措施,通过显式的访问受保护的资源,防止非法用户的入侵或因为合法用户的不慎操作所造成的破坏,从而保证系统资源受控地、合法的使用。访问控制技术是网络安全防范和信息资源保护的核心策略。

1996 年,美国George Mason 大学的Ravi S.Sandhu 等完整的描述了RBAC 基本框架。该模型包括用户、角色和访问权限3 个实体。其基本思想是在应用系统中定义多种角色,每个角色涵盖一种或者多种对资源的访问权限,代表了用户在系统内可执行的操作集合。单个用户可属于一个或多个角色,若用户要获得对某一类资源的访问授权,先要授权具有访问此类资源的角色。用户与资源之间不建立直接关系,而是通过角色在用户与资源之间建立联系。

标准RBAC 模型由4 个部件模型组成,这4 个部件模型分别是基本模型RBAC0(Core RBAC)、角色分级模型RBAC1(Hierarchal RBAC)、角色限制模型RBAC2(Constraint RBAC)和统一模型RBAC3(Combines RBAC)。RBAC0 模型如图1 所示:

图1 RBAC 0 模型

RBAC0 定义了能构成一个RBAC 控制系统的最小的元 素 集 合。在RBAC 之 中, 包 含 用 户users(USERS)、角 色roles(ROLES)、目标objects(OBS)、操作operations(OPS)、许可权permissions(PRMS)五个基本数据元素,权限被赋予角色,而不是用户,当一个角色被指定给一个用户时,此用户就拥有了该角色所包含的权限。会话sessions 是用户与激活的角色集合之间的映射。RBAC0 与传统访问控制的差别在于增加一层间接性带来了灵活性,RBAC1、RBAC2、RBAC3 都是先后在RBAC0 上的扩展。

RBAC1 引入角色间的继承关系。角色间的继承关系可分为一般继承关系和受限继承关系。RBAC2 模型中添加了责任分离关系,它的约束规定了权限被赋予角色时,或角色被赋予用户时,以及当用户在某一时刻激活一个角色时所应遵循的强制性规则。RBAC3 包含了RBAC1 和RBAC2。既提供了角色间的继承关系,又提供了责任分离关系。建立角色定义表。因为有继承的问题,所以角色体现出的是一个树形结构。

2 RBAC 在数字化校园体系中的应用局限性

数字化校园中包含的业务管理系统包罗万象:既包含面向功能科室类的:科研管理系统、人事管理系统等;还包含面向教学的:教务排课、考务管理系统等;在一定的时期还会有特殊功能系统:迎新管理系统、离校管理系统、奖学金管理系统等。并且随着信息化的发展,新的管理系统还会陆续的加进来。若采用RBAC 的角色控制方式来管理权限,就应该考虑到目前乃至将来的可能会出现的情况,这是不可能做到的。另外,同属于一个角色的用户,其权限也会不同。随着学校人事的变动,用户的权限也同时改变,就要赋予他们新的角色,对于权限控制功能子系统来说,每次都是不小的维护工作量。最后,如果一个系统中定义的角色是特定的,其角色分类不能直接套用到其他管理系统中,也是缺乏通用性,会造成系统及资源的浪费。

3 一种改进的扩展权限模型

考虑到RBAC 模型在数字化校园体系中的局限性,在原权限模型中添加如下功能组合:

1)用户组授权功能

用户组是具有某一类共同特征的若干用户组成的集合,一个用户组可以包含许多不同的用户,一个用户可以分属于多个不同的用户组。将角色权限直接授权给用户组而不是用户,用户继承所在用户组的角色,并且当一个用户同时属于不同的用户组时,它的角色是所属用户组角色的并集。

2)角色类型功能

建立一个角色类型表,每个角色可以归属一个角色类型,方便应用程序的引用。

3)角色优先功能

定义一个优先级别表,给每个角色赋予优先级别。在处理角色的请求时,根据角色的优先级别排入链表里进行处理,链表里的角色请求可以根据优先级别的不同动态调整,系统在处理角色请求时,每次都从队首取一个角色请求,再将队首指针指向下一个角色请求。

4)角色生存周期功能

由于RBAC 是主客体的被动安全模型,在这种模型中授权是静态的,主体一旦拥有某种权限在任务执行完成会继续拥有这种权限,没有考虑到操作的上下文,这显然对系统而言是极大的安全威胁。解决这种漏洞可以指定角色的生存时间,时间可以是用户根据任务来设定的,也可以是根据某个条件来触发决定的。

5)角色根据责任链动态变更权限功能

在一个责任链里,一个客户程序发出请求,这个请求将沿着责任链进行传递,责任链里的每个结点将依次处理该请求,如果结点不能处理该请求,则将此请求转发到责任链的下一结点上;或者是,责任链中的每一个结点都对该请求进行处理。在处理的过程中,角色的权限将根据需求动态变化。

6)角色根据状态动态变更权限功能

在应用系统中可能存在多种状态,比如在一个应用程序中,当用户状态是锁定时,和用户状态在活动时,它的功能是不一样的,那么角色需要根据这种状态的变更而动态变更权限集,以便适应这种应用程序的要求。

7)在功能权限的基础上增加数据权限的管理功能

增加数据权限的管理功能,实现功能权限的数据权限处理。功能权限:用户在系统中能做什么的问题,比如教师添加考生的考试科目,考生的考试成绩,人事处下达考核指标;数据权限:用户在系统下能看到些什么的问题,比如:学生能看到自己的考试成绩,看到自己下学期要学习的课程安排。

4 扩展权限控制模型的研究与实现

图2 权限管理流程图

4.1 设计思路

将权限分为两级,一级为初始登录权限,即用户门户权限;另一级为访问数字化校园各个功能子系统以及在子系统间跳转的用户权限,即用户功能权限。在用户登录数字化校园时,访问控制服务器根据数据库当中存储的权限信息,来决定用户是否能够登录以及合法用户登录后所能够看到的模块和所能够使用的操作。当用户请求某一个权限的时候,访问控制服务器又会根据数据库中的权限信息,检查用户是否具有使用这些资源的权限。如图2 所示:

1)当用户访问一个功能资源时,首先通过权限过滤器,权限过滤器加载该用户所拥有角色的功能权限,然后判断用户是否具有该功能的操作权限,如没有权限,则禁止该访问的请求。

2)当用户拥有功能的操作权限时,如该角色配置了数据权限,则通过API 去调用该用户所归属角色配置的数据权限,根据传递的业务对象名,去加载相关的SQL 表达式。

3)数据权限配置参数将被注入到基本的查询操作中,用户得到的将是被过滤数据后的结果。

4.2 数据库设计

基于角色的权限管理系统传统的方法一般采用最简单的基于角色的权限管理由功能、角色、用户、角色功能授权和用户角色关系五部分组成,为实现数据权限控制,对基于角色的权限管理的数据模型进行了扩充如下图所示:

1)增加数据权限表和数据权限配置表两张表,数据权限表记录系统数据权限,如院系、处室、教师、学生等权限数据;数据权限配置表记录数据权限在不同业务对象上用来控制权限的参数。

2)增加数据权限表,实现数据权限与角色的关联,这样将不同的数据权限配置到不同的角色上。

4.3 实现方法

项目整体采用了Struts2+Spring+Hibernate 的JavaEE 框架结构,将安全性放在了首要位置。其中Struts2 实现从视图层到业务逻辑层的跳转控制、参数传递等,Spring 用来解决对象之间的依赖关系,简化对象的获取,Hibernate 简化数据库的操作,使数据库一致性得到很好的保证。

按照纵向分割的思想,数据接口层用来创建、维护权限控制框架所要用到的数据库表,将所有的数据交互处理都设计为Dao类,实现了模块之间的解耦,更加符合软件开发的原则。

4.3.1 登录实现

登录功能采用HTTP Post 方法向传递LoginAction 类传递用户名和密码参数,覆盖了父类的Execute 方法。方法的具体实现为:新建一个用户实体,将传递来的参数(用户名和密码)传递给新建的实体 UserBean,调用用户数据处理类UserDao 的setUser(UserBean)和getUser()方法返回用户的详细信息。如果不存在该用户名密码对应的用户,则返回为空。如果该用户的信息合法,则返回详细信息后,User 实体置入HttpSession,该用户通过审核。如图4 所示:

4.3.2 权限操作实现

权限操作由于不需要用户直接进行交互,所以权限操作只有对应的实体类和Dao 类,AuthorityBean 实体类中定义了权限实体对应的私有属性和对应的访问和赋值方法,它是针对权限操作的对象。AuthorityDao 类是所有数据库和权限操作的接口,它是对于数据库的增、删、改、查的实现类。

5 结束语

图3 改进的数据库模型图

本文根据数字化校园综合管理系统的访问与权限控制机制的需求,对已有的访问控制模型进行分析研究,在其应用不足之处改进,构建了一个通用的、安全的、完善的、易于管理的、有良好的扩展性和可移植性的权限管理系统,使得系统的权限管理模块真正成为权限控制和安全防护的核心,在系统安全运维过程中发挥着重要的作用。

图4 登录过程流图

[1]沈海波、洪帆.访问控制模型研究综述[J].计算机应用研究,2005,6:9-11

[2]Ravi Sandhu,Edward Coyne,Hal Feinstein,et a1.Role-based access control models[J].IEEE Computer,1996,29(2):38-47.

[3]Ferraiolo D,Sandhu R,Gavrila S,et a1.A proposed standard for role-based access control[J].ACM Transactions on Information and System Security,2001,4(3):224-274.

猜你喜欢

访问控制管理系统数据库
基于James的院内邮件管理系统的实现
基于LED联动显示的违停管理系统
海盾压载水管理系统
数据库
ONVIF的全新主张:一致性及最访问控制的Profile A
动态自适应访问控制模型
数据库
浅析云计算环境下等级保护访问控制测评技术
数据库
大数据平台访问控制方法的设计与实现