• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于票據(jù)的單點(diǎn)登錄系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

      2015-06-01 10:50李曉永王福喜
      現(xiàn)代電子技術(shù) 2015年13期
      關(guān)鍵詞:斷言單點(diǎn)票據(jù)

      李曉永,王福喜

      (華北計(jì)算技術(shù)研究所,北京100083)

      基于票據(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)題。

      單點(diǎn)登錄;票據(jù);代理票據(jù);TGT;Web應(yīng)用

      0 引言

      隨著網(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)用獲取資源,有時(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)登錄的解決方法?;谧C書的單點(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)登錄系統(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ì)用戶進(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)登錄。對(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所示。

      圖1 單點(diǎn)登錄系統(tǒng)模型

      單點(diǎn)登錄系統(tǒng)主要包括兩類安全實(shí)體:

      (1)單點(diǎn)登錄代理組件:以Web應(yīng)用插件的形式存在,部署在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應(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)證流程。

      圖2 身份認(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ù)器查詢用戶未登錄(請(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ù)的有效性,驗(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ù)器A,可以自動(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中的內(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信息后需要首先解密,再加上對(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。

      圖3 單點(diǎn)登錄流程圖

      (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ù)器已有用戶斷言,不再向用戶返回登錄頁(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)致用戶瀏覽器地址欄里的地址跳轉(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所示。

      圖4 組合應(yīng)用訪問(wèn)認(rèn)證流程圖

      (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ù)器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)用服務(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所示。

      圖5 組合應(yīng)用訪問(wèn)單點(diǎn)登錄流程圖

      (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)證通過(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ù),防止在傳輸過(guò)程中被人竊取,同時(shí)對(duì)內(nèi)容進(jìn)行加密,密文只由單點(diǎn)登錄認(rèn)證中心才能解開。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開發(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é)完成對(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)的不便。

      單點(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ù)器,只需更改配置代碼中的單點(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與Web應(yīng)用B之間的調(diào)用關(guān)系為Web應(yīng)用B調(diào)用Web應(yīng)用A。

      圖6 單點(diǎn)登錄系統(tǒng)實(shí)驗(yàn)環(huán)境

      5.2 實(shí)驗(yàn)方法及結(jié)果

      本文圍繞單點(diǎn)登錄和組合應(yīng)用訪問(wèn)的單點(diǎn)登錄兩個(gè)功能開展測(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)登錄。

      表1 單點(diǎn)登錄實(shí)驗(yàn)結(jié)果

      (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)登錄。

      表2 組合應(yīng)用訪問(wèn)單點(diǎn)登錄實(shí)驗(yàn)結(jié)果

      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行和第6行,用戶攜帶不同的票據(jù)(ticket)訪問(wèn)Web應(yīng)用A和Web應(yīng)用B,說(shuō)明了本文提出的單點(diǎn)登錄系統(tǒng)能夠?qū)崿F(xiàn)不同域名Web應(yīng)用的單點(diǎn)登錄。在組合應(yīng)用訪問(wèn)中,表2的第6行Web應(yīng)用通過(guò)代理票據(jù)(PT)訪問(wèn)Web應(yīng)用A,單點(diǎn)登錄服務(wù)器通過(guò)代理票據(jù)完成身份認(rèn)證,實(shí)現(xiàn)了組合應(yīng)用訪問(wèn)中基于代理票據(jù)的單點(diǎn)登錄。

      6 結(jié)語(yǔ)

      本文對(duì)傳統(tǒng)的基于票據(jù)的單點(diǎn)登錄和基于證書的單點(diǎn)登錄進(jìn)行了分析,提出了一種改進(jìn)的基于票據(jù)的單點(diǎn)登錄流程,實(shí)現(xiàn)了不同域名Web應(yīng)用的單點(diǎn)登錄,引入代理票據(jù)實(shí)現(xiàn)了組合應(yīng)用訪問(wèn)的單點(diǎn)登錄,同時(shí)基于該流程給出了具體的單點(diǎn)登錄系統(tǒng)實(shí)現(xiàn)方案,無(wú)需對(duì)Web應(yīng)用修改配置方案,Web應(yīng)用能夠靈活便捷地部署該系統(tǒng)。下一步的主要工作是存在多個(gè)不同域內(nèi)的單點(diǎn)登錄服務(wù)器時(shí),對(duì)用戶訪問(wèn)Web應(yīng)用的單點(diǎn)登錄進(jìn)行研究。

      [1]邱航,權(quán)勇.基于Kerberos的單點(diǎn)登錄系統(tǒng)研究與設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用,2003,23(7):142?144.

      [2]林滿山,郭荷清.單點(diǎn)登錄技術(shù)的現(xiàn)狀及發(fā)展[J].計(jì)算機(jī)應(yīng)用,2004(z1):248?250.

      [3]李小平,閻光偉,王軒峰,等.基于公開密鑰基礎(chǔ)設(shè)施的單點(diǎn)登錄系統(tǒng)的設(shè)計(jì)[J].北京理工大學(xué)學(xué)報(bào),2002(2):209?213.

      [4]譚立球,費(fèi)耀平,李建華.企業(yè)信息門戶單點(diǎn)登錄系統(tǒng)的實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2005,31(17):102?104.

      [5]茅維華,謝金寶.Web應(yīng)用單一登錄的類Kerberos實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2004,21(2):87?90.

      [6]續(xù)巖,季永志.單點(diǎn)登錄技術(shù)在Web應(yīng)用中的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2006,32(10):271?273.

      Design and implementation of bill?based single sign?on system

      LI Xiaoyong,WANG Fuxi
      (North China Institute of Computing Technology,Beijing 100083,China)

      Since the insufficiency of traditional bill?based Web application single sign?on(SSO)system in combination ap?plication access,and the efficiency problem of certificate?based Web application SSO system,an improved bill?based Web appli?cation SSO system is proposed.The proposed system realized Web application SSO of different domain name,and SSO of combi?nation application access by introducing the agency bill.The identity authentication is proceeded with the bill to avoid the au?thentication efficiency problems caused by digital signatures and multi?digital signatures.

      SSO;bill;agency bill;TGT;Web application

      TN915?34;TP393

      A

      1004?373X(2015)13?0085?05

      李曉永(1989—),男,碩士,河南鄭州人,碩士研究生。主要研究領(lǐng)域?yàn)樾畔踩?、中間件技術(shù)。

      王福喜(1981—),男,碩士,河南商丘人,高級(jí)工程師。主要研究領(lǐng)域?yàn)樾畔踩?、軟件中間件。

      2014?12?21

      猜你喜歡
      斷言單點(diǎn)票據(jù)
      von Neumann 代數(shù)上保持混合三重η-*-積的非線性映射
      C3-和C4-臨界連通圖的結(jié)構(gòu)
      特征為2的素*-代數(shù)上強(qiáng)保持2-新積
      歷元間載波相位差分的GPS/BDS精密單點(diǎn)測(cè)速算法
      超薄異型坯連鑄機(jī)非平衡單點(diǎn)澆鑄實(shí)踐與分析
      Top Republic of Korea's animal rights group slammed for destroying dogs
      2016年11月底中短期票據(jù)與央票收益率點(diǎn)差圖
      2016年10月底中短期票據(jù)與央票收益率點(diǎn)差圖
      數(shù)字電視地面?zhèn)鬏斢脝晤l網(wǎng)與單點(diǎn)發(fā)射的效果比較
      2016年9月底中短期票據(jù)與央票收益率點(diǎn)差圖
      苍南县| 上饶县| 稷山县| 琼结县| 万山特区| 赤壁市| 卓尼县| 海门市| 武义县| 绿春县| 黔东| 建平县| 泽库县| 中西区| 醴陵市| 双峰县| 尼木县| 宜黄县| 武汉市| 阆中市| 桓仁| 铜鼓县| 平果县| 永仁县| 安西县| 米泉市| 平舆县| 金门县| 阳西县| 馆陶县| 泸水县| 拜城县| 宣汉县| 中方县| 浮山县| 甘南县| 甘德县| 绍兴市| 长汀县| 兴宁市| 延吉市|