SSO單點登入常見問題

2021-08-30 17:44:34 字數 1041 閱讀 2821

一、sso單點登入

1、對上面所有標紅疑問一一解釋

1)、問:系統a是如何發現該請求需要登入重定向到認證中心的?

答:使用者通過瀏覽器位址列訪問系統a,系統a(也可以稱為cas客戶端)去cookie中拿jsession,即在cookie中維護的當前回話session的id,如果拿到了,說明使用者已經登入,如果未拿到,說明使用者未登入。

2)、問:系統a重定向到認證中心,傳送了什麼資訊或者位址變成了什麼?

答:假如系統a的位址為http://a:8080/,cas認證中心的服務位址為那麼重點向前後位址變化為:http://a:8080/————>ttp:由此可知,重點向到認證中心,認證中心拿到了當前訪問客戶端的位址。

3)、問:登入成功後,認證中心重定向請求到系統a,認證通過令牌是如何附加傳送給系統a的?

答:重定向之後的位址列變成:http://a:8080/?ticket=st-***x-***,將票據以ticket為引數名的方式通過位址列傳送給系統a

4)、問:系統a驗證令牌,怎樣操作證明使用者登入的?

答:系統a通過位址列獲取ticket的引數值st票據,然後從後台將st傳送給cas server認證中心驗證,驗證st有效後,cas server返回當前使用者登入的相關資訊,系統a接收到返回的使用者資訊,並為該使用者建立session會話,會話id由cookie維護,來證明其已登入。

使用者傳送登入系統b的請求,首先會去cookie中拿jsession,因為系統b並未登入過,session會話還未建立,jsession的值是拿不到的,然後將請求重定向到cas認證中心,cas認證中心先去使用者瀏覽器中拿tgc的值,也就是全域性會話id,如果存在則代表使用者在認證中心已經登入,附帶上認證令牌重定向到系統b。

上面登入狀態判斷也是這個邏輯。

6)、問:登出的過程,各個系統對當前使用者都做了什麼?

答:認證中心清除當前使用者的全域性會話tgt,同時清掉cookie中tgt的id:tgc;

然後是各個客戶端系統,比如系統a、系統b,清除區域性會話session,同時清掉cookie中session會話id:jsession

2、對系統a登入流程圖新增注釋,檢視

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