一种统一用户管理和认证授权方案

2015-12-20 01:10朱志祥梁小江
电子科技 2015年5期
关键词:应用服务单点内存

张 振,朱志祥,梁小江

(1.西安邮电大学通信技术研究所,陕西西安 710061;2.西安未来国际信息股份有限公司研发中心,陕西西安 710065)

传统业务系统中用户信息与业务数据存储在同一数据源,若一个用户同时需要访问多个业务系统,就需要多次进行登录认证,而多个业务系统的登录认证信息可能会有差异,对于用户来说,多次登录认证和多套用户名密码是很不不方便而且繁琐的,同时,对于管理人员来说多个业务系统之间使用不同的用户数据源,易造成用户数据不同步。

一种经过优化的用户管理和认证系统,通过将用户信息从业务系统分离并整合成统一用户管理系统,做到单一的用户数据源,解决了用户信息同步的问题[1];通过实现单点认证,用户只需登录一次,在同一浏览器环境下,进入其他业务系统均无需登录,使得用户访问多个系统更加简单快捷[2]。这种设计提高了管理效率,优化了用户体验,但是当用户访问量很大时,单点认证系统的压力就会很大。用户数据属于结构化的数据,一般都是持久化到关系型数据库中,进行多表关联,在大量用户并发认证并授权时将会出现大量关联查询,数据库承受的读写压力过大[3],这会严重影响整个系统的性能。

针对这些问题提出了一套解决方案,该方案使用单一数据源保证了用户数据一致性,所有应用服务实现单点认证,并通过应用服务自身对用户操作进行权限控制,通过分离业务数据与用户数据,并对用户数据统一管理,在用户管理和认证授权部分结合数据库与内存数据库各自的优点实现用户数据读写分离,提升系统的管理和访问应答性能。

1 系统架构设计

为保证数据的一致性,系统采用单一数据源整合维护用户数据,并实现读写分离,应用服务只维护业务数据,多个应用服务之间实现单点认证,即一次登录便可在任何应用间无登录跳转。该系统主要包括统一用户管理系统、用户数据信息、单点认证系统和应用服务4大部分,如图1所示。其中,用户数据信息部分是本方案的设计重点,将结构化用户数据存储在数据库中,由统一用户管理系统进行维护数据关系,同时将用户数据重组成JSON格式的数据,存入内存数据库中,利用内存数据库读取快速的特点提高单点认证的负载能力和响应速度[4]。

图1 系统整体架构

1.1 统一用户管理系统

统一用户管理系统,包括系统管理和应用服务管理两部分。系统管理集中维护所有用户的基本信息,并对系统本身的用户角色和权限进行控制管理;应用服务管理并对所有应用服务进行注册管理,并对各应用的用户进行角色划分实现应用的权限管理。角色是应用服务不同模块权限的集合,决定了用户对应用服务不同模块的访问控制权限[5]。系统设计如图2所示。

图2 统一用户管理系统

1.2 用户数据信息

用户数据信息主要包括数据库中用户信息的持久化以及适配用户信息到内存数据库。由于用户数据初始化后改动较少,数据写的压力并不大,所以统一用户管理系统直接对数据库进行操作。系统运行过程中伴随着大量的用户数据读取,用户认证需要获取用户的验证信息,认证通过后还需将用户的基本信息和用户的权限通过认证系统下发给业务系统,整个过程中需要对数据库进行多次关联查询,并发量大时给数据库造成较大压力,系统整体性能将会降低。认证授权过程中数据只有读取,这样就可将数据结构重组成业务系统容易获取,且足够轻量以便在网络中传输,选择内存数据库来存储重组后的用户数据,在系统开始时将所有用户信息重组同步到内存数据中,之后针对个别用户的修改可进行单个数据的同步,这样在系统运行过程中,利用内存数据库读写速度快的特点来提高认证授权速度。充分利用数据库和内存数据库的特点,实现数据的读写分离,并提高数据使用的灵活性。

数据库中数据存储在数据表中,主要数据的表为用户、角色、权限,用户与角色多对多关联,角色与权限多对多关联,这样通过角色将用户与权限信息绑定[6],在内存数据库中,数据保存为键值对形式,将用户名作为键值代表一个用户,将用户基本信息,角色信息包括权限信息进行数据重组,封装成轻量级的JSON数据作为值保存在内存数据库中,这样只通过用户名就可直接查询到用户的所有信息[7],有效减少了数据查询的压力。由于内存数据库将数据存储在内存中,数据读取速度很快,系统在用户认证时能够快速读取到数据进行响应,如图3所示。

图3 用户数据信息适配过程

将用户数据重组并存入内存数据库,通过降低数据查询次数来提高数据查询速度,同时利用内存读取快的特点提高数据读取速度,又因为用户数据重组后更加轻量灵活,也给系统的网络传输和数据处理提供了便利。

1.3 单点认证系统

所有应用服务的认证过程统一由单点认证系统承担,用户只需认证一次,就可实现所有应用服务之间无登录自由跳转[8]。单点认证系统从内存数据库中读取用户信息并分发给用户正在访问的应用服务,应用服务获取到单点认证系统反馈的用户信息,就可通过用户权限实现对用户的访问控制,因网络传输过程中涉及关键信息,故采用Https方式进行数据传输[9]。单点认证授权过程如图4所示。

