基于票據(jù)的單點(diǎn)登錄系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
基于票據(jù)的單點(diǎn)登錄系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
基于票據(jù)的單點(diǎn)登錄系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
基于票據(jù)的單點(diǎn)登錄系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
基于票據(jù)的單點(diǎn)登錄系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、.基于票據(jù)的單點(diǎn)登錄系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)-電氣論文基于票據(jù)的單點(diǎn)登錄系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 李曉永,王福喜(華北計(jì)算技術(shù)研究所,北京100083)摘要:針對(duì)傳統(tǒng)基于票據(jù)的Web應(yīng)用單點(diǎn)登錄系統(tǒng)在組合應(yīng)用訪問(wèn)上的不足以及基于證書的Web應(yīng)用單點(diǎn)登錄系統(tǒng)存在的效率問(wèn)題,提出一種改進(jìn)的基于票據(jù)的Web應(yīng)用單點(diǎn)登錄系統(tǒng)。該系統(tǒng)實(shí)現(xiàn)了不同域名的Web應(yīng)用單點(diǎn)登錄,引入代理票據(jù)實(shí)現(xiàn)了組合應(yīng)用訪問(wèn)時(shí)的單點(diǎn)登錄,采用票據(jù)進(jìn)行身份認(rèn)證,避免了數(shù)字簽名以及多重?cái)?shù)字簽名帶來(lái)的認(rèn)證效率問(wèn)題。關(guān)鍵詞:?jiǎn)吸c(diǎn)登錄;票據(jù);代理票據(jù);TGT;Web應(yīng)用中圖分類號(hào):TN915?34;TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1004?373X(2

2、015)13?0085?05收稿日期:2014?12?210 引言隨著網(wǎng)絡(luò)技術(shù)和信息技術(shù)的不斷發(fā)展,用戶對(duì)于信息和服務(wù)的需求不斷增加,各種應(yīng)用服務(wù)不斷普及,用戶使用的應(yīng)用系統(tǒng)越來(lái)越多。用戶需要牢記大量應(yīng)用系統(tǒng)的登錄信息,給用戶帶來(lái)了很大的麻煩,為了減少麻煩,用戶一般采用相同而且方便記憶的口令,這就帶來(lái)了極大的安全隱患,同時(shí)加上各應(yīng)用系統(tǒng)的認(rèn)證系統(tǒng)存在各種差異,嚴(yán)重阻礙了系統(tǒng)間的信息交互,單點(diǎn)登錄正是在這一背景下產(chǎn)生的。單點(diǎn)登錄的目的是“一次登錄,自由切換”,即用戶可以在只進(jìn)行一次主動(dòng)的身份認(rèn)證前提下,就可以自由訪問(wèn)多個(gè)授權(quán)內(nèi)的應(yīng)用資源。在Web 應(yīng)用環(huán)境下,用戶通過(guò)訪問(wèn)Web 應(yīng)用獲取資源,有

3、時(shí),為了業(yè)務(wù)功能以及用戶體驗(yàn)的需要,某些Web應(yīng)用之間需要相互訪問(wèn)來(lái)獲取資源,將后者定義為組合應(yīng)用訪問(wèn)。傳統(tǒng)的基于票據(jù)的Web應(yīng)用單點(diǎn)登錄系統(tǒng)在用戶登錄成功后為其生成一張票據(jù),結(jié)合Web應(yīng)用系統(tǒng)特有的Cookie技術(shù)實(shí)現(xiàn)了用戶訪問(wèn)Web應(yīng)用時(shí)的單點(diǎn)登錄,但由于Cookie的限制,該系統(tǒng)要求Web應(yīng)用必須具備相同的域名,部署起來(lái)不太方便,同時(shí)該系統(tǒng)并未給出組合應(yīng)用訪問(wèn)時(shí)單點(diǎn)登錄的解決方法。基于證書的單點(diǎn)登錄系統(tǒng)通過(guò)引入多重簽名技術(shù)給出了組合應(yīng)用訪問(wèn)時(shí)單點(diǎn)登錄的解決方法,但是缺點(diǎn)也十分明顯,需要對(duì)證書鏈上的每個(gè)簽名進(jìn)行驗(yàn)證,認(rèn)證效率太低。針對(duì)上述問(wèn)題,本文給出一種改進(jìn)的基于票據(jù)的Web應(yīng)用單點(diǎn)登錄

