單點登入(SSO)

2021-09-29 20:27:06 字數 1777 閱讀 1379

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

實現機制

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

下面對上圖簡要描述

使用者訪問系統1的受保護資源,系統1發現使用者未登入,跳轉至sso認證中心,並將自己的位址作為引數

sso認證中心發現使用者未登入,將使用者引導至登入頁面

使用者輸入使用者名稱密碼提交登入申請

sso認證中心校驗使用者資訊,建立使用者與sso認證中心之間的會話,稱為全域性會話,同時建立授權令牌

sso認證中心帶著令牌跳轉會最初的請求位址(系統1)

系統1拿到令牌,去sso認證中心校驗令牌是否有效

sso認證中心校驗令牌,返回有效,註冊系統1

系統1使用該令牌建立與使用者的會話,稱為區域性會話,返回受保護資源

使用者訪問系統2的受保護資源

系統2發現使用者未登入,跳轉至sso認證中心,並將自己的位址作為引數

sso認證中心發現使用者已登入,跳轉回系統2的位址,並附上令牌

系統2拿到令牌,去sso認證中心校驗令牌是否有效

sso認證中心校驗令牌,返回有效,註冊系統2

系統2使用該令牌建立與使用者的區域性會話,返回受保護資源

使用者登入成功之後,會與sso認證中心及各個子系統建立會話,使用者與sso認證中心建立的會話稱為全域性會話,使用者與各個子系統建立的會話稱為區域性會話,區域性會話建立之後,使用者訪問子系統受保護資源將不再通過sso認證中心,全域性會話與區域性會話有如下約束關係

區域性會話存在,全域性會話一定存在

全域性會話存在,區域性會話不一定存在

全域性會話銷毀,區域性會話必須銷毀

單點登入自然也要單點登出,在乙個子系統中登出,所有子系統的會話都將被銷毀,用下面的圖來說明

sso認證中心一直監聽全域性會話的狀態,一旦全域性會話銷毀,***將通知所有註冊系統執行登出操作

下面對上圖簡要說明

使用者向系統1發起登出請求

系統1根據使用者與系統1建立的會話id拿到令牌,向sso認證中心發起登出請求

sso認證中心校驗令牌有效,銷毀全域性會話,同時取出所有用此令牌註冊的系統位址

sso認證中心向所有註冊系統發起登出請求

各註冊系統接收sso認證中心的登出請求,銷毀區域性會話

sso認證中心引導使用者至登入頁面

總結單點登入(sso系統)是保障各業務系統的使用者資源的安全 。

各個業務系統獲得的資訊是,這個使用者能不能訪問我的資源。

單點登入,資源都在各個業務系統這邊,不在sso那一方。 使用者在給sso伺服器提供了使用者名稱密碼後,作為業務系統並不知道這件事。 sso隨便給業務系統乙個st,那麼業務系統是不能確定這個st是使用者偽造的,還是真的有效,所以要拿著這個st去sso伺服器再問一下,這個使用者給我的st是否有效,是有效的我才能讓這個使用者訪問。

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