單點登入系統簡單實現

2021-09-30 08:26:14 字數 662 閱讀 6331

最近要做單點登入系統,網上參考了一下,就是得整個授權服務,其他需要進行單點登入的應用的授權,登出都通過該授權服務來決定,然後就是一處登入,處處登入;一次登出,處處登出。

簡單說明實現原理:

2.譬如現有驗證應用a,需要進行單點登入的系統s1,s2。現在s1需要進行登入驗證,首先會考慮s1本身的身份驗證,如session或cookie之類的,若沒有相應的憑證,則需要跳轉至a進行驗證,這時s1會把一些資訊(時間戳,seed,本身的資訊等等)加密後通過url傳遞到a,到a後,a首先檢查是否已經登入過(可能其他應用如s2已經登入過,這一般可以通過cookie記錄),若已經登入過,則記錄當前登入的應用的標識並直接返回登入使用者的憑證的加密資訊,s1接收到相應的授權資訊,並設定相應的使用者已經登入;若a檢查尚未有使用者進行登入,則跳轉到登入頁面,若輸入的使用者名稱密碼成功登入,則a儲存當前登入使用者的憑證,並返回該憑證到s1,s1再進行如上的處理。現在s2進行登入驗證,a會直接返回s1登入的憑證給s2。若s1進行退出操作,則其通知a自己需要退出,a這時清除當前登入的憑證,並通知所有已經登入的應用當前憑證已經失效,這個通知在web系統可以通過訪問/js的方式來實現(主要是跨域的問題),然後s1清除本地的憑證。

其他tips:各個應用的資訊可以預先存到資料庫裡如驗證位址,驗證登出位址,本地退出位址之類的,然後就是url裡加密的資訊也可以傳遞很多有用的資訊,如應用標識之類的

單點登入系統SSO實現

前些天被問到單點登入了,而據我當時做的這個模組兩年了,現在重新溫習並記錄下,方便以後快速回憶起來 sso全稱single sign on。sso是使用者只需要登入一次就可以訪問所有相互信任的應用系統 分布式集群的專案因為每個模組都部署在不同的機器。如果第一次在a系統登入,第二次訪問b系統,這個時候b...

Web系統單點登入實現

隨著使用者不斷擴大的需求,更多的系統被建造起來。為了獲得更好的使用者體驗,需要實現使用者單點登入。所謂單點登入,就是使用者在乙個系統上登入後,其他系統就不需要重複登入。單點的登入的好處很明顯,提高了使用者體驗度。如何實現單點登入,在這裡我提供兩種解決方案 1.一級網域名稱相同,通過共享cookie來...

單點登入原理與簡單實現

sso認證中心發現使用者未登入,將使用者引導至登入頁面 使用者輸入使用者名稱密碼提交登入申請 sso認證中心校驗使用者資訊,建立使用者與sso認證中心之間的會話,稱為全域性會話,同時建立授權令牌 sso認證中心帶著令牌跳轉會最初的請求位址 系統1 系統1拿到令牌,去sso認證中心校驗令牌是否有效 s...