4、系統(tǒng),解決了Cookie對(duì)于Web應(yīng)用域名的限制,同時(shí)引入代理票據(jù)解決了組合應(yīng)用訪問(wèn)時(shí)的單點(diǎn)登錄,避免了多重?cái)?shù)字簽名帶來(lái)的效率問(wèn)題。1 傳統(tǒng)單點(diǎn)登錄方案1.1 基于票據(jù)的單點(diǎn)登錄傳統(tǒng)的基于票據(jù)的單點(diǎn)登錄在用戶的登錄信息認(rèn)證通過(guò)后,認(rèn)證服務(wù)器為用戶生成一張票據(jù),票據(jù)由隨機(jī)的字符串組成,以鍵值對(duì)的形式附在URL后面,用戶攜帶此票據(jù)訪問(wèn)Web應(yīng)用資源,Web應(yīng)用驗(yàn)證票據(jù)合法后,返回用戶訪問(wèn)的資源,同時(shí)會(huì)附帶一個(gè)Cookie,Cookie中包含了用戶的身份信息,之后用戶訪問(wèn)同域名的其他Web應(yīng)用時(shí)會(huì)自動(dòng)攜帶該Cookie,Web應(yīng)用通過(guò)該Cookie了解到用戶已經(jīng)登錄,直接返回訪問(wèn)的資源,無(wú)需再次對(duì)用

5、戶進(jìn)行身份認(rèn)證,實(shí)現(xiàn)了單點(diǎn)登錄。由于Cookie本身對(duì)域名的限制,單點(diǎn)登錄范圍內(nèi)的Web應(yīng)用必須含有相同域名,同時(shí)該傳統(tǒng)方案未給出Web 應(yīng)用之間即組合應(yīng)用訪問(wèn)的單點(diǎn)登錄流程。1.2 基于證書的單點(diǎn)登錄基于證書的單點(diǎn)登錄主要由CA(證書授權(quán))、Web應(yīng)用服務(wù)器和用戶三部分組成。通過(guò)CA簽發(fā)證書實(shí)現(xiàn)用戶訪問(wèn)服務(wù)器的單點(diǎn)登錄,認(rèn)證過(guò)程與上述方案類型。在面對(duì)組合應(yīng)用訪問(wèn)需求時(shí),用戶將證書作為自己的身份憑證委托給Web 應(yīng)用,組合訪問(wèn)鏈上Web 應(yīng)用依次給證書簽名,最后一個(gè)Web 應(yīng)用需要對(duì)證書鏈上的所有簽名逐個(gè)驗(yàn)證,驗(yàn)證通過(guò)后,直接返回訪問(wèn)的資源,無(wú)需再次對(duì)用戶進(jìn)行身份認(rèn)證,實(shí)現(xiàn)了組合應(yīng)用訪問(wèn)的單點(diǎn)