图4 单点认证授权过程

1.4 应用服务

应用服务是本系统的最终业务实体,它只维护自身系统的业务数据,并不持有或维护用户数据,用户只有在单点认证通过后,用户当前访问的应用服务才会获得用户数据,并通过获取到的用户数据对用户进行权限控制,不同角色的用户因为获得的权限不同,所以在同一个应用服务上可进行的操作是不同的[10]。

2 系统实现与测试结果

2.1 系统实现

(1)统一用户管理系统。基于SSH(Struts2,Spring,Hibernate)组合框架编程实现。

(2)用户数据信息。采用MySQL+REDIS实现,数据修改只操作MySQL数据库,REDIS只作为单点认证系统的数据源,只进行从MySQL数据库的同步工作。

(3)单点认证系统。采用开源中央认证服务(Central Authentication Service,CAS)实现,修改源码用户数据认证以及属性返回模块,使支持读取内存数据库并返回信息。

(4)应用服务权限控制。采用开源Apache shiro集成CAS实现,应用服务认证成功后解析CAS分发的用户角色和权限信息,实现对用户的权限控制。

2.2 测试过程

本方案测试重点为用户数据信息部分,同时测试单点认证系统和应用服务信息的权限控制功能能否正常工作。数据读取测试步骤如下:

步骤1 使用MySQL数据库作为统一用户管理系统的数据源,同时作为单点认证系统的认证数据源,从数据库读取100 000条用户数据用时357 s。

步骤2 使用MySQL数据库作为统一用户管理系统的数据源,使用REDIS内存数据库作为单点认证系统的认证数据源,从数据库读取100 000条用户数据用时123 s。

单点认证和授权测试使用了两套不同的内容管理系统,均需登录认证后才能进行操作。认证和授权测试步骤如下:

步骤1 使用管理员用户登录内容管理系统1,登录后再页面显示用户角色信息。登录页面如图5,登录成功页面如图6所示。

图5 单点认证系统界面

图6 内容管理系统管理员页面

步骤2 通过内容管理系统1上的链接进入内容管理系统2,进入页面如图7所示。

图7 内容管理系统2管理员页面

步骤3 退出登录,使用普通用户登录任意一个内容管理系统,登录成功页面如图8所示。

图8 内容管理系统1普通用户界面

2.3 测试结论

(1)使用内存数据库进行优化后,查询数据速度提升了约3倍。

(2)多个应用之间可实现单点认证,能通过返回的JSON数据解析到权限信息,并在系统中正确体现。

3 结束语

用户数据实现了统一管理,利用数据库和内存数据库的优点将数据适配存储,实现用户数据的读写分离,既能保证用户数据的关系映射,又能快速响应各应用服务对用户数据的请求。由于应用服务本身不持有和维护用户信息,实现单点认证同时获取到授权信息,提高了整个系统的易用性和安全性,使得整个系统性能得到大幅提升。

[1]王茜,史晨昱,李安颖,等.基于统一用户管理的办公业务资源系统集成[J].计算机技术与发展,2014,1(1):200-203.

[2]张涛,王秉坤.使用 CAS在Tomcat中实现单点登录[EB/OL].(2008 -4 -10)[2014 -11 -18]http://www.ibm.com/developerworks/cn/opensource/os-cn-cas/.

[3]Russell J T Dyer,李红军,李冬梅.MySQL核心技术手册[M].北京:机械工业出版社,2009.

[4]陆嘉恒.大数据挑战与NoSQL数据库技术[M].北京:电子工业出版社,2013.

[5]张琪.基于角色的权限管理系统的设计与实现[D].成都:电子科技大学,2013.

[6]徐斌,袁健.基于Web2.0的用户权限管理研究与实现[J].计算机工程,2008,34(13):157 -159.

[7]刘国钧.JavaScript核心概念及实践[M].北京:人民邮电出版社,2013.

[8]景民昌,唐弟官.开放源码的CAS单点登录系统研究[J].现代情报,2009,29(3):125 -127.

[9]赵艳芳.基于CAS的统一认证平台的设计与实现[J].云南大学学报:自然科学版,2013,35(S2):165 -168.

[10]黄经赢.基于Shiro框架的细粒度权限控制系统的设计与实现[J].广东技术师范学院学报:自然科学,2013(7):20-23.

猜你喜欢
应用服务单点内存
全球卫星互联网应用服务及我国的发展策略
历元间载波相位差分的GPS/BDS精密单点测速算法
超薄异型坯连铸机非平衡单点浇铸实践与分析
笔记本内存已经在涨价了,但幅度不大,升级扩容无须等待
“春夏秋冬”的内存
国家不动产统一登记信息平台构建与应用服务
数字电视地面传输用单频网与单点发射的效果比较
16吨单点悬挂平衡轴的优化设计
内存搭配DDR4、DDR3L还是DDR3?
全国征集卫星应用服务解决方案