官網SSO登錄系統的企業架構設計全過程

第一階段:架構愿景與業務架構設計 (Architecture Vision & Business Architecture)

任何架構的起點都必須是業務目標和需求。

1.1 核心業務目標 (Business Goals)
  • 提升用戶體驗:用戶一次登錄,即可無縫訪問集團下所有子公司的官網和應用,無需重復輸入密碼。
  • 強化品牌統一性:統一的登錄入口和體驗,強化集團的整體品牌形象。
  • 降低運營成本:減少因密碼重置、賬號管理帶來的IT支持成本。
  • 賦能業務創新:為未來整合用戶數據、實現精準營銷和個性化服務提供統一的身價認證基石。
  • 提升安全性:集中進行安全審計和風險控制,避免各個子系統出現安全短板。
1.2 業務用例與用戶旅程 (Business Use Cases & User Journey)
  • 用戶:訪問A公司官網,點擊登錄,跳轉到統一登錄中心,登錄后自動返回A官網且已登錄狀態。再訪問B公司官網,直接已是登錄狀態。
  • 管理員:在統一后臺管理所有用戶賬號、權限、審計日志。
  • 開發人員:新應用只需簡單集成SDK,即可快速獲得登錄能力,無需自行開發認證模塊。
1.3 業務能力映射 (Business Capability Mapping)

識別出需要構建或增強的核心業務能力:

  • 身份認證能力
  • 集中授權能力
  • 用戶生命周期管理能力
  • 安全審計與風險控制能力

第二階段:數據架構設計 (Data Architecture)

數據是身份系統的核心資產。

2.1 核心數據實體 (Core Data Entities)
  • User (用戶):核心身份信息(UserID, 用戶名, 手機號/郵箱, 密碼哈希, 狀態)。
  • Application (應用):注冊到SSO系統的客戶端應用信息(AppID, AppSecret, 回調地址, 權限范圍)。
  • Session (會話):用戶的登錄會話狀態(SessionID, UserID, 登錄時間、過期時間、設備信息)。
  • Token (令牌):頒發的認證令牌(Access Token, Refresh Token, 關聯UserID, scope, 過期時間)。
  • Audit Log (審計日志):所有關鍵操作的日志(時間、用戶、操作、結果、IP地址)。
2.2 數據流設計 (Data Flow)
  1. 用戶憑據 -> 認證中心 -> (驗證) -> 寫Session、生成Token
  2. 客戶端應用 -> 攜帶Token -> 認證中心 -> (驗證Token) -> 返回User信息。
  3. 任何操作 -> 寫Audit Log

第三階段:應用架構設計 (Application Architecture)

這里我們采用基于標準協議(OAuth 2.0 / OpenID Connect)的中心化認證服務模式。

3.1 系統組件劃分 (Component Diagram)

我們將系統分解為以下幾個核心微服務,其交互關系如下圖所示,它清晰地展示了用戶登錄、令牌驗證及資源訪問的完整流程:

1. 訪問受保護頁面
2. 重定向至登錄頁
3. 提交憑據
4. 驗證憑據
5. 頒發授權碼, 重定向回SP
6. 攜帶授權碼請求SP
7. 用授權碼請求Token
8. 返回Access/ID Token
9. 創建本地會話, 返回資源
用戶
集團官網/應用
Service Provider
統一認證中心
Identity Provider
用戶/會話/令牌數據庫
  • 統一認證中心 (Identity Provider - IdP)

    • 認證端點 (Auth Endpoint):處理登錄請求,渲染登錄頁面。
    • 令牌端點 (Token Endpoint):交換授權碼、頒發令牌(Access Token / Refresh Token)。
    • 用戶信息端點 (UserInfo Endpoint):根據Access Token返回用戶身份信息。
    • JWK 端點:提供公鑰,用于驗證JWT簽名。
    • 管理端點:提供應用注冊、用戶管理等API(內部使用)。
  • 客戶端應用 (Service Provider - SP)

    • 即各個集團官網和需要接入的內部系統。
    • 集成輕量級SDK(例如:OIDC Client),負責:
      • 攔截未認證請求。
      • 重定向到IdP。
      • 處理回調,換取Token。
      • 驗證Token并建立本地會話。
  • 后臺管理系統

    • 為用戶、應用、權限提供圖形化管理界面。
