APP下载

改进的RBAC模型在数字化校园中的应用研究

2013-01-15唐绍华

常州工学院学报 2013年3期
关键词:访问控制文档解析

唐绍华

(湖南工程职业技术学院,湖南 长沙 410151)

0 引言

随着教育信息化的不断深入,数字化校园中出现了许多异源异构的应用系统,通过实施单点登录技术,有效解决了用户在各应用系统间切换时的身份认证问题。由于各应用系统都有自己的一套用户权限管理体系,权限管理员进行权限维护时需进入多个系统,增加了权限管理员的负担,而且不利于统筹规划,因此,寻求一种合适的访问控制方法对数字化校园用户权限进行统一管理及维护尤为重要。

本文提出了一种基于XMLBeans文档的权限管理模型,通过引入XML文件存储用户在系统中的权限集,能改进RBAC模型的用户权限获取流程,提高用户权限访问效率及权限管理员工作效率,实现异源异构系统的统一权限管理。

1 RBAC模型

数字化校园网络系统中,大部分使用了RBAC模型(基于角色的权限访问控制模型),基于角色的访问控制技术,通过引入角色中介,实现了用户与访问许可的逻辑分离,增强了系统安全性,极大地方便了权限管理,在越来越多的系统中得到应用。在基于RBAC的访问控制系统中,用户通过身份有效性验证后,在会话中激活所委派的角色,通过合并角色的权限集来获取用户在系统的权限集,RBAC模型如图1所示。

基于RBAC模型的数字化校园中对用户、角色、应用系统、用户权限用形式化语言描述如下:

图1 RBAC模型

定义1[Users]。是用户的集合,用户是对数字化校园网络应用系统访问的独立主体。包括教师、学生、校外用户。

定义2[Roles]。是角色的集合,角色是数字化校园网组织中的工作职能的语义表达,表示被授予角色的用户的职权和责任。

定义3[Apps]。是客体的集合,客体指数字化校园网中的应用系统资源。

定义4[Permissions]。是权限的集合,权限是用户对应用系统进行访问的许可。

2 改进后的RBAC模型

2.1 模型设计

在RBAC模型的基础上,增加以用户ID命名的XMLBeans文档,对会话期间用户与角色之间的激活关系做了改进,提出了改进的基于角色的访问控制模型XMLBeans-RBAC,如图2所示。

图2 XMLBeans-RBAC模型

XMLBeans-RBAC模型在权限分配上与RBAC模型一致,即权限分配给角色,角色委派给用户。在用户权限的获取方式上,改变了RBAC模型在会话中直接使用多表链接查询合并用户角色权限集的获取方式,采用从用户 ID命名的XML文件中读取的方式,用以保存用户在系统中的静态权限集,其值通过合并用户所委派角色的权限集得到。

2.2 XMLBeans文档结构

权限管理员进行权限管理时,如果改变了用户权限,则在系统访问闲时重新生成受影响用户的XMLBeans文档,用户权限集的XMLBeans文档格式示例如图3所示。

图3 XMLBeans文档结构

XMLBeans文档结构中,节点 user中属性“userid”的属性值为用户账号,节点permission中属性“appid”属性值为应用系统编号,“pid”属性值为用户权限编号。

2.3 权限验证接口

设计了统一的权限验证方法接口,方法描述如下:

public int verifyPrivilege(String xmlPath,String userId,String funtionId,String appId)。

该方法有4个参数,第1个参数是XML文件存放的路径;第2个参数是用户账号,一是作为XML文件名进行文档的读取,二是参数起到验证XMLBeans文档结构节点user中“userid”属性值的作用;第3个参数是系统功能对象编号;第4个参数是系统编号;方法返回值为整型,如果有权访问则返回0,无权限访问则返回1。

3 核心业务逻辑控制类设计

针对本系统的基本情况,通过分析数据对象,抽象设计主要类如下:

1)User Class。用户管理类,统一用户管理接口,提供用户信息管理和密码管理等服务;

2)Role Class。系统用户角色管理,角色是具有相同权限用户的组,是权限分配的单位与载体。权限不会直接分配给特定的用户,用户要拥有对某种资源的权限,必须通过角色去关联。一个用户可以属于多个角色,一个角色可以包括多个用户;