6、登錄。對(duì)于證書的簽名和驗(yàn)簽,尤其對(duì)多重簽名的驗(yàn)簽需要花費(fèi)大量時(shí)間,因此該方案存在認(rèn)證效率問(wèn)題。1.3 改進(jìn)的單點(diǎn)登錄方案針對(duì)以上傳統(tǒng)單點(diǎn)登錄方案存在的不足,改進(jìn)方案的主要設(shè)計(jì)思想如下:(1)更改基于票據(jù)的單點(diǎn)登錄流程,實(shí)現(xiàn)不同域名的Web應(yīng)用單點(diǎn)登錄;(2) 引入代理票據(jù),實(shí)現(xiàn)Web 應(yīng)用之間的身份認(rèn)證;(3)設(shè)計(jì)基于代理票據(jù)的單點(diǎn)登錄流程,實(shí)現(xiàn)組合應(yīng)用訪問(wèn)時(shí)的Web應(yīng)用單點(diǎn)登錄。2 單點(diǎn)登錄系統(tǒng)設(shè)計(jì)2.1 單點(diǎn)登錄系統(tǒng)總體模型基于以上對(duì)于單點(diǎn)登錄方案的分析,設(shè)計(jì)基于票據(jù)的Web應(yīng)用單點(diǎn)登錄系統(tǒng)模型如圖1所示。單點(diǎn)登錄系統(tǒng)主要包括兩類安全實(shí)體:(1)單點(diǎn)登錄代理組件:以Web應(yīng)用插件的形式存在

7、,部署在Web 應(yīng)用端,截獲用戶訪問(wèn)Web 應(yīng)用請(qǐng)求,實(shí)現(xiàn)對(duì)請(qǐng)求中身份信息的檢查完成身份認(rèn)證,實(shí)現(xiàn)用戶訪問(wèn)Web應(yīng)用時(shí)的單點(diǎn)登錄。(2)單點(diǎn)登錄服務(wù)器:以獨(dú)立運(yùn)行系統(tǒng)的形式存在,對(duì)用戶及Web 應(yīng)用的身份信息以及票據(jù)信息進(jìn)行管理,能夠基于票據(jù)對(duì)用戶及Web應(yīng)用進(jìn)行身份認(rèn)證。單點(diǎn)登錄系統(tǒng)的總體流程如下:首先用戶訪問(wèn)Web應(yīng)用,部署在Web 應(yīng)用端的單點(diǎn)登錄代理組件截獲該訪問(wèn)請(qǐng)求,檢查到請(qǐng)求中不含票據(jù),然后將請(qǐng)求重定向至單點(diǎn)登錄服務(wù)器,單點(diǎn)登錄服務(wù)器的身份認(rèn)證模塊會(huì)提示用戶進(jìn)行登錄,登錄成功后,單點(diǎn)登錄服務(wù)器的票據(jù)管理模塊會(huì)為該用戶生成一個(gè)票據(jù),之后用戶攜帶票據(jù)重新訪問(wèn)Web 應(yīng)用,部署在Web

8、應(yīng)用的單點(diǎn)登錄代理組件取出票據(jù)并將票據(jù)提交給單點(diǎn)登錄服務(wù)器獲取身份認(rèn)證結(jié)果,根據(jù)結(jié)果決定是否提供訪問(wèn)資源。 2.2 單點(diǎn)登錄流程用戶在單點(diǎn)登錄服務(wù)器端完成用戶信息注冊(cè)后訪問(wèn)已部署單點(diǎn)登錄代理組件的Web應(yīng)用。圖2描述了本次訪問(wèn)過(guò)程中用戶、Web應(yīng)用服務(wù)器以及單點(diǎn)登錄認(rèn)證服務(wù)器之間的身份認(rèn)證流程。(1)用戶初始訪問(wèn)應(yīng)用服務(wù)器A;(2)部署在應(yīng)用服務(wù)器A 的單點(diǎn)登錄代理截獲訪問(wèn)請(qǐng)求,判定請(qǐng)求中是否含有Cookie 和身份登錄票據(jù)(由身份認(rèn)證服務(wù)器生成的身份斷言索引值,之后認(rèn)證服務(wù)器可以基于該索引值惟一索引到用戶的身份斷言),若不含有,單點(diǎn)登錄代理將地址重定向至認(rèn)證服務(wù)器;(3)認(rèn)證服務(wù)器查詢用戶未

