隨著業務拆分部署為多個獨立站點,單點登入 (Single Sign-On, SSO) 成為必需:用戶一次登入,即可存取所有關聯系統。
兩大實作路徑比較
| 方案 | 優點 | 缺點 |
| 同域 Cookie 共享 | 實作簡單、無需額外元件 | 僅限同根域名、跨語言平台困難、安全性較弱 |
| 統一認證中心 (推薦) | 跨域、跨平台、高擴充性、集中管控 | 架構較複雜、需維護獨立服務 |
統一認證中心核心介面
- 用戶登入驗證:驗證帳密,成功回傳
LoginToken。
- Token 驗證:驗證 Token 有效性,成功回傳用戶身分資訊。
- 延長 Token 有效期:滑動視窗機制維持登入狀態。
- 登出/撤銷 Token:單點登出觸發所有站點會話終結。
標準 SSO 流程
- 用戶在站點 A 輸入帳密登入。
- 站點 A 轉發驗證請求至認證中心,取得 Token。
- 站點 A 將 Token 存入 Session/Cookie,完成登入。
- 用戶點擊連結前往站點 B,URL 攜帶 Token 參數。
- 站點 B 驗證 Token,認證中心回傳用戶資訊。
- 站點 B 建立本地會話,完成無感登入。
Token 安全性設計
建議採用 不可逆簽名結構:Token = Guid + HMAC(Guid + SecretKey) 或 JWT (JSON Web Token)。驗證時先檢查簽名完整性,再查詢 Redis/資料庫確認有效期與撤銷狀態,防止暴力破解與重放攻擊。
擴充應用:API 統一鑑權
同一 Token 可用於 AJAX 呼叫後端微服務,服務端僅需驗證 Token 即可識別用戶,實現「登入一次、全平台通行」。
後續演進方向
- 認證中心叢集化、高可用部署。
- 分散式 Session 一致性(Redis 支援)。
- 整合 OAuth2/OpenID Connect 標準協議。
- 風控:異地登入偵測、裝置指紋、頻率限制。