3)Log Class。用户登录日志类,记录用户登录访问应用系统信息;

4)App System Class。管理应用系统记录信息。该类登记了现有的软件服务系统信息,用于对软件服务系统的管理;

5)Permission Class。对用户授权管理。权限是绑定在特定的模块功能实例上的,即权限是角色与软件服务系统功能的关联;

6)Account Class。管理应用系统账号信息。对于已开发的有独立用户管理体系的遗留系统,使用此类来管理统一身份认证系统中用户电子身份与遗留系统的账号关联信息。

7)IRBACImp Class。实现用户权限管理服务接口,完成对用户、角色、用户委派角色、角色授权管理等功能;

8)ISSOImp Class。实现跨域SSO服务接口,完成对用户身份、权限的验证及日志记录等功能。系统使用了UML进行建模,系统中部分数据访问控制、业务逻辑控制类之间的关系如图4所示。

图4 业务逻辑控制类图及其关系

图4中,ISSO为实现跨域单点登录服务接口,SSOImpl单点服务接口实现类;IRBAC为用户授权管理服务接口,RBACImpl为授权管理服务接口实现类;User、Role、Permission分别为用户类、角色类、权限类;使用Account来管理用户电子身份与遗留系统的账号关联信息,使用User-Role类来管理用户所委派的角色信息,使用User-Permission类来管理用户角色所分配的权限信息;各应用系统通过调用服务接口实现用户身份验证及用户权限管理。

4 核心算法设计

用户权限管理服务中更新XMLBeans文档的算法描述如图5所示,权限管理服务程序先读取用户权限发生变更表中标记为未处理状态对应的用户账号,并添加到集合中,然后逐一对集合中用户进行处理,根据用户所委派角色合并权限集并重写相应的XMLBeans文档,同时更新用户变更表中标识状态为已处理。

针对统一认证统一授权的应用系统,用户访问应用系统功能授权控制算法描述如图6所示。应用系统通过调用统一接口,解析用户对应的XMLBeans文档并逐一进行权限功能比较,如果用户有此权限则允许此用户访问,否则返回用户无权访问此功能的提示信息。

算法中,生成用户XMLBeans文档的时间和空间复杂度都占比较大数量级,系统管理员一般选择并发数量较小的时间段来执行此程序,以减轻服务器负担,访问应用系统只需解析XMLBeans文档来获取用户访问权限,相对于RBAC模型减少了合并用户静态权限集所花费的时间,同时减轻了身份认证服务器及数据库服务器负担,提高了权限获取效率。

5 系统实现及关键代码解析

系统实现环境:Pentium(R)4 2.4 GB,2 GB DDR内存,320 GB硬盘,教育网络。软件开发环境:Microsoft Windows XP Professional、J2EE 平台、Tomcat服务器、面向对象的建模语言 UML等。开发工具使用了MyEclipse 6.0.1,选择了Java语言进行开发。为实现应用系统管理员登录系统后实现对系统用户、角色、权限信息的管理与维护,结合SOA架构,设计了权限管理Web Services供应用系统调用,下面对实现该服务的关键代码进行解析。

图5 更新用户静态权限集XMLBeans文档算法

5.1 CreateXmlServlet类解析

CreateXmlServlet类用来实现角色或权限发生变更的用户重新产生静态权限集XMLBeans文档,实现用户权限集的同步更新。在 Create-XmlServlet类中,首先调用AlertDao类中方法查询数据库中用户角色或权限发生变更表中标识为未处理的用户账号,然后依次遍历用户账号,并调用UserPermission对象依次合并用户静态权限集重新生成XMLBeans文档,同时将处理完后的用户标识更新为已处理,实现此流程的关键代码如图7所示。

图6 用户访问应用系统功能控制算法

其中Alert为封装alertuser信息的实体类,AlertDao为实现对alertuser表的操作类,UserPermission为实现用户权限的管理维护类。程序中使用ArrayList对象来暂存数据,doc2XmlFile为创建XML文档的方法。

5.2 XMLBeans文档解析

