SSO 單點登入CAS與OAuth2

2021-10-10 19:22:32 字數 977 閱讀 9331

在系統開發初期,系統很少,每個系統都有自己的登入模組,使用者直接使用自己的賬號進行登入即可。

但當功能不斷完善,為了合理利用資源並降低耦合性,往往需要將單系統拆分為多個子系統。

以阿里系的**為例,乙個**背後有眾多的子系統,使用者的一次交易或操作往往可能需要十多甚至幾十個子系統的協作,如果每個子系統都需要使用者進行登入驗證,那麼使用者就需要登入幾十次,這顯然是不可行的。

那麼現在我們面對的情況如下:

乙個多系統共存的環境下,使用者在一處登入後,就不用在其他系統中登入,使用者的一次登入能得到其他所有系統的信任,這就是單點登入。

將證書儲存在客戶端的cookie中,十分方便,但也帶來兩個問題

對cookie進行加密。

強制將多個子系統網域名稱設定成一致。(不太現實)

cas官網上的標準流程,具體流程如下:

跳轉到cas server,即sso登入系統sso系統也沒有登入,彈出使用者登入頁。

使用者填寫使用者名稱、密碼,sso系統進行認證後,將登入狀態寫入sso的session,瀏覽器中寫入sso域下的cookie。

由於sso已經登入了,不需要重新登入認證。

(open authorization,開放授權)是為使用者資源的授權定義了乙個安全、開放及簡單的標準,第三方無需知道使用者的賬號及密碼,就可獲取到使用者的授權資訊。

使用者授權通過

第三方應用獲取到code之後,根據code獲取accesstoken

根據accesstoken獲取使用者資訊

對使用者資訊進行處理(使用者是否第一次登入,儲存使用者資訊,自定義token,session處理等)

返回結果(步驟1對應url或者重定向到首頁)

CAS實現SSO 單點登入

cas分為兩部分,cas server和cas client 假設我們現在有應用系統a 應用系統b cas認證系統 首先,我們來分析下單web應用系統登入登出的實現機理。web系統登入登出功能,通常屬於系統安全管理模組的一部分。如上篇所說,登入,意味著使用者與系統之間的一次會話開始,登出,意味著本次...

CAS實現SSO單點登入詳解

一.基本概念 1.sso 單點登入 single sign on 是目前比較流行的服務於企業多系統整合的解決方案之一,使得在多個系統中,使用者只需要登入 退出一次就可以訪問 退出所有相互信任的應用系統。2.cas 認證中心 central authentication service 是sso的一種...

cas單點登入 SSO 的實現原理

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