概述
在数字世界日益碎片化的今天,用户需要在无数应用和服务之间穿梭,记忆和管理成堆的账号密码不仅是一种负担,更是安全风险的温床。单点登录(Single Sign-On, SSO)正是解决这一困境的优雅方案,它如同一张数字世界的通行证,让用户得以在信任的各个系统间无缝漫游。
本文将系统梳理 SSO 的核心奥秘,从基本概念到架构设计,从安全实践到工具选型,帮助开发者全面掌握这项关键的身份认证技术。
一、什么是单点登录(SSO)?
单点登录是一种身份认证机制,允许用户在一次登录后,获得访问多个相互信任的应用系统的权限,而无需再次输入凭据。
核心体验:想象一下,用公司账号登录企业微信后,可以直接访问内部的 OA、CRM、知识库等所有系统,整个过程如丝般顺滑,无需二次认证。这就是 SSO 在日常工作中的完美体现。
二、SSO 的核心价值
- 极致的用户体验:将用户从繁琐的登录中解放出来,聚焦于业务本身。
- 集中的安全管控:将认证逻辑收归一处,便于实施强密码策略、多因素认证(MFA)、风险审计等高级安全措施。
- 高效的运维管理:大幅降低账号管理和密码重置的人力成本,实现身份的自动化生命周期管理。
三、SSO 的基本工作原理
SSO 的核心在于一个所有应用都共同信任的认证中心。为了更直观地理解,我们通过流程图来分解这一过程。
场景一:首次登录应用 A
- 用户访问应用 A。
- 应用 A 检测未登录,重定向至 SSO 认证中心。
- 用户在认证中心完成用户名和密码验证。
- 认证中心创建全局会话,生成认证票据,重定向回应用 A。
- 应用 A 携带票据向认证中心验证有效性。
- 认证中心返回验证成功。
- 应用 A 为用户建立本地会话,允许访问。
关键点:此时用户已在认证中心拥有'黄金票据'(全局会话)。
场景二:访问应用 B(无感登录)
当用户访问应用 B 时,同样会被重定向到认证中心。但这一次,认证中心检测到用户的全局会话依然有效,便无需再次输入密码,直接生成新票据并重定向回应用 B。应用 B 完成验证后,用户即可'无感'登录。
四、SSO 的通用语言:常见协议与标准
不同的 SSO 方案通过标准化的协议进行通信,确保了互操作性。
| 协议 | 一句话总结 | 适用场景 |
|---|---|---|
| SAML 2.0 | 企业级标准的 XML 格式'身份证' | 企业内部系统、B2B 集成,如对接 Salesforce、Office 365 |
| OAuth 2.0 | 为第三方应用颁发的'授权钥匙' | 开放平台、API 授权、移动应用,如'微信登录'、'Google 登录' |
| OpenID Connect (OIDC) | 基于 OAuth 2.0 的 JSON 格式'身份证' | 现代 Web/移动应用,开发者友好,是互联网首选 |
| CAS | 轻量级开源的'入门级'认证协议 | 教育、政务内网系统,对定制化要求高的场景 |
重要区分:OAuth 2.0 本质上是授权协议('允许 A 应用访问我的 B 资源'),而非认证协议('证明我就是我')。OpenID Connect 在 OAuth 2.0 之上扩展了身份层,才使其能用于 SSO。


