周加強(qiáng)
(山東大學(xué)圖書(shū)館,山東 濟(jì)南250100)
聯(lián)合認(rèn)證在CALIS省級(jí)區(qū)域中心的應(yīng)用
周加強(qiáng)
(山東大學(xué)圖書(shū)館,山東 濟(jì)南250100)
本文論述了聯(lián)合認(rèn)證的基本概念和原理,并基于J2EE平臺(tái)開(kāi)發(fā)實(shí)現(xiàn)了高校圖書(shū)館和CALIS省級(jí)區(qū)域共享域平臺(tái)的聯(lián)合認(rèn)證,展望了通過(guò)該技術(shù)建立一個(gè)三級(jí)聯(lián)合認(rèn)證平臺(tái),通過(guò)網(wǎng)絡(luò)實(shí)現(xiàn)區(qū)域乃至全國(guó)圖書(shū)文獻(xiàn)保障體系任何時(shí)點(diǎn)登錄,隨時(shí)隨地享受便捷服務(wù)的遠(yuǎn)景。
聯(lián)合認(rèn)證;單點(diǎn)登錄;全國(guó)圖書(shū)文獻(xiàn)保障體系
高等學(xué)校各個(gè)區(qū)域性的共享域中心、地區(qū)文化共享工程等如雨后竹筍般涌現(xiàn)在互聯(lián)網(wǎng)上,為學(xué)校或社會(huì)的讀者提供文獻(xiàn)的檢索和獲取等服務(wù)。然而用戶在使用的過(guò)程中,為了簡(jiǎn)化管理,系統(tǒng)一般都采用了IP登錄方式,即只要讀者的IP地址在許可的范圍內(nèi),可以直接使用系統(tǒng)提供的服務(wù)。為了能在區(qū)域中更廣泛的使用,以及涉及到財(cái)務(wù)數(shù)據(jù)的系統(tǒng)中,需要實(shí)名用戶登錄,用戶名密碼的登錄方式成為一種不可缺少的登錄策略。
共享域中心的用戶與各個(gè)機(jī)構(gòu)或者高校做統(tǒng)一認(rèn)證和統(tǒng)一授權(quán)管理,需要兩種方式,一種是用戶數(shù)據(jù)同步,另外一種是聯(lián)合認(rèn)證。
用戶數(shù)據(jù)同步是指把機(jī)構(gòu)或者高校圖書(shū)館的用戶信息,定期同步到共享域中心的用戶庫(kù)中。這種方法實(shí)施簡(jiǎn)單,但由于同步不會(huì)實(shí)時(shí)的進(jìn)行,經(jīng)常帶來(lái)用戶的信息不一致的情況發(fā)生。而聯(lián)合認(rèn)證是指一個(gè)機(jī)構(gòu)A信任另一個(gè)機(jī)構(gòu)B,并使用機(jī)構(gòu)B提供的認(rèn)證服務(wù)來(lái)對(duì)登錄其機(jī)構(gòu)的用戶進(jìn)行認(rèn)證;聯(lián)合認(rèn)證使不同機(jī)構(gòu)的系統(tǒng)能更好的進(jìn)行合作,進(jìn)一步提高跨機(jī)構(gòu)用戶的體驗(yàn)。
聯(lián)合認(rèn)證的登錄流程場(chǎng)景如圖1所示的10個(gè)步驟來(lái)完成:需要圖書(shū)閱覽或查詢的讀者從瀏覽器發(fā)起對(duì)共享域平臺(tái)中的應(yīng)用系統(tǒng)“館際互借讀者網(wǎng)關(guān)”發(fā)起訪問(wèn)(第1步),館際互借讀者網(wǎng)關(guān)發(fā)現(xiàn)讀者未登錄,便重定向到區(qū)域統(tǒng)一認(rèn)證中心SP(第2步)。SP也發(fā)現(xiàn)該讀者未在此登錄過(guò),于是又重定向到該讀者所在機(jī)構(gòu)的聯(lián)合認(rèn)證中心IDP(第3步)。IDP向讀者瀏覽器發(fā)送登錄頁(yè)面(第4步),讀者輸入用戶名密碼后點(diǎn)登錄(第5步),聯(lián)合認(rèn)證中心IDP驗(yàn)證用戶名密碼在本機(jī)構(gòu)是否合法。如果合法,則重定向到統(tǒng)一認(rèn)證中心SP(第6步),統(tǒng)一認(rèn)證中心根據(jù)回傳回來(lái)的令牌ID,通過(guò)第7步和第8步調(diào)用聯(lián)合認(rèn)證中心的WEBService,返回該讀者的詳細(xì)信息,并保存到SP緩存中,登錄成功。然后重定向到館際互借讀者網(wǎng)關(guān)(第9步)告知登錄成功,然后返回登錄成功后的頁(yè)面給讀者(第10步),至此,一次聯(lián)合認(rèn)證的登錄流程全部完成。
通過(guò)圖書(shū)館區(qū)域中心和共享域認(rèn)證中心實(shí)施聯(lián)合認(rèn)證,會(huì)帶來(lái)以下優(yōu)點(diǎn)。
(1)不再需要往共享域平臺(tái)同步和導(dǎo)入用戶數(shù)據(jù)了;共享域?qū)D書(shū)館區(qū)域的認(rèn)證,完全依賴(lài)該圖書(shū)館區(qū)域提供的聯(lián)合認(rèn)證接口來(lái)實(shí)現(xiàn)。這樣給圖書(shū)館的管理帶來(lái)了極大的靈活性,圖書(shū)館可以完全控制用戶的登錄行為。
(2)實(shí)現(xiàn)一個(gè)用戶名和密碼,可以登錄圖書(shū)館區(qū)域的所有應(yīng)用系統(tǒng),比如門(mén)戶平臺(tái)、

