符榮鑫,孔凡壬
(1.廣西師范大學(xué) 圖書館,廣西 桂林 541004;2.廣西師范大學(xué) 教務(wù)處,廣西 桂林 541004)
基于Shibboleth資源共享平臺認(rèn)證機(jī)制的研究
符榮鑫1,孔凡壬2
(1.廣西師范大學(xué) 圖書館,廣西 桂林 541004;2.廣西師范大學(xué) 教務(wù)處,廣西 桂林 541004)
以資源共享作為研究平臺,以遠(yuǎn)程單點(diǎn)登錄為研究對象,主要研究Shibboleth在共享平臺中的認(rèn)證機(jī)制,深入分析Shibboleth系統(tǒng)架構(gòu),闡述Shibboleth工作原理,設(shè)計(jì)應(yīng)用于廣西高校教學(xué)資源共享平臺的用戶身份認(rèn)證系統(tǒng),用以解決跨網(wǎng)域組織用戶身份認(rèn)證管理困難的問題。
Shibboleth;資源共享;身份認(rèn)證;單點(diǎn)登錄
目前,實(shí)現(xiàn)用戶認(rèn)證的機(jī)制有多種,常用的有LDAP、CGI-hook、CGI-SSL 、Authen、aleph-x、wrapper、SSO等。其中LDAP是輕量級目錄訪問協(xié)議,在臺灣的國科會科資中心就是利用MetaLib與LDAP相結(jié)合達(dá)到認(rèn)證用戶的目的[1];而SSO則是單點(diǎn)登錄是目前企業(yè)流行的資源整合認(rèn)證解決方案之一;Shibboleth也實(shí)現(xiàn)了跨域的遠(yuǎn)程單點(diǎn)登錄提供了良好的解決方法[2]44-47。在國內(nèi),北京大學(xué)開始采用Shibboleth技術(shù),先后與北京郵電大學(xué)、華南理工大學(xué)、山東大學(xué)等多所大學(xué)間進(jìn)行身份互相認(rèn)證和互相授權(quán)試驗(yàn)[3]。
自2004年教育部實(shí)施質(zhì)量工程以來,廣西本科院校優(yōu)質(zhì)教學(xué)資源包括236個(gè)優(yōu)質(zhì)專業(yè)、396門精品課程,這些資源由多個(gè)跨地域的單位提供,各自擁有相對獨(dú)立的身份認(rèn)證系統(tǒng),用戶身份認(rèn)證復(fù)雜度高。而實(shí)現(xiàn)優(yōu)質(zhì)資源共享,需要對用戶身份進(jìn)行驗(yàn)證,采用SSO身份認(rèn)證機(jī)制實(shí)現(xiàn)一次登錄、多資源訪問,降低用戶認(rèn)證復(fù)雜性。建立友好的用戶認(rèn)證系統(tǒng),是實(shí)現(xiàn)優(yōu)質(zhì)教學(xué)資源共享平臺的有力保障。
單點(diǎn)登錄(Single Sign-On,簡稱SSO)的特點(diǎn)是在多個(gè)應(yīng)用系統(tǒng)中僅需登錄一次就可訪問所有相互信任的系統(tǒng),因此十分適合與跨網(wǎng)域邊緣系統(tǒng)中進(jìn)行用戶身份認(rèn)證[4]166-168。SSO認(rèn)證機(jī)制如圖1所示:

