單點登錄實現方案


單點登陸實現方案設計

整體流程:

設計思路:

單點登錄涉及 sso 認證中心與眾子系統,子系統與 sso 認證中心需要通信以交換令牌、校驗令牌及發起注銷請求,因而子系統必須集成 sso 的客戶端,sso 認證中心則是 sso 服務端,整個單點登錄過程實質是 sso 客戶端與服務端通信的過程,可用下部署圖描述:

sso 認證中心與 sso 客戶端通信方式有多種,HttpClient,WebService、rpc、restful
api 都可以,考慮各系統采用B/S架構,這里我們應用普遍的httpClient即可。

實現原理:

SSO Client

  • 攔截子系統未登錄用戶請求,跳轉至 sso 認證中心

  • 接收並存儲 sso 認證中心發送的令牌

  • 與 SSO Server 通信,校驗令牌的有效性

  • 建立局部會話

  • 攔截用戶注銷請求,向 sso 認證中心發送注銷請求

  • 接收 sso 認證中心發出的注銷請求,銷毀局部會話

SSO Server

  • 驗證用戶的登錄信息

  • 創建全局會話

  • 創建授權令牌

  • 與 SSO Client 通信發送令牌

  • 校驗 SSO Client 令牌有效性

  • 系統注冊

  • 接收 SSO Client 注銷請求,注銷所有會話

實現方案:

主系統(認證中心):

  • 主系統集成認證中心服務sso server,由主系統確認用戶的登錄操作。

子系統:

  • 子系統可通過集成sso
    client服務(可通過http請求方式)確定用戶是否登錄以及用戶對應的響應角色信息,用戶登錄后通過主系統重定向到各個子系統服務。

無狀態交互:

  • 無狀態的注冊,受權等操作可直接由主系統通過httpclient方式直接向自服務發送請求,具體參見文檔:針對第三方系統登錄方案設計說明文檔.doc


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM