一、什么是单点登录
单点登录(Single Sign-On,简称 SSO)是一种身份验证机制与访问控制技术,允许用户使用一组凭据(如用户名和密码)登录一次后,即可访问多个相互信任的应用系统,而无需在每个系统中重复登录。SSO 广泛应用于企业内部系统、云服务、教育平台等场景,提升用户体验并简化身份管理。
二、SSO实现原理
SSO 的基本思想是将身份认证集中化。当用户首次登录时,由一个统一的“身份提供者”(Identity Provider, IdP)进行认证(有些企业在用户中心实现了IdP的功能);之后用户访问其他“服务提供者”(Service Provider, SP)时(SP这里可以视为应用系统),IdP会向SP证明用户的身份,SP接受该证明并授权访问。
2.1、SSO关键组成部分
用户(User),发起登录请求的终端使用者,如企业员工、网站访客。
身份提供者(IdP),负责用户身份验证,例如 Okta、Auth0、Keycloak、Microsoft Entra ID(原 Azure AD)、CAS 等。
服务提供者(SP),依赖 IdP 进行认证的应用或系统。
安全令牌(Token),IdP向SP传递用户身份信息的载体,通常采用SAML、JWT、OAuth 2.0 访问令牌等形式。
信任关系,SP必须预先配置信任特定的 IdP(通过证书、公钥等方式验证令牌真实性)。
三、核心工作流程
SSO的核心是身份凭证的安全传递与验证,主流流程基于令牌(Token) 机制,以最常见的简化流程如下:
1、用户访问应用A(如企业OA、邮箱系统)(即上面提到的SP)。
2、应用A检测到用户未登录,重定向 IdP的登录页面。
补充:应用A如何检测用户未登录呢?
应用 A 检查当前 HTTP 请求中是否包含有效的Session Cookie(如 JSESSIONID、PHPSESSID 等)。如果没有Cookie 或 Session 已过期/无效,则判定用户“未登录”。
3、用户在IdP页面输入凭据完成认证。
补充:凭据都有哪些?
基本凭据:用户名和密码。
多因素认证(MFA / 2FA)中的附加凭据:一次性验证码、安全密钥、生物特征等。
4、IdP生成身份令牌,并重定向回应用A,附带该令牌。
5、应用A验证令牌有效性,创建本地会话,用户成功登录。
6、用户后续访问应用B(另一SP应用)时,重复以上步骤,但IdP会识别用户已登录,直接生成令牌,无需用户重复输入密码(该过程对用户无感知,属于),应用B验证令牌后建立本地会话,便可访问应用B。
四、SSO主流实现协议与标准
SSO 的标准化依赖于成熟的协议,不同协议适用于不同场景,常见协议如下:
| 协议 | 全称 | 特点 | 适用场景 |
|---|---|---|---|
| SAML 2.0 | 安全断言标记语言 | 基于 XML,安全性高,支持复杂权限传递 | 企业级系统集成(如 OA、CRM、云服务) |
| OAuth 2.0 | 授权框架 | 基于令牌,轻量级,支持第三方授权 | 互联网应用(如微信登录、GitHub 登录) |
| OpenID Connect(OIDC) | 基于 OAuth 2.0 的身份认证协议 | 兼容 OAuth 2.0,增加身份认证能力,支持 JWT 令牌 | 移动端、Web 应用、跨平台系统 |
| CAS | 中央认证服务 | 轻量级开源协议,专为 Web 应用设计 | 高校、企业内网系统 |
| JWT | JSON Web 令牌 | 一种轻量级令牌格式,常与 OAuth 2.0/OIDC 结合使用 | 前后端分离应用、微服务架构 |
五、SSO关键优势
5.1、提升用户体验
无需记忆多个系统的账号密码,一次登录即可访问所有授权应用,减少操作繁琐度。
5.2、降低管理成本
管理员只需在 IdP 统一管理用户账号(创建、禁用、权限调整),无需在每个应用单独操作。
减少因密码遗忘、重置带来的运维工作量。
5.3、提高系统安全性
各应用无需存储用户密码,降低密码泄露风险(避免单个应用被攻破导致密码批量泄露)。
5.4、支持统一的安全策略(如强密码、多因素认证 MFA、会话超时)
便于系统集成标准化协议(如 SAML、OIDC)支持跨技术栈、跨平台的系统对接,加速企业数字化转型中的系统整合。
5.5、合规性支持
便于审计和满足 GDPR、HIPAA 等法规要求。
六、SSO 的局限性与风险
6.1、单点故障风险
IdP是核心依赖,一旦其宕机,所有关联的SP系统都将因无法登录而无法访问,可通过集群部署、灾备方案规避可提升其高可用性。
6.2、成为被攻击的核心目标
若IdP被攻破,攻击者可获取所有系统的访问权限,因此需强化IdP的安全防护能(如防火墙、入侵检测、加密传输)。
6.3、跨域/跨组织信任复杂
需严格配置证书、元数据、签名算法等。
6.4、会话管理复杂
全局登出(Single Logout, SLO)实现困难,部分系统可能仍保留会话。
七、典型适用场景
企业内部的统一门户,企业员工通过一次登录,访问 OA、人力资源系统、邮件系统等。教育平台:学生通过学校统一账号登录教务系统、图书馆、在线课程平台。开发者平台:GitHub、GitLab 支持 SSO 登录,便于团队统一身份管理。
云服务商:AWS、Google Workspace、Slack 等支持通过 SAML 或 OIDC 与企业 IdP 集成。
八、与传统登录的区别
| 对比维度 | 传统登录 | 单点登录(SSO) |
|---|---|---|
| 登录次数 | 每个应用需单独登录 | 一次登录,多应用访问 |
| 身份管理 | 各应用独立存储账号密码 | 用户中心集中管理身份 |
| 集成成本 | 低(无需跨系统对接) | 高(需部署用户中心、适配协议) |
| 安全性 | 密码分散存储,风险高 | 密码集中存储,风险可控 |
| 用户体验 | 差(需记忆多个密码) | 优(一次认证,全网通行) |





