文/凌征強
構(gòu)建高校圖書館遠程訪問系統(tǒng)(一)
文/凌征強
編者按:本文從國際主流技術(shù)、節(jié)約成本、數(shù)據(jù)安全以及訪問性能的角度考慮,采用URL重寫及跨域名Cookie技術(shù),結(jié)合SSL安全協(xié)議、多種身份認(rèn)證、單點登錄、負載均衡等技術(shù)研究和構(gòu)建適合國內(nèi)高校圖書館實際工作需要的數(shù)字資源遠程訪問系統(tǒng),共分為兩期刊載,本期刊載第一個部分,主要介紹系統(tǒng)的設(shè)計和系統(tǒng)的行為建模。
遠程訪問是指突破IP地址的物理限制,可以在任何能上網(wǎng)的地方使用圖書館電子資源[1]。國外對于遠程訪問圖書館電子資源的研究,在上世紀(jì)中期就已開始,國內(nèi)也在近幾年對該項技術(shù)開始研究探求。
本文從國際主流技術(shù)、節(jié)約成本、數(shù)據(jù)安全以及訪問性能的角度考慮,采用URL重寫及跨域名Cookie技術(shù),結(jié)合SSL安全協(xié)議、多種身份認(rèn)證、單點登錄、負載均衡等技術(shù)研究和構(gòu)建適合國內(nèi)高校圖書館實際工作需要的數(shù)字資源遠程訪問系統(tǒng)。
我們采用URL重寫為主要技術(shù)構(gòu)建高校圖書館遠程訪問系統(tǒng),結(jié)合單點登錄和身份認(rèn)證等多種技術(shù),運用UML建模語言,展開系統(tǒng)行為建模、結(jié)構(gòu)建模以及系統(tǒng)主要功能的詳細設(shè)計。技術(shù)運用
系統(tǒng)應(yīng)向用戶提供多種網(wǎng)絡(luò)接入方式。為此,系統(tǒng)要提供路由管理模塊來確定多宿主主機對某個目標(biāo)主機或者目標(biāo)網(wǎng)絡(luò)的具體路由,來提高系統(tǒng)性能和降低路由成本。
基于Web發(fā)布的電子資源,系統(tǒng)采用URL重寫技術(shù)、跨域名Cookie技術(shù)以及單點登錄技術(shù),來實現(xiàn)用戶端綠色透明的訪問,用戶可以不用安裝任何插件和修改任何設(shè)置,即可隨時隨地訪問授權(quán)的電子資源。
對于非HTTP的C/S資源,系統(tǒng)采用IRAS插件的方式來實現(xiàn)。當(dāng)IE或者第三方閱讀器(如超星閱讀器)要創(chuàng)建TCP(第4層,傳輸層)連接的時候,插件會截取該網(wǎng)絡(luò)請求,并檢查目標(biāo)IP地址是否在系統(tǒng)授權(quán)服務(wù)器插件模式定義的IP范圍內(nèi)。如果在范圍內(nèi),將目標(biāo)主機的IP修改為授權(quán)訪問服務(wù)器的IP,端口修改為授權(quán)訪問服務(wù)器的端口;并創(chuàng)建一個協(xié)議棧(4.5層,介于TCP和應(yīng)用層之間),從而保證第5層(應(yīng)用層)協(xié)議都是通過代理隧道進行。
實現(xiàn)技術(shù)
適用于高校圖書館遠程訪問系統(tǒng)的實現(xiàn)技術(shù)主要有代理服務(wù)器技術(shù)、VPN技術(shù)、URL重寫技術(shù)等,其中URL重寫技術(shù)是通過URL重寫規(guī)則來自動完成訪問目標(biāo)與代理服務(wù)器間的“映射”關(guān)系,無縫、透明地將用戶請求轉(zhuǎn)向?qū)嶋H的代理服務(wù)器請求,實現(xiàn)用戶對相關(guān)資源的訪問。URL重寫技術(shù)和跨域名Cookie技術(shù)結(jié)合,可以很好地實現(xiàn)數(shù)字資源遠程訪問,也是當(dāng)前國際上主流實現(xiàn)技術(shù)。
安全技術(shù)
與高校圖書館遠程訪問系統(tǒng)相關(guān)的安全技術(shù)包括SSL安全協(xié)議、多種身份認(rèn)證、單點登錄等。SSL安全協(xié)議是一種在應(yīng)用層協(xié)議和TCP/IP協(xié)議之間,為TCP/IP連接提供數(shù)據(jù)加密、服務(wù)器認(rèn)證、消息完整性以及可選的客戶端認(rèn)證;目前流行的幾種身份認(rèn)證方式包括口令認(rèn)證、USB Key認(rèn)證、IC卡認(rèn)證、生物特征認(rèn)證、數(shù)字證書認(rèn)證等;單點登錄技術(shù)是一種認(rèn)證和授權(quán)機制,它允許用戶只登錄到系統(tǒng)一次,對所有被授權(quán)的網(wǎng)絡(luò)資源進行無縫的訪問,無需再進行登錄。
負載均衡技術(shù)
負載均衡技術(shù)是集群系統(tǒng)的核心技術(shù)之一,其主要思想是根據(jù)某種算法將網(wǎng)絡(luò)的負載用相應(yīng)的權(quán)值表示服務(wù)器的處理能力,將用戶的請求分配到不同的服務(wù)器和網(wǎng)絡(luò)設(shè)備上,以減輕單臺服務(wù)器和網(wǎng)絡(luò)設(shè)備的負載,從而提高整個系統(tǒng)的效率。
在要求更高安全性的場合,IRAS插件將用戶數(shù)據(jù)封包后,通過SSL管道傳輸。
對服務(wù)器負載的在線監(jiān)控,系統(tǒng)采用負載均衡技術(shù)實現(xiàn),可以隨時查看每臺授權(quán)訪問均衡主機的負載情況和用戶在線情況,并根據(jù)流量報告,采取措施將訪問對象(數(shù)字資源)從一個均衡主機“推向”另一臺主機;該操作一鍵完成,方便快捷;各個授權(quán)訪問負載均衡主機之間,以及它們和系統(tǒng)的認(rèn)證主機(管理者主機)之間的通訊均采用通用接口技術(shù)來實現(xiàn),增加系統(tǒng)的可擴展性與開放性。
應(yīng)用結(jié)構(gòu)
系統(tǒng)應(yīng)用結(jié)構(gòu)主要由兩個部分組成:身份認(rèn)證服務(wù)器(AuthServer)和訪問對象代理服務(wù)器集群(AuthClient)。AuthServer運行在一臺獨立的服務(wù)器上,主要提供用戶身份驗證及權(quán)限管理、流量控制及日志記錄等功能。AuthClient可以安裝在每臺電子訪問對象服務(wù)器上。一個AuthClient可以運行多個訪問對象代理(Agent),每一個Agent和某個特定的Web訪問對象綁定。AuthClient可以和AuthServer安裝在一臺機器上,這樣可以不需要改動其他電子訪問對象的服務(wù)器設(shè)置,但為了避免用戶過多時的瓶頸問題,最好可以把Agent代理分散到多個服務(wù)器上。系統(tǒng)應(yīng)用結(jié)構(gòu)設(shè)計如圖1所示。
安全認(rèn)證
本系統(tǒng)安全認(rèn)證采用如下方式:
1.普通認(rèn)證
本認(rèn)證是系統(tǒng)默認(rèn)的用戶名密碼的靜態(tài)口令認(rèn)證方式,系統(tǒng)提供用戶管理功能,建立用戶ID、用戶名、密碼等相關(guān)項,用戶可以在授權(quán)服務(wù)端利用通用瀏覽器直接登錄本系統(tǒng)授權(quán)訪問服務(wù)。
系統(tǒng)可以采取IP用戶和普通用戶兩種方案。IP用戶方案是系統(tǒng)自動把某一范圍的IP地址影射到某個用戶賬號下,這段IP范圍內(nèi)的用戶登錄遠程訪問系統(tǒng)的時候,不需要輸入用戶名和口令,直接可以使用。普通用戶是采用傳統(tǒng)的用戶名和密碼機制。
2.USB Key認(rèn)證
系統(tǒng)將采用最新技術(shù)和安全標(biāo)準(zhǔn),提供USB Key用戶管理和USB Key生成器,并提供穩(wěn)定可靠的USB Key硬件,可以實現(xiàn)按照需求進行設(shè)置與定制,并可以提供多種USB Key寫入和認(rèn)證方式,如USB固定Key、USB不同Key等。
3.基于SSL的HTTPS認(rèn)證
系統(tǒng)提供基于SSL的HTTPS認(rèn)證,不需要用戶端配置如USB Key等的硬件設(shè)備,通過SSL安全傳輸管道將用戶名和密碼傳輸給認(rèn)證服務(wù)器,SSL認(rèn)證采用非對稱密鑰技術(shù)保證數(shù)據(jù)的隱私,認(rèn)證數(shù)據(jù)除了發(fā)送者和接受者,其他任何節(jié)點即使截獲了數(shù)據(jù),也無法解碼數(shù)據(jù)。
4.統(tǒng)一認(rèn)證
系統(tǒng)可以和基于SAML標(biāo)準(zhǔn)與應(yīng)用系統(tǒng)的統(tǒng)一認(rèn)證服務(wù)無縫集成。在認(rèn)證過程中,所有用戶信息的網(wǎng)絡(luò)傳輸都是安全可靠的;采用開放架構(gòu),兼容主流技術(shù),保證系統(tǒng)具有很高的整合能力;提供系統(tǒng)平臺的配置和開發(fā)能力,降低實施難度,保護用戶投資。
圖1 系統(tǒng)應(yīng)用結(jié)構(gòu)設(shè)計
圖2 系統(tǒng)用例間關(guān)系、用戶與用例之間的關(guān)系
系統(tǒng)用例分析
要設(shè)計實現(xiàn)圖書館遠程訪問系統(tǒng),首先要對系統(tǒng)的需求進行分析,要做的工作是深入描述目標(biāo)系統(tǒng)的功能和性能,確定系統(tǒng)設(shè)計的限制和同其他系統(tǒng)之間的接口細節(jié),定義系統(tǒng)的其他有效性需求。本文運用UML捕捉系統(tǒng)的功能需求、分析、提取所開發(fā)系統(tǒng)領(lǐng)域的類以及描述它們之間合作概況,在完成系統(tǒng)的OOA(Object-Oriented Analysis:面向?qū)ο蠓治觯┗A(chǔ)上,對系統(tǒng)進行OOD(Object-Oriented Design:面向?qū)ο笤O(shè)計)[2]。
采用用例圖描述的圖書館遠程訪問系統(tǒng)包括兩類用戶:讀者和系統(tǒng)管理員,其中讀者和系統(tǒng)管理員允許多個。系統(tǒng)用例間關(guān)系、用戶與用例之間的關(guān)系如圖2所示。
對于系統(tǒng),讀者可以通過高校的入口網(wǎng)站,比如圖書館門戶網(wǎng)站,注冊使用圖書館遠程訪問系統(tǒng)(如果系統(tǒng)管理員已協(xié)助添加了對應(yīng)用戶或者其他系統(tǒng)實現(xiàn)認(rèn)證接口則不需要注冊,直接使用對應(yīng)的用戶名和密碼可以登錄)。由于必須考慮安全問題,防止非本校允許注冊的人員隨意注冊,因此必須有注冊信息庫,屬于注冊信息庫中允許的人員才能注冊,注冊時提供的身份ID和移動電話必須與注冊信息庫中的一致,注冊的同時還需要提供短信驗證碼。注冊成功后可以通過用戶名和密碼登錄系統(tǒng),選擇授權(quán)可用的重寫URL服務(wù)(數(shù)字資源),系統(tǒng)可自動切換到對應(yīng)的數(shù)字資源訪問系統(tǒng),不用再輸入該數(shù)字資源的授權(quán)賬號和密碼,進行相關(guān)數(shù)字資源的檢索、查閱,使讀者用一個用戶名密碼就能實現(xiàn)所有授權(quán)數(shù)字資源的訪問,從而實現(xiàn)單點登錄、統(tǒng)一用戶認(rèn)證、透明訪問圖書館數(shù)字資源。
而系統(tǒng)管理員主要負責(zé)系統(tǒng)運行的配置以及日常的管理和監(jiān)控,操作的動作都是屬于系統(tǒng)的核心組件,主要包括四部分的操作:
1.系統(tǒng)管理
系統(tǒng)管理包括管理員維護、系統(tǒng)參數(shù)配置和認(rèn)證接口管理。管理員維護允許添加刪除以及修改管理員信息,可以針對每個管理員設(shè)置允許進入的模組及對應(yīng)這個模組的增加/刪除編輯等權(quán)限,并且可以區(qū)分只是屬于系統(tǒng)監(jiān)控還是允許修改系統(tǒng)參數(shù),這種允許多個系統(tǒng)管理員的設(shè)計便于系統(tǒng)管理的分工,并且能夠更細粒度的區(qū)分系統(tǒng)權(quán)限;系統(tǒng)參數(shù)配置用于配置系統(tǒng)運行所需參數(shù),比如用戶會話的超時時間,用戶使用系統(tǒng)的一個會話超過這個時間就會要求用戶重新登錄;認(rèn)證接口管理是用來配置系統(tǒng)認(rèn)證接口程序,當(dāng)用戶登錄的認(rèn)證需要整合其他系統(tǒng)時,則可以在這里配置實現(xiàn),比如高校已有圖書館文獻集成管理系統(tǒng),包含有用戶庫和用戶認(rèn)證功能,那么實現(xiàn)接口程序,然后在接口管理中配置,可以直接使用圖書館管理系統(tǒng)的認(rèn)證功能,不再需要系統(tǒng)另外維護用戶庫作為用戶認(rèn)證。
2.用戶管理
用戶管理首先是維護用戶組,針對不同的用戶類型進行分組,便于針對群組進行管理;然后維護用戶賬號,包括新增刪除用戶或者修改用戶的信息,設(shè)置用戶所屬的群組,同時為了方便大批量作業(yè),允許管理員直接按照約定格式從Excel導(dǎo)入用戶;維護注冊用戶庫,是為了維護用戶注冊時的憑證,用戶注冊系統(tǒng)時提供的憑證比如身份ID、移動電話等,必須在用戶庫存在的對應(yīng)的信息憑證才能夠允許注冊;維護IP黑名單,當(dāng)發(fā)現(xiàn)某些IP存在惡意訪問系統(tǒng)時可以暫停或者禁止該IP的訪問;而IP用戶管理相當(dāng)于白名單,只要訪問系統(tǒng)的IP屬于這里定義的IP時,就自動映射為IP用戶管理中配置的對應(yīng)用戶,節(jié)省用戶輸入用戶名和密碼登錄的過程。
3.重寫URL服務(wù)管理
重寫URL服務(wù)管理包括訪問對象組管理、訪問對象管理、存取權(quán)限管理、IP權(quán)限管理、網(wǎng)絡(luò)接口管理、端口重定向管理和二級代理設(shè)置。定義訪問對象組主要是針對訪問對象即數(shù)字資源進行集中式管理,根據(jù)訪問對象的分類進行分門別類的管理,比如電子資源類、應(yīng)用系統(tǒng)類等,分組管理不但方便管理訪問對象,而且更具有結(jié)構(gòu)性;訪問對象管理用于定義系統(tǒng)訪問對象,這些對象指能提供某種Internet服務(wù)的一個或者一組主機地址以及該服務(wù)的訪問入口地址和其他相關(guān)信息的集合體,Internet服務(wù)形式多樣,可以是Web網(wǎng)站,或者一個基于Web網(wǎng)站的數(shù)字資源,或者非HTTP協(xié)議的其他服務(wù),比如購買了中國學(xué)術(shù)期刊全文數(shù)據(jù)庫,就可以配置這個資源的入口網(wǎng)址,讓讀者通過圖書館遠程訪問系統(tǒng)再代理到這個數(shù)字資源的入口網(wǎng)站,就可以像在校內(nèi)一樣訪問;存取權(quán)限管理是用于配置哪些用戶組能夠訪問哪些對象組,分組的重要原因之一也是因為這里配置授權(quán),根據(jù)群組進行配置,那么新加用戶或者數(shù)字資源的時候劃分到對應(yīng)的組時對應(yīng)的授權(quán)也就自然擁有了,而不必是單個用戶或者單個資源分別配置;IP權(quán)限管理是用于配置哪些網(wǎng)段的讀者可以訪問哪些對象組,這是結(jié)合IP用戶管理使用的,省去用戶登錄的步驟,對不重要的數(shù)字資源可以采用這種簡化的管理;網(wǎng)絡(luò)接口管理是用于配置系統(tǒng)發(fā)布的Web服務(wù)器IP地址和端口,允許配置多個提供給外部系統(tǒng)的連接,比如考慮網(wǎng)速問題,可以分別建立教育網(wǎng)訪問速度快的服務(wù)器和公眾網(wǎng)訪問速度快的服務(wù)器,那么讀者通過高校入口網(wǎng)站登錄圖書館遠程訪問系統(tǒng)時就可以選擇合適自己的服務(wù)器,這樣有助于更快地訪問數(shù)字資源;端口重定向管理的目的是解決個別數(shù)字資源不能正常使用HTTP訪問,而需要進行端口轉(zhuǎn)換或者協(xié)議轉(zhuǎn)換才能正常訪問的情況;二級代理配置是因為個別數(shù)字資源必須通過二級代理服務(wù)器才能進行訪問,那么需要在這里配置對應(yīng)二級代理服務(wù)器信息。
圖3 系統(tǒng)的活動流程
4.統(tǒng)計分析
統(tǒng)計分析主要是方便系統(tǒng)管理員日常監(jiān)控系統(tǒng)運行狀況,比如用戶在線監(jiān)控可以實時監(jiān)控當(dāng)前的在線用戶,當(dāng)發(fā)現(xiàn)有異常的狀況,比如流量不正常,可以針對這個用戶進行暫時封鎖或者永久禁止使用系統(tǒng);即時流量監(jiān)控可以實時地監(jiān)控當(dāng)前的系統(tǒng)信息流量,以便管理整個網(wǎng)絡(luò)系統(tǒng),并進行資源分配和調(diào)度;流量統(tǒng)計、訪問日志等則是輔助用于日常管理,比如系統(tǒng)出現(xiàn)問題時可查閱相關(guān)日志和流量狀況,便于查明問題原因并解決。
系統(tǒng)功能設(shè)計
考察了系統(tǒng)用例和用例之間的關(guān)系之后,可以用UML的動態(tài)模型進行形象化描述。下面以讀者登錄訪問系統(tǒng)并選擇重寫URL服務(wù)(數(shù)字資源)進行查閱的活動圖為例,在上面的面向?qū)ο蠓治雠c設(shè)計、并對系統(tǒng)靜態(tài)結(jié)構(gòu)的把握后,建立起系統(tǒng)動態(tài)數(shù)據(jù)的邏輯視圖,如圖3所示,以此為點,可以建立起整個系統(tǒng)的流程分析。
在圖3中,關(guān)鍵部分流程為讀者“選取某數(shù)字資源”,并“進入數(shù)字資源訪問系統(tǒng)進行查閱”,這是系統(tǒng)設(shè)計實現(xiàn)的目的,屬于系統(tǒng)核心功能,其他功能包括配置和監(jiān)控,均是為這一功能服務(wù)。(未完待續(xù))
(作者單位為廣東外語藝術(shù)職業(yè)學(xué)院圖書館)
擴展閱讀
[1]Denise TC. The need to improve remote access to online library resources: filling the gap between commercial vendor and academic user practice. Libraries and the Academy, 2003, 3(4):577-599.
[2]Boggs.W, Boggs.M. UML與Rational Rose 2002從入門到精通. 邱仲潘等譯. 北京: 電子工業(yè)出版社, 2002: 77-278.