SSO 前端設計與思路
單點登入(SingleSignOn,SSO),就是通過使用者的一次性鑒别登入。當使用者在身份認證伺服器上登入一次以後,即可獲得通路單點登入系統中其他關聯系統和應用軟體的權限,同時這種實作是不需要管理者對使用者的登入狀态或其他資訊進行修改的,這意味着在多個應用系統中,使用者隻需一次登入就可以通路所有互相信任的應用系統。這種方式減少了由登入産生的時間消耗,輔助了使用者管理。
1.系統一站式登陸,如果我在 a.jd.com 登陸之後, 我在 b.jd.com再次登陸時,無需繼續登陸,達到全網漫遊目的。
2. 禁用系統功能,例如我需要 剔除該使用者時,此時隻需要在單點服務上剔除改使用者的權限,此時所有的應用權限都剔除了。
流程圖如下

tips: 在此方案中與原始端sso 登陸差別在于cookie 的設定問題,由于背景服務Session 儲存在各端,此時無法進行資料session同步,是以,cookie的存儲與設定, 都存放在用戶端, 用戶端同時調用時攜帶上cookie 中的token(或者說是ticket)提供給每個服務的背景,背景拿到此token時去SSO伺服器做驗簽,并拿到該使用者的使用者資訊,實作統一的登陸。
背景邏輯流程如下:
這裡服務端在驗簽過程中可以加一層redis 優化,從sso端如果驗證成功後可以存儲一遍token,不需要頻繁向sso端頻繁驗簽名,如果對實時應用剔除較強的應用則不建議這樣做。