梁亮 辛超 李妍
摘要:針對企業(yè)Websphere應(yīng)用系統(tǒng)的特點(diǎn),提出了基于Websphere平臺的單點(diǎn)登陸架構(gòu)實(shí)現(xiàn)方案。詳細(xì)介紹了方案中單點(diǎn)登陸的認(rèn)證過程。單點(diǎn)登錄框架的提出能夠解決企業(yè)Websphere系統(tǒng)中各系統(tǒng)之間的統(tǒng)一身份認(rèn)證問題,實(shí)現(xiàn)應(yīng)用系統(tǒng)間的單點(diǎn)登陸。從而方便用戶對企業(yè)內(nèi)部資源的使用、減少了企業(yè)內(nèi)部賬戶信息維護(hù)的負(fù)擔(dān)。
關(guān)鍵詞:WebSphere 單點(diǎn)登錄 插件集成 Cookie
中圖分類號:TP393.09 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9416(2016)08-0074-01
單點(diǎn)登錄(Single Sign On,簡稱SSO),是企業(yè)業(yè)務(wù)整合的解決方案之一。SSO的定義是在多個(gè)應(yīng)用系統(tǒng)中,用戶只需要登錄一次就可以訪問所有相互信任的應(yīng)用系統(tǒng)[1]。為了實(shí)現(xiàn)更為高效、安全的網(wǎng)絡(luò)認(rèn)證機(jī)制,企業(yè)需要一個(gè)能夠?qū)τ脩暨M(jìn)行統(tǒng)一身份認(rèn)證和集中授權(quán)的平臺,實(shí)現(xiàn)授權(quán)資源的無縫訪問,提高用戶工作效率,減少公司維護(hù)成本。
WebSphere是一個(gè)企業(yè)級的Web中間件服務(wù)器,越來越多的大型企業(yè)在WebSphere上實(shí)現(xiàn)多種的企業(yè)應(yīng)用。面向WebSphere SSO框架的實(shí)現(xiàn),對于企業(yè)的信息化上有著重要的意義。
1 原理
SSO實(shí)現(xiàn)原理為當(dāng)用戶首次訪問一個(gè)系統(tǒng)時(shí),系統(tǒng)判斷用戶未驗(yàn)證后會(huì)跳轉(zhuǎn)至登錄頁,用戶登錄驗(yàn)證通過后,瀏覽器會(huì)存儲一個(gè)key值(一般采用Cookie方式),當(dāng)用戶訪問其他系統(tǒng)時(shí)會(huì)帶著這個(gè)key,服務(wù)器從用戶瀏覽器中讀取Cookie,對Cookie中的信息解密后,讀取用戶數(shù)據(jù),判斷用戶uid的有效性。如果有效,再將時(shí)間戳與當(dāng)前時(shí)間進(jìn)行比較,判斷Cookie是否已經(jīng)過期,如果Cookie仍在生命周期內(nèi),則將用戶訪問資源返回給客戶[2]。
2 方案實(shí)施
公司集團(tuán)下屬一企業(yè)在內(nèi)部WAS系統(tǒng)上部署了協(xié)同辦公系統(tǒng)(BPM)和文檔查詢系統(tǒng)(DM)。在實(shí)施SSO之前,用戶在登陸完BPM后,如要訪問DM則仍需要輸入用戶名和密碼進(jìn)行登錄驗(yàn)證,增加了用戶的操作復(fù)雜度。其系統(tǒng)部署架構(gòu)如圖1所示。
SSO實(shí)施的步驟如下:首先統(tǒng)一管理全業(yè)務(wù)系統(tǒng)的用戶帳號,必須給每個(gè)用戶一個(gè)唯一的標(biāo)識。用戶以統(tǒng)一標(biāo)識登錄統(tǒng)一認(rèn)證平臺,使用企業(yè)提供的各類業(yè)務(wù)資源[4]。之后,將所有的Websphere應(yīng)用服務(wù)器統(tǒng)一到一個(gè)域下,并進(jìn)行基于域的SSO相關(guān)設(shè)置,最后在新環(huán)境中部署并配置TAM的相關(guān)組件,主要組件為作為保存主策略數(shù)據(jù)的TAM Server和負(fù)責(zé)進(jìn)行攔截用戶訪問的WebSeal[5]。
經(jīng)過調(diào)整后的系統(tǒng)部署架構(gòu)如圖2所示。
SSO架構(gòu)的訪問邏輯如下:
(1)用戶發(fā)送訪問應(yīng)用A的URL請求到HttpServer;
(2)此請求被WebSeal攔截,WebSeal將其重定向到它內(nèi)置的一個(gè)表單并要求輸入用戶名/密碼進(jìn)行認(rèn)證;
(3)用戶通過form提交用戶名/密碼到WebSeal上;
(4)WebSeal首先去驗(yàn)證用戶的用戶憑證;
(5)驗(yàn)證通過返回驗(yàn)證成功信息;
(6)WebSeal提交用戶名/密碼到LDAP Server(TDS)進(jìn)行用戶鑒別;
(7)LDAP Server驗(yàn)證通過返回驗(yàn)證成功信息;
(8)WebSeal待認(rèn)證成功后,生成一個(gè)LTPA的Token;
(9)之后將請求轉(zhuǎn)發(fā)到WAS端;
(10)WAS收到請求后,如果請求中含有與WAS平臺一致的LTPA Token信息,則WAS不再要求進(jìn)行認(rèn)證;
(11)WAS將請求的響應(yīng)返回;
(12)用戶收到所需的頁面信息響應(yīng);
(13)用戶再次訪問應(yīng)用DM,請求被WebSeal攔截,由于用戶的訪問中帶有LTPA Token相關(guān)信息,WebSeal快速檢查請求信息的LTPA Token是否來自所信任的WAS,如果是則不需要再次進(jìn)行用戶信息鑒別;
(14)HttpServer將請求轉(zhuǎn)給WAS;
(15)由于WAS和WebSeal是信任的,所以也不需要再次認(rèn)證;
(16)直接返回WebSeal的請求結(jié)果;
(17)用戶收到B系統(tǒng)頁面的信息響應(yīng)。
3 結(jié)語
方案通過增加相關(guān)IBM組件實(shí)現(xiàn)應(yīng)用之間的SSO,具有更好的用戶體驗(yàn),用戶用同一身份可以訪問所有的系統(tǒng)提供的服。并且,通過本方案實(shí)現(xiàn)的SSO架構(gòu)具有良好的擴(kuò)展性,后期部署在SSO框架內(nèi)的其他WebSphere應(yīng)用,可通過J2EE的標(biāo)準(zhǔn)規(guī)范均與現(xiàn)有系統(tǒng)實(shí)現(xiàn)SSO融合,減少了后期公司SSO系統(tǒng)擴(kuò)展維護(hù)的成本。在后續(xù)的實(shí)施階段中,通過在SSO框架加入企業(yè)資源規(guī)劃系統(tǒng)(ERP)和企業(yè)資產(chǎn)及其維修管理系統(tǒng)(EAM)驗(yàn)證了方案的可擴(kuò)展性和可操作性。
參考文獻(xiàn)
[1]龍毅宏,唐志紅,王亞龍,謝坤軒.面向HTTP身份鑒定協(xié)議的單點(diǎn)登陸透明集成技術(shù)研究[J].計(jì)算機(jī)應(yīng)用研究,2013(9).
[2]楊文波,張輝,劉瑞.基于Cookie的門戶系統(tǒng)單點(diǎn)登陸模型[J].計(jì)算機(jī)應(yīng)用研究,2006(8).
[3]利用IBM Tivoli Access Manager和IBM WebSphere Portal配置單點(diǎn)登錄[R/OL].2010.6.http://www.ibm.com/developerworks/cn/websphere/techjournal/0406_singh/0406_singh.html.
[4]郭玲.一種企業(yè)應(yīng)用中的單點(diǎn)登陸系統(tǒng)的設(shè)計(jì)[J].計(jì)算機(jī)與數(shù)字工程,2010(7).
[5]IBMTivoli Access Manager for e-business [R/OL]. 2008. https://publib.boulder.ibm.com/tividd/td/ITAME/SC32-1366-01/zh_CN/HTML/am51_wls_guide02.htm#ToC_1.