9、登錄(請(qǐng)求中沒(méi)有認(rèn)證服務(wù)器的Cookie),向用戶返回一個(gè)用戶登錄頁(yè)面;(4)用戶在登錄頁(yè)面上輸入身份信息(用戶名口令或用戶證書信息);(5)認(rèn)證服務(wù)器驗(yàn)證用戶的身份信息,認(rèn)證通過(guò)后,生成用戶的身份斷言以及與之關(guān)聯(lián)的斷言索引值(即身份登錄票據(jù)ST)存放在認(rèn)證服務(wù)器數(shù)據(jù)庫(kù)中,將斷言索引值附加到用戶的Http請(qǐng)求中,地址重定向至應(yīng)用服務(wù)器A,同時(shí)認(rèn)證服務(wù)器生成一個(gè)Cookie 返回給用戶;(6)應(yīng)用服務(wù)器A的單點(diǎn)登錄代理截獲訪問(wèn)請(qǐng)求,判定請(qǐng)求中是否含有票據(jù),若含有,則執(zhí)行第(7)步;(7)應(yīng)用服務(wù)器A 依據(jù)解析出的票據(jù)生成用戶斷言請(qǐng)求,請(qǐng)求發(fā)給認(rèn)證服務(wù)器;(8)認(rèn)證服務(wù)器驗(yàn)證身份登錄票據(jù)的有效性,

10、驗(yàn)證通過(guò)后,依據(jù)票據(jù)查詢本地?cái)?shù)據(jù)庫(kù)從而獲取用戶斷言返回給應(yīng)用服務(wù)器A,同時(shí)廢棄該票據(jù);(9)應(yīng)用服務(wù)器A的單點(diǎn)登錄代理驗(yàn)證身份斷言,驗(yàn)證通過(guò)后,執(zhí)行訪問(wèn)控制流程,向用戶返回請(qǐng)求的訪問(wèn)資源,同時(shí)附帶一個(gè)Cookie(存儲(chǔ)當(dāng)前請(qǐng)求的sessionID,之后用戶再次訪問(wèn)應(yīng)用服務(wù)器,可以自動(dòng)攜帶這個(gè)Cookie,應(yīng)用服務(wù)器A通過(guò)Cookie中的sessionID可以得到session獲取用戶身份,不用再次認(rèn)證)。認(rèn)證服務(wù)器返回給客戶端的Cookie 就類似于Ker?beros 的TGT(票據(jù)授權(quán)票據(jù)),之后客戶端想要訪問(wèn)其他應(yīng)用,就可以通過(guò)該Cookie來(lái)獲取訪問(wèn)應(yīng)用的票據(jù)而不用再次登錄。Cookie

11、 中的內(nèi)容包括UserID,UserIP,LoginTime,其中UserID標(biāo)識(shí)了當(dāng)前用戶的名稱,UserIP標(biāo)識(shí)了用戶的客戶端地址,防止在其他客戶機(jī)上被非法使用,LoginTime標(biāo)識(shí)了用戶的登錄時(shí)間,同時(shí)還可以設(shè)定Cookie的有效期,過(guò)了有效期,Cookie就會(huì)自動(dòng)失效,用戶若訪問(wèn)應(yīng)用服務(wù)就必須重新登錄,一般可以將有效期設(shè)為8 h(一個(gè)工作日)。在Kerberos 協(xié)議中,由于TGT可以重復(fù)使用,因此對(duì)于其安全性要求非常高,在本方案中,為防止該Cookie被非法盜用,Cookie的發(fā)放通道采用了基于SSL的安全通道,同時(shí)Cookie中的內(nèi)容也進(jìn)行了加密,認(rèn)證服務(wù)器提取Cookie信息后

