文献共享平台中统一认证技术研究与实现

2018-12-20 08:31王强
软件 2018年11期
关键词:单点代理统一

王强



文献共享平台中统一认证技术研究与实现

王强

(天津市科学技术信息研究所 科技信息中心,天津 300074)

针对文献资源共享过程中出现的多点登录问题,首次提出利用反向代理技术实现统一认证。通过搭建代理服务器,对所有文献资源的URL地址进行代理转换,实现了对文献资源的代理访问, 避免了传统统一认证系统的跨域问题。通过特殊URL参数完成文献资源自动登录,实现单点登录。对每次访问进行身份鉴定,禁止非授权访问,解决了代理服务的身份认证问题,最终实现了一种基于反向代理技术的统一认证系统。系统不需要对文献资源进行改造即可实现统一认证,解决了多点登录问题。

统一认证;单点登录;文献共享;反向代理

0 引言

文献资源共享是文献共享平台的核心功能,但一直面临着一个问题,如何安全高效的共享文献资源。传统的方法是用户登录平台后再分别登录各个文献资源系统。这样会产生三个问题:(1)平台管理员需要为用户在不同资源系统里设置账号和密码,工作量巨大且容易出错;(2)如果为了减少工作量,设置了简单或重复的账户名密码,用户信息极易泄露,资源系统存在安全隐患[1];(3)用户需要多点登录,使用不方便。因此,问题的关键是单点登录。

1 相关工作

单点登录,指的是用户只需要主动进行一次身份认证,就可以访问权限范围内的所有应用系统,无须重复认证,即“一处登录,多处访问”[1]。目前对单点登录的研究主要集中在基于票据的CAS(Central Authentication Service)协议[2]、基于XML(Extensible Markup Language,可扩展标记语言)的SAML(Security Assertion Markup Language,安全断言标记语言)标准、基于Cookie的解决方案以及OpenID和OAuth2.0。CAS协议的基础思想是通过唯一的身份票据来获取对应不同服务使用请求的服务票据.通过服务票据来访问服务[3]。文献[3-4]研究了CAS单点登录系统的设计与实现,并分别针对CAS的权限控制和单点退出缺陷进行了改进。SAML利用断言机制实现跨平台的认证和授权,身份提供者提供断言确定用户身份,服务提供者利用断言控制用户的访问权限,文献[5]提出了一种基于SAML的Web服务单点登录模型,并给出了具体实现。文献[6]则针对SAML的不足,在站群方面对SAML进行了改进。基于Cookie的解决方案主要是利用Cookie和URL重定向机制完成用户身份信息的共享与传递,实现单点登录。文献[7-8]研究了基于Cookie的单点登录实现,文献[7]针对跨域问题提出了一种基于Cookie冗余技术的单点登录方案。文献[8]在此基础上利用加密机制提出了一种可变Cookie的单点登录方案。文献[9]分析总结了当前在Web应用中热门的单点登录系统的各种实现策略,并针对基于Web请求代理的实现策略给出了一个简单的系统实现。文献[10]利用OpenID和OAuth2.0技术实现了用户身份信息在互联网上的安全共享。。在信息资源共享方面;文献[11]研究了以信息资源整合方式进行资源共享的平台的设计与开发,文献[12]主要研究以接口方式对不同子系统的科技信息资源进行共享。文献[13-15]研究了统一认证在图书馆各业务系统之间的应用,但对文献共享平台与外购文献资源的统一认证研究较少。综合来说,目前国内对Web系统单点登录问题的研究主要集中在如何设计和实现单点登录系统,但对遗留Web系统的单点登录问题研究较少,对文献共享平台与外购文献资源的单点登录问题的研究更是少之又少。

2 基于反向代理的统一认证系统

