认证与密码
单点登录 (SSO)
约 4 分钟阅读
最后更新: 2026-03-05
什么是单点登录 (SSO)
单点登录 (SSO) 是一种通过一次认证即可访问多个相关服务和应用的机制。例如,登录 Google 账户后即可无需重新认证地访问 Gmail、Google Drive、YouTube 等所有 Google 服务。这是 SSO 的典型示例。
在企业环境中,只需登录一次公司门户即可使用邮件、聊天、考勤管理、报销等数十个系统。它大幅减少了用户需要管理的密码数量,防止了导致凭证填充的密码重复使用。
SSO 的主要协议
实现 SSO 的技术机制使用了几种协议。
- SAML 2.0:企业 SSO 的标准协议。在 IdP (身份提供商) 和 SP (服务提供商) 之间交换基于 XML 的断言 (认证信息)。Okta、Azure AD、OneLogin 等 IdP 支持
- OpenID Connect (OIDC):在 OAuth 2.0 之上添加认证层的协议。基于 JSON 且轻量,与 Web 应用和移动应用兼容性高。"使用 Google 登录""使用 GitHub 登录"使用的就是这一机制
- Kerberos:Active Directory 环境中使用的基于票据的认证协议。专门用于企业网络内的 SSO,在 Windows 域环境中是标准配置
Web 服务间的 SSO 中 OIDC 正成为主流,企业内部系统集成中 SAML 2.0 仍被广泛使用。
SSO 的优势与风险
SSO 在便利性和安全性两方面都有优势,但也存在固有风险。
优势
- 消除密码疲劳:只需记住一个密码,用户更容易设置强密码
- 集中安全管理:通过统一认证基础设施,可以将双因素认证和访问策略统一应用于所有服务
- 降低 IT 管理成本:密码重置请求减少,离职员工的账户禁用只需在 IdP 端一次操作即可反映到所有服务
风险
- 单点故障:IdP 宕机时,所有关联服务都无法登录。IdP 的可用性直接决定所有系统的可用性
- 被入侵时的影响范围:SSO 账户被劫持时,所有关联服务同时被入侵。单个密码泄露的影响比以往更加严重
- 供应商锁定:依赖特定 IdP 会增加迁移成本
为降低风险,务必在 SSO 账户上设置通行密钥或 FIDO2 安全密钥等强力认证。
SSO 的安全运营
以下是安全运营 SSO 的实践要点。
- 优先保护 IdP 账户:在作为 SSO 起点的 IdP 账户上设置最强力的认证方式 (硬件安全密钥、通行密钥)。仅 SMS 认证是不够的
- 适当的会话管理:在不影响工作的范围内尽量缩短会话有效期。访问高敏感性服务时要求重新认证 (升级认证)
- 访问日志监控:引入检测和告警异常位置或设备登录的机制
- 最小权限原则:与 IAM 集成,仅授予用户角色所需的最小服务访问权限
- 紧急访问手段:为 IdP 故障时准备重要系统的紧急访问手段 (应急账户)
常见误解
- 引入 SSO 就能解决所有密码管理问题
- SSO 减少了密码数量,但不支持 SSO 的服务仍需要单独的密码。而且如果 SSO 账户本身的密码很弱,所有服务都会面临风险。与密码管理器结合使用是现实的解决方案。
- 使用 SSO 安全性就会自动提升
- SSO 使认证集中管理成为可能,但本身并不增强安全性。未设置双因素认证、会话有效期过长、未监控访问日志等运营不当反而会增加风险。
分享