開發與維運

基於OAuth2的跨網站統一登錄解決方案

1.需求場景

隨著業務發展,一個企業開發、運營了多個網站,同時也產生了一些亟待解決的問題。

  • 用戶使用每個網站前,需要重複註冊,需要記住對應的賬號和密碼。
  • 用戶使用每個網站時,需要一次次重新登錄。
  • 用戶只是瞭解一個個獨立的網站,企業沒有在用戶心中形成統一的形象。
  • 每個產品都需要重複設計、開發和維護註冊、登錄等模塊。
  • 用戶的信息分散在各個網站中,不利於更好的瞭解用戶。

2.解決方案

2.1 方案說明

本解決方案基於OAuth2 協議,為網站用戶提供跨網站的流暢登錄體驗,且擁有高性價比的彈性伸縮能力。

  • 統一認證中心:基於 Spring Cloud Security、JWT、OAuth2 協議,提供統一認證能力,負責用戶認證數據的統一管理。
  • 需接入的網站:基於 SSO-SDK,輕量級接入統一認證體系,與統一認證中心協作,提供用戶暢遊企業各產品網站的最佳瀏覽體驗。
  • 管理中心:負責管理需接入網站的認證管理,保證統一認證體系的安全與可控。
  • 關於用戶的登錄頁,為保證用戶的統一體驗及統一企業品牌,推薦採用統一登錄頁的方案,同時支持少數網站需要自定義的特殊需求。
  • 基於微服務+阿里雲容器服務,提供高性價比的彈性伸縮能力。

截屏2020-03-1815.04.38.png

2.2.方案優勢

  • 遵循主流的OAuth2開放協議,除能打通內部系統的用戶數據外,還可在授權允許情況下,允許外部系統使用本系統的用戶進行登錄,如常見微信登錄、QQ登錄等。
  • Spring Security 框架技術成熟且社區活躍,穩定性有保證。
  • 在Spring Security 框架基礎上,進行增強擴展,可滿足密碼模式下的sso場景。
  • 支持跨域單點登錄。
  • 基於阿里雲基礎設施的構建,整體系統穩定可靠。
  • 充分發揮阿里雲的彈性伸縮能力,即可控制成本,又可適應用戶數量的爆發式增長。
  • 兼顧私有云、傳統 IDC 部署環境,滿足不同客戶的運行環境的需求。

3. 客戶價值

基於此方案,幫助企業打通各產品的用戶體系,且實現多種場景下的免登。企業擁有企業級的統一賬號體系,建立統一企業品牌,提升用戶註冊與登錄場景的體驗。

  • 統一的用戶認證體系,實現統一認證、跨網站免登,實現 SSO。
  • 統一的用戶數據庫,實現用戶數據的聚合,幫助企業更懂用戶。
  • 企業級網站的統一登錄頁,統一品牌形象,統一用戶體驗。
  • 支持產品根據特殊性選擇自定義登錄頁。
  • 支持用戶名、手機號、郵箱等多種認證方式的擴展。

3.1 網站用戶的收益

  • 一次註冊即可使用所有企業運營的產品,無需反覆填寫註冊信息
  • 一次登錄即可所有企業運營的所有產品,即安全又便捷

3.2 企業的收益

  • 降低用戶試用企業運營產品的門檻,利於交叉營銷。
  • 減少用戶反覆登錄,利於產品用戶促活。
  • 減少產品研發中的重複建設,降低成本,提升產品推進效率。
  • 統一建設認證中心,便於統一和提升所有產品的賬號安全。

4. 關於登錄頁的說明

4.1 模式一:統一登錄頁的SSO

此種模式無需網站實現登錄頁、登錄接口的開發,未登錄狀態的用戶會自動被引導到統一認證中心去登錄。

4.1.1 實現原理

image.png

4.1.2 說明

技術實現整體使用spring-securiry-oauth2的 “授權碼模式” 來進行實現。

4.2 模式二:網站自定義登錄頁

4.2.1 實現原理

image.png

4.2.2 說明

在統一認證中心與網站的實現上,除spring-securiry-oauth2之外,還需要引入雲頂雲研發的 “密碼模式SSO” 擴展包來進行實現。

雲頂雲(yundingyun.com)是國內首批專注於雲計算服務的提供商,致力於“讓雲計算更簡單”。做為阿里雲五星授權服務中心,雲頂雲致力於為企業和政府提供方案諮詢、架構設計、部署實施、系統定製、運維託管、技術培訓等全方位“4S”級公有云、私有云定製化服務。

Leave a Reply

Your email address will not be published. Required fields are marked *