SSO實(shí)現(xiàn)要求有如下主要功能。
2.1所有應(yīng)用系統(tǒng)共享一個(gè)認(rèn)證系統(tǒng)。統(tǒng)一的認(rèn)證系統(tǒng)是SSO的前提之一。認(rèn)證系統(tǒng)的主要作用是對用戶進(jìn)行登錄認(rèn)證,將用戶的登錄信息和用戶信息庫相比較,匹配則認(rèn)證成功,認(rèn)證系統(tǒng)生成統(tǒng)一的認(rèn)證標(biāo)識(ticket)交給用戶,并對ticket進(jìn)行校驗(yàn),判斷其有效性。
2.2所有應(yīng)用系統(tǒng)能夠識別和提取ticket信息。要實(shí)現(xiàn)SSO的功能,就必須讓應(yīng)用系統(tǒng)能夠識別已經(jīng)登錄過的用戶。應(yīng)用系統(tǒng)應(yīng)該能對ticket進(jìn)行識別和提取,通過與認(rèn)證系統(tǒng)通訊,自動判斷當(dāng)前用戶是否已經(jīng)登錄,從而實(shí)現(xiàn)單點(diǎn)登錄。
始于 2000年的 Shibboleth項(xiàng)目由MACE(Middleware Architecture Committee for Education)小組領(lǐng)導(dǎo)開發(fā),是一個(gè)基于標(biāo)準(zhǔn)的體系結(jié)構(gòu)、策略框架及一套開源軟件,用于支持相對獨(dú)立認(rèn)證系統(tǒng)組織之間的資源共享,提供跨組織邊界的單點(diǎn)登錄服務(wù)。主要應(yīng)用于校園內(nèi)WEB資源共享,以及校園間應(yīng)用系統(tǒng)的用戶身份認(rèn)證[5]15-17。3.1 Shibboleth系統(tǒng)組件
Shibboleth包括兩個(gè)主要組件身份提供者(IdentityProvider)和服務(wù)提供者 (Service Provider),同時(shí)還包括一個(gè)可選組件發(fā)現(xiàn)服務(wù)(Discovery Service)。各組件間使用SAML安全地交換關(guān)于用戶、資源和授權(quán)等信息,Shibboleth使用三種比較常見的斷言類型;認(rèn)證、屬性和授權(quán)斷言[6],能夠有效地在跨網(wǎng)域環(huán)境下進(jìn)行用戶身份驗(yàn)證。Identity Provider主要負(fù)責(zé)提供各種憑證和屬性,對用戶身份進(jìn)行認(rèn)證和用戶屬性進(jìn)行管理。Service Provider主要負(fù)責(zé)訪問資源安全方面的管理,對資源進(jìn)行保護(hù)、用戶訪問資源進(jìn)行授權(quán)和執(zhí)行訪問控制。Discovery Service以互動方式為用戶提供Identity Provider選擇的標(biāo)準(zhǔn)接口,可將用戶提交的選擇直接將用戶重定向給對應(yīng)的Service Provider。3.2 Shibboleth系統(tǒng)工作流程
用戶在訪問某個(gè)基于Shibboleth系統(tǒng)保護(hù)的網(wǎng)絡(luò)資源時(shí),資源服務(wù)器(Service Provider)向用戶所在機(jī)構(gòu)(Identity Provider)申請認(rèn)證該用戶身份,并根據(jù)認(rèn)證結(jié)果決定是否允許該用戶訪問,認(rèn)證通過后,共享服務(wù)根據(jù)自身授權(quán)的要求向 Identity Provider提交屬性請求,并根據(jù)返回的用戶屬性決定用戶可以享有的訪問權(quán)限,實(shí)現(xiàn)授權(quán),用戶可以進(jìn)行資源訪問。Shibboleth系統(tǒng)工作流程如圖2所示:

