规划 SSO 与 Microsoft Entra ID (ISV) 的集成

使用 Microsoft Entra ID 的单点登录(SSO)需要事先规划。 你的早期决策会影响应用的体系结构、客户加入和长期维护。 本指南可帮助独立软件供应商(ISV)在生成之前做出这些决策。

独立软件供应商(ISV)的 SSO 规划不同于组织 SSO。 作为 ISV,您只需设计一次应用,然后将其部署到多个客户租户。 每个租户可以有不同的要求、协议和配置。

此部署方法是“设计一次,配置每个租户”模型。 你在早期做出的决策,会影响你为多样化客户提供支持的效果。 规划不周会导致新用户接入阻力增加、支持工作量上升,以及错失企业客户销售机会。

要做好规划,请先了解基础知识。 有关背景信息,请参阅“什么是单一登录”(SSO),了解Microsoft的 SSO 模型

对于大多数新式 SaaS ISV,请使用以下默认值:

  • 多租户架构:可扩展 SaaS 交付的默认选择。
  • OpenID Connect (OIDC):用于新开发的推荐协议。
  • 单页应用程序(SPA)和移动应用:必须使用 OIDC。
  • SAML:仅针对特定旧版企业客户要求选择它。
  • 单租户应用:未通过 Microsoft Entra 应用程序库验证。

这些建议的默认值既符合现代开发实践,也符合 Microsoft Entra 的验证要求。 如果偏离这些要求,在验证阶段往往需要返工。

Important

设计决策直接影响应用是否通过Microsoft Entra验证并接收测试 ID。 错误的租赁模型或协议通常会导致返工。

了解 Microsoft Entra ID 中的 ISV SSO 上下文

Microsoft Entra ID使用结构化模型。 你的应用有一个名为应用程序对象的全局定义,该定义表示在所有租户之间共享的应用注册。 在每个租户中,你的应用还具有一个称为“服务主体”的租户专属实例。 当客户将你的应用添加到自己的租户中时,他们会创建该应用的服务主体。 服务主体保留租户的 SSO 配置、用户分配和协议设置。

应用程序对象和服务主体之间的分离使应用可以跨租户支持不同的 SSO 协议和配置,而核心设计保持不变。 每个租户自行配置其 SSO 设置,而不会影响其他部署。

对 ISV 的严重影响: 协议配置位于服务主体中。 因此,应用必须容忍租户之间的不同 SSO 协议和声明映射。 一个客户可能会将 SAML 与特定的属性映射配合使用。 另一种可能会使用带有不同声明的 OIDC。 应用体系结构必须妥善处理此变体。

有关此模型的详细说明,请参阅 应用程序对象和服务主体 以及 单租户与多租户应用

确定租户模型

对于大多数 SaaS ISV,多租户架构是默认推荐的方案。 您可以将应用设计为单租户(一个组织)或多租户(多个组织)。 此选项严重影响了 SSO 设计、载入复杂性以及业务模型的规模。

多租户应用程序 (建议)从一个应用注册为许多客户组织提供服务。 单一注册可简化部署,并且易于扩展。 多租户应用确实需要在租户隔离和针对每个客户的配置方面进行精心设计。

单租户应用程序 需要每个客户单独部署。 它们提供更强的隔离性,但增加了操作工作。 仅针对专用企业或合规性需求选择此方法。

对验证和发布的影响:

  • 单租户应用无法通过 Microsoft Entra 应用库发布验证。
  • 要实现可扩展的企业级分发并纳入应用市场,需要支持多租户。
  • 为了服务不同客户,资源库发布需要采用多租户架构。

客户开始使用应用后,单租户体系结构和多租户体系结构之间的选择很难改变。 有关完整指南,请参阅 单租户应用与多租户应用

定义应用程序体系结构和登录模式

应用的体系结构确定可以支持的身份验证流和 SSO 模式。 同时选择架构和协议,并务必谨慎决定。 匹配度差会导致在验证过程中返工。

建议的体系结构协议对齐方式:

  • 单页应用程序(SPA) → 需要 OIDC(客户端令牌管理)
  • 移动应用程序 → 需要 OIDC(原生身份验证流程)
  • 新式 Web 应用程序 → OIDC 推荐的默认(服务器端令牌处理)
  • 旧版企业应用程序 → SAML 可接受(基于 XML 的联合身份验证)

Web 应用 可以使用 SAML 或 OpenID Connect,但建议使用 OIDC 进行新开发。 单页应用程序和移动应用最适合 OIDC,因为它们在客户端上运行并使用新式身份验证模式。

注释

如果选择错误:未对齐的体系结构和协议选择通常需要在验证期间进行大量返工,并且可能会延迟库发布。

有关应用程序类型和身份验证模式的详细指南,请参阅Microsoft 标识平台应用类型和OAuth 2.0 授权代码流

审查协议特定的规划注意事项

