若要使用 Microsoft Entra ID设置单一登录(SSO),请在两种协议之间进行选择:安全断言标记语言 (SAML) 2.0 和 OpenID Connect (OIDC)。 本文介绍两种协议的不同之处、何时使用每个协议以及如何为应用选择。
为什么你的协议选择很重要
你的协议选择塑造了如何构建应用、集成难度以及它如何适应客户环境。 Microsoft Entra ID完全支持这两种协议,但每个协议都适合不同的需求。
选择会影响两个角色:
- 独立软件供应商(ISV)应用程序开发人员:它推动开发工作、框架支持,以及满足不同客户要求的方式。
- IT 管理员:这会影响应用与您的身份基础架构和安全策略的契合程度。
什么是 SAML 2.0?
SAML 2.0 是基于 XML 的成熟联合协议。 企业已经广泛使用了十多年。 SAML 安全地共享标识提供者和应用之间的登录和访问数据。
SAML 使用 XML 消息和断言来携带登录数据。 它详细映射用户属性。 它还支持复杂的企业需求,例如已签名的 XML 断言和详细的属性语句。
什么是 OpenID Connect (OIDC) ?
OpenID Connect (OIDC)是基于 OAuth 2.0 构建的新式登录协议。 它使用称为 JSON Web 令牌(JWT)的 JSON 令牌和 REST API。 OIDC 让用户登录,OAuth 2.0 处理访问权限。
OIDC 更简单,更便于开发人员使用。 它适合新式应用设计,包括单页应用程序、移动应用和微服务。
比较 SAML 和 OIDC
下表比较了 SAML 2.0 和 OpenID Connect,这些因素对于 SSO 集成而言最为重要。
| 方面 | SAML 2.0 | OpenID Connect |
|---|---|---|
| 消息格式 | 基于 XML | 基于 JSON 的 |
| 令牌类型 | XML 断言 | JWT 令牌 |
| 企业采用 | 已广泛确立 | 快速增长 |
| 开发人员体验 | 复杂,需要 XML 处理 | 更简单、基于 REST 的 |
| 开发复杂性 | 需要更高级的 XML 处理 | 较低,基于 REST/JSON 的 |
| 新式框架 | 有限的原生支持 | 出色的支持 |
| 移动/SPA 支持 | 挑战 | 原生支持 |
| 验证对齐方式 | 良好、成熟的模式 | 优秀、现代标准 |
| 多租户SaaS适用性 | 足够复杂 | 原生、最佳 |
| 客户载入工作 | 更复杂的手动设置 | 更简单的自动发现 |
| 长期可维护性 | 较高开销 | 维护需求更低 |
| 属性处理 | 丰富的 XML 属性语句 | JSON 声明 |
| 安全功能 | XML 签名、复杂控件 | JWT 签名、OAuth 范围 |
决策摘要
这两种协议都是安全的,Microsoft Entra ID完全支持每个协议。 前表已逐项对它们进行了比较,因此如需了解具体差异,请参考该表。 本摘要概述了 ISV 选择各协议的原因:OIDC 适用于新型云原生 SaaS 以及拥有现代身份体系的客户;而 SAML 则是面向企业客户、出于合规或采购要求,或因旧版身份提供商仅支持 SAML 而作出的选择。 当客户群跨越两个世界时,支持这两种协议。
如果您符合以下情况,请选择 OpenID Connect(OIDC):
- 生成新的 SaaS 或云原生应用
- 生成单页应用程序(SPA)或移动应用
- 想要开发速度和新式集成
- 借助现代身份系统服务客户
- 规划支持多租户的可扩展分发架构
如果你符合以下情况,请选择 SAML:
- 拥有需要 SAML 的企业客户
- 支持与不支持 OIDC 的旧版身份提供商配合使用
- 必须满足要求采用 SAML 的合规或采购规则
- 已有可正常运行的 SAML 实现
如果您同时支持这两种协议:
- 为需要两者的混合客户环境提供服务
- 希望跨组织实现最广泛的兼容性
如果不确定,请默认为 OIDC 进行新的 SaaS 开发。 OIDC 适用于新式应用、Microsoft Entra验证以及当今的企业趋势。
相关内容
准备好实现协议了吗?
- 有关 SAML,请参阅 单一登录 SAML 协议 指南,了解完整详细信息。
- 有关 OpenID Connect,请参阅 Microsoft 标识平台 和 OpenID Connect 协议文档。
- 若要快速开始,请尝试向 Web 应用添加 Microsoft 登录快速入门。