欢迎来到学术参考网

国家图书馆统一用户管理系统设计与实现

发布时间:2023-12-08 05:57

  摘要:论文针对国内数字图书馆存在的数字资源利用率低、安全程度不高、网络用户缺乏统一管理等问题,指出了建设国家图书馆统一用户管理系统的必要性,分析了系统的建设思路和功能需求,并着重介绍了系统的三个核心功能模块的实现方法,最后对系统的应用情况和发展方向进行了展望。


  关键词:SAML,统一用户管理系统,数字图书馆


  0、引言


  近年来,我国数字图书馆领域的研究与实践一直在向前稳步推进发展[1],在国家数字图书馆工程[2]、推广工程[3]等重要国家级项目的有力推动,各地数字图书馆陆续启动建设,但还处在由简单应用系统堆积向数字化、智能化信息系统集群转型阶段。系统建设缺乏统一规划,导致管理分散、信息无法共享、系统功能重叠、安全机制缺失等弊端逐渐显现,这些问题的出现不仅使读者的使用体验满意度大打折扣,同时也增加了系统管理员的工作量和工作复杂程度。上述系统管理模式,已经不能满足当下数字图书馆的实际需求,需要从全局的高度对数字图书馆应用系统进行统一规划和建设。


  打破应用系统间管理壁垒的基础是实现用户数据的集中管理和统一认证,将现有复杂、无序、混乱的认证机制改为高效、科学、安全的网络认证机制,将对用户身份的认证功能与分散的应用系统进行剥离,从而达到集中管理、统一认证的目的。单点登录(SingleSign-On)技术作为一种有效的身份认证和授权机制[4-5]便可以实现上述需求,解决图书馆面临的困境。所谓单点登录是指不同应用系统可通过同一个认证中心实现对用户身份的认证和授权,而不再需要分别储存用户信息和实现认证授权功能。从用户角度看则只需拥有一套用户名密码,就可以登录体系内任何一个系统,无需二次登陆。


  1、国内外单点登录技术应用情况


  国外在单点登录方面的研究起步较早,已经发展较为成熟。如微软公司的sport[6],它向用户提供全互联网范围内的身份认证服务。已完成单点登录集成的网站可利用Microsoft提供的信息库,由Passport服务进行用户身份的核验,再将验证结果通过URL重定向返回至用户。在被Passport认证该请求合法后,用户就可访问其他使用Passport作为单点登录服务且共享同个信息库的Web网站。但不足之处是Passport的解决方案具有一定局限性,只支持windows版的操作系统,且只适用于.Net环境下的服务器。Kerberos协议是由麻省理工大学研究建立的一种身份认证机制[7],其机制核心是通过集中式安全信息存储和分布式票据存储来实现对来自不同应用的用户进行合法性认证,它既不依赖用户,也不依赖应用服务。安全性断言标记语言(SAML)[8]是目前国际上单点登录的相关Web服务安全规范,它在面向Web的应用系统间建立了一种统一的、标准的、安全的信息交换渠道,其最重要的优点就是可以让用户的认证信息在互联网中安全移动。它的建立简化了面向Web的应用系统间的单点登录流程,降低了系统架构设计时的复杂程度。


  与国外较为成熟的研究和应用相比,国内在单点登录和用户统一身份认证等领域的研究和应用仍较为滞后,在公共图书馆领域的应用也并不普遍。多数公共图书馆采用限制IP或安装C/S架构的客户端实现身份认证,仅有少数图书馆建立了单点登录系统,且没能形成一个整体、统一、规范、完善的解决方案。如厦门市图书馆采用由广州图创公司设计开发的InterlibSSO统一身份认证系统[9],以厦门市公共图书馆服务联合体为基础平台,将全市市民信息以及自建和外购数字资源统一纳入平台中,实现厦门市范围内的用户统一认证和资源单点登录,用户登录后可在线浏览、下载全文。


  国家图书馆早在2008年便开始将单点登录技术应用于数字图书馆用户的管理与资源服务。同年上线运行的第一代读者管理系统,采用相对简单的认证模式,初步实现了资源的远程访问服务和用户管理;2012年开始对系统整体功能进行升级与改造,采用基于SAML的单点登录模型,设计开发了国家图书馆统一用户管理系统,并正式投入运行。同时在全国范围内开展系统试点,部署推广工作。


  2、国家图书馆统一用户管理系统设计方案


  2.1设计思路


  国家图书馆统一用户管理系统作为国家数字图书馆的配套系统之一,具备互联网注册、实名信息在线验证、用户身份认证、权限控制等多种功能[10]。同时,该系统为推广工程体系内的公共图书馆读者提供跨域认证,以实现馆际间的互联互通。本系统采用B/S结构,以Java语言作为主要开发语言,以Oracle数据库为底层数据库,在系统建设时首要考虑系统及数据的安全性与稳定性,并采用标准化的开发语言和调用接口;通过模块化开发提高系统的灵活性和可伸缩性。


  2.2系统功能需求


  建设国家图书馆统一用户管理系统旨在实现对国家图书馆读者信息的统一管理、统一认证、统一控制,形成一套标准化、可复制的图书馆用户统一管理模式。其主要功能应包括:


  (1)提供标准化用户注册服务。该系统能够汇聚各类型用户信息,实现信息变更、密码修改、账号注销等的全流程化管理。


  (2)提供基于标准化协议的单点登录服务。用户只需进行一次身份认证,即可在有效时间内自由访问不同的外部应用,而无需反复认证。当用户退出或停留在某个外部应用而长时间未操作时,其他外部应用也随之自动退出或给出超时提示。同时,提供相应的接口调用程序,便于外部应用集成。


  (3)对用户权限进行集中管理与控制。系统依据用户属性不同赋予其不同角色,同时,系统将外部应用的访问权限也赋予不同的角色。当用户发起访问请求时,系统会根据所保存的“用户—角色”“角色—应用”的对应关系,给出判断结果,从而起到控制用户访问的作用。


  2.3系统框架及功能描述


  综合以上系统的建设思路和功能需求,确立国家图书馆统一用户管理系统的总体设计架构(如图1)。


  图1国家图书馆统一用户管理系统架构图


  自助服务模块主要提供面向用户的注册、信息查看与修改、密码修改等自助服务。管理中心模块提供面向管理人员的后台管理和数据同步、审计、统计、监控、数据备份、用户状态维护等功能。认证单点服务模块提供完善的统一认证与单点登录机制,支持用户在访问多个接入的应用系统时,只需执行一次界面登录动作。查询服务模块提供包括查询服务、批量用户导入工具、数据采集工具、数据同步服务。


  3、系统核心功能模块实现


  用户信息的汇集与管理、统一身份认证与单点登录、用户访问权限的控制是本系统最为重要和核心的三个功能。


  3.1用户信息的汇集与管理


  国家图书馆统一用户管理系统的用户信息来源分为两类:一是来自于外部应用的推送用户;二是通过系统注册功能的原生用户。


  外部推送用户指那些通过国家图书馆业务集成系统(即Aleph系统)办理读者卡的用户。当Aleph系统中新增用户信息时,会自动将该用户的基本信息,包括读者卡号、身份证号、联系方式、姓名等信息推送至本系统。而当读者卡用户的信息发生变化时,无论读者是在Aleph系统或者本系统修改,均可以进行双向实时同步,进而保证用户信息的唯一性、准确性。原生用户主要是利用本系统提供的统一的用户注册服务进行注册而生成的用户。本系统包括接口调用和页面调用两种注册功能调用模式,外部应用可根据实际需要自由选择。利用此功能,将用户注册的功能从外部应用独立出来,外部应用只需与本系统进行标准化集成,即可实现用户注册,进而一定程度上减少了开发和用户管理成本。而无论用户通过哪个外部应用注册,实际上都是在统一用户管理系统中进行注册,因而仅需注册一次即可,无需在访问每个新的外部应用时再次注册。


  3.2单点登录与统一身份认证


  该模块承担着在用户、外部应用系统之间建立信任关系、提供安全可靠的身份认证的重要作用。其主要实现的目标是:(1)提供用户登录时的身份验证,并返回验证信息和验证结果;(2)提供用户发起应用访问请求时的权限验证,并返回相应的验证结果;(3)提供用户登出时的登录权限注销。


  3.2.1模块设计


  该模块由单点登录功能和统一认证功能两部分组成(如图2所示)。


  图2认证与单点登录模块组成图


  单点登录功能由断言管理、用户状态管理和身份票据管理三部分组成。断言管理负责对底层SAML功能的封装,向单点登录业务逻辑层提供SAML断言请求、断言的生成、发送、解析、附加签名、验证签名等功能。用户状态管理负责维护用户的登录状态,管理用户在登录、访问、登出的生命周期过程中的账户信息、账户管理限制、权限信息、预生成断言、临时管理及有效期。票据管理负责对用户信息进行记录与保存。


  统一认证功能则由实名身份查询、用户身份验证、身份认证三部分组成。其中,实名身份查询是通过与公安部公民身份认证中心的查询系统进行接口开发,双方通过WebService交互,完成对网络注册用户身份的实名认证工作。用户身份验证是提供外部应用依据读者提交的某个用户属性查询验证其正确性的服务;身份认证接口是外部应用在认证用户身份合法性、是否允许其访问时调用的接口服务。


  该模块通过调用底层的SAML应用、安全服务、客户端功能等组件获得基础功能,其本身具有用户会话管理、断言管理、身份权限查询、单点登录模式配置等内部功能子模块;认证服务器通过身份查询组件获取用户的身份信息及权限对应关系,利用WebService引擎与中心节点服务器和异地单点登录服务器进行交互;模块还提供应用集成接口,供外部应用进行集成,从而使外部应用可以在需要调用本系统提供的认证服务。


  3.2.2业务流程


  该模块具体业务流程实现如图3所示。


  图3单点登录与统一认证流程图


  (1)用户通过浏览器访问某个外部应用系统。


  (2)外部应用系统将获取到的用户信息(即用户票据)封装到一个断言中,并将此断言发送至认证与单点登录服务器。


  (3)认证与单点登录服务器获取到该断言请求后,解析断言请求,获取用户票据。同时,根据解析获取到的用户信息进行验证,将验证结果回写至断言中返回外部应用系统。


  (4)外部应用系统根据返回的结果判断用户请求的合法性。如果合法,那么外部应用系统会自动在用户的浏览器端为其打开其所要访问资源;反之,则会根据失败原因,在浏览器端提示用户从新开启访问流程。


  3.3用户访问权限的控制


  用户权限控制是对本系统中所有用户提供外部应用访问权限的初级控制,即用户是否有访问该应用的权限,但对于外部应用内部的细颗粒权限则不属于本系统的权限控制范围内。根据国家图书馆用户多、资源数量多、资源类型多、权限分配方式多样的实际特点,本系统采用RBAC访问控制模型[11],即将角色、用户、资源三者建立对应关系。具体授权方式如图4所示。其中,用户1可以访问数据库1和数据库n;用户2可以访问数据库1、数据库2以及数据库n。


  图4访问权限授权


  在本系统中,每个用户都被赋予一个相应的角色,管理员通过后台配置将不同的外部应用访问权限赋予对应的角色,继而使该角色下的用户也获得访问该应用的权限。此外,不仅可以为角色赋予权限,系统还可以直接为某个确定用户分配权限,提高管理的实用性。当外部应用向本系统提出认证请求时,系统会根据数据库中保存的角色与资源数据库的对应关系,实时给出判断结果,从而起到控制用户访问权限的效果。


  4、结语


  目前,国家图书馆统一用户管理系统已正式投入运行,并取得了良好的效果,系统用户数突破400万,月增长量保持在万级水平。同时,借助推广工程的有利平台,逐步加大系统的推广部署范围,截至“十二五”末,统一用户管理系统已在全国57家省、市图书馆完成软件部署应用[12],为一些技术、资金相对匮乏的地区,建立了较为实用、安全性较高的用户管理系统。


  国家图书馆统一用户管理系统的建设一方面提升国家图书馆用户的数量和管理效率,另一方面也为推广工程其他相关配套系统的实施与应用奠定了良好的用户基础,打通了馆际间的用户壁垒。下一步,将结合“云”技术、大数据分析、移动互联网等前沿技术手段,进一步完善系统功能,全面支持移动多媒体需求,加强推广宣传力度,逐步形成一个中心、多个分点的覆盖全国的用户管理体系。


上一篇:公共图书馆阅读推广的策略分析

下一篇:21世纪初年的“图书馆权利”研究与传播