国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
應(yīng)用整合中SSO的技術(shù)實(shí)現(xiàn)
2004-10-28 11:07:33
楊元 殷非
在稅務(wù)行業(yè)信息化發(fā)展的關(guān)鍵階段,應(yīng)用整合已經(jīng)非常重要,而應(yīng)用整合的表現(xiàn)層首先要實(shí)現(xiàn)的就是單點(diǎn)登陸(SSO,Single sign-on的縮寫),以下是筆者結(jié)合南京地稅進(jìn)行應(yīng)用整合中SSO的技術(shù)實(shí)現(xiàn)
南京地稅目前有多種企業(yè)應(yīng)用,包括征管系統(tǒng)、行政系統(tǒng)、輔助決策系統(tǒng)、公文系統(tǒng)、人事系統(tǒng)、電子地圖、郵件系統(tǒng)等等,這些應(yīng)用主要是采用三層體系結(jié)構(gòu)(IE6.0+weblogic portal7.0 +weblogic server7.0 +oracle9i)來構(gòu)架。所有的用戶登陸需要通過weblogic portal進(jìn)行。
我們在系統(tǒng)中使用SSO來實(shí)現(xiàn)用戶通過一次認(rèn)證(authenticate)來存取多個受保護(hù)的資源,也就是說,用戶隨后對受保護(hù)資源的存取,將不會導(dǎo)致每一次都要用戶提供認(rèn)證的信息,只需要一次認(rèn)證即可。
一、SSO實(shí)現(xiàn)原理
1、概念:SSO的一種偏向技術(shù)的說法:用戶只需登陸一次,就可使用多個SSO enable的應(yīng)用系統(tǒng)。
(1)、單一的登陸點(diǎn)。理想的情況是用戶通過任何應(yīng)用系統(tǒng)都能進(jìn)行SSO,這對于基于Web的系統(tǒng)是可行的。這種單一的登陸點(diǎn)在整個系統(tǒng)的設(shè)計中是唯一認(rèn)證用戶的地方,由登陸點(diǎn)將SSO token(針對不同的C/S,B/S應(yīng)用可能還需要傳遞用戶名,口令)傳遞給應(yīng)用系統(tǒng),應(yīng)用系統(tǒng)利用SSO token來進(jìn)行用戶已認(rèn)證的驗(yàn)證。我們將這個單一的登陸點(diǎn)稱為SSO Entry。
(2)、SSO enable意味著對應(yīng)用系統(tǒng)的修改不可避免。并不是任何系統(tǒng)都能夠使用SSO,只有那些符合SSO規(guī)范,使用SSO API的應(yīng)用系統(tǒng)才具有SSO的功能。簡單地說就是要修改已有的應(yīng)用系統(tǒng),屏蔽已有的應(yīng)用系統(tǒng)的用戶認(rèn)證模塊,使用系統(tǒng)提供的SSO API來驗(yàn)證用戶,以及對用戶的操作進(jìn)行授權(quán)。
(3)、需要統(tǒng)一的認(rèn)證,權(quán)限信息庫。通常,認(rèn)證與授權(quán)管理模塊以一種應(yīng)用專有的方式實(shí)現(xiàn),系統(tǒng)的授權(quán)模型、認(rèn)證,授權(quán)信息存貯結(jié)構(gòu)與訪問控制邏輯與應(yīng)用的業(yè)務(wù)邏輯之間耦合緊密。這種設(shè)計與實(shí)現(xiàn)方式的缺點(diǎn)是顯而易見的:由于認(rèn)證、授權(quán)模塊與應(yīng)用邏輯之間的緊耦合使得認(rèn)證、授權(quán)模塊很難進(jìn)行擴(kuò)展與維護(hù);認(rèn)證、授權(quán)模塊的設(shè)計與編碼需要很大的工作量,而且很難在不同的應(yīng)用系統(tǒng)之間共享與重用。這也是越來越多企業(yè)應(yīng)用需要SSO的原因之一。
SSO要求有統(tǒng)一的認(rèn)證,權(quán)限存放庫。但現(xiàn)實(shí)中,有的系統(tǒng)無法使用外部的認(rèn)證,授權(quán)信息庫,所以就需要在應(yīng)用系統(tǒng)和Portal Server之間進(jìn)行認(rèn)證,同時進(jìn)行授權(quán)信息的數(shù)據(jù)同步。
2、實(shí)現(xiàn)描述:在用戶成功登錄 weblogic Portal之后,系統(tǒng)提供的Login Delegate機(jī)制來為用戶登錄到其有權(quán)可以使用的應(yīng)用系統(tǒng)。系統(tǒng)提供Logout Delegate機(jī)制實(shí)現(xiàn)用戶的注銷功能(即SSO logout)。
用戶存取由Portal SSO保護(hù)的若干資源,SSO會話服務(wù)(Session/SSO Service)提供了授權(quán)的證明,這樣就不再需要用戶重新進(jìn)行身份驗(yàn)證了。在這種方式下,即使用戶要訪問不同的域(weblogic domain)的應(yīng)用,我們提供的Portal SSO Service為其保持會話服務(wù)。
同時,SSO還包括的與登錄恰恰相反的,統(tǒng)一的注銷點(diǎn),即用戶一旦從Portal注銷,則亦當(dāng)從所有參與Portal SSO的應(yīng)用注銷。此處有一個例外,就是當(dāng)用戶從Portal登錄并轉(zhuǎn)向一個應(yīng)用后,經(jīng)過一段時間后可能會出現(xiàn)用戶的該應(yīng)用的會話還有效時用戶的Portal會話過期時,此時用戶將只能使用該應(yīng)用,直到該用戶再次登錄Portal。
3、通過SSO Agent:當(dāng)用戶試圖通過瀏覽器存取受保護(hù)的應(yīng)用資源時,系統(tǒng)提供安裝在不同應(yīng)用上的SSO Agent來截取用戶對資源的請求,并檢查請求是否存在會話標(biāo)識符,即token。如果token不存在,請求就被傳遞給Portal SSO,在Portal SSO上會話服務(wù)負(fù)責(zé)創(chuàng)建會話token,然后認(rèn)證服務(wù)將提供登陸頁面以驗(yàn)證用戶。
4、創(chuàng)建會話Token:在用戶身份驗(yàn)證之前,會話服務(wù)就創(chuàng)建了會話token。token為隨機(jī)產(chǎn)生的Portal  Server 會話標(biāo)識符,該標(biāo)識符代表了一個確定用戶的特定會話。創(chuàng)建會話token后,認(rèn)證服務(wù)把token插入cookie中在用戶的瀏覽器中設(shè)定cookie。在token被設(shè)定的同時,該用戶將會看到一個登陸頁面。
5、用戶認(rèn)證:用戶收到登陸頁面和會話token后,填入合適的認(rèn)證信息。當(dāng)用戶提交登陸頁面后,這些認(rèn)證信息就被發(fā)給認(rèn)證提供者(authentication provider)(LDAP服務(wù)器,RADIUS服務(wù)器等)進(jìn)行驗(yàn)證。一旦認(rèn)證提供者成功驗(yàn)證了認(rèn)證信息,用戶就被認(rèn)為是通過了認(rèn)證。Identity Server會從用戶的token中取出會話信息并將會話狀態(tài)設(shè)為有效。此后,用戶就可以訪問這些受保護(hù)的資源。
6、cookie和會話token:Cookie是由Web服務(wù)器創(chuàng)建的信息包,并傳遞給瀏覽器。Cookie 保存類似用戶習(xí)慣等Web服務(wù)器產(chǎn)生的信息。它本身并不表明用戶通過了認(rèn)證。Cookie是特定于某個域的。在Identity Server的實(shí)現(xiàn)中,cookie由會話服務(wù)產(chǎn)生,并由認(rèn)證服務(wù)設(shè)定。而且,Identity Server的cookie是會話cookie,存儲在內(nèi)存中。會話token由會話服務(wù)創(chuàng)建并插入Cookie。會話token利用安全隨機(jī)數(shù)發(fā)生器產(chǎn)生,并包含Portal Server特有的會話信息。在存取受保護(hù)的資源之前,用戶由認(rèn)證服務(wù)驗(yàn)證,并創(chuàng)建SSO token。
二、SSO技術(shù)實(shí)現(xiàn)
1、SSO entry
SSO entry 作為系統(tǒng)唯一的登陸點(diǎn)將完成如下的功能:
(1)提供用戶身份認(rèn)證的登陸頁面;
(2)根據(jù)用戶的權(quán)限,顯示可供用戶使用的應(yīng)用系統(tǒng);
(3)調(diào)用用戶選擇的應(yīng)用系統(tǒng)(B/S或C/S均可);
(4)為應(yīng)用系統(tǒng)傳遞SSO Token(針對不同的C/S,B/S應(yīng)用可能還需要傳遞用戶名,口令);
(5)關(guān)閉SSO;
(6)SSO token失效后,關(guān)閉SSO entry。
注意SSO entry 并不提供通知應(yīng)用系統(tǒng)SSO token已失效的功能,這一問題并不大,因?yàn)镾SO token失效后,SSO entry 已被關(guān)閉。用戶只有重新認(rèn)證,才能獲取新的SSO token。
2、SSO 部署
上面是整個系統(tǒng)的部署的示意圖。白色的立方體表示應(yīng)用系統(tǒng)。淺藍(lán)色的立方體表示Portal SSO平臺。從上圖可以看出:各個應(yīng)用系統(tǒng)各個應(yīng)用系統(tǒng)與SSO entry發(fā)生聯(lián)系。SSO entry 需要向應(yīng)用系統(tǒng)傳遞SSO Token,用戶名,口令;啟動應(yīng)用系統(tǒng)。
3、SSO實(shí)現(xiàn)方式
SSO 的實(shí)現(xiàn)方式按照應(yīng)用系統(tǒng)與Portal Server的交互程度分為三種。需要指出這些SSO的實(shí)現(xiàn)方式并沒有優(yōu)略之分,不同的實(shí)現(xiàn)方式適應(yīng)不同的應(yīng)用環(huán)境。解決現(xiàn)實(shí)中遇到的不同問題。真單點(diǎn)登陸: 通過SSO entry認(rèn)證后,應(yīng)用系統(tǒng)利用SSO API同Portal Server通信,驗(yàn)證用戶是否經(jīng)過認(rèn)證。新開發(fā)的應(yīng)用系統(tǒng)大多使用這種SSO的實(shí)現(xiàn)方式。這種方式需要對應(yīng)用系統(tǒng)的認(rèn)證模塊進(jìn)行修改。偽單點(diǎn)登陸:通過SSO entry認(rèn)證后,應(yīng)用系統(tǒng)還要自己進(jìn)行用戶的認(rèn)證。這種方式適用于那些無法修改認(rèn)證模塊的應(yīng)用系統(tǒng)。我們應(yīng)用系統(tǒng)的整合采用該方式進(jìn)行。整合第三方軟件的單點(diǎn)登陸:Tarantella和Citrix都是將C/S應(yīng)用系統(tǒng)轉(zhuǎn)化為Web應(yīng)用的第三方軟件系統(tǒng)。在某些應(yīng)用環(huán)境下,這類軟件將發(fā)揮其作用。這種SSO實(shí)現(xiàn)方式在實(shí)施中并不使用,列出這種使用方式主要用來展現(xiàn)Identity Server的擴(kuò)展性。
4、SSO的實(shí)現(xiàn)
(1)用戶從Portal登錄
說明:以上藍(lán)色區(qū)域?yàn)镻ortal Server上的服務(wù),白色為需要與Portal進(jìn)行SSO的應(yīng)用,綠色為每個應(yīng)用的SSO Entry。代理登錄的具體過程:用戶首先登錄Portal,Portal處理完登錄后,啟動代理登錄,為用戶登錄應(yīng)用系統(tǒng),Portal把用戶轉(zhuǎn)向到應(yīng)用系統(tǒng),應(yīng)用系統(tǒng)再把用戶在征管系統(tǒng)的sessionID轉(zhuǎn)發(fā)給Portal,登錄代理(Login Delegate)把用戶在征管系統(tǒng)中的sessionID和用戶id發(fā)到征管系統(tǒng)的SSO Service進(jìn)行登記,Portal把用戶訪問轉(zhuǎn)向征管系統(tǒng)SSOEntry,征管系統(tǒng)SSOEntry通過用戶的sessionID得到SSOService中記錄的用戶在Portal的用戶userID,并把當(dāng)前用戶認(rèn)可為此Portal userID對應(yīng)的在征管系統(tǒng)中的用戶,征管系統(tǒng)把用戶訪問轉(zhuǎn)回Portal。接著登錄代理再對SSO應(yīng)用列表中的其它應(yīng)用進(jìn)行代理登錄。代理登錄完成,用戶被重定向到Portal的相關(guān)頁面。
用戶訪問應(yīng)用系統(tǒng):之后,當(dāng)用戶訪問征管的某個應(yīng)用時,征管系統(tǒng)發(fā)現(xiàn)該用戶還未經(jīng)認(rèn)證,則將其sessionID與SSOService中登記的uid/sessionID比較,如果存在匹配,則認(rèn)證通過,將用戶id與session相關(guān)聯(lián)。之后用戶就可以直接訪問征管系統(tǒng)了。
(2)SSO單點(diǎn)注銷
說明:
(1)用戶注銷總是從Portal開始;
(2)注銷代理(Logout Delegate)將注銷消息發(fā)到各應(yīng)用的SSO Logout Entry;
(3)應(yīng)用的SSO Logout Entry注銷本地的用戶會話記錄;
(4)注銷Portal上的用戶會話記錄。
三、安全性分析
Portal SSO的安全性需要從幾個方面理解:
1.客戶登錄Portal Server之后SSO到應(yīng)用的安全性,即SSOToken的安全性;
2.客戶無SSOToken時,首先訪問應(yīng)用的安全性;
3.客戶有SSOToken時想通過仿冒別人的有效SSOToken來進(jìn)行非法的訪問。
Portal Server生成的SSO token 因?yàn)樾枰趹?yīng)用程序間傳遞,所以SSOToken比較容易被竊取,但Portal Server保證了SSOToken的唯一性,那些盜用合法SSOToken的人無法通過SSOToken的驗(yàn)證。因?yàn)镾SOToken的生成收集了用戶端和服務(wù)器端的很多信息,當(dāng)非法用戶持有效的SSOToken試圖訪問某應(yīng)用時,該應(yīng)用將通過Portal Server的SSOService進(jìn)行SSOToken驗(yàn)證時,SSOToken的這些信息以及Portal Server的安全算法確保了盜用者即使拿到合法用戶的SSOToken也無法通過SSOToken的有效性驗(yàn)證。所以SSOToken的安全性也得到了保證。
用戶沒有SSOToken的時候,如果客戶要訪問某應(yīng)用,如果用戶沒有該應(yīng)用的會話信息也沒有Portal的SSOToken,則該用戶必須先通過Portal的認(rèn)證并SSO到該應(yīng)用;如果用戶已經(jīng)在應(yīng)用登錄成功(可能是該應(yīng)用保留了原有的認(rèn)證入口,用戶通過該入口訪問此應(yīng)用,也有可能是用戶從Portal 登錄后,通過SSO訪問該應(yīng)用,經(jīng)過一段時間后,用戶的Portal SSOToken已經(jīng)過期,但是用戶在該應(yīng)用中的會話仍然保持有效),則用戶可以繼續(xù)使用該應(yīng)用系統(tǒng)而無需重新認(rèn)證。但是如果用戶想訪問Portal或者與Portal進(jìn)行SSO的其它應(yīng)用的話,則用戶須經(jīng)過Portal的認(rèn)證并拿到SSOToken。所以在這種情況下SSOToken也是安全的。
每個用戶的SSOToken只在其當(dāng)次會話過程中有效,離開其當(dāng)次會話,SSOToken即被視作無效,因此這種情況下也是安全的。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Jetspeed2.0中單點(diǎn)登錄的實(shí)現(xiàn)
微服務(wù)系統(tǒng)之認(rèn)證管理詳解
自動化運(yùn)維平臺中的統(tǒng)一認(rèn)證接入與SSO單點(diǎn)登錄
跨域 Cookie Token Web APP均支持的分布式單點(diǎn)登錄框架開箱即用
系統(tǒng)的講解 - SSO單點(diǎn)登錄
SSO技術(shù)總結(jié) (相關(guān)文章)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服