基于Shibboleth系統(tǒng)工作流程如下:
3.2.1 HTTP向Service Provider發(fā)出請求;
3.2.2 Service Provider將請求轉(zhuǎn)發(fā)給 Discovery Service;
3.2.3請求轉(zhuǎn)發(fā)后,Discovery Service提供用戶統(tǒng)一的Identity Provider選擇界面;
3.2.4用戶提交 Identity Provider選擇結(jié)果給Discovery Service;
3.2.5 Discovery Service轉(zhuǎn)發(fā)用戶提交信息給Service Provider;
3.2.6 Service Provider利用Identity Provider創(chuàng)建認(rèn)證請求,通過瀏覽器發(fā)送給Identity Provider;
3.2.7 Identity Provider響應(yīng)認(rèn)證請求并返回登錄界面給用戶;
3.2.8用戶向 Identity Provider提交證書進(jìn)行用戶身份認(rèn)證,生成攜帶用戶屬性的認(rèn)證斷言;
3.2.9用戶使用認(rèn)證斷言訪問共享資源,完成整個(gè)認(rèn)證過程。
廣西本科院校優(yōu)質(zhì)教學(xué)資源平臺的用戶基本限定于廣西區(qū)內(nèi)各大高校的用戶,訪問資源大部分處于各大高校的資源服務(wù)器中,服務(wù)器管理便利,資源訪問策略可以控制,為建立Shibboleth認(rèn)證系統(tǒng)提供良好的軟硬件環(huán)境。將Shibboleth系統(tǒng)統(tǒng)一部署于資源單位,利用Shibboleth統(tǒng)一集中管理用戶身份,實(shí)現(xiàn)單點(diǎn)登錄訪問,突破IP地址的限制,提升共享平臺整體化建設(shè)效果,提高資源共享率,降低用戶管理認(rèn)證成本,實(shí)現(xiàn)高效暢通的資源共享服務(wù)。
4.1基于Shibboleth資源共享平臺用戶身份認(rèn)證機(jī)制設(shè)計(jì)
資源節(jié)點(diǎn)A、B、C構(gòu)成資源共享平臺,形成整體上相對統(tǒng)一的共享系統(tǒng),可以通過公共網(wǎng)絡(luò)進(jìn)行相互訪問,資源節(jié)點(diǎn)A、B、C可以是跨地域不同組織,擁有相對獨(dú)立的應(yīng)用系統(tǒng),各個(gè)Service Provider可以是異構(gòu)系統(tǒng),在整個(gè)認(rèn)證系統(tǒng)當(dāng)中,需在其中一處譬如資源節(jié)點(diǎn)A中設(shè)立一臺服務(wù)器UPortal作為訪問門戶,也就是Discovery Service,所有的異構(gòu)系統(tǒng)均連接到UPortal上,通過UPortal這一媒介提供登錄認(rèn)證界面,互相轉(zhuǎn)發(fā) Service Provider和 Identity Provider的請求信息,完成用戶身份認(rèn)證的任務(wù)。各高校設(shè)立一臺服務(wù)器作為 Identity Provider進(jìn)行用戶身份認(rèn)證管理,其他的應(yīng)用系統(tǒng)就作為Service Provider管理進(jìn)行共享訪問的資源。設(shè)計(jì)方案如圖3所示:

4.2資源共享系統(tǒng)實(shí)現(xiàn)
在廣西本科院校優(yōu)質(zhì)教學(xué)資源共享平臺搭建中,采用兩臺服務(wù)器存放共享資源,作為Shibboleth中的 Service Provider,用一臺服務(wù)器作為 Identity Provider,另用一臺服務(wù)器作為UPortal,服務(wù)器均采用Windows 2003和Linux服務(wù)器操作系統(tǒng),具體配置如下:
4.2.1 Identity Provider運(yùn)行有軟件 OpenSSL、Apache、Tomcat、Active Directory、Shibboleth IdP;
4.2.2ServiceProvider運(yùn)行有軟件 OpenSSL、Shibboleth SP、IIS、Apache;
4.2.3UPortal 運(yùn)行有軟件 OpenSSL、Tomcat、Apache。
4.2.4 Shibboleth主要文件配置

4.2.5 Shibboleth.xml文件配置
Shibboleth.xml配置文件定義了 Shibboleth的整體框架及各個(gè)相關(guān)子組件間的信息交互模式,涉及到Shibboleth的各個(gè)部分,是決定Shibboleth整體結(jié)構(gòu)的最主要的配置文件。示例如下:


