李健虹
(天津中环创新科技有限公司 天津300190)
应用技术
浅谈文献数据库系统几种常用的自动认证方式
李健虹
(天津中环创新科技有限公司 天津300190)
针对实际应用中用户对文献数据库系统自动身份认证的需求,结合工作实际,对几种常用自动认证方式进行分析对比,得出其各自不同的认证机制、优势、不足以及适用环境,在方便用户使用的同时为文献资源整合服务提供了一定的借鉴。
文献数据库 自动认证 OPENAPI 认证接口
文献数据库系统为了保护自有知识产权,通过采用授权方式使用,比如 CNKI、读秀、维普等。科技文献平台集成了多种类型文献数据库,授权方式包括基于 IP范围、用户口令和密码、主机绑定等 3种方式。由于整合了多种类型异构数据库,为了方便管理,文献平台需要对平台用户进行身份认证。用户使用多个数据库系统时,需要分别输入用户名和密码登陆,由于不同系统对口令的管理要求不同,用户不得不记住多个用户名和密码,这给用户带来了麻烦。而为方便记忆选择简单口令时,安全性就降低。自动身份认证是解决这一问题的有效办法。本文重点讨论了几种常用的自动认证方式及其各自优缺点。另外,目前文献数据库基本上均为 WEB服务方式,绝大多数为 B/S结构,传统单机版及 C/S结构数据库已相对较少,因此本文主要探讨基于WEB方式的文献数据库自动认证方式。
WEB浏览器为文献数据库或其他WEB应用系统提供了用户自动认证的功能,并得到普遍应用,目前多种浏览器均提供“自动保存口令”功能,比如 IE浏览器、火狐浏览器、360浏览器等,浏览器自动记录用户在不同链接中输入的用户名和口令,当再次浏览该链接时,用户只需输入用户名的部分字符,系统就会弹出完整用户名,并自动填写相应的密码。
自动认证通过 Cookies来实现。Cookies指网站为了辨别用户身份、进行 Session跟踪而储存在用户本地终端上的数据(通常经过加密),当用户浏览某个数据库资源商的远程系统时,就会收到Web Server发来的一个惟一用户ID的非常小的文本文件,并置于用户硬盘上,这便是 Cookies文件。Cookies文件记录登录者的用户名、口令、浏览过的网页、网页停留时间等信息。当用户再次登录该网站时,网站通过读取电脑硬盘上的 Cookies,提取上次登录相关信息,并执行相应的操作,使用户无需输入ID、密码就直接登录并访问服务器上的资源,或在页面显示“欢迎你”标语。
Cookies从本质上讲,可以看作是用户的身份证,其所保存的信息片断以“名/值”对的形式储存,一个“名/值”对应一条命名的数据,且经过加密处理,信息只能由提供它的服务器来读取,且不能作为代码执行,也不会传送病毒。同时,服务器不能从其他服务器的Cookies文件中提取信息,只能获取自己放在用户计算机中的信息片段,因此Cookies在保障账户隐私方面具有一定的安全性。但是对于用户而言,在方便的同时,也带来了安全隐患,目前仅限于在用户本机上操作,具有较大的局限性。
随着互联网技术的快速发展,目前主流的文献数据库应用系统基本以 B/S模式为主,尽管不同的数据库系统身份认证页面看起来各不相同,但大部分采用 HTTP POST方式,即将用户身份信息提交给服务器来完成认证,其中 HTML FORM 表单是通常采用的提交手段,主要将用户名、密码等用户填写的表单信息提交至身份认证页面,通过后台校验程序自动完成对用户身份的判定,以完成对用户的认证。HTML FORM表单作为收集Web信息最常用的方法,包括3个基本组成部分:标签、控件和按钮。其中表单标签包含了处理表单数据所用服务程序的 URL以及数据向服务器提交的方法;FORM表单的 Action属性指定了包含处理逻辑的认证页面,验证提交的行为命令;而 Method指定提交表单的方法,即POST和 GET两种方法。控件包括文本、单选、多选、下拉选项等 HTML或服务器端控件,我们通常所填写的用户名、密码等信息便作为表单控件进行提交。最后表单的提交是通过按钮来完成的,通常为 SUBMIT按钮,或通过普通 Button结合脚本代码来完成。登录页面发送用户输入信息采用格式为HTTP头+name=value序列的POST格式,当服务器接收到这些用户名/值对后,根据相应的业务逻辑处理结果对用户进行身份验证。
通过对 FORM表单提交过程的分析,以及在工作中对大量文献数据库系统认证过程的探索,已摸索出一种模拟FORM 表单自动认证的方式,并已成功应用于绝大多数主流文献数据库系统。目前文献数据库认证系统流程设计、开发语言各不相同,但是只要是采用 FORM 表单方式均可以用相同的方法加以解决,即:首先以用户登录页面为突破口,分析页面源代码程序,找出 FORM 表单代码及表单最终提交的认证页面,将 FORM表单中与认证无关的控件、按扭删除,只保留认证必需的表单元素,形成最简化的 FORM 表单主体,并测试提交。其次将模拟 FORM表单集成到自有的文献业务系统中,当用户成功登录自有的文献业务系统后,根据用户名和权限从用户信息表中读取该用户在文献数据库系统中的帐号和密码,以及认证URL,通过程序技术封装到FORM表单,最后通过文献业务系统向文献数据库发起提交,模拟用户登录,文献数据库将用户所需的资源通过WEB方式反馈给用户,从而完成自动认证。
这种基于表单的自动认证方式适用面广,实现方法较为简单,较容易与现有业务系统进行集成,但由于原理上基于对用户认证过程的模拟,所以对文献数据库系统的认证页面依赖性较强,如果认证页面内容或地址等发生改变,将导致无法自动认证。其次,这种自动认证方式仅适用于基于 B/S 的Web 业务应用系统,并且用户认证方式提供FORM表单认证服务功能,对少数系统仍然无法实现。此外出于网络信息安全方面的考虑,这种自动认证方式比较适合应用于VPN、网络安全级别较高的局域网以及文献数据库镜像系统环境下,但仍具有一定局限性,有待探索解决。
OPENAPI是在互联网上开放的应用编程接口,基于超文本传输协议(HTTP)协议,以可扩展语言(XML)、JavaScript Object Notation等格式返回信息,在 WEB上构建新的应用,实现各异构数据库系统间的数据共享和互操作提供技术实现。目前,OPENAPI为文献资源平台各异构系统间建立互操作,实现互通互联提供了一个选择,通过利用数据库资源厂商提供的成熟的 OPENAPI,可以将对方的数据资源集成到自有的文献业务系统中,与文献业务系统的现有数字资源进行深度整合,向用户提供更丰富的资源和更个性化的应用。在此过程中,本文主要研究利用OPENAPI完成文献数据库系统的自动认证,通过自动认证与自有的文献业务系统中的单点认证(SSO)进行集成,实现用户一次登录便可以访问包括OPENAPI集成的数据库在内的多种文献资源。
3.1 典型的OPENAPI访问权限控制分析
3.1.1 通过 IP地址或域名方式控制 OPENAPI(开放 API)访问权限
对于远程登录使用的数据库资源,比如万方数据、化工信息网等,其平台管理功能中用户管理会针对每个机构用户配置用户提供的 IP地址范围或者域名序列,当用户服务器或者安装在用户电脑上的客户端发起开放 API访问请求时,资源商平台管理系统将在IP或域名列表中查找是否有与之匹配的IP地址或域名,通过检验的 IP地址或域名顺利访问资源,没有通过验证的则拒绝访问。建立在访问双方相互信任基础上的基于IP序列或域名访问权限控制需要用户具有相对固定的IP范围和域名,可以通过 web服务器远程配置实现,操作简便,常用 WEB服务器,如 Apache、微软的 IIS等,都具有OPENAPI访问权限控制功能。这种技术的缺点是作为网站级控制,实现精确控制有一定困难。高校图书馆和情报所及科研机构的IP相对固定,所以采用开放API中IP限制的较多,比如清华大学、天津科技信息中心很多开放API都限制IP范围内使用。
3.1.2 授权方式控制OPENAPI访问权限
为使用开放API的一方赋予一定许可权的访问方式称为授权方式,用户作为被控制对象被赋予访问许可。由于现实中控制需求多样化,赋权和验证、判断方式的确定较复杂,有两种使用率较高的开放API访问权限控制:
3.1.2.1 OAuth
OAuth(Open Authorization)为用户资源授权提供了一个安全、开放的标准,该标准以资源为中心,对于布局了多种托管文献数据库的文献平台而言,为不同用户赋予不同资源数据库使用权限,一般由资源拥有者为每个用户进行单独授权,这种方式要求授权和取消授权操作简便。采用 Oauth可以避免授权后数据库用户修改密码的麻烦。目前一些大型互联网服务提供商,如Google、Amazon、微软等均采用OAuth控制。OAuth对文献数据库控制各类数据库资源方面具有重要价值,例如可以实现第三方账号在文献平台登陆数据库时的登录。
3.1.2.2 API Key
API Key是开放API服务提供者为服务使用者发放的服务授权许可。API Key为了避免被盗号,往往采用数字和字符组合成字符串,当程序请求 OPENAPI服务时,系统以参数方式把API Key传递给服务器。相对前面提及的方式,支持API Key授权方式的互联网服务和内容提供商更为普遍。由于API Key是静态的,一旦泄露就会被盗用,所以根据不同需求,通常与 https加密传输、签名验证等组合使用;有的资源服务网站将使用 API Key的用户网站域名与 API Key捆绑验证。当 OPENAPI使用者较固定,内容和服务提供者可以拥有授权权限,API Key是一个较好的选择。目前一些文献平台已经实现了对一些大型文献数据库资源的自动认证,如读秀、方正阿帕比,并集成到自有的文献业务系统中。
3.2 OPENAPI认证实例
方正阿帕比提供的单点登录及认证接口,采用 OPENAPI技术,提供给第三方客户端开发人员,实现自动认证的功能。该接口执行登录成功后,当调用方正阿帕比所有子系统时无需再次登录,若登录失败,则跳转到相应的错误页面。用户信息验证采用的是用户名+密码+数字签名,三者共同验证,所有验证信息均需验证通过后方执行单点登录。
URL请求示例如下:
http://xxx/xxx/?pid=sso&uid=testing1&pwd=81DC 9BDB52D04DC20036DBD8313ED055&sign= MTIzNDU2&returnurl=http://xxxx.com&errorurl=http://xxxx.com/error. html&autoreg=1&pdm=1
调用接口API时的标准参数如表1所示:
表1 调用接口API的标准参数Tab.1 Standard parameters for API calling
签名规则:
Sig签名是将请求源串以及密钥根据一定签名方法生成的签名值,用来提高传输过程参数的防篡改性。签名值的生成共有 3个步骤:构造源串、构造密钥和生成签名值,具体通过用户名、机构标识、时间戳等参数构造原始字符串,之后对原始字符串进行DES加密,获得有效的数字签名。
在上述过程中可以与自有的文献业务系统进行集成,根据需要,可将业务系统中用户的 ID、密码等参数传入OPENAPI参数中,并通过HTTP方式将URL请求发送至方正阿帕比服务器端,实现业务系统授权用户对方正阿帕比资源的自动认证和访问。
若用户所有验证信息均通过验证,且登录成功,则页面跳转到客户端URL参数中return url指定的地址。若用户验证信息未通过,则跳转到客户端URL参数中指定的error url地址,并在该 url结尾添加错误码。如 error url=http://xxxx/error. html,并跳转至http://xxxx/error.html?errorcode=02,从而完成OPENAPI的全部认证过程。
这种基于 OPENAPI的自动认证方式对于互联网应用来说,最大的特点也是最大的优点就是基于 HTTP协议开发成应用开发的统一标准,对于使用的语言、采用的操作系统和应用部署平台都没有太多的限制。与之类似的是 WebService采用XML作为数据传输承载,制定了解析标准为开发者异构系统的信息交互带来了可能,也成为至今为止应用最广泛的服务集成方式,通过WebService接口同样可以完成用户认证、授权等多种管理功能。而随着 Web 2.0的发展,RSS、Atom、JSON的大规模应用,以及网络开发门槛的降低,让更多的网站加大了API技术开发投入的精力。
另外,由于认证过程中采用了加密、签名等安全技术,在保障用户的隐私和安全性方面有了较大的提升。可以有效保障第三方应用(这里指自有的文献业务系统)与资源数据库开放平台 API服务器之间通信的安全性,防止用户帐户信息盗用、数据篡改等恶意攻击行为,因此在信息安全日趋重要的今天,可广泛适用于互联网复杂网络环境下。但是,目前国内提供商的服务成熟度以及安全等方面的措施,都仅仅是起步,特别是提供OPENAPI服务的文献数据库提供商还不普及,因此实现文献资源的大规模集成条件还不成熟,今后还需要不断的探索和发展。
随着互联网技术的快速发展,文献数据库系统作为 WEB应用服务系统中的一种,自动身份认证技术在其中得到了越来越普遍的应用。本文通过对日常工作中几种常用的自动认证方式进行分析对比,得出其各自不同的认证机制、优势、不足以及适用环境。可见,自动身份认证在为用户提供易用性的同时,也是实现科技文献整合服务平台数据库单点认证的基础手段,相信随着网络技术的发展,会有更多安全、易用、完善的自动认证方式得到应用。
[1] 刘维红,杭剑平. 联合身份认证及在校际资源网的应用[J]. 信息安全与通信保密,2010(1):126-129.
[2] 贾西兰,郭建峰. 图书馆行业OpenAPI利用的权限控制[J]. 图书情报工作,2012(7):21-25.
[3] 翟晓娟,聂娜. 满足用户个体需求的图书馆开放平台设计——基于OpenAPI、App、Mashup、SOA的集成实践应用[J]. 大学图书馆学报,2011,29(6):26-33.
[4] 黄书强,杨亚涛. 一种改进的基于 OpenID机制的网络实名制方案设计[J]. 小型微型计算机系统,2012,33(6):1228-1232.
[5] 杨浩泉,皮冰锋,彭酉,等. 基于 OpenID的可兼容身份认证系统设计与实现[J]. 计算机应用与软件,2012,29(4):281-284,292.
[6] 何定华. 一种与应用无关的 SSO系统设计与实现[J].科技通报,2012,28(4):171-173.
[7] 陈渌漪,管小清. 单点登录(SSO)系统的设计与实现[J]. 微计算机信息,2008,24(27):75-77.
[8] 刁红军,朱晓旭,朱斐. 基于Web统一身份认证服务的实现方案[J]. 计算机工程,2006(13):277-279.
[9] 邱小果. 编程实现基于Cookie验证的HTTP请求的发送[J]. 微型机与应用,2003(7):35-37.
[10] 周晓斌,许勇,张凌,等. 一种开放式 PKI身份认证模型的研究[J]. 国防科技大学学报,2013,35(1):169-174.
[11] 龙毅宏,唐志红,王亚龙,等. 面向 HTTP身份鉴别协议的单点登录透明集成技术研究[J]. 计算机应用研究,2013,30(9):2813-2818.
[12] 许方恒,陈暄,龙丹,等. 新型的多分布式用户单点登录模型[J]. 计算机应用研究,2012,29(9):3355-3357,3364.
[13] 陈鹏,刁红军,朱斐,等. 一种基于Web单点登录系统实现[J]. 计算机应用与软件,2007,24(11):147-149,197.
Common Automatic Authentication Methods for Literature Database Systems
LI Jianhong
(Tianjin Zhonghuan Innovation Science & Technology Co.,Ltd.,Tianjin 300190,China)
In view of users’ demands on automatic authentication in DBMS,several frequently-used automatic authentication methods were compared. As a result,authentication mechanisms,advantages,shortages and applicable environments of these methods were concluded,which will offer convenience for users and provide reference for the literature resource integration.
literature database;automatic authentication;OPENAPI;certification API
TP311.131;G258.6
:A
:1006-8945(2015)02-0018-03
2015-01-09