12、需要首先解密,再加上對(duì)Cookie設(shè)置的有效期,保證了其在傳輸和使用上的安全。圖3描述了用戶訪問(wèn)Web應(yīng)用服務(wù)器A后接著訪問(wèn)部署了單點(diǎn)登錄代理組件的Web應(yīng)用服務(wù)器B的認(rèn)證流程,用戶無(wú)需登錄即可直接訪問(wèn)Web應(yīng)用服務(wù)器B。(1)用戶訪問(wèn)應(yīng)用服務(wù)器A 之后,訪問(wèn)應(yīng)用服務(wù)器B;(2)部署在應(yīng)用服務(wù)器B 的單點(diǎn)登錄代理截獲訪問(wèn)請(qǐng)求,判定請(qǐng)求中是否含有Cookie 和票據(jù)ST,若沒(méi)有,將地址重定向至認(rèn)證服務(wù)器;(3)用戶客戶端發(fā)現(xiàn)本地存有認(rèn)證服務(wù)器的Cookie,http請(qǐng)求攜帶此Cookie發(fā)送至認(rèn)證服務(wù)器;(4)認(rèn)證服務(wù)器提取Cookie并獲得用戶登錄信息,驗(yàn)證合法性,認(rèn)證服務(wù)器已有用戶斷言,不再

13、向用戶返回登錄頁(yè)面,直接為用戶生成新的身份登錄票據(jù),后續(xù)流程與用戶初次訪問(wèn)應(yīng)用服務(wù)器A一樣,至此,用戶無(wú)需再次登錄就可以直接訪問(wèn)應(yīng)用服務(wù)器B,實(shí)現(xiàn)了單點(diǎn)登錄。2.3 組合應(yīng)用訪問(wèn)單點(diǎn)登錄流程上述的單點(diǎn)登錄流程無(wú)法解決另外一種情況,即用戶訪問(wèn)應(yīng)用服務(wù)器A,應(yīng)用服務(wù)器A需要依賴應(yīng)用服務(wù)器B來(lái)完成這次請(qǐng)求,這種情況定義為組合應(yīng)用訪問(wèn)。在組合應(yīng)用訪問(wèn)中,應(yīng)用服務(wù)器B需要完成對(duì)用戶的身份認(rèn)證,一種可行的解決方案是應(yīng)用服務(wù)器B將請(qǐng)求重定向至認(rèn)證服務(wù)器,與訪問(wèn)應(yīng)用服務(wù)器A的認(rèn)證流程一樣,通過(guò)TGT獲取ST,再通過(guò)ST認(rèn)證用戶的身份,但這種方式會(huì)帶來(lái)一個(gè)新的問(wèn)題就是過(guò)多的重定向,重定向會(huì)導(dǎo)致用戶瀏覽器地址欄里

14、的地址跳轉(zhuǎn),太多的跳轉(zhuǎn)就會(huì)帶來(lái)極差的用戶體驗(yàn),這種認(rèn)證方案顯然不太合適。在此采用委托代理的方法,即應(yīng)用服務(wù)器A代理用戶去完成身份認(rèn)證的工作,并在認(rèn)證過(guò)程中引入代理票據(jù)。用戶訪問(wèn)應(yīng)用服務(wù)器A,按照?qǐng)D1所示的身份認(rèn)證流程獲得身份票據(jù)ST,然后攜帶ST訪問(wèn)應(yīng)用服務(wù)器A,之后的身份認(rèn)證流程如圖4所示。(1)應(yīng)用服務(wù)器A 向認(rèn)證服務(wù)器提交驗(yàn)證票據(jù)請(qǐng)求,同時(shí)會(huì)在請(qǐng)求中附帶一個(gè)TGTurl,該url惟一地且安全地標(biāo)識(shí)應(yīng)用服務(wù)器A的身份。 (2)認(rèn)證服務(wù)器通過(guò)ST查詢到用戶的身份信息斷言,接著認(rèn)證服務(wù)器會(huì)通過(guò)TGTurl來(lái)驗(yàn)證應(yīng)用服務(wù)器A的身份,這個(gè)url必須是https的,認(rèn)證服務(wù)器訪問(wèn)該url獲取應(yīng)用服務(wù)