4.3資源共享系統(tǒng)身份認(rèn)證的安全性
資源共享系統(tǒng)身份認(rèn)證的安全性通過SAML標(biāo)準(zhǔn)和 SSL(Secure Socket Layer)協(xié)議來保證。SAML標(biāo)準(zhǔn)基于XML生成安全的信息交換架構(gòu),便于異構(gòu)系統(tǒng)間進(jìn)行安全通訊。通過SSL協(xié)議對所有的數(shù)據(jù)在發(fā)送到網(wǎng)絡(luò)上之前對它們進(jìn)行加密,到達(dá)后再解密,確保數(shù)據(jù)通訊過程中的安全。系統(tǒng)身份認(rèn)證安全響應(yīng)代碼示例如下:


Shibboleth作為下一代互聯(lián)網(wǎng)項(xiàng)目的用戶身份認(rèn)證系統(tǒng),我們在“人文強(qiáng)桂”文獻(xiàn)共享平臺和優(yōu)質(zhì)教學(xué)資源平臺中使用Shibboleth是安全有效的,解決跨網(wǎng)域環(huán)境下異構(gòu)系統(tǒng)間實(shí)現(xiàn)單點(diǎn)登錄認(rèn)證機(jī)制的問題,降低用戶管理認(rèn)證成本,實(shí)現(xiàn)高效暢通的資源共享服務(wù),同時(shí)與其它系統(tǒng)進(jìn)行整合。
[1]吳明德.圖書館自動化與數(shù)位化[EB/OL].http://www.ncl.edu.tw/upload/P0970108002/cats/8.pdf,2007.
[2]江淇,王群.Shibboleth系統(tǒng)應(yīng)用實(shí)例分析[J].數(shù)字圖書館,2007(9).
[3]陳萍,張蓓,呂潔.中間件實(shí)現(xiàn)跨校資源整合及技術(shù)優(yōu)勢介紹說明[EB/OL].http://www.edu.cn/zjj-6573/20080525/t20080525-298480.shtml,2008-05-25.
[4]李峰,郭曉軍,于培民,曹中.企業(yè)門戶應(yīng)用整合中單點(diǎn)登錄(SSO)的技術(shù)實(shí)現(xiàn)與應(yīng)用[J].現(xiàn)代電子技術(shù),2008(23).
[5]危蓉,廖振松,黃學(xué)鵬.Shibboleth口令的研究[J].微型計(jì)算機(jī),2005(21).
[6]Scott Cantor,John Kemp,Rob Philpott,Eve Maler.Assertions and Protocols for the OASIS Security Assertion Markup Language V2.0[EB/OL].http://docs.oasis-open.org/security/saml/v2.0/saml/v2.0/saml-core-2.0-os.pdf,2008-03-15.
The Research of Literature Resources Sharing Platform Authentication Mechanism Based on Shibboleth
FU Rong-xin1,KONGFan-ren2
(1.Library,Guangxi Normal University,Guilin Guangxi 541004;2.Dean’s Office,Guangxi Normal University,Guilin Guangxi 541004)
Resource sharing as research platform,remote SSO as research object,this paper researches on Shibboleth authentication in resources sharing platform,analyses Shibboleth architecture,expounds Shibboleth principle,designs user authentication system used to Guangxi Colleges Teaching Resources Sharing Platform to solute the difficulties of cross-domain organization user authentication management.
Shibboleth;Resources Sharing;authentication;SSO
G250.71
A
1673-8861(2011)02-0143-04
2011-04-16
符榮鑫(1984-),男,廣西賓陽人,廣西師范大學(xué)圖書館助理工程師。主要研究方向:計(jì)算機(jī)軟件與理論。
2010年度新世紀(jì)廣西高等教育教學(xué)改革工程立項(xiàng)項(xiàng)目(2010J GA011)。