cookie
sso認證中心發現使用者未登入,將使用者引導至登入頁面
使用者輸入使用者名稱密碼提交登入申請
sso認證中心校驗使用者資訊,建立使用者與sso認證中心之間的會話,稱為全域性會話,同時建立授權令牌
sso認證中心帶著令牌跳轉會最初的請求位址(系統1)
系統1拿到令牌,去sso認證中心校驗令牌是否有效
sso認證中心校驗令牌,返回有效,註冊系統1
系統1使用該令牌建立與使用者的會話,稱為區域性會話,返回受保護資源
使用者訪問系統2的受保護資源
系統2發現使用者未登入,跳轉至sso認證中心,並將自己的位址作為引數
sso認證中心發現使用者已登入,跳轉回系統2的位址,並附上令牌
系統2拿到令牌,去sso認證中心校驗令牌是否有效
sso認證中心校驗令牌,返回有效,註冊系統2
系統2使用該令牌建立與使用者的區域性會話,返回受保護資源
全域性會話存在,區域性會話不一定存在
全域性會話銷毀,區域性會話必須銷毀
單點登入自然也要單點登出,在乙個子系統中登出,所有子系統的會話都將被銷毀,用下面的圖來說明
系統1根據使用者與系統1建立的會話id拿到令牌,向sso認證中心發起登出請求
sso認證中心校驗令牌有效,銷毀全域性會話,同時取出所有用此令牌註冊的系統位址
sso認證中心向所有註冊系統發起登出請求
各註冊系統接收sso認證中心的登出請求,銷毀區域性會話
sso認證中心引導使用者至登入頁面
接收並儲存sso認證中心傳送的令牌
與sso-server通訊,校驗令牌的有效性
建立區域性會話
攔截使用者登出請求,向sso認證中心傳送登出請求
接收sso認證中心發出的登出請求,銷毀區域性會話
sso-server
驗證使用者的登入資訊
建立全域性會話
建立授權令牌
與sso-client通訊傳送令牌
校驗sso-client令牌有效性
系統註冊
接收sso-client登出請求,登出所有會話
publicvoid
dofilter
(servletrequest request, servletresponse response, filterchain chain)
throws ioexception, servletexception
//跳轉至sso認證中心
// 請求附帶token引數SSO單點登入原理
單點登入系統 在系統a登入後,進入系統a和b均不用登入 那麼具體如何實現呢?如圖 1 訪問系統a,但因為沒有登入狀態,所以重定向到認證服務進行登入 2 登入成功後,讓瀏覽器儲存乙個cookie在xxlssoserver.com下,並請求重定向到系統a,3 重定向到系統a,並攜帶cookie,同時讓瀏...
單點登入SSO的實現原理
單點登入sso的實現原理 單點登入sso single sign on 說得簡單點就是在乙個多系統共存的環境下,使用者在一處登入後,就不用在其他系統中登入,也就是使用者的一次登入能得到其他所有系統的信任。單點登入在大型 裡使用得非常頻繁,例如像阿里巴巴這樣的 在 的背後是成百上千的子系統,使用者一次...
單點登入SSO的實現原理
單點登入sso single sign on 說得簡單點就是在乙個多系統共存的環境下,使用者在一處登入後,就不用在其他系統中登入,也就是使用者的一次登入能得到其他所有系統的信任。單點登入在大型 裡使用得非常頻繁,例如像阿里巴巴這樣的 在 的背後是成百上千的子系統,使用者一次操作或交易可能涉及到幾十個...