SSO單點登入系統的實戰運用

2021-09-25 00:06:44 字數 1489 閱讀 5662

通用介紹

單點登入系統,簡稱為 sso,是目前比較流行的企業業務整合的解決方案之一。sso的定義是在多個應用系統中,使用者只需要登入一次就可以訪問所有相互信任的應用系統。任何sso框架都需要建立統一的認證中心!

解決問題

當我們有多個系統時,每個系統都需要做登入操作的時候,會遇到非常繁瑣的問題(頻繁的登入),當呼叫其他服務時也會出現訪問不到,授權的問題,那麼怎麼解決此問題呢?我們就用到了sso框架。

框架介紹

我們使用majiasso框架來解決單點登入問題。此框架使用非常簡單,五分鐘整合框架,使用jwt作為token,不依賴任何儲存,使用者可以攜帶自定義資訊,可以自定義token加密鹽。我們只需要建立乙個統一的認證服務,此服務我們用來驗證使用者登入,並且驗證獲取token。訪問其他服務時,只需要帶上token就可以進行訪問。我們可以使用@notoken註解來控制放開那些不需要註解的請求對映。

對比優點

不依賴任何儲存(大部分sso依賴快取/redis/mysql等儲存)

即插即用,五分鐘整合

token基於jwt,使用者可以自己攜帶資訊

使用者自定義加密鹽,安全便捷

基於註解控制請求,簡單方便

基於***,可以動態控制攔截請求(推薦攔截所有/**,使用@notoken控制)

認證伺服器重啟無影響,無快取使用sso框架

建立統一認證中心

pom引入

登入請求controller

在這裡,為了方便就不編寫sql服務,假如使用者名稱和密碼分別為admin/123456時表示認證通過。

認證通過時,呼叫方法loginsuccess,傳入引數(唯一id,使用者名稱,其他資訊,自定義加密鹽),判斷返回狀態碼是不是200,如果是,直接獲取data就是token值。

到這裡認證服務就整合完畢了

普通服務整合majiasso

對於普通服務而言,乙個服務也是這樣整合,兩個服務也是這樣整合…100個服務也是這樣整合。

注意事項:在整合時,我們需要注意設定加密鹽要和授權中心一致(必須一致,一把鎖必須對應它的鑰匙才能開啟鎖)

整合步驟:

建立正常的springboot服務

引用jar包

新增***

放開不需要認證的請求整合就完畢了!!!

pom.xml

新增majiasso***,並設定加密鹽

放開某些請求,並且獲取我們儲存在token中的資訊

/hello請求是需要我們攜帶token進行訪問的,而/hi請求則利用註解放開了驗證,**如下

訪問圖(不需要token,被notoken註解)

需要token未攜帶時訪問(返回code401),當token不合法,會提示非法請求

正常攜帶token時訪問,並且控制台會列印出我們攜帶的所有資訊

控制台列印攜帶的資訊

當攜帶錯誤的token進行訪問時,我們可以理解為有人惡意的攻擊我們的系統,給出提示

到這裡我們整合majiasso就成功了,可以新增很多服務,為每個服務新增上***就ok!sso就是這麼簡單。

單點登入SSO系統

什麼是sso系統 sso,英文全稱是single sign on,即單點登入。sso是指在多個應用系統中,使用者只需要登入一次就可以訪問所有相互信任的應用系統。它是目前比較流行的企業業務整合的解決方案之一。為什麼要用sso 傳統的登入實現方式 此方式在只有乙個web工程時沒有問題。集群環境 sess...

單點登入 sso系統

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

單點登入系統SSO實現

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