sso 登出 單點登入(SSO)的設計與實現

2021-10-13 23:42:19 字數 1419 閱讀 6986

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...