圖1 聯(lián)合認(rèn)證登錄流程場(chǎng)景圖
OPAC系統(tǒng)、電子閱覽室系統(tǒng)等,而且可以實(shí)現(xiàn)單點(diǎn)登錄(SSO),在圖書(shū)館系統(tǒng)登錄成功后,可以直接訪問(wèn)共享域平臺(tái)的所有被許可的系統(tǒng)資源。
對(duì)于高校圖書(shū)館,聯(lián)合認(rèn)證的最重要的數(shù)據(jù)來(lái)源之一,是各高校圖書(shū)館自動(dòng)化系統(tǒng)中的讀者數(shù)據(jù)。這些用戶數(shù)據(jù)信息非常全面,而且由圖書(shū)館自動(dòng)化系統(tǒng)進(jìn)行增刪查改維護(hù),只需要做個(gè)簡(jiǎn)單接口就可以,省去了很大的工作量。
特別是目前越來(lái)越多的高校已經(jīng)實(shí)施了校園一卡通的項(xiàng)目,因此聯(lián)合認(rèn)證的另一個(gè)重要的數(shù)據(jù)來(lái)源可以直接采用校園卡數(shù)據(jù);使用該校園卡數(shù)據(jù)可以實(shí)現(xiàn)一個(gè)學(xué)校校園的統(tǒng)一認(rèn)證。但是鑒于校外讀者一般沒(méi)有校園卡,因此聯(lián)合認(rèn)證接口同時(shí)必須要具備能夠維護(hù)這部分校外讀者數(shù)據(jù)的功能。
在某省圖書(shū)資源共享域平臺(tái)的各個(gè)成員圖書(shū)館中,我們首先以某高校為試點(diǎn),開(kāi)發(fā)并實(shí)現(xiàn)了聯(lián)合認(rèn)證接口。某高校圖書(shū)館認(rèn)證環(huán)境如圖2所示。

圖2 某高校圖書(shū)館認(rèn)證環(huán)境
學(xué)校圖書(shū)館的本地認(rèn)證中心,掛接在本地WEB服務(wù)總線LSB(Library Service Bus)上,為館內(nèi)其他應(yīng)用服務(wù)器(如圖書(shū)館門(mén)戶、OPAC、資源校外訪問(wèn)等等)提供統(tǒng)一認(rèn)證服務(wù)。本地認(rèn)證中心的讀者數(shù)據(jù)和校園卡管理中心實(shí)現(xiàn)實(shí)時(shí)同步。為了用戶數(shù)據(jù)安全,用戶密碼字段不做同步,通過(guò)一卡通的API來(lái)進(jìn)行用戶名和密碼的驗(yàn)證。聯(lián)合認(rèn)證接口服務(wù)部署在本地認(rèn)證中心的服務(wù)器上。這樣,讀者通過(guò)校園卡的用戶名和密碼,可以訪問(wèn)圖書(shū)館提供給讀者的各項(xiàng)服務(wù)。
聯(lián)合認(rèn)證接口是基于J2EE平臺(tái)進(jìn)行的開(kāi)發(fā),使用Eclipse 3.6作為開(kāi)發(fā)工具,采用Tomcat 6作為WEB容器,數(shù)據(jù)庫(kù)采用Oracle 10g,使用開(kāi)源框架SSH(Spring Struts Hibernate)。

