溫明章
〔摘 要〕針對目前數(shù)字圖書館資源遠程訪問困難的實際情況,設(shè)計一個基于開源軟件(apache和josso)的遠程訪問系統(tǒng),此方案是一個設(shè)有身份認證、日志記錄和負載均衡等功能的完整設(shè)計方案,便利了讀者在校外遠程訪問圖書館電子資源。
〔關(guān)鍵詞〕url重寫;遠程訪問;josso;apache
DOI:10.3969/j.issn.1008-0821.20.01.016
〔中圖分類號〕G250.76 〔文獻標識碼〕B 〔文章編號〕1008-0821(20)01-0063-04
The Total Design of Remote Access System for Digital
Library Resources Based on Open-source SoftwareWen Mingzhang
(Library,South China Agricultural University,Guangzhou 510642,China)
〔Abstract〕According to the difficultness that remote access to digital library resources,the author designed the Remote Access System for Digital Library Resources based on Open-source software,this program was a complete design that set up authentication,logging,and load balancing features,facilitate the readers in the off-campus remote access to library electronic resources.
〔Keywords〕url rewriter;remote access;josso;apache
現(xiàn)在全國圖書館都以數(shù)字圖書館為建設(shè)目標,而且都已經(jīng)有幾年的建設(shè)基礎(chǔ)了。在數(shù)字圖書館建設(shè)中,網(wǎng)絡(luò)數(shù)據(jù)庫(電子資源)為重點建設(shè)對象;目前每個圖書館都有各種各樣的網(wǎng)絡(luò)數(shù)據(jù)庫(電子資源)可供讀者通過網(wǎng)絡(luò)進行查詢、瀏覽和閱讀,但是這些網(wǎng)絡(luò)資源都是對讀者進行ip控制,讀者只有使用學(xué)校內(nèi)部網(wǎng)絡(luò)才可以訪問;有些學(xué)校已經(jīng)意識到這種限制不利于讀者在校外學(xué)習(xí)和工作,并且在網(wǎng)絡(luò)中心的幫助下引入vpn技術(shù)來解決校外訪問圖書館資源的IP限制問題;但是這種方法只是暫時的,在讀者數(shù)量大的情況下,vpn的用戶數(shù)不夠用,而且有一致命弱點就網(wǎng)絡(luò)速度慢。從以上問題來看,本設(shè)計方案就是要解決校外訪問圖書館資源IP限制問題,而且讀者數(shù)量不受用戶數(shù)量的限制,在網(wǎng)絡(luò)速度上有很好的優(yōu)化。
1 設(shè)計思路
本設(shè)計方案是實現(xiàn)校內(nèi)的圖書館網(wǎng)絡(luò)資源的共享服務(wù),它采用URL重寫技術(shù)、單點登錄和統(tǒng)一認證技術(shù),實現(xiàn)基于Web數(shù)字訪問對象、內(nèi)部辦公訪問的安全認證系統(tǒng),通過認證讀者與電子訪問對象服務(wù)器、內(nèi)部辦公服務(wù)器的直接通訊,而且進行負載均衡設(shè)計,從而避免代理服務(wù)器和vpn等方式易導(dǎo)致的網(wǎng)絡(luò)瓶頸、配置復(fù)雜和難于管理等問題。
該設(shè)計方案考慮進一步延伸信息提供者的服務(wù)空間與拓展網(wǎng)絡(luò)接入者的接入范圍,將現(xiàn)有局域網(wǎng)上基于Web的遠程訪問系統(tǒng)功能、內(nèi)網(wǎng)辦公平臺等通過Internet網(wǎng)絡(luò)拓展到用戶家庭、出差酒店、會議室等互聯(lián)網(wǎng)上世界的任何一個角落。
1.1 系統(tǒng)硬件設(shè)計
遠程訪問服務(wù)器部署在圖書館校外可以訪問的網(wǎng)上或校網(wǎng)絡(luò)中心出口網(wǎng)絡(luò)上,設(shè)計采用1臺(配置:四核CPU內(nèi)存為2.3G,2塊 000兆自適應(yīng)網(wǎng)卡的服務(wù)器作為遠程訪問認證服務(wù),并分別配置3~4個或更多個遠程訪問服務(wù)器及對外固定IP地址,實現(xiàn)遠程訪問服務(wù),防止因單個IP地址實現(xiàn)遠程電子數(shù)據(jù)庫的訪問被供應(yīng)廠商監(jiān)控或訪問用戶下載速度受影響。
本設(shè)計方案可以將圖書館所屬的電子資源進行訪問負載分配,特別是針對遠程電子數(shù)據(jù)庫的訪問需要進行地址負載分配和流量負載分配。見圖1所示。
圖1 系統(tǒng)硬件設(shè)計
1.2 應(yīng)用結(jié)構(gòu)設(shè)計
對于基于Web發(fā)布的電子資源,系統(tǒng)采用基于URL重寫技術(shù),以及單點登錄技術(shù)(SSO),來實現(xiàn)讀者透明的訪問,對于基于Web的圖書館電子資源,讀者可以不用安裝任何插件和修改任何設(shè)置,即可隨時隨地訪問圖書館的電子資源。
系統(tǒng)硬件主要由2個部分組成:身份認證服務(wù)器和URL重寫服務(wù)器機群。身份認證服務(wù)器運行在一臺獨立的服務(wù)器上,主要提供用戶身份驗證及權(quán)限管理、流量控制及日志記錄等功能。URL重寫服務(wù)器機群運行在多臺服務(wù)上,對讀者所有的http請求的URL進行重寫控制和管理等功能。
3 系統(tǒng)功能和系統(tǒng)工作流程
系統(tǒng)軟件主要使用開源軟件,身份認證(安全認證)使用Josso,遠程訪問系統(tǒng)使用Apache Web Server;讀者通過Web瀏覽器訪問遠程訪問系統(tǒng),遠程訪問系統(tǒng)通過LDAP協(xié)議調(diào)用Josso進行身份核對和認證(Josso通過Mysql數(shù)據(jù)的讀者已經(jīng)注冊信息來核對),如果沒有認證過的,則要通過Josso認證后才可以訪問遠程訪問系統(tǒng);當讀者通過Josso認證后,訪問遠程訪問系統(tǒng)的電子資源時,系統(tǒng)對相應(yīng)的讀者請求進行URL重寫和管理,并且對讀者的各種網(wǎng)絡(luò)行為進行跟蹤和記錄,最后把讀者想要的正確信息發(fā)回給讀者;系統(tǒng)工作流程可以參考圖2。
系統(tǒng)具體功能設(shè)計如下:
(1)身份認證(單點登錄和統(tǒng)一認證);
(2)URL重寫功能;
(3)負載均衡;
(4)日志功能。
2 安全設(shè)計
目前身份認證技術(shù)非常發(fā)達,認證的方法也很多,例
圖2 工作流程
如:USBKEY認證、基于SSL的HTTPS證書認證、電子令牌、與SSO認證等等。本設(shè)計方案使用SSO認證方式,而且遠程訪問系統(tǒng)可以與SSO認證服務(wù)無縫集成。
SSO認證方式有以下優(yōu)點:
(1)減少用戶在不同系統(tǒng)中登錄耗費的時間,減少用戶登錄出錯的可能性;
(2)實現(xiàn)安全的同時避免了處理和保存多套系統(tǒng)用戶的認證信息;
(3)減少了系統(tǒng)管理員增加、刪除用戶和修改用戶權(quán)限的時間;
(4)增加了安全性:系統(tǒng)管理員有了更好的方法管理用戶,包括可以通過直接禁止和刪除用戶來取消該用戶對所有系統(tǒng)資源的訪問權(quán)限。
3 軟件設(shè)計以及關(guān)鍵技術(shù)的實現(xiàn)方法
本設(shè)計方案的軟件設(shè)計將使用開源軟件Apache和Josso,具體實現(xiàn)方法,下面將具體介紹。
3.1 URL重寫技術(shù)
本設(shè)計方案使用Apache的ModzRewriter和ModzProxy功能模塊實現(xiàn)重寫功能;圖書館的電子資源實際URL,都在遠程訪問系統(tǒng)上有對應(yīng)重寫過的URL,這里就以Cnki為例,Cnki實際URL為:http:∥www.dlib.cnki.net/kns50/,重寫到遠程訪問系統(tǒng)上為:http:∥外部ip/kns50/;具體流程和重寫規(guī)則如圖3[4]。
圖3 重寫URL原理
模塊具體實現(xiàn)配置如下:現(xiàn)在到Apache的http.conf上加載ModzRewriter和ModzProxy模塊,然后在文件尾部加入下面代碼:
RewriteEngine on#啟動URL重寫功能;
Proxyrequest on #啟動代理功能;
RewriteRule^(.*)。模S 。模S1/ [R]
#解決結(jié)尾斜杠問題,如果訪問http:∥localhost/cnki時,重寫為#http:∥localhost/cnki/rewriterule ^/kns/(.*)。模S http:∥www.dlib.cnki.net/kns50/。模S1
啟動Apache就可以看到如圖4效果:圖4 實現(xiàn)重寫URL的效果
更多具體的配置,可以讀者感興趣的話,可以到Apache網(wǎng)站上下載使用文檔了解更多的信息,這里就不具體展開。
3.2 安全認證(單點登錄和統(tǒng)一認證)
3.2.1 Josso工作原理
本設(shè)計方案安全認證使用Josso開源軟件來實現(xiàn),并且與Apache進行無縫集成。Josso單點登錄技術(shù)通過基于信任主機的跨域名Cookie技術(shù)來實現(xiàn),由于用戶的登錄信息需要保存在Cookie里,但IE的安全性不允許Cookie跨域名或IP地址。因此,Josso當通過用戶輸入的用戶名和口令(或者使用其它方式)對用戶進行驗證成功后,將發(fā)送一個身份標識給用戶并將其存放在用戶瀏覽器的Cookie里面,然后將用戶重定向到所請求的服務(wù)上。如果讀者訪問其他服務(wù)器時,則共享讀者第1次登錄后信息不需要重新認證,上述過程對用戶是透明的,從而實現(xiàn)了單點登錄。
3.2.2 Josso與遠程訪問系統(tǒng)集成
Josso是在LDAP基礎(chǔ)上與Apache Directory Server進行無縫集成,從而使得Josso與遠程訪問系統(tǒng)集成。
具體配置如下:
(1)Apache Directory Server:
class=″org.apache.directory.server.ldap.LdapConfiguration″> 進行配置。 輸入認證信息,這里的信息從之前提到的server.xml中獲得,比如其中Bind DN or user和Bind password分別為server.xml中的 的值。 (2)Josso的LDAP的配置如下: 配置Josso的josso-gateway-config.xml: ①修改 uid=username,mail=password mail=mail,cn=description ②修改 uid=username,mail=password
mail=mail,cn=description