目前主流的单点登录的核心策略就是统一认证,基本思想是建立统一的认证服务来代理所有的应用系统的Web请求,由认证服务统一处理用户的登录请求,避免多点登录。当用户访问应用系统时,Web请求将先传入认证服务,用户完成认证后再将请求以及用户信息一并转发给应用系统。除了认证服务外,需要对每个应用系统开发一个Web请求过滤器,拦截所有的请求,确保用户访问的所有请求都会先被认证服务所处理。文献[9]详细阐述了这类系统的实现原理与过程。而在文献资源共享中,除了自建的资源库,各个应用系统都属于外购资源库,通常无法进行二次定制开发,所以无法直接应用主流的单点登录方案。针对这个问题,本文提出一种基于反向代理的统一认证系统,这种认证系统较好的解决文献共享平台中的统一认证问题。

2.1 反向代理技术

2.2 基于反向代理的统一认证系统

反向代理技术不仅仅可以代理内网服务器,也可以代理外网服务器,实际上只要可以被访问的服务器都可以被反向代理服务器代理,所有对被代理服务器的访问都会自动转换成对反向代理服务器的访问,这一特点非常适合进行统一认证。各种文献资源服务器就是被代理服务器,而反向代理服务器就是这些资源的统一认证服务器。

统一认证系统不需要对每个文献资源进行二次开发,而是通过预先制定的规则,把所有资源的真实URL地址自动转换成认证服务的代理地址,用户通过转换后的代理地址访问资源。统一认证系统借鉴了反向代理的思想,也就是说用户并不会直接访问资源,而是通过认证服务器间接使用。统一认证系统原理如图1。

3 系统的设计与实现

3.1 系统整体架构与功能模块

认证系统包含两种服务、七个模块。文献平台Web服务提供文献平台基本的Web功能,为方便描述本文简称为平台服务,这里主要介绍与统一认证相关的两个模块,资源入口模块和权限控制模块;统一认证服务主要提供统一认证功能,包括地址转换模块、自动登录模块、权限检查模块、获取网页模块和静态地址替换五个模块。

图1 基于反向代理的统一认证系统原理图

系统整体架构如下图2:

图2 统一认证系统架构图

资源入口模块负责给用户提供资源的代理地址入口;权限控制模块负责控制用户的访问权限;地址转换模块负责用户和资源之间的地址转换,为用户提供转换后的代理地址,为各个资源提供转换前的实际地址;自动登录模块判断是否需要二次登录,如果需要则向平台服务获取资源认证信息并自动登录,反之则跳过此模块;权限检查模块负责检查用户的权限,与权限控制模块共同完成权限控制,避免用户越权访问;获取网页模块负责向各个资源获取网页内容;静态地址替换负责脚本和图像文件的地址替换,主要用来提高性能。

3.2 系统详细工作流程

传统的统一认证系统认证前使用资源A与认证后使用资源B的流程不一样,涉及到跨域之间的身份共享问题。新系统的统一认证服务本质上代理服务,并不维护用户的身份状态信息,不存在跨域间的身份共享问题,因此认证前后使用资源的流程都相同,用户只需要得到资源入口地址,即可自动二次登录完成认证。

系统详细流程如下图3。

治疗前两组PCO2、PO2两项血气指标和心率相近,P>0.05;治疗后观察组PCO2、PO2两项血气指标和心率优于对照组,P<0.05。如表2.

(1)用户向平台服务发出资源A使用请求,平台检查用户未登录,返回登录页面提示用户进行登录;

(2)用户输入身份信息进行首次登录,登录成功后返回资源A的代理地址,因为所有的文献资源都由统一认证服务进行代理,所以这个地址指向了统一认证服务;

(3)用户通过平台返回的代理地址向统一认证服务发出请求;

(4)统一认证服务收到请求后,根据Cookie信息获取当前登录用户,根据URL地址获取当前使用的资源A;

图3 统一认证系统详细流程图

(5)统一认证服务向平台服务请求验证用户是否拥有资源A的使用权限;