15、器A的身份信息,同時(shí)驗(yàn)證其SSL證書。(3)如果驗(yàn)證失敗,把身份信息斷言作為響應(yīng)信息返回,響應(yīng)信息中不包含TGT,本次身份認(rèn)證流程結(jié)束;如果驗(yàn)證通過(guò),進(jìn)行步驟(4)。(4)認(rèn)證服務(wù)器生成一個(gè)TGTID 和身份信息斷言一起作為響應(yīng)信息返回(考慮到TGT的重要性,在其傳遞過(guò)程中不能被非法用戶竊取,因此這里沒(méi)有直接返回TGT);同時(shí),認(rèn)證服務(wù)器會(huì)再次訪問(wèn)TGTurl,并將TGTID和TGT傳遞給應(yīng)用服務(wù)器A,由于TGTurl是https形式,保證了TGT的傳遞通道是安全的。(5)應(yīng)用服務(wù)器A 通過(guò)TGTID 查到TGT,并將TGT保存在本地。之所以引入TGTurl而不是直接發(fā)放TGT是為了確保應(yīng)用服

16、務(wù)器A的身份是可信的,同時(shí)由于TGT的重要性,其發(fā)放的通道也是基于SSL 的安全通道,同時(shí)TGT本身也是加密過(guò)的,只有認(rèn)證服務(wù)器自身可以解密。有了TGT應(yīng)用服務(wù)器就可以使用TGT去請(qǐng)求票據(jù),這里把委托代理拿到的票據(jù)稱為代理票據(jù)PT(Proxy Ticket),區(qū)別于上述流程中的ST,應(yīng)用服務(wù)器A 在訪問(wèn)應(yīng)用服務(wù)器B之前,需要先使用TGT去向認(rèn)證服務(wù)器獲取PT,單點(diǎn)登錄流程如圖5所示。 (1)應(yīng)用服務(wù)器A攜帶TGT訪問(wèn)認(rèn)證服務(wù)器,請(qǐng)求PT;(2)TGT驗(yàn)證通過(guò),認(rèn)證服務(wù)器返回PT;(3)應(yīng)用服務(wù)器A攜帶PT訪問(wèn)應(yīng)用服務(wù)器B;(4)應(yīng)用服務(wù)器B提交PT給認(rèn)證服務(wù)器,請(qǐng)求認(rèn)證用戶身份;(5)PT 驗(yàn)

17、證通過(guò),返回用戶身份斷言給應(yīng)用服務(wù)器B。Web應(yīng)用在認(rèn)證服務(wù)器注冊(cè)時(shí),會(huì)為其維護(hù)一張應(yīng)用訪問(wèn)權(quán)限表,即該Web應(yīng)用可以訪問(wèn)哪些應(yīng)用,當(dāng)然前提是被訪問(wèn)者允許其訪問(wèn)自己的資源。之后在收到PT驗(yàn)證請(qǐng)求后,單點(diǎn)登錄服務(wù)器會(huì)首先驗(yàn)證其合法性,之后會(huì)通過(guò)PT 找到其關(guān)聯(lián)的TGT,然后會(huì)訪問(wèn)該TGT的持有者應(yīng)用服務(wù)器A的訪問(wèn)權(quán)限表,判斷其是否有權(quán)限訪問(wèn)應(yīng)用服務(wù)器B,如果沒(méi)有,直接拒絕該請(qǐng)求,防止Web應(yīng)用被越權(quán)訪問(wèn)。3 票據(jù)安全性分析在上述單點(diǎn)登錄流程中,用戶最終通過(guò)票據(jù)訪問(wèn)服務(wù),而票據(jù)的發(fā)放又依賴于TGT(票據(jù)授權(quán)票據(jù)),因此TGT和票據(jù)涉及到整個(gè)單點(diǎn)登錄系統(tǒng)的安全。本文基于SSL通道分發(fā)TGT和票據(jù),防