圖3 聯(lián)合認(rèn)證接口架構(gòu)圖
聯(lián)合認(rèn)證服務(wù)程序分為三層。分別為處理層、頁(yè)面層、DAO層,處理層是讀者和CALIS認(rèn)證中心進(jìn)行交互的頁(yè)面處理層,用來(lái)處理用戶名密碼登錄以及CALIS的認(rèn)證中心的Web服務(wù)回調(diào)。頁(yè)面層接收到請(qǐng)求后,調(diào)用服務(wù)層的CalisFederalService(圖4)服務(wù)來(lái)完成驗(yàn)證。DAO層負(fù)責(zé)用戶數(shù)據(jù)的持久層的存取訪問(wèn)。通過(guò)分層,帶來(lái)的最大好處是,當(dāng)給其他高校或機(jī)構(gòu)圖書(shū)館部署聯(lián)合認(rèn)證的時(shí)候,只需要替換DAO層的組件即可,大大減少開(kāi)發(fā)工作量。
在登錄頁(yè)面的IdpAction處理里,會(huì)接收3個(gè)參數(shù):sp、goto和idp。sp是CALIS統(tǒng)一認(rèn)證中心的URL地址,goto是應(yīng)用系統(tǒng)的地址,idp是聯(lián)合認(rèn)證中心的代碼。
IdpAction首先調(diào)用 CalisFederalService的login方法進(jìn)行登錄。該方法會(huì)調(diào)用UasUserDAO提供的getUser方法返回一個(gè)用戶實(shí)體UasUser。該實(shí)體包含用戶的全部信息,用戶名密碼驗(yàn)證成功后,會(huì)在聯(lián)合認(rèn)證服務(wù)器上創(chuàng)建一個(gè) Session項(xiàng)(UasSessionItem), 其成員如圖 6所示。 然后IdpAction將請(qǐng)求重定向到sp參數(shù)指定的地址,另外給這個(gè)地址加上3個(gè)參數(shù)goto和idp和artifact。

圖4 CalisFederalService接口

圖5 UasUserDAO接口

圖6 UasSessionItem成員
當(dāng)CALIS統(tǒng)一認(rèn)證中心接收到這3個(gè)參數(shù)的時(shí)候,會(huì)將artifact作為參數(shù)調(diào)用聯(lián)合認(rèn)證中心ArtifactAction的WEB服務(wù),請(qǐng)求該artifact對(duì)應(yīng)的讀者的信息。信息為XML格式的,模版如下:

圖7 ArtifactAction回應(yīng)的格式
最后全部完成聯(lián)合認(rèn)證接口的任務(wù)。
在開(kāi)發(fā)、調(diào)試和運(yùn)行的過(guò)程中,系統(tǒng)遇到了一些問(wèn)題,經(jīng)過(guò)分析和研究,都得到了妥善解決。采用了一些網(wǎng)絡(luò)嗅探器,進(jìn)行跟蹤HTTP請(qǐng)求,這樣可以很清晰的理解和調(diào)試聯(lián)合認(rèn)證的整個(gè)流程,解決了所有HTTP跳轉(zhuǎn)過(guò)程怎樣跟蹤和分析的問(wèn)題。聯(lián)合認(rèn)證中心的artifact由聯(lián)合認(rèn)證中心創(chuàng)建和維護(hù),生命周期可以根據(jù)情況設(shè)置,1小時(shí)或其他時(shí)限過(guò)期,明確了權(quán)限,保證了其生命周期的管理。經(jīng)過(guò)開(kāi)發(fā)、部署和運(yùn)行,該省級(jí)共享域平臺(tái)的聯(lián)合認(rèn)證接口運(yùn)行穩(wěn)定。學(xué)校讀者使用自己的校園卡卡號(hào)和密碼,就可以登錄到共享域平臺(tái),使用平臺(tái)提供的文獻(xiàn)服務(wù)。該技術(shù)可通過(guò)建立一個(gè)三級(jí)聯(lián)合認(rèn)證的平臺(tái),推廣到各機(jī)構(gòu)或高校圖書(shū)館,使這些成員館和省共享域平臺(tái),乃至全國(guó)的文獻(xiàn)保障體系網(wǎng)絡(luò)實(shí)現(xiàn)任何時(shí)點(diǎn)登錄,隨時(shí)隨地享受便捷的服務(wù)。
[1]王文清,陳凌.CALIS數(shù)字圖書(shū)館云服務(wù)平臺(tái)模型[J].大學(xué)圖書(shū)館學(xué)報(bào),2009,(04).
[2]楊新涯,王文清,張潔,王寧.CALIS三期共享域與圖書(shū)館
系統(tǒng)整合的實(shí)踐研究[J].大學(xué)圖書(shū)館學(xué)報(bào),2012,(01).
[3]姚曉霞,趙永超,陳凌,王文清.基于SaaS的CALIS共享服務(wù)實(shí)踐[J].大學(xué)圖書(shū)館學(xué)報(bào),2012,(04).
[4]周君平,孔德新,付偉,杜佳穎.云服務(wù)中跨安全域的聯(lián)合身份認(rèn)證技術(shù)分析[J].信息安全與通信保密,2012,(11).
編輯:馮惟榘
Application of Joint Certification in CALIS Platform Center on Provincial Level
ZHOU Jiaqiang
(Library of Shandong University,Jinan Shandong 250100)
This airticle discussed the the basic concept and principle of Joint certification.The exploration of J2EE platform have achieved the joint certification of university library and CALIS platform of Shared domain on provincial level.The airticla also look ahead the development of 3 level joint certification based on this technology,realize the convenient service in long-term prospects that login service in any place and anytime through the internet to bring about literature safeguard system in regional and even the whole country.
Joint certification;Single Sign-On;CALI
F326
A
2095-7327(2016)-01-0036-04
周加強(qiáng)(1971-),男,山東濟(jì)南人,山東大學(xué)圖書(shū)館高級(jí)工程師,研究方向:計(jì)算機(jī)應(yīng)用。