1. SSO 概述:单点登录的定义、核心价值、常见应用场景与架构挑战

1.1 单点登录(SSO)的定义

单点登录(Single Sign-On,SSO)是一种身份认证机制,允许用户使用一组凭据(如用户名/密码、生物特征或数字证书)登录一次,即可访问多个相互信任的应用系统,而无需在每个系统中重复输入凭据。

从架构视角看,SSO 的核心是将认证逻辑从各个业务应用中剥离,集中到独立的认证中心(Authentication Server,AS)。业务应用不再直接处理用户密码,而是信任认证中心颁发的令牌(Token)。

关键概念: SSO 解决的是“一次认证,多次授权”的问题。用户与认证中心交互一次,认证中心与各业务应用通过令牌传递信任关系。

1.2 核心价值

维度 价值描述 影响对象
用户体验 减少重复登录次数,降低密码记忆负担,提升操作流畅度 最终用户
安全管控 认证逻辑集中,便于实施强密码策略、多因素认证(MFA)、异常检测 安全团队
运维效率 统一管理用户生命周期(创建/禁用/删除),减少账号孤岛 运维/IT 部门
开发成本 业务应用无需自建认证模块,集成标准协议(OAuth2/OIDC/SAML)即可 开发团队
审计合规 所有认证行为集中记录,便于追溯和满足合规要求(如 GDPR、SOX) 合规/审计

1.3 常见应用场景

  1. 企业办公套件: 员工登录一次企业门户,即可访问邮箱、OA、HR 系统、项目管理工具等内部应用。
  2. 云服务生态: 使用 Google/微软/Apple 账号登录第三方网站或移动应用(社交登录本质也是 SSO 的一种形式)。
  3. 跨域微服务架构: 在微服务架构中,用户通过 API 网关认证后,携带令牌访问后端多个微服务,无需在每个服务中重新认证。
  4. B2B 联盟: 合作伙伴员工通过身份联盟(Identity Federation)访问本企业提供的 SaaS 平台,使用合作伙伴自己的 IdP 认证。
  5. 移动端与 Web 端统一: 用户在移动 App 登录后,通过扫码或令牌传递,无缝切换到 Web 端继续操作。

1.4 架构挑战

SSO 在带来便利的同时,也对系统架构提出了严峻挑战。以下是在设计 SSO 平台时必须正视的核心问题:

挑战类别 具体问题 架构影响
单点故障 认证中心一旦宕机,所有依赖 SSO 的应用均无法登录 必须设计高可用集群、多活部署、降级策略
性能瓶颈 所有认证请求集中到认证中心,高并发下可能成为瓶颈 需要无状态设计、缓存加速、水平扩展能力
令牌安全 令牌泄露可导致攻击者冒充用户访问所有关联系统 令牌必须签名/加密、设置短有效期、绑定客户端信息
跨域与跨协议 不同应用可能部署在不同域名、不同技术栈,甚至使用不同协议 需要支持多种标准协议(OAuth2/OIDC/SAML/CAS)及跨域 Cookie 或 PostMessage 机制
会话管理 用户登出时,需要清除所有关联应用的会话(单点登出 SLO) 需要反向通知机制或令牌撤销列表(Token Revocation List)
集成复杂度 存量老旧系统可能不支持标准 SSO 协议,改造困难 可能需要代理网关、反向代理或适配器模式进行桥接

1.5 SSO 核心架构逻辑

下图展示了 SSO 的基本交互流程,清晰呈现用户、认证中心与业务应用之间的信任传递关系:

SSO 核心架构交互流程 SSO 核心架构交互流程 用户浏览器 (User Agent) 业务应用 A (Service Provider) 认证中心 (Identity Provider) ① 请求访问 ② 重定向(302) ③ 提交凭据(用户名/密码) ④ 颁发令牌(Token) ⑤ 携带令牌请求资源 ⑥ 验证令牌 ⑦ 验证通过 ⑧ 返回受保护资源 说明:业务应用不直接处理密码,而是信任认证中心颁发的令牌,实现“一次认证,多次授权”

1.6 架构决策要点

在启动 SSO 平台设计之前,架构师需要明确以下关键决策点:

  • 协议选型: 现代架构优先选择 OAuth 2.0 + OpenID Connect(OIDC),兼容性广;存量系统可能需支持 SAML 2.0 或 CAS。
  • 令牌格式: JWT(JSON Web Token)已成为事实标准,自包含、无状态、可签名验证,适合分布式架构。
  • 会话存储: 认证中心自身会话建议使用分布式缓存(如 Redis),支持集群共享;业务应用侧会话建议无状态化。
  • 高可用设计: 认证中心必须多节点部署,前置负载均衡,并考虑本地会话缓存与降级方案。
  • 安全基线: 强制 HTTPS、令牌绑定(Token Binding)、防 CSRF 攻击、防重放攻击、短生命周期令牌。
架构陷阱提醒: 不要将 SSO 简单理解为“共享 Session”。共享 Session 在跨域、跨语言、跨安全域的场景下会引入严重的安全和耦合问题。正确的做法是采用标准令牌协议,让业务应用通过验证令牌来建立本地信任,而非直接共享会话存储。

1.7 SSO 与 IAM 的关系

SSO 是身份与访问管理(Identity and Access Management,IAM)体系中的核心能力之一,但并非全部。下表厘清两者边界:

概念 范围 核心职责
SSO 认证(Authentication) 一次登录,访问多系统
IAM 认证 + 授权 + 用户管理 + 审计 全生命周期管理、权限模型、合规审计

在实际架构中,SSO 平台通常作为 IAM 体系的认证网关,而 IAM 平台则在此基础上提供更细粒度的授权策略(如 RBAC、ABAC)和用户目录服务(如 LDAP、AD)。