1. 程式人生 > >單點登錄實現方案

單點登錄實現方案

集成 說明 方式 狀態交互 rest 整體 mage -s 接收

單點登陸實現方案設計

整體流程:

設計思路:

單點登錄涉及?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

單點登錄實現方案