sso英文全稱single sign on,單點登入。sso是在多個應用系統中,使用者只需要登入一次就可以訪問所有相互信任的應用系統。
例如訪問在網易賬號中心( )登入之後 訪問以下站點都是登入狀態
本篇文章也主要是為了**如何設計&實現乙個sso系統
以下為需要實現的核心功能:
對於登入資訊的儲存,建議採用redis,使用redis集群來儲存登入資訊,既可以保證高可用,又可以線性擴充。同時也可以讓sso服務滿足負載均衡/可伸縮的需求。
按照上圖,使用者登入後authtoken儲存在cookie中。 domian= test. com 瀏覽器會將domain設定成 . 這樣訪問所有*.的web站點,都會將authtoken攜帶到伺服器端。 然後通過sso服務,完成對使用者狀態的校驗/使用者登入資訊的獲取
使用者登出時要做的事情很簡單:
服務端清除快取(redis)中的登入狀態
客戶端清除儲存的authtoken
登出時序圖
前面提到過,核心思路是客戶端儲存authtoken,伺服器端通過redis儲存登入資訊。由於客戶端是將authtoken儲存在cookie中的。所以跨域要解決的問題,就是如何解決cookie的跨域讀寫問題。
解決跨域的核心思路就是:
時序圖中並沒有包含所有場景,只列舉了核心/主要場景,另外對於一些不影響理解思路的訊息能省就省了。
SSO單點登入
單點登入sso single sign on 就是在多個系統共存的環境下,使用者在一處登入 就不用在其他系統中登入,也就是使用者的一次登入就可以得到其他所有系統的信任。要點 儲存信任 驗證信任 最簡單實現sso的方法就是cookie,實現流程 然而cookie有如下缺點 1 cookie不安全 2 ...
sso單點登入
一 什麼是單點登入sso single sign on sso是一種統一認證和授權機制,指訪問同一伺服器不同應用中的受保護資源的同一使用者,只需要登入一次,即通過乙個應用中的安全驗證後,再訪問其他應用中的受保護資源時,不再需要重新登入驗證。二 單點登入解決了什麼問題 解決了使用者只需要登入一次就可以...
sso單點登入
1 sso single sign on 單點登入 解決了使用者只需要登入一次就可以訪問所有相互信任的應用系統,而不用重複登入,對使用者資訊進行統一管理。2 session共享 分布式中,為了提公升集群效能,我把使用者的session資訊儲存到redis中,key的格式例如 user session...