Originated from:html
http://blog.sina.com.cn/s/blog_737b50360101dlmz.htmlweb
簡介: SSO涉及的領域大體上能夠分爲三種:社會性網站間的SSO、部門級SSO、企業級SSO。企業級SSO是三者中最複雜的領域, 從技術架構層面,SSO主要能夠分爲集中驗證模式和多點驗證模式兩種不一樣的架構。編程
SSO,單一登陸(single sign-on),意思是指在多套系統並存的環境下,用戶只需登陸一次便可訪問其餘受權的系統。windows
提起SSO(單一登陸),大概企業裏的IT人員無人不知,但真正意識到其複雜度的,未必有多少,只有親身實施過的技術人員,也許才明白箇中玄妙。本文基於藍凌爲國內幾十家大中型企業的服務案例,針對SSO的相關技術和案例進行一些探討,但願能幫助到企業IT人員更深入理解SSO技術及其應用。跨域
1、企業級SSO安全
SSO涉及的領域大體上能夠分爲三種:社會性網站間的SSO、部門級SSO、企業級SSO。服務器
社會性網站間的SSO主要涉及的賬號信息開放性問題,可否實施成功主要取決於各大網站賬號管理是否遵循相同的標準協議,如Openid、Passport等。網絡
部門級SSO比較簡單,通常涉及的系統很少,由技術人員經過編程方式實現便可,但一旦牽涉系統衆多,安全性要求高的狀況,就不適用了。架構
企業級SSO是三者中最複雜的領域,因涉及的系統可能五花八門,這些系統也許是老舊的C/S結構系統、多是某種大型軟件系統(如SAP),還多是某種非web登陸方式(如windows域登陸);其安全性要求也遠比前二者高,如要求同享登陸有效時間等,所以企業級SSO在技術難度上是最高的,但也所以是IT人員最願意鑽研的領域。而絕大部分國內企業,其內部系統經常由於歷史緣由致使多套系統缺少統一規劃,缺少標準而致使整合代價高昂。所以SSO也是許多大中型企業IT部門比較頭疼的事情。工具
本文主要討論的領域,就是企業級SSO。
2、深刻企業級SSO
SSO是一把雙刃劍:SSO能夠簡化用戶登陸過程,提高用戶的登陸體驗;同時能夠下降IT管理員大量帳戶和密碼維護成本;SSO還提供了符合薩班斯法案的密碼集中管理工具;但SSO同時也產生了一種安全風險,某一系統用戶身份一旦被攻破,則意味着全部參與SSO網絡的應用系統也被穿透。所以須要慎重考慮SSO的範圍及安全級別的侷限性。
SSO涉及不一樣層面的需求:SSO的實質是多套系統可否識別同一用戶的身份,並在各套系統間實時同步用戶身份信息,以支持各套系統進行用戶權限控制。基於這樣的緣由,一套SSO技術至少應該考慮一下四個層面的需求:
一、 單點登陸,多點便可同時登陸;
二、 單點註銷(退出登陸),多點便可同時註銷;
三、 單點切換用戶,多點便可同時切換;
四、 單點登陸過時,多點同時過時。
以下圖:
現實環境中,一個最佳的SSO環境(整合代價最小)應該是:
一、一個用戶在不一樣系統只有一個共同登陸名和密碼
二、各套應用系統共享一套用戶名和密碼信息
三、應用系統採用相同的技術架構且域名後綴相同
而一個最壞的SSO環境(整合代價最大)會體現爲:
一、一個用戶在不一樣系統有不一樣的登陸名和密碼
二、不一樣的應用系統各自存儲了獨立的用戶名和密碼
三、 應用系統採用不一樣的技術架構且域名後綴不一樣,甚至只有IP而無域名。
從咱們的實操經驗來看,可以提供最佳SSO環境的企業,在國內幾乎百裏挑一,這樣的企業必須是很是具備IT戰略眼光且IT系統選型很是精準,企業歷任IT領導間保持了高度的傳承共識、IT規劃細緻到位纔可能作到;而最壞或接近最壞的SSO環境卻比比皆是。
幸運的是,即使是最壞的SSO環境,也仍是有相應的技術解決方案來支持整合的。
3、SSO的兩種架構與三種實現技術
從應用架構層面,SSO主要能夠分爲集中驗證模式和多點驗證模式兩種不一樣的架構。
相對與多點驗證模式來講,集中驗證模式的適用範圍更廣,並且在SSO服務器中使用的是統一的用戶名密碼,用戶無需關注登陸的是哪套系統的帳套,因此用戶體驗更加優秀。因爲全部的登陸都放在了統一的服務器,因此當集中驗證服務器宕機時,全部系統沒法正常登陸,或丟失SSO的功能,建議以獨立服務器做爲集中驗證服務器,並須要保證登陸服務器的穩定性。
在多點驗證模式的模式下,全部的登陸操做都在應用系統完成,任何一套系統宕機不會對其它系統產生影響,也不會影響正常運行系統間的SSO。但若各套系統的帳套不同的時候,若要用戶區分每套系統的用戶密碼,一定會下降用戶的體驗,爲了解決該問題,多點登陸模式最好有統一的用戶密碼驗證的服務(如LDAP身份驗證)。另外,多點登陸模式相對集中驗證模式來講會存在更多的技術限制,詳見後面的章節。
從SSO在技術實現的角度,SSO的實現一般有如下三種技術實現途徑:代理登陸(agent)、令牌環(token)、身份票據(ticket)。
代理登陸的優勢就是無需對原有系統作任何改造,適用於沒法改造的舊系統;
其缺點很明顯:
一、穩定性差,一旦登陸期間某臺服務器沒法響應,則該服務器沒法單點登陸。
二、安全性差,用戶名密碼經過明文傳輸。
三、因爲登陸期間須要監控各個系統的響應,因此不建議大量使用,不然會影響登陸的性能。
四、因爲IE的安全限制,代理登陸必須在同域的狀況下運行。
令牌環的方式最大好處在於無需統一的驗證服務器,是「多點驗證模式」的主力實現技術,各個服務器都經過統一的密鑰對令牌進行加密解密,因此該方式具備安全性高、穩定性好、性能消耗低等優勢;其缺點就是必須保證各臺應用服務器同域。
身份票據的方式,是適用範圍最廣的一種SSO實現方式,能夠解決跨域等問題,安全性高、穩定性好;其缺點就是必須增長一臺驗證服務器,保證在高壓下驗證服務器的穩定運行,性能方面因爲每次登陸都須要訪問驗證服務器,因此比令牌環的方式略差一點。
三種技術實現途徑的比較
比較項 |
代理登陸 |
令牌環 |
身份票據 |
需求實現程度 |
沒法實現同時切換用戶與會話同時過時 |
所有 |
所有 |
對原系統改造 |
無 |
小量改造 |
小量改造 |
安全性 |
低 |
高 |
高 |
穩定性 |
偏低 |
好 |
好 |
性能開銷 |
登陸瞬間壓力大一點 |
很是小 |
較小 |
適用範圍 |
同域,對用戶密碼不一致的系統,需在登陸服務器的用戶憑證庫保存用戶密碼映射 |
同域,對不一樣登陸名需增長對用戶憑證庫的訪問 |
全部可改造的系統,對不一樣登陸名需在登陸服務器的用戶憑證庫保存用戶映射 |
獨立驗證服務器 |
須要 |
不須要 |
須要 |
登陸模式支持 |
集中驗證模式 |
集中驗證模式/多點驗證模式 |
集中驗證模式 |
4、 藍凌EKP 產品SSO解決方案
從藍凌實施過的數十個SSO整合案例獲得的經驗來看,單一的SSO技術和架構不可能完全解決全部SSO問題,藍凌EKP產品提供的SSO解決方案中,提供了混合實現途徑,能夠根據客戶的實際狀況進行靈活地組合,並提供足夠的擴展接口。EKP SSO組件包含一個服務器和多個內置客戶端產品包:
EKP SSO Server:基於CAS內核,並在上面增長了許多擴展,具備簡單易用(經過配置完成大部分SSO需求)、擴展性強、應用範圍廣、安全、穩定等特色。
一、支持多種帳戶存儲方式
二、支持一個用戶多套賬號密碼
三、支持前述三種主要身份認證技術
四、支持靈活擴展
EKP SSO Client:客戶端組件是爲了減小各應用系統的改造工做量設計的,針對不一樣的開發語言有不一樣客戶端提供調用。
EKP的系列產品(EKP-D、EKP-N、EKP-J、EKP-Portal)已經內置了EKP SSO Client
客戶端的支持:
在本SSO方案中,整合了IBM Websphere Portal、藍凌Domino和Java系列的產品、Coremail以及內部的全部應用系統的SSO。採用了IBM的TDS做爲目錄服務,進行用戶名密碼的驗證;使用了藍凌的UIM系統,對用戶進行維護,映射各套應用系統之間的用戶憑證;經過藍凌的SSO服務器,簡化了全部系統的登陸驗證操做;大部分的客戶端與SSO服務器之間採用了性能消耗最小的令牌環技術進行用戶身份的傳遞。
6、建議
好的SSO規劃能夠幫助企業以最小的整合代價、最佳的維護成本得到最優的用戶登陸體驗。
在藍凌所實施的項目中,規劃和整合一般都是一體實施的。即經過幫助客戶進行典型系統的SSO整合,同時基於企業特色幫助客戶制訂一套可適應將來的SSO規範,這樣的動做,一般會包括在企業門戶整合項目或IT規劃項目中,做爲一個關鍵組成部分進行實施。
咱們期待有更多的企業提前認識到企業SSO規劃的重要性。