單點登入(SSO)的自己看資料的一點理解

2021-08-27 16:20:49 字數 1218 閱讀 8716

主要是學習了這篇微博:

這篇文章在方案3和方案4中講解的個人有點不理解,加了一點自己的理解

原文

1.u第一次訪問w,w驗證失敗,跳轉至sso要求u進行登入驗證;

登入並使各不同domain下:

2.u 給sso傳送登入請求,sso驗證成功,生成sessionid 並儲存userinfo;

返回給u的response 將 userinfo 存放至cookie中,domain為sd;/*個人覺得這裡可以將sessionid放入cookie也可以,之後在快取中獲取即可*/

3.將 2 中 cookie 內容作為query parameter 重定向至t,t驗證後成功返回給u,也在response 中設定 cookie;domain為td;

4.u自動訪問sso,sso將請求重定向至w,完成u對w 的訪問;

5.u 再訪問 t,驗證成功並允許u進行訪問;

這裡我們要注意,方案三主要將userinfo寫入之後直接訪問t的瀏覽器的快取中,這時候u不用在經過sso這一層了,因為cookie中已經有了userinfo的資訊。而在方案4中則相反。這點要非常注意,也是理解的關鍵。

下面看方案4,方案4是為了對方案三的所有回寫的乙個改進,每次訪問才做回寫,解決了方案3的卡頓問題
1.使用者u訪問w ,w進行驗證,驗證失敗,跳轉至sso,要求u登入;

2.u通過sso登入,sso進行驗證,成功並生成sessionid,隨後將userinfo( sessionid、id和口令)儲存到公共快取c 中,跳轉至w(攜帶sessionid),並允許u訪問w;u儲存userinfo ( sessionid ) 至 cookie;

3.u訪問t,t 進行驗證,失敗跳轉至sso,sso將觸發u請求sso將驗證資訊隨請求一併發給sso,經sso驗證成功跳轉至t,允許u對t 的訪問;使u儲存userinfo( sessionid)至cookie;

這裡我們會發現,u在訪問t的時候和方案3完全不同,方案3是直接訪問t不用經過sso層,這裡需要經過sso層?為什麼呢?因為u在訪問w的時候將sessionid寫入了sso層的cookie中,所以當我們u訪問t時,我們將請求直接轉到sso層,利用sso層的cookie實現系統的登陸。明白這一點很關鍵。

這兩個方案的主要區別就在於,訪問第二個跨域站點時,方案3入口是直接的第二個站點t,方案4入口其實不是第二個站點t,而是sso這一層。

單點登入sso的定義

單點登入sso的定義 單點登入 single sign on 簡稱為 sso,是目前比較流行的企業業務整合的解決方案之一。sso的定義是在多個應用系統中,使用者只需要登入一次就可以訪問所有相互信任的應用系統。企業應用整合 eai 企業應用整合可以在不同層面上進行 例如在資料儲存層面上的 資料大集中 ...

單點登入sso的定義

單點登入sso的定義 單點登入 single sign on 簡稱為 sso,是目前比較流行的企業業務整合的解決方案之一。sso的定義是在多個應用系統中,使用者只需要登入一次就可以訪問所有相互信任的應用系統。企業應用整合 eai 企業應用整合可以在不同層面上進行 例如在資料儲存層面上的 資料大集中 ...

單點登入SSO的實現原理

單點登入sso的實現原理 單點登入sso single sign on 說得簡單點就是在乙個多系統共存的環境下,使用者在一處登入後,就不用在其他系統中登入,也就是使用者的一次登入能得到其他所有系統的信任。單點登入在大型 裡使用得非常頻繁,例如像阿里巴巴這樣的 在 的背後是成百上千的子系統,使用者一次...