SSO單點登入最全詳解(圖文全面總結)

带你聊技术發表於2024-03-05

來源:mikechen的網際網路架構



SSO單點登入經常在大型網站被使用到,下面我就重點來詳解SSO單點登入的原理機制與應用場景



SSO單點登入

單點登入(Single Sign-On,簡稱SSO)是一種身份驗證機制,允許使用者在一次登入後,就能夠訪問多個關聯的系統,而無需在每個系統中重新進行身份驗證。

SSO單點登入價值

要體現在如下2點:

1.使用者體驗提升

SSO允許使用者在一次登入後訪問多個相關係統,無需在每個系統中都進行繁瑣的身份驗證。

這大大簡化了使用者的登入過程,提高了整體的使用者體驗。

如下圖所示:

SSO單點登入最全詳解(圖文全面總結)

阿里的使用者登入一次之後,就可以訪問淘寶, 天貓 聚划算。

這樣,避免了在每個系統中重複輸入使用者名稱和密碼,提高了使用者體驗。

2.提高安全性

SSO有助於集中管理使用者身份驗證和授權,減少了密碼洩露的風險。

而且,還可以更容易地監控和管理使用者的許可權,實施更強的身份驗證,和授權策略。

除了單一登入,SSO通常還支援單一登出功能,當使用者在一個系統中登出時,其他已登入的系統也會被登出。

SSO單點登入實現

SSO單點登入系統,涉及了使用者身份驗證、令牌生成與驗證、全域性會話管理、訪問控制和單點登出等方面。

如下圖所示:

SSO單點登入最全詳解(圖文全面總結)

主要會包含如下元件:

SSO單點登入最全詳解(圖文全面總結)

1.CAS 伺服器

CAS伺服器是單點登入系統的核心元件,負責使用者的身份驗證、生成並管理令牌、以及全域性會話管理。

工作流程:

  1. 使用者登入請求: 使用者嘗試訪問某個需要認證的應用。

  2. 重定向至CAS登入頁面: CAS客戶端檢測到使用者未登入,將使用者重定向至CAS伺服器的登入頁面。

  3. 使用者憑證驗證: 使用者在CAS登入頁面輸入使用者名稱和密碼。

  4. 生成令牌(Ticket): CAS伺服器驗證使用者憑證成功後,生成一個包含使用者身份資訊的令牌。

  5. 返回令牌和TGT: CAS伺服器將令牌返回給CAS客戶端,同時可能生成一個TGT(Ticket Granting Ticket)用於全域性會話管理。

2.CAS Client(CAS 客戶端)

CAS客戶端,主要是處理使用者的登入、和CAS伺服器的通訊。

工作流程:

  1. 檢測使用者登入狀態: CAS客戶端檢測使用者是否已經登入。

  2. 重定向至CAS伺服器: 如果未登入,CAS客戶端將使用者重定向至CAS伺服器,包含Service標識以及可能的登入狀態(如重定向回撥URL)。

  3. CAS登入驗證: 使用者在CAS登入頁面輸入憑證,CAS伺服器驗證使用者身份。

  4. 獲取Service Ticket: CAS伺服器生成ST,並將其返回給CAS客戶端。

  5. 訪問受保護資源: CAS客戶端將ST與Service標識一起傳送至Service,實現訪問控制。

3.Service

表示使用者想要訪問的資源,每個Service都有一個唯一的識別符號。

工作流程:

  1. 接收ST和Service標識: Service接收CAS客戶端傳遞的ST和Service標識。

  2. ST驗證: Service向CAS伺服器驗證ST的有效性,確保ST未被使用且未過期。

  3. 使用者授權: 驗證透過後,Service授予使用者訪問受保護資源的許可權。

4.單點登出

單點登出通知: 當使用者在一個Service登出時,Service通知CAS伺服器。

全域性登出: CAS伺服器透過TGT,通知其他關聯的Service進行使用者登出。

以上就是SSO單點登入的介紹,希望對你掌握好SSO有所參考。


來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70024922/viewspace-3008060/,如需轉載,請註明出處,否則將追究法律責任。

相關文章