王皓宇(胜利油田东辛采油厂,山东 东营 257000)
基于角色的访问控制方法RBAC运用于网络访问控制权限设计,是为了快速设置限制访问主体:如用户、进程、服务等,对访问客体:如文件、系统等的访问权限,而Extjs框架技术中的多级动态树结构结合RBAC,可以实现多级用户角色访问控制权限的高效管理。
企业网络网页访问控制有三类:其中,自主式和强制式二者后台权限维护工作量太大,需要专业人员太多,不便于管理。而以角色为中介,在用户和权限之间进行访问控制的RBAC网页访问控制,特点是在前端的管理中,就可以方便地管理用户、角色和权限;而且系统的角色决定用户能做什么,所以安全性大大提高[1]
ExtJS是一种用于编写程序系统前端页面,而与后面基层无关的Ajax框架[2,是实现树结构的理想选择[3]。采用ExtJS的前端开发技术和SSH框架(Struts+Spring+Hibernate)的后台技术设计[4],可以有效解决前后台管理互相影响的问题,其树结构允许动态管理控制扩展和树节点的异步加载,便于单独修改增删,而不影响系统的其它层。
基于角色的访问控制方法效率高、又安全,但是用传统的编程技术方法实现角色的访问控制树,依然非常复杂,要解决这个问题,需要引入Extjs框架技术,其ExtJS多级动态树结构,实现了权限管理系统,其中功能模块管理以ExtJS页面的树型结构来完成对整个信息平台所需的多级功能模块的动态管理;权限管理属于对多级功能模块的最终子节点的模块动态管理;等级管理功能完成了分配不同等级的用户不同的操作等级;角色功能对指定角色所拥有的等级和权限的分配;用户功能为用户分配指定的角色,实现不同模块的不同操作。权限配置管理是对功能权限、模块、以及模块下功能进行配置,将功能权限、模块分配给角色,使角色下的用户根据职责的不同拥有不同的权限。功能权限是最小粒度的权限,能够控制到web页面中的按键、菜单等页面元素。管理员可以自定义功能权限、定义权限编码。具有新建、编辑、删除功能权限功能。主要功能权限有新编软件分类、编辑软件分类、删除软件分类;新建软件字典、编辑软件字典、删除软件字典;图标管理;新建资源区域、编辑资源区域、删除资源区域;新建主机、编辑主机,不过,无权删除主机。
软件开发平台:系统主体软件框架采用基于J2EE技术成熟的SSH(Spring MVC+Spring+Hibernate)架构。该框架比较实用,前端页面采用EXTJS,经过StrutsSpringHibemate,与数据库DB进行交互,而且互不影响。
程序系统的建立。首先建立权限审批和管理之间的关联结构。设计系统授权审批、用户管理、软件管理三大模块,每个模块的逻辑处理都是日志管理、安全管理和事务管理三项内容。其次,做好用户角色权限数据表之间关系,用户表、角色表、权限表三类数据表中,角色表有联系用户表和权限表的公共字段,便于角色做中介,以有限的权限应对大量不确定的用户,节省系统开销,提高运行速度和用户浏览速度。第三建立程序时,界面表示层、业务逻辑层、数据访问层三者之间可以有效独立,并可互相调用,便于维护,升级,在需求变化时,只需要将其中某一小块修改,而不需要大动干戈,要移植时,只需要在界面添加相应的控件即可,里面的类和实体,业务逻辑,数据访问层都不需要修改。
权限管理系统架构分为3个层次:WEB应用层、业务实现层、数据层。WEB应用层为管理员进行权限管理和配置提供WEB操作页面,主要有用户管理、单位管理、角色管理和权限配置管理,又叫表示层的前台web页面使用Extjs RIA进行前台页面的开发,Struts框架是基于MVC的Web层的应用框架,接受ExtJS页面数据。业务实现层接收来自从web页面提交的管理命令实现权限的配置、授权,以及普通用户在使用某个应用系统时进行权限的定制,如菜单树的显示、页面元素的控制,另外还对用户访问过程中的会话控制。数据层采用Mysql数据库用户保存与权限相关的数据,包括用户表、角色表、功能表、模块表、以及表示模块与功能、功能与角色、用户与角色间的一些关联关系的数据表;数据层的表与业务层实体对象通过ORM方式相对应。
这样,在整套权限系统中,建立系统程序时,界面表示层、业务逻辑层、数据访问层三者之间可以有效独立,并可互相调用,便于维护,升级,在需求变化时,只需要将其中某一小块修改,而不需要大动干戈,要移植时,只需要界面添加相应的控件即可,里面的类和实体,业务逻辑,数据访问层都不需要修改,三层结构高效,简洁,方便,易维护,易修改,因此采用包括表示层,业务层,数据访问层的三层结构模式设计。按照上述相关设计实现的角色权限管理系统,反复修改后运行效果良好,可以推广应用。
根据胜利油田软件查询系统的权限管理需求,结合ExtJS及RBAC、SSH技术,以及系统开发的基本原理,设计并实现了一套权限管理系统。前台应用ExtJS富客户端技术,基于角色权限管理,提高了用户及安全管理,具有较高的可用性和可靠性。本文通过RBAC和Extjs设计权限管理系统的研究和实践,验证了二者结合的方法,具有实用、高效和安全的特性。