3.2 協議選型 (Protocol Selection)
  • OAuth 2.0:作為授權框架,提供獲取令牌的標準流程。
  • OpenID Connect (OIDC):在OAuth 2.0之上構建的身份層,提供標準的身份認證功能(ID Token)和用戶信息接口。這是我們實現SSO的核心協議
  • JWT (JSON Web Token):作為令牌格式,具備自包含、可驗證、防篡改的特性。

第四階段:技術架構設計 (Technology Architecture)

4.1 技術棧選型 (Technology Stack)

這是一個基于現代云原生和微服務理念的參考技術棧:

組件推薦技術選型說明
IdP 后端Spring Authorization Server強烈推薦。Spring生態官方項目,對OAuth 2.1和OIDC支持完善,高度可定制,符合Java技術棧現狀。
IdP 前端React / Vue.js + Ant Design構建現代化、響應式的登錄和管理界面。
API 網關Spring Cloud Gateway / Nginx路由、限流、安全防護的統一入口。
數據庫MySQL / PostgreSQL存儲用戶、應用等核心數據,滿足ACID。
緩存Redis必選項。存儲用戶會話(Session)、令牌黑名單,極致性能。
日志與監控ELK Stack (Elasticsearch, Logstash, Kibana) / Prometheus + Grafana集中日志收集、性能監控和告警。
4.2 部署與高可用架構 (Deployment & High Availability)
  • 部署模式:采用微服務架構,每個核心組件(IdP、網關、緩存、DB)均可獨立部署、擴展。
  • 高可用 (HA)
    • 所有服務無狀態化設計,方便水平擴展。
    • IdP、網關等服務部署多個實例,通過負載均衡器(如Nginx、F5) 對外提供服務。
    • Redis 配置為哨兵(Sentinel)模式集群模式
    • 數據庫 配置主從復制,實現讀寫分離和故障切換。
  • 安全性
    • 全鏈路HTTPS
    • 使用公私鑰對對JWT進行簽名(RS256),防止篡改。
    • 數據庫密碼、AppSecret等敏感信息使用VaultKubernetes Secrets管理,嚴禁硬編碼。

第五階段:實施與演進路線圖 (Implementation & Evolution Roadmap)

5.1 演進路線圖 (Phased Approach)
  • Phase 1 (MVP - 3個月)

    • 實現基于OIDC授權碼模式的核心登錄流程。
    • 接入1-2個最重要的集團官網作為試點。
    • 實現基本的用戶管理(增刪改查)。
    • 技術棧固化:Spring Authorization Server + Redis + MySQL。
  • Phase 2 (增強 - 后續3個月)

    • 開發完整的后臺管理系統。
    • 接入所有剩余官網和內部系統。
    • 增加多因素認證(MFA) 功能(如短信/郵箱驗證碼)。
    • 實現完整的審計日志功能。
  • Phase 3 (未來)

    • 對接企業微信、AD/LDAP等第三方身份源
    • 實現風險行為檢測(異常登錄報警)。
    • 探索無密碼認證(Passwordless)
5.2 治理與保障 (Governance)
  • 成立架構評審委員會(ARB):所有接入SSO的應用必須通過安全性和協議合規性評審。
  • 制定接入規范:提供詳細的SDK集成文檔API文檔,降低接入成本。
  • 建立監控大盤:實時監控登錄QPS、成功率、延遲等核心指標。

