單點登錄實現方案
阿新 • • 發佈:2018-12-26
集成 說明 方式 狀態交互 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。
單點登錄實現方案