18、止在傳輸過(guò)程中被人竊取,同時(shí)對(duì)內(nèi)容進(jìn)行加密,密文只由單點(diǎn)登錄認(rèn)證中心才能解開(kāi)。TGT和票據(jù)都設(shè)置了有效期,超過(guò)有效期將自動(dòng)失效。同時(shí)票據(jù)被設(shè)定為只能使用一次,用戶攜帶票據(jù)訪問(wèn)服務(wù)后,該票據(jù)將自動(dòng)失效,防止重放攻擊。同時(shí)產(chǎn)生票據(jù)的隨機(jī)數(shù)必須足夠隨機(jī),防止規(guī)則過(guò)于明顯被人為猜出。4 單點(diǎn)登錄系統(tǒng)實(shí)現(xiàn)單點(diǎn)登錄系統(tǒng)的實(shí)現(xiàn)主要有兩部分:?jiǎn)吸c(diǎn)登錄代理組件和單點(diǎn)登錄服務(wù)器。本文給出基于JAVA 開(kāi)發(fā)的Web應(yīng)用單點(diǎn)登錄系統(tǒng)實(shí)現(xiàn)方案。單點(diǎn)登錄代理組件部署在Web 應(yīng)用端,負(fù)責(zé)攔截對(duì)本地Web 應(yīng)用的受保護(hù)資源的訪問(wèn)請(qǐng)求,對(duì)請(qǐng)求方進(jìn)行身份認(rèn)證,并將認(rèn)證請(qǐng)求重定向至單點(diǎn)登錄服務(wù)器;單點(diǎn)登錄服務(wù)器單獨(dú)部署,負(fù)責(zé)完成

19、對(duì)用戶的認(rèn)證工作。其中身份認(rèn)證代理組件以jar包的形式存在,如果某個(gè)Web應(yīng)用要使用該單點(diǎn)登錄系統(tǒng),只需將身份認(rèn)證代理組件的jar包放置在本應(yīng)用的外部依賴庫(kù)內(nèi),并在自己的Web.xml配置文件內(nèi)添加如下所示的配置代碼,即可成功部署單點(diǎn)登錄系統(tǒng),避免“硬編碼”形式給系統(tǒng)部署帶來(lái)的不便。(1)filter(2)filter?nameHttpProxy/filter?name(3)filter?classcom.nci.filter.LoginFilter/filter?class(4)init?param(5)param?nameIDPLoginURL/param?name(6)param?val

