李健虹
(天津中環創新科技有限公司 天津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技術開發投入的精力。
另外,由于認證過程中采用了加密、簽名等安全技術,在保障用戶的隱私和安全性方面有了較大的提升??梢杂行ПU系谌綉?這里指自有的文獻業務系統)與資源數據庫開放平臺 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