统一身份认证系统管理员选择适当时间(用户并发数小)调用执行CreateXmlServlet类中程序,来完成合并用户静态权限集,为用户权限或角色发生变更的用户重新生成XMLBeans的文档,如:账号为“200601001”的用户角色发生变更,会重新生成一个文档名为“200601001.XML”的文档,文档访问地址为:http://192.168.1.238:8080/hnyPortalprj/userxml/200601001.xml,文档内容如图8所示。

图7 解析XMLBeans代码

图8 合并用户权限集重新生成的XMLBeans文档结构

其中,userId为用户账号,appid为应用系统编号,pid为应用系统功能编号。数字化校园中各应用系统可调用通用接口对XMLBeans文档进行解析,实现对应用系统资源的访问控制和用户权限的验证。

6 系统运行及测试

测试环境在数字化校园中进行,由多个应用系统组成,这些系统分别部署在不同的应用服务器上,网站门户集中了所有应用系统链接。功能测试结果,本系统能够正确解析XMLBeans文档,并获取用户权限,管理员能进入系统给用户分配角色,授予相关权限。

性能测试是通过LoadRunner测试工具模拟20个并发用户同时登录访问“报到收费系统”,通过解析XMLBeans文档,获取用户权限,实现多个功能操作,最后执行结果,通过交易总数为400,总吞吐量为54 368 610 B,平均吞吐量为22 844 B/s总hits数为920,每秒平均hits数为3.866。

从测试结果可以看出,随着user负载减少,平均事务响应时间图显示性能时间逐渐得到改善,服务器性能(平均响应时间0.485 s)在可以接受的范围内,满足权限获取性能需求。应用系统运行状况良好,能够较好地解析XMLBeans文档进行权限验证,提高了资源访问效率。

7 结语

改进的RBAC模型仍具有传统RBAC模型的权限分配管理的体系结构、灵活性和优势。由于采用XMLBeans文档存储用户权限,可以实现用户权限的系统无关性,降低了模型对应用系统的依赖,增强了权限管理系统的通用性。对于用户权限相对稳定的系统,因其用户权限直接从XMLBeans文档中读取,而不必进行角色权限集的合并运算,在用户权限获取效率上有所改善和提高,适合于实现用户众多、信息客体数量庞大、用户所委派角色繁多、用户权限相对稳定的数字化校园环境下的访问控制。

[1]钟丽丽.基于角色的跨域访问控制模型研究[D].金华:浙江师范大学,2011.

[2]宁运飞.信息系统访问控制模型研究与应用[D].长沙:中南大学,2010.

[3]封孝生,王桢文,黎湘运.P2P中基于信任和属性的访问控制[J].计算机科学,2011,38(2):28-31,41.

[4]池亚平,杨磊,李兆斌.基于平台可信等级的RBAC模型研究与改进[J].计算机工程与设计,2011,32(12):3989-3992.

[5]江南,王士同,贺杨成.关于改进的RBAC模型研究及应用实现[J].微计算机信息,2011(3):169-177.

[6]邓勇,张琳,王汝传,等.网格计算中基于信任度的动态角色访问控制的研究[J].计算机科学,2010,37(1):51-54.

[7]冯俊,王箭.一种基于T-RBAC的访问控制改进模型[J].计算机工程,2012,38(16):138-141.

[8]李寒,郭禾,王宇新,等.用基于RBAC的方法集成遗产系统的访问控制策略[J].计算机科学,2011,38(7):126-129,138.

[9]刘强,王磊,何琳.RBAC模型研究历程中的系列问题分析[J].计算机科学,2012,39(11):13-18.

[10]周彦萍,崔彦军.PMI授权管理系统设计与实现[J].微机发展,2012(1):228-232.

猜你喜欢

访问控制文档解析
浅谈Matlab与Word文档的应用接口
有人一声不吭向你扔了个文档
三角函数解析式中ω的几种求法
睡梦解析仪
电竞初解析
ONVIF的全新主张:一致性及最访问控制的Profile A
对称巧用解析妙解
基于RI码计算的Word复制文档鉴别
动态自适应访问控制模型
浅析云计算环境下等级保护访问控制测评技术