单点登录
本文约需 2 分钟阅读
单点登录 (Single Sign-On) 是指通过一次认证即可访问多个服务和应用程序的机制。用户无需为每个服务分别输入密码,可大幅减轻密码疲劳。在企业 IT 环境中,据称每名员工平均使用 80 个以上的 SaaS 应用,没有单点登录就几乎不可能实现安全的密码管理。技术细节请一并参阅SSO 术语解说。
IdP 与 SP 的关系
单点登录的核心是 IdP (Identity Provider:身份提供方) 与 SP (Service Provider:服务提供方) 之间的信任关系。IdP 统一管理用户认证,SP 则验证 IdP 签发的认证令牌以授予访问权限。代表性的 IdP 有 Okta、Microsoft Entra ID (旧称 Azure AD)、Google Workspace、OneLogin 等。
借助这一机制,用户只需登录 IdP 一次,即可无缝使用 Slack、Salesforce、Jira、Confluence 等所有联动的服务。
SAML 与 OIDC 的比较
作为实现单点登录的协议,SAML 2.0 和 OpenID Connect (OIDC) 被广泛使用。选择哪一种取决于使用场景。
| 项目 | SAML 2.0 | OpenID Connect (OIDC) |
|---|---|---|
| 数据格式 | XML | JSON (JWT) |
| 主要用途 | 面向企业的 SaaS 集成 | Web / 移动应用、社交登录 |
| 基础协议 | 专有规范 | OAuth 2.0 的扩展 |
| 实现复杂度 | 高 (XML 签名验证复杂) | 低 (基于 REST API) |
| 移动端支持 | 不适合 (以浏览器重定向为前提) | 良好 (支持原生应用) |
| 采用案例 | Salesforce、Workday、ServiceNow | Google、GitHub、Auth0 |
在企业现有的 SaaS 集成中,SAML 仍然是主流,但在新开发中采用 OIDC 的情况正在增加。OIDC 对会话令牌的管理也基于 JSON、易于处理,对开发者而言实现门槛较低,因而广受青睐。
单点登录的风险
单点登录在便利性和安全性两方面都有很大优势,但也存在其固有的风险。
一旦 IdP 停止运行,就无法登录所有联动的服务。在 2024 年的 Okta 故障中,众多企业被迫停止业务。
一旦 IdP 账户遭到入侵,就可能对所有联动服务进行非法访问。IdP 账户需要最强有力的保护。
当 IdP 与各 SP 的会话有效期不一致时,会出现登出的不一致问题。单点登出 (SLO) 的实现在技术上较为困难。
为降低这些风险,务必为 IdP 账户设置多因素认证,并尽可能采用基于通行密钥或安全密钥的抗钓鱼 MFA。此外,事先准备好 IdP 故障时的应急访问手段 (应急破窗账户) 也很重要。企业密码策略和初创企业安全检查清单中讲解了组织层面的导入指引。单点登录技术书 (Amazon)也可作为设计参考。
缓解密码疲劳的效果
单点登录最大的实务优势在于消除密码疲劳。员工需要管理的密码数量大幅减少,从而抑制了密码重复使用和简化等危险行为。向 IT 服务台提出的密码重置请求也大幅减少,Gartner 的调查显示,服务台来电中有 20~50% 与密码相关。通过与IAM 平台集成,入职和离职时的账户管理也可以统一化,从而解决离职者访问权限残留的「僵尸账户」问题。一并了解OAuth 权限的风险,有助于设计整体的认证基础设施。
现场使用案例
“我们用 Okta 引入了单点登录,整合了 Slack、Notion、Jira、GitHub 等 15 个 SaaS。员工的密码重置请求从每月 120 件减少到 8 件。离职者的账户停用也能在 IdP 侧批量处理,安全性和运营效率都得到了大幅改善。”
这篇文章对您有帮助吗?