(6)权限验证通过,平台服务返回资源A的认证信息;

(7)统一认证服务判断是否需要二次登录;

(8)统一认证服务利用第6步返回的认证信息进行二次登录;

(9)二次登录成功,返回请求的资源;

3.3 统一认证服务的具体实现

在文献平台的统一认证系统中,统一认证服务是核心,负责所有文献资源的二次登录和Web请求代理工作。具体的工作流程如下图4。

(1)地址转换,用户访问的地址都是代理地址,并不是真正的文献资源地址,因此统一认证服务首先需要把代理地址转换成实际地址,主要利用正则表达式完成;

(2)权限检查,统一认证服务向平台服务验证用户是否拥有资源的使用权限,实现对资源的访问控制。除了校验权限外,权限检查还可以获取到资源的用户名、密码、以及登录地址等跟认证信息,以供自动登录使用。

(3)自动登录,权限校验完成后,统一认证服务需要判断是否第一次访问应用,如果是,则自动进行二次登录,反之则跳过自动登录。自动登录主要是利用上一步获取的认证信息模拟浏览器进行表单提交;

图4 统一认证服务流程图

(4)获取网页,自动登录后就会获取资源的网页信息。此过程需要确保统一认证服务能够返回与原始响应一致的HTTP状态码;否则可能出错;

(5)地址逆向转换,这一步主要是对网页中的URL地址进行转换,生成包含代理地址的网页,方便用户后续继续进行代理请求;

(6)静态地址替换,为了降低统一认证服务的负载,部分图片和脚本文件就跳过统一认证服务,直接从远程服务器下载;

4 系统设计过程中的难点以及解决方案

本文所研究的统一认证服务不存在跨域信息共享问题,重点在于统一认证服务器可以正确处理HTTP请求的方法,文献[17]详细列出了HTTP协议目前支持的所有方法。但也需要解决下面两个问题:

(1)如何实现对用户的访问控制

统一认证服务是无状态的,如何确保用户在权限范围内使用资源,需要对所有Web请求进行鉴权,即向平台服务确认当前用户是否有权限使用某个资源。统一认证服务提交当前用户和需要使用的资源,Web服务通过查询用户-资源权限控制表来决定鉴权是否通过。

(2)如何在平台服务与统一认证服务之间共享用户信息

平台服务和统一认证服务都采用HTTP协议,它们之间通过Cookie共享当前的用户状态信息。虽然不同域名只能访问各自的Cookie,但是下级域名却可以访问上一级域名的Cookie。因此只要确保两个服务拥有相同的一级域名即可,平台服务把当前登录用户信息写入一级域名的Cookie,统一认证服务通过一级域名的Cookie来获取当前用户,并且在每次鉴权时都通知平台服务刷新当前用户的Session超时时间,避免用户超时。

5 结论

目前对文献资源的共享大多采用IP网段内自动认证方式,对于非IP网段的用户,主要是利用VPN进入内网完成认证,多见于高校图书馆。但这种方式需要安装VPN客户端或者浏览器插件,比较繁琐,而且需要考虑内网的安全性。另外,对于不支持IP网段自动认证的资源,这种方式就无法进行共享。本文研究的统一认证系统通过代理服务完成自动认证,用户不会进入内网,没有安全性问题。使用时也不区分用户IP,只要可以访问因特网即可共享文献资源,方便简单,已经在天津文献平台的中实际应用。

[1] 郭豪, 王国才, 罗聘. 一种基于Cookie的跨域单点登录方案设计[J]. 计算机工程与科学, 2017, 39(7): 1295-1299.

[2] JASIG. CAS协议[OL]. (2016-9-29)[2018-9-27]. https: // apereo.github.io/cas/4.2.x/protocol/CAS-Protocol.html.

[3] 赵晋, 杨旭东. 基于 CAS 的单点登录系统的研究与实现[J]. 软件, 2016, 37(11): 119-124.

