單點登入SSO Single Sign On

2021-09-06 19:56:21 字數 1355 閱讀 4159

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

需要解決是什麼?

1.儲存信任

2.驗證信任

單點登入在大型**裡使用得非常頻繁,例如像阿里巴巴這樣的**,在**的背後是成百上千的子系統,使用者一次操作或交易可能涉及到幾十個子系統的協作,如果每個子系統都需要使用者認證,不僅使用者會瘋掉,各子系統也會為這種重複認證授權的邏輯搞瘋掉。實現單點登入說到底就是要解決如何產生和儲存那個信任,再就是其他系統如何驗證這個信任的有效性,因此要點也就以下幾個:

由圖可知,以上方案就是將信任儲存在客戶端的cookie裡,這樣會出現2個新的問題

1.cookie不安全

2.不能跨域免登

解決辦法:

對於第乙個問題,一般是通過加密cookie來處理

對於第二個問題,大型系統會採取在服務端儲存信任關係的做法

以上方案就是要把信任關係儲存在單獨的sso系統(暫且這麼稱呼它)裡,說起來只是簡單地從客戶端移到了服務端,但其中幾個問題需要重點解決:

1.如何高效儲存大量臨時性的信任資料

2.如何防止資訊傳遞過程被篡改

3.如何讓sso系統信任登入系統和免登系統

對於問題一:

可以採用類似與redis的分布式快取的方案,既能提供可擴充套件資料量的機制,也能提供高效訪問

對於問題二:

一般採取數字簽名的方法,要麼通過數字證書簽名,要麼通過像md5的方式,這就需要sso系統返回免登url的時候對需驗證的引數進行md5加密,並帶上token一起返回,最後需免登的系統進行驗證信任關係的時候,需把這個token傳給sso系統,sso系統通過對token的驗證就可以辨別資訊是否被改過。

對於問題三:

可以通過白名單來處理,說簡單點只有在白名單上的系統才能請求生產信任關係,同理只有在白名單上的系統才能被免登入。

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

使用者登入 單點登入

首先是為啥要用單點登入的問題,單點登入也就是sso sso是在多個應用系統中,使用者只需要登入一次就可以訪問所有相互信任的應用系統。1 任何系統都必須去登陸伺服器進行登入 2 伺服器就記住了登入狀態 3 其他系統訪問受保護資源,需要再次登入,跳轉到sso server登入的時候,伺服器告訴客戶端,已...

單點登入簡介

單點登入 跨平台 跨應用的身份驗證解決方案 single sign on 簡稱為 sso 一 什麼是單點登入 single sign on 單點登入 single sign on 簡稱為 sso,是目前比較流行的企業業務整合的解決方案 sso的定義是在多個應用系統中,使用者只需要登入一次就可以訪問所...

單點登入原理

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