20、uehttps:/11:8080/IAServer/Log?inServer/param?value(7)/init?param(8)init?param(9)param?nameIDPServiceURL/param?name(10)param?valuehttps:/11:8080/IAServer/ser?vices/param?value(11)/init?param(12)/filter(13)filter?mapping(14)filter?nameHttpProxy/filter?name(15)url?pattern/*/url?

21、pattern(16)/filter?mapping單點(diǎn)登錄代理組件采用了servlet的filter技術(shù),代碼中的第(6)行配置了單點(diǎn)登錄服務(wù)器的登錄請(qǐng)求處理地址,初次進(jìn)行身份認(rèn)證的請(qǐng)求被重定向至該地址;第(10)行配置了單點(diǎn)登錄服務(wù)器的地址,單點(diǎn)登錄代理組件拿到請(qǐng)求訪問(wèn)者的票據(jù)后,需要通過(guò)該地址與單點(diǎn)登錄服務(wù)器進(jìn)行通信來(lái)獲取用戶的身份信息;第(15)行配置了所要攔截的URL 形式(圖中配置的URL 形式為攔截所有Web 請(qǐng)求)。單點(diǎn)登錄代理組件的配置方式避免了與業(yè)務(wù)服務(wù)器的功能耦合,可以在無(wú)需對(duì)Web應(yīng)用修改的情況下部署并對(duì)Web 應(yīng)用實(shí)施安全保護(hù),如果需要更換單點(diǎn)登錄服務(wù)器,只需更改配置

22、代碼中的單點(diǎn)登錄服務(wù)器的地址即可。單點(diǎn)登錄服務(wù)器分為用戶登錄、票據(jù)(ST)管理、代理票據(jù)(PT)管理和斷言管理四個(gè)模塊。其中用戶登錄模塊負(fù)責(zé)驗(yàn)證用戶的登錄信息;票據(jù)管理模塊負(fù)責(zé)驗(yàn)證和管理用戶的訪問(wèn)票據(jù);代理票據(jù)模塊負(fù)責(zé)驗(yàn)證和管理用戶的票據(jù)授權(quán)票據(jù)(TGT)和代理票據(jù);斷言管理模塊負(fù)責(zé)管理用戶的身份信息斷言。5 實(shí)驗(yàn)結(jié)果及分析5.1 實(shí)驗(yàn)環(huán)境為了驗(yàn)證單點(diǎn)登錄系統(tǒng)的正確性和有效性,本文針對(duì)Web應(yīng)用環(huán)境進(jìn)行了測(cè)試部署,其測(cè)試場(chǎng)景如圖6所示。測(cè)試環(huán)境中共部署一臺(tái)單點(diǎn)登錄服務(wù)器、一臺(tái)用戶終端和三臺(tái)Web應(yīng)用服務(wù)器,它們之間通過(guò)網(wǎng)絡(luò)連接,三臺(tái)Web應(yīng)用服務(wù)器都部署了單點(diǎn)登錄代理組件。其中Web應(yīng)用A與W

23、eb應(yīng)用B之間的調(diào)用關(guān)系為Web應(yīng)用B調(diào)用Web應(yīng)用A。5.2 實(shí)驗(yàn)方法及結(jié)果本文圍繞單點(diǎn)登錄和組合應(yīng)用訪問(wèn)的單點(diǎn)登錄兩個(gè)功能開(kāi)展測(cè)試實(shí)驗(yàn),為了更好地說(shuō)明實(shí)驗(yàn)結(jié)果,將訪問(wèn)過(guò)程中涉及到的所有地址按順序全部打印出來(lái)。 (1)單點(diǎn)登錄實(shí)驗(yàn)實(shí)驗(yàn)方法:用戶通過(guò)瀏覽器訪問(wèn)Web應(yīng)用A,訪問(wèn)成功后,通過(guò)瀏覽器訪問(wèn)Web應(yīng)用C。實(shí)驗(yàn)結(jié)果:?jiǎn)吸c(diǎn)登錄實(shí)驗(yàn)結(jié)果如表1所示。其中第1行至第4行顯示了用戶訪問(wèn)Web應(yīng)用A 的訪問(wèn)過(guò)程,用戶需要登錄然后獲取票據(jù),認(rèn)證通過(guò)后成功訪問(wèn)Web應(yīng)用A;第5 行與第6 行顯示了用戶訪問(wèn)Web 應(yīng)用C 的訪問(wèn)過(guò)程,用戶不需要重新登錄即可成功攜帶票據(jù)訪問(wèn)Web應(yīng)用C,實(shí)現(xiàn)了單點(diǎn)登錄。(2)組合應(yīng)用訪問(wèn)單點(diǎn)登錄實(shí)驗(yàn)實(shí)驗(yàn)方法:用戶通過(guò)瀏覽器訪問(wèn)Web 應(yīng)用B,Web應(yīng)用B調(diào)用Web應(yīng)用A。實(shí)驗(yàn)結(jié)果:組合應(yīng)用訪問(wèn)單點(diǎn)登錄實(shí)驗(yàn)結(jié)果如表2所示。表中第1行至第5行顯示了用戶訪問(wèn)Web應(yīng)用B的訪問(wèn)過(guò)程;第6行顯示W(wǎng)eb應(yīng)用B攜帶PT(代理票據(jù))訪問(wèn)Web應(yīng)用A,不需用戶重新登錄即可在Web應(yīng)用B中訪問(wèn)Web應(yīng)用A,實(shí)現(xiàn)了組合應(yīng)用訪問(wèn)中的單點(diǎn)登錄。5.3 實(shí)驗(yàn)結(jié)果分析通過(guò)上節(jié)的實(shí)驗(yàn)內(nèi)容及結(jié)果,單點(diǎn)登錄系統(tǒng)能夠基于票據(jù)實(shí)現(xiàn)用戶訪問(wèn)Web應(yīng)用以及組合應(yīng)用訪問(wèn)的單點(diǎn)登錄。表1的第3

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論