[4] 刘峰, 王峥, 曹华平等. 基于CAS的门户单点登录方案[J]. 计算机系统应用, 2011, 20(6): 77-80.

[5] 张慧, 李建华, 马华. 一种基于SAML的Web服务单点登录模型研究与实现[J]. 计算机系统应用, 2008, 17(7): 49-52.

[6] 高昊江, 肖田元. 基于SAML改进的单点登录模型研究[J]. 计算机工程与设计, 2011, 32(3): 827-829.

[7] FENG Weihua, LIU Yali. Design and implementation of unified authentication system on cookie[J]. Computer Engineering and Design, 2010, 31(23): 4971-4975.

[8] WANG Guowei, XUE Manjun. Variable cookies based cross domain single sign on[J]. Computer Engineering and Design, 2012, 33(8): 2931-2935.

[9] XU Yan, Ji Yongzhi. Research and Implementation of Single Sign-On Mechanisms for Web Applications[J]. Computer Engineering, 2006, 32(10): 271-273.

[10] 刘艳民, 鄂海红. 基于OpenID2. 0 的认证授权系统的分析与设计[J]. 软件, 2015, 36(10): 01-04.

[11] 施丛丛, 陈名生, 杨建业等. 水利信息资源整合共享系统设计[J]. 软件, 2015, 36(9): 55-59.

[12] 黄沛. 基于RESTful架构的科技信息共享接口系统的设计[J]. 软件, 201, 39(7): 170-172.

[13] 林伟明. 基于JasigCAS实现图书馆统一身份认证——以深圳大学图书馆为例[J]. 现代情报, 2012, 毛海波, 刘柏嵩. 基于Shibboleth的馆际跨域认证系统设计[J]. 现代情报, 2012, 32(5): 30-33.

[14] 王政军, 俞小怡, 金玉玲. 利用开源软件FreeRADIUS构建图书馆统一认证平台的研究与实现[J]. 现代情报, 2016, 36(5): 104-109.

[15] 宗娜, 魏更宇. HTTP与CoAP的协议转换代理的研究[J]. 软件, 2015, 36(10): 77-82.

[16] 阮晓龙. HTTP协议状态检测与性能分析软件的设计与实现[J]. 软件, 2015, 36(7): 136-141.

Research and Implementation of Uniform Authentication Mechanisms for Literature Sharing Platform

WANG Qiang

(Center of Science and technology information, Tianjin Institute of science and technology information, Tianjin 300074, China)

To address the problem of multi-sign on in the process of literature sharing,this paper uses the reverse proxy technology to achieve uniform authentication firstly. By setting up a proxy server, address conversion is performed on the URL of all literature systems, and proxy access to literature systems is realized, which avoids the cross-domain problem of traditional uniform authentication system. To achieve single sign-on, the proxy server performs a automatic login by the special URL parameters. It authenticates all access, prohibits unauthorized access, solves the identity authentication problem, and finally realizes a unified authentication system based on reverse proxy technology. The system can realize uniform authentication without reconstructing literature systems and solves the problem of multi-sign on.

Uniform authentication; Single sign-on; Literature sharing; Reverse proxy

TP311.52

A

10.3969/j.issn.1003-6970.2018.11.042

王强(1985-),男,硕士研究生,工程师,主要研究方向:信息资源管理、统一认证。

王强. 文献共享平台中统一认证技术研究与实现[J]. 软件,2018,39(11):202-206

猜你喜欢
单点代理统一
坚持严管和厚爱相统一的着力点
碑和帖的统一,心和形的统一,人和艺的统一
历元间载波相位差分的GPS/BDS精密单点测速算法
超薄异型坯连铸机非平衡单点浇铸实践与分析
统一数量再比较
代理圣诞老人
代理手金宝 生意特别好
数字电视地面传输用单频网与单点发射的效果比较
复仇代理乌龟君
16吨单点悬挂平衡轴的优化设计