總結:架構決策的核心要點

  1. 標準優于自定義:堅決采用OIDC等工業標準,避免閉門造車,保證系統的開放性、安全性和可維護性。
  2. 中心化治理:認證和授權邏輯必須集中在IdP,客戶端應用必須“輕量化”,杜絕各自實現安全邏輯。
  3. 安全第一:從協議、傳輸、存儲、運維等多個層面構建縱深防御體系。
  4. 非功能需求驅動:高可用、高性能、可擴展性不是事后才考慮的,而是架構設計的初始輸入。
  5. 演進式設計:通過清晰的路線圖分步實施,快速交付價值,并在過程中不斷迭代優化。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/919553.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/919553.shtml
英文地址,請注明出處:http://en.pswp.cn/news/919553.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

2025世界機器人大會:中國制造“人形時代”爆發

2025世界機器人博覽會8月8日在北京亦莊開幕,主題為“讓機器人更智慧,讓具身體更智能”,匯聚全球200余家企業、1500余件展品,其中首發新品超100款,人形機器人整機企業參展數量創同類展會之最。 除了機器人本體外&#…

Oracle 庫定期備份表結構元數據信息至目標端備份腳本

一、背景描述當前 xxx 項目 Oracle 11g RAC 庫缺少 DG,并且日常沒有備份,存在服務器或存儲損壞,數據或表結構存在丟失風險,在和項目組同步后,項目組反饋可對該數據庫定期備份相關結構信息,如存在數據丟失&a…

wps安裝后win系統瀏覽窗口無法查看

前提需要有安裝office軟件,PDF一般默認是瀏覽器,如果設置瀏覽器不行,就安裝Adobe Acrobat DC軟件1、按winR鍵,輸入regedit,進入注冊表2、找到路徑:\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Current…

Qt 中最經典、最常用的多線程通信場景

實現步驟創建工作類 (Worker):在工作線程中處理數據的對象。創建線程對象 (QThread):用來托管工作對象。連接信號槽:主線程 -> 工作線程:連接一個主窗口發出的信號到工作對象的槽,用于傳遞數據。工作線程 -> 主線…

【CV 目標檢測】Fast RCNN模型①——與R-CNN區別

3.Fast RCNN模型 相比于R-CNN,Fast RCNN模型主要在以下三個方面進行了改進: 提高訓練和預測速度 R-CNN首先從測試圖中提取2000個候選區域,然后將這2000個候選區域分別輸入到預訓練好的CNN中提取特征。由于候選區域有大量的重疊,這…

Zookeeper學習

要精通 ZooKeeper,需要掌握其核心原理、數據模型、分布式協調機制、典型應用場景、運維管理與性能調優等方面的知識。以下是系統化的知識體系:? 一、ZooKeeper 基礎原理ZooKeeper 是什么 分布式協調服務,提供一致性、高可用的元數據管理核心…

用TestComplete打造高效CI/CD測試流程

傳統的UI測試往往受限于圖形界面渲染,導致執行速度慢、資源占用高,難以適應持續集成/持續交付(CI/CD)管道的需求。自動化UI測試平臺TestComplete的智能質量附加組件通過無頭測試技術,為開發團隊提供了一種更高效、更可…

C++ 淺拷貝 和深拷貝的知識點講解

好問題 👍,這個就是理解 delete 的關鍵前置知識。 我從 C語言基礎 出發,像教科書一樣,從零講給你聽。1. 什么是“拷貝”? 在 C 中,當你有一個對象 A,然后寫: Device_Info a; Device…

Arkts加載網頁url的pdf發票黑屏問題

使用模擬器會閃退,連接真機預覽正常import { HMRouter, HMRouterMgr, HMParamType, HMPageParam } from "hadss/hmrouter"; import { BaseTitle, RouterConstants } from "commonlib"; import { webview } from kit.ArkWeb; import { PDFView }…

使用 mongosh 設置 MongoDB 賬號密碼