ISV 必须在 SAML 2.0 和 OpenID Connect (OIDC) 之间进行选择才能进行 SSO。 对于大多数新式 SaaS ISV,建议使用 OIDC 默认值。 它与新式开发实践匹配,支持新式应用体系结构,并更简单地集成。

仅针对特定企业客户要求或旧集成需求选择 SAML。 SAML 仍受到广泛支持并适合某些方案,但通常需要执行更多工作才能实现和配置。

协议选择直接影响验证成功和测试 ID 生成。 使用推荐模式和协议的应用通常更快地通过Microsoft Entra验证。 非标准选项可能需要额外的验证周期。

有关详细的比较和决策框架,请参阅 SAML 与 OpenID Connect:选择正确的 SSO 协议

规划客户配置和载入体验

保持配置简单,同时支持客户所需的定制化。 某些值对于每个客户都是相同的,例如重定向 URI 和应用程序标识符。 其他项则因客户而异,例如声明映射和用户属性。

首先设计自动化:

  • 尽可能自动执行标准配置
  • 为客户特定设置提供明确指导
  • 规划客户如何获取和验证配置值
  • 使用多个客户方案测试载入过程

糟糕的新手引导设计会直接影响客户采纳,并增加支持成本。 有关配置概念,请参阅 应用注册概念SAML 元数据文档重定向 URI 指南

计划声明、身份数据和授权映射

尽早定义必需声明和可选声明。 通常需要某些声明(如用户标识符)。 其他属性(如组成员身份和自定义属性)可能是可选的或特定于客户的。

规划客户可变性:

  • 不同的客户有不同的标识数据可用
  • 声明格式和传递偏好因租户而异
  • 使用最少且丰富的声明方案测试应用程序
  • 记录缺少可选声明时的回退行为

有关声明和令牌概念,请参阅 令牌和声明概述ID 令牌和安全 令牌

规划注销、生命周期和长期操作

SSO 不仅限于首次登录。 提前规划注销、会话管理和帐户生命周期。 这些需求通常作为企业销售期间的客户需求出现。

要解决的关键方案:

  • 跨应用程序单一注销
  • 会话超时与组织策略保持一致
  • 账户停用和清理
  • 令牌刷新和过期处理

有关实施指导,请参阅 OpenID Connect 注销文档以及 SAML 协议文档中的 SAML 退出登录相关参考资料。

从一开始就考虑图库的相关要求。 若要发布到Microsoft Entra应用库,必须满足特定的集成标准,并通过验证测试来获取测试 ID。

验证成功因素:

  • 多租户体系结构(必需)
  • 协议符合性(建议使用 OIDC 加快验证)
  • 标准身份验证流和错误处理
  • 正确的声明和令牌管理

遵循已建立模式的应用通常更快地通过验证。 规划决策不当往往表现为验证失败,并因此需要大量返工。

有关发布指南和验证要求,请参阅Microsoft Entra应用程序库文档

SSO 规划准备情况检查清单

使用下表确认已准备好进行验证和库发布。 每个项都映射到关键的 SSO 规划决策:租户模型、应用程序体系结构、协议选择、客户配置、声明和注销。

应用程序设计清单

在验证之前确认这些应用程序设计选项。

就绪情况项 它为何重要
多租户模型已确认 Microsoft Entra应用库仅接受多租户应用程序。
定义的应用程序体系结构(Web、SPA、移动或 API) 体系结构确定哪些身份验证流适用。
已识别身份验证流程,并使其与架构保持一致 未对齐的流会导致验证失败。

协议选择清单

确认协议选择及其影响。

就绪情况项 它为何重要
OIDC 默认确认 针对 SAML 记录的业务原因 OIDC 是推荐的默认方案;任何偏离都需要说明理由。
协议选择符合应用程序体系结构 SPA 和移动应用需要 OIDC。
已了解适用于您的应用程序类型的协议相关影响 避免在验证期间后期重新设计。

客户体验清单

查看客户的载入和配置体验。

就绪情况项 它为何重要
归类为固定或客户特定的配置值 驱动载入说明和租户模型。
旨在最大程度地降低客户复杂性的载入过程 降低阻力有助于提高租户管理员的采纳率。
已定义并经过测试的声明和身份数据要求 防止在运行时发生授权不匹配。

验证和发布清单

确认验证和发布就绪情况。

就绪情况项 它为何重要
开发初期已审查 Gallery 发布要求 避免在提交之前进行返工。
所考虑设计决策对验证的影响 某些决策完全阻止验证。
已规划的退出登录和会话管理方案 这是满足合规要求和提供良好用户体验所必需的。
已测试帐户生命周期方案 涵盖取消预配的边缘情况。

预验证清单

在开始验证之前完成此最终检查。

就绪情况项 它为何重要
所有关键决策均有记录并有充分依据 加快交接并减少返工。
已确认测试 ID 验证路径 进入发布流程前为必填项。
评估并最小化了重新作业风险 验证前的最终放行/不放行决策关卡。

使用这些资源注册、验证和发布应用。

对于 ISV 应用程序开发人员:

对于 IT 管理员: