單點登錄(SSO)

一、SSO(單點登錄)介紹

SSO英文全稱Single SignOn,單點登錄。SSO是在多個應用系統中,用戶只需要登錄一次就可以訪問所有相互信任的應用系統。它包括可以將這次主要的登錄映射到其他應用中用於同一個用戶的登錄的機制。它是目前比較流行的企業業務整合的解決方案之一。

實現機制

當用戶第一次訪問應用系統1的時候,因爲還沒有登錄,會被引導到認證系統中進行登錄;根據用戶提供的登錄信息,認證系統進行身份校驗,如果通過校驗,應該返回給用戶一個認證的憑據--ticket;用戶再訪問別的應用的時候就會將這個ticket帶上,作爲自己認證的憑據,應用系統接受到請求之後會把ticket送到認證系統進行校驗,檢查ticket的合法性。如果通過校驗,用戶就可以在不用再次登錄的情況下訪問應用系統2和應用系統3了。

下面對上圖簡要描述

  1. 用戶訪問系統1的受保護資源,系統1發現用戶未登錄,跳轉至sso認證中心,並將自己的地址作爲參數
  2. sso認證中心發現用戶未登錄,將用戶引導至登錄頁面
  3. 用戶輸入用戶名密碼提交登錄申請
  4. sso認證中心校驗用戶信息,創建用戶與sso認證中心之間的會話,稱爲全局會話,同時創建授權令牌
  5. sso認證中心帶着令牌跳轉會最初的請求地址(系統1)
  6. 系統1拿到令牌,去sso認證中心校驗令牌是否有效
  7. sso認證中心校驗令牌,返回有效,註冊系統1
  8. 系統1使用該令牌創建與用戶的會話,稱爲局部會話,返回受保護資源
  9. 用戶訪問系統2的受保護資源
  10. 系統2發現用戶未登錄,跳轉至sso認證中心,並將自己的地址作爲參數
  11. sso認證中心發現用戶已登錄,跳轉回系統2的地址,並附上令牌
  12. 系統2拿到令牌,去sso認證中心校驗令牌是否有效
  13. sso認證中心校驗令牌,返回有效,註冊系統2
  14. 系統2使用該令牌創建與用戶的局部會話,返回受保護資源

  用戶登錄成功之後,會與sso認證中心及各個子系統建立會話,用戶與sso認證中心建立的會話稱爲全局會話,用戶與各個子系統建立的會話稱爲局部會話,局部會話建立之後,用戶訪問子系統受保護資源將不再通過sso認證中心,全局會話與局部會話有如下約束關係

  1. 局部會話存在,全局會話一定存在
  2. 全局會話存在,局部會話不一定存在
  3. 全局會話銷燬,局部會話必須銷燬

 

2、註銷

  單點登錄自然也要單點註銷,在一個子系統中註銷,所有子系統的會話都將被銷燬,用下面的圖來說明

3b139d2e-0b83-4a69-b4f2-316adb8997ce

  sso認證中心一直監聽全局會話的狀態,一旦全局會話銷燬,監聽器將通知所有註冊系統執行註銷操作

  下面對上圖簡要說明

  1. 用戶向系統1發起註銷請求
  2. 系統1根據用戶與系統1建立的會話id拿到令牌,向sso認證中心發起註銷請求
  3. sso認證中心校驗令牌有效,銷燬全局會話,同時取出所有用此令牌註冊的系統地址
  4. sso認證中心向所有註冊系統發起註銷請求
  5. 各註冊系統接收sso認證中心的註銷請求,銷燬局部會話
  6. sso認證中心引導用戶至登錄頁面

總結

單點登錄(SSO)的所有流程都介紹完了,原理大家都清楚了。總結一下單點登錄要做的事情:

  • 單點登錄(SSO系統)是保障各業務系統的用戶資源的安全 。
  • 各個業務系統獲得的信息是,這個用戶能不能訪問我的資源。
  • 單點登錄,資源都在各個業務系統這邊,不在SSO那一方。 用戶在給SSO服務器提供了用戶名密碼後,作爲業務系統並不知道這件事。 SSO隨便給業務系統一個ST,那麼業務系統是不能確定這個ST是用戶僞造的,還是真的有效,所以要拿着這個ST去SSO服務器再問一下,這個用戶給我的ST是否有效,是有效的我才能讓這個用戶訪問。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章