單點登陸

 

SSO單一登陸(single sign-on),意思是指在多套系統並存的環境下,用戶只需登陸一次便可訪問其餘受權的系統。html

提起SSO(單一登陸),大概企業裏的IT人員無人不知,但真正意識到其複雜度的,未必有多少,只有親身實施過的技術人員,也許才明白箇中玄妙。本文基於藍凌爲國內幾十家大中型企業的服務案例,針對SSO的相關技術和案例進行一些探討,但願能幫助到企業IT人員更深入理解SSO技術及其應用。瀏覽器

SSO是一把雙刃劍SSO能夠簡化用戶登陸過程,提高用戶的登陸體驗;同時能夠下降IT管理員大量帳戶和密碼維護成本;SSO還提供了符合薩班斯法案的密碼集中管理工具;但SSO同時也產生了一種安全風險,某一系統用戶身份一旦被攻破,則意味着全部參與SSO網絡的應用系統也被穿透。所以須要慎重考慮SSO的範圍及安全級別的侷限性。安全

 

SSO涉及不一樣層面的需求:SSO的實質是多套系統可否識別同一用戶的身份,並在各套系統間實時同步用戶身份信息,以支持各套系統進行用戶權限控制。基於這樣的緣由,一套SSO技術至少應該考慮一下四個層面的需求:服務器

一、 單點登陸,多點便可同時登陸;cookie

二、 單點註銷(退出登陸),多點便可同時註銷;網絡

三、 單點切換用戶,多點便可同時切換;session

四、 單點登陸過時,多點同時過時。架構

 

現實環境中,一個最佳的SSO環境(整合代價最小)應該是:工具

一、一個用戶在不一樣系統只有一個共同登陸名和密碼spa

二、各套應用系統共享一套用戶名和密碼信息

三、應用系統採用相同的技術架構且域名後綴相同

而一個最壞的SSO環境(整合代價最大)會體現爲:

一、一個用戶在不一樣系統有不一樣的登陸名和密碼

二、不一樣的應用系統各自存儲了獨立的用戶名和密碼

三、 應用系統採用不一樣的技術架構且域名後綴不一樣,甚至只有IP而無域名。

單點登陸的核心步驟

6.1  用戶未登陸時訪問子站一,子站一服務器檢測到用戶沒登陸(沒有本站session,由於沒傳過來session對應cookie),因而通知瀏覽器跳轉到SSO服務站點,並在跳轉的URL參數中帶上當前頁面地址,以便登陸後自動跳轉回本頁。

6.2  SSO服務站點檢測到用戶沒有登陸,因而顯示登陸界面。

  用戶提交登陸請求到服務端,服務端驗證經過,建立和帳號對應的用戶登陸憑據(token)。

  而後,服務端通知瀏覽器把該token做爲SSO服務站點的cookie存儲起來,並跳轉回子站一,跳回子站一的URL參數中會帶上這個token。

6.3  瀏覽器在寫SSO服務站點cookie後,跳轉回子站一。

  子站一服務端檢測到瀏覽器請求的URL中帶了單點登陸的token,因而把這個token發到SSO服務站點驗證。

  SSO服務端站點拿token解密出用戶帳號,把帳號信息中容許子站一訪問的部分返回給子站一。

  子站一根據返回的信息生成用戶在本站的會話,把會話對應cookie寫入瀏覽器,從而完成在本站的登入以及會話保持。以後用戶訪問再子站一時,都會帶上這個cookie,從而保持在本站的登陸狀態。

6.4  用戶再訪問子站二。子站二服務器檢測到用戶沒登陸,因而通知瀏覽器跳轉到SSO服務站點。

6.5  瀏覽器訪問SSO服務站點時會帶上上述6.2環節建立的token這個cookie。SSO服務站點根據該token能找到對應用戶,因而通知瀏覽器跳轉回子站二,並在跳轉回去的URL參數中帶上這個token。

6.6  子站二服務端檢測到瀏覽器請求的URL中帶上了單點登陸的token,因而又會走上述6.3對應步驟,完成用戶在本站的自動登陸。

 

單點登陸時序圖


 

文章詳情來源:

http://blog.csdn.net/jljf_hh/article/details/50099135 單點登陸的三種實現技術

http://www.cnblogs.com/baibaomen/p/sso-sequence-chart.html

相關文章
相關標籤/搜索