可以使用 mongosh(MongoDB 6.0+ 的現代Shell)來設置賬號密碼。mongosh 是官方推薦的新一代MongoDB Shell工具,替代了傳統的 mongo 命令。 【本人博文提到的ip均為隨機生成的,不是實際的ip,僅供參考,如有雷同,純屬巧合】 使用 mongosh 設置 MongoDB 賬號密碼 1. 首先連…

HTML+CSS:浮動詳解

在HTMLCSS布局中,浮動(float) 是一種經典的布局技術,用于控制元素在頁面中的排列方式。它最初設計用于實現文字環繞圖片的效果,后來被廣泛用于復雜布局,但隨著Flexbox和Grid的興起,其使用場景有…

GPIO初始化及調用

下面把 HAL 庫 和 標準外設庫(SPL) 初始化 GPIO 點亮/熄滅 LED 的完整步驟、示例代碼和常用 API 逐一說清楚。用例默認 PC13 接 LED(藍板常見;低電平點亮,高電平熄滅——若板子相反,只把寫 1/0 對調即可&am…

【GPT入門】第48課 LlamaFacotory 合并原模型與LoRA模型

【GPT入門】第48課 LlamaFacotory 合并原模型與LoRA模型1.合并原模型與LoRA訓練的增量模型2. 測試模型1.合并原模型與LoRA訓練的增量模型 llamafactory-cli webui 執行合并 合并后模型大小 (base) rootautodl-container-b4b04ea4f2-b5ee47d1:~# du -sh /root/autodl-tmp/mod…

Python爬蟲實戰:研究tumblr,構建博客平臺數據采集分析系統

1. 引言 1.1 研究背景 在信息爆炸的時代,社交媒體平臺已成為人們獲取信息、表達觀點和進行社交互動的主要渠道。這些平臺上積累的海量數據包含了用戶偏好、社會趨勢、文化現象等豐富信息,對學術研究、市場分析、產品開發等領域具有重要價值。 Tumblr 作為一個綜合性的輕博客…

集成算法學習總結

一、集成學習基礎認知 核心思想:集成學習(ensemble learning)通過構建并結合多個個體學習器來完成學習任務,類似于 “多個專家共同決策”,通常比單個學習器的性能更優。其核心邏輯是利用多個學習器的優勢互補&#xff…

線程安全的產生以及解決方案

線程安全原子性(Atomicity)、可見性(Visibility)、有序性(Ordering) 是保證線程安全的三大核心要素 —— 線程安全問題的本質,幾乎都是這三個特性中的一個或多個被破壞導致的。操作不會被 “中途…

Spring Cloud Netflix學習筆記01

文章目錄前言一、微服務概述什么是微服務?微服務與微服務架構微服務優缺點優點缺點微服務技術棧有那些?二.SpringCloud入門概述SpringCloud是什么?SpringCloud和SpringBoot的關系Dubbo 和 SpringCloud技術選型總結SpringCloud能干嘛&#xff…

專題:2025母嬰行業消費洞察與分齡營養趨勢報告|附40 +份報告PDF、交互圖表數據匯總下載

原文鏈接:https://tecdat.cn/?p43654 當95后媽媽拿著計算器對比DHA純度,當爸爸們為“防紅屁屁紙尿褲”貨比三家,母嬰行業的風向早就變了。從“一把奶粉喂到3歲”到“按月齡定制營養包”,從“進口就好”到“看專利數據下單”&…

redhat6/centos6 配置yum源

由于RHEL6/centos6系統官方早就停止通知維護了,公司的開發服務器有比較老,發現竟然scp都沒有裝。。。今天配置個本地yum源,安裝一下常規軟件和開發環境比較簡單,直接上代碼1.上傳一個centos6的iso文件CentOS-6.5-x86_64-bin-DVD1.…

day31 SQLITE

數據庫相關函數數據庫創建int sqlite3_open( const char *filename, sqlite3 **ppDb);功能:打開數據庫,不存在則創建參數:const char *filename 數據庫名sqlite3 **ppDb 二級指針,傳出ppDb數據庫的一級指…