使用信赖方 STS 为企业应用程序启用单一登录

本文使用 Microsoft Entra 管理中心为依赖于信赖方安全令牌服务(STS)的企业应用程序启用单一登录(SSO)。 信赖方 STS 支持安全断言标记语言 (SAML),并且可以作为企业应用程序与 Microsoft Entra 集成。 配置 SSO 后,用户可以使用其Microsoft Entra 凭据登录到应用程序。

显示应用程序、信赖方 STS 和Microsoft Entra ID 作为标识提供者之间的信任关系的关系图。

如果应用程序将直接与 Microsoft Entra 集成以实现单一登录,并且不需要信赖方安全令牌服务(STS),请参阅文章 “为企业应用程序启用单一登录”。

建议在生产租户中配置应用程序之前,使用非生产环境测试本文中的步骤。

先决条件

若要配置 SSO,需要满足以下条件:

  • 包含 HTTPS 终结点的信赖方 STS,例如 Active Directory 联合身份验证服务(AD FS)或 PingFederate
    1. 需要信赖方 STS 的实体标识符(实体 ID)。 在 Microsoft Entra 租户中配置的所有信赖方 STS 和应用程序中,此项必须是唯一的。 单个Microsoft Entra 租户中不能有两个具有相同实体标识符的应用程序。 例如,如果 Active Directory 联合身份验证服务(AD FS)是信赖方 STS,则标识符可能是表单 http://{hostname.domain}/adfs/services/trust的 URL。
    2. 还需要信赖方 STS 的断言使用者服务 URL 或回复 URL。 此 URL 必须是一个 HTTPS URL,用于将 SAML 令牌从 Microsoft Entra 安全传输到信赖方 STS,作为单一登录应用程序的一部分。 例如,如果 AD FS 是信赖方 STS,则 URL 可能采用格式 https://{hostname.domain}/adfs/ls/
  • 已与信赖方 STS 集成的应用程序
  • Microsoft Entra 中的以下角色之一:云应用程序管理员、应用程序管理员
  • Microsoft Entra 中可以登录应用程序的测试用户

注释

本教程假定有一个Microsoft Entra 租户、一个信赖方 STS 和一个连接到信赖方 STS 的应用程序。 本教程演示如何将 Microsoft Entra 配置为使用信赖方 STS 提供的实体标识符来确定相应的企业应用程序,以在响应中发送 SAML 令牌。 如果有多个应用程序连接到单个信赖方 STS,则Microsoft Entra 在颁发 SAML 令牌时无法区分这两个应用程序。 配置不同的实体标识符超出了本教程的范围。

在 Microsoft Entra 中创建应用程序

首先,在 Microsoft Entra 中创建企业应用程序,使 Microsoft Entra 可以为信赖方 STS 生成 SAML 令牌,以便向应用程序提供这些令牌。

  1. 至少以云应用程序管理员身份登录到 Microsoft Entra 管理中心
  2. 请导航到 Entra ID>企业应用程序>所有应用程序
  3. 如果已配置表示信赖方 STS 的应用程序,请在搜索框中输入现有应用程序的名称,从搜索结果中选择该应用程序,然后在下一部分继续。
  4. 选择“新建应用程序”
  5. 选择“创建自己的应用程序”。
  6. 在“输入名称”框中键入新应用程序的名称,选择“集成其他在图库中找不到的应用程序(非图库)”,然后选择“创建”。

在应用程序中配置单一登录

  1. 在左侧菜单的“管理”部分中,选择“单一登录”,打开“单一登录”窗格进行编辑。

  2. 选择“SAML”以打开“SSO 配置”页面。

  3. “基本 SAML 配置 ”框中,选择“ 编辑”。 必须先设置标识符和回复 URL,然后才能进行进一步的 SAML 配置更改。 显示企业应用程序单一登录所需的基本 SAML 配置的屏幕截图。

  4. 在“基本 SAML 配置”页的 “标识符”(实体 ID)下,如果没有列出的标识符,请选择“ 添加标识符”。 键入信赖方 STS 提供的应用程序的标识符。 例如,标识符可以是格式为 http://{hostname.domain}/adfs/services/trust 的 URL。

  5. 在“基本 SAML 配置”页中,在 “回复 URL”(断言使用者服务 URL) 下,选择 “添加回复 URL”。 键入信赖方 STS 断言使用者服务的 HTTPS URL。 例如,URL 可能是形式 https://{hostname.domain}/adfs/ls/

  6. (可选)配置信赖方 STS 所需的 登录中继状态注销 URL。

  7. 选择“保存”

从 Microsoft Entra 下载元数据和证书

信赖方 STS 可能需要来自 Microsoft Entra 的联合元数据作为标识提供者才能完成配置。 联合元数据和关联的证书在“基本 SAML 配置”页的“SAML 证书”部分中提供。 有关详细信息,请参阅 联合元数据

显示企业应用程序的 SAML 签名证书和联合元数据下载选项的屏幕截图。

  • 如果信赖方 STS 可以从 Internet 终结点下载联合元数据,则复制 应用联合元数据 URL 旁边的值。
  • 如果信赖方 STS 需要包含联合元数据的本地 XML 文件,请选择“联合元数据 XML”旁边的“下载”。
  • 如果您的信赖方 STS 需要标识提供者的证书,请在证书(Base64)证书(Raw)旁边选择下载
  • 如果信赖方 STS 不支持联合元数据,请复制 登录 URLMicrosoft Entra 标识符 以配置信赖方 STS。 显示企业应用程序的Microsoft Entra 登录 URL 和标识符的屏幕截图。

配置由 Microsoft Entra 颁发的声明书

默认情况下,Microsoft Entra 仅有少数属性包含在其发送至信赖方 STS 的 SAML 令牌中。 可以添加应用程序需要的其他声明,并更改 SAML 名称标识符中提供的属性。 有关标准声明的详细信息,请参阅 SAML 令牌声明参考

  1. “属性和声明 ”框中,选择“ 编辑”。
  2. 若要更改被作为名称标识符值发送的 Entra ID 属性,请选择行唯一用户标识符 (Name ID)。 可以将源属性更改为另一Microsoft Entra 内置属性或扩展属性。 然后,选择“保存”。
  3. 若要更改作为已配置的声明的值发送的 Entra ID 属性,请选择 “其他声明 ”部分中的行。
  4. 若要添加新声明,请选择“ 添加新声明”。
  5. 完成后,选择 基于 SAML 的登录 以关闭此屏幕。

配置谁可以登录到应用程序

测试配置时,应将指定的测试用户分配到 Microsoft Entra 中的应用程序,以验证用户是否能够通过 Microsoft Entra 和信赖方 STS 登录到应用程序。

  1. 在左侧菜单的“管理”部分中,选择“属性” 。
  2. 确保 为用户登录启用 的值设置为 “是”。
  3. 确保 所需的工作分配 值设置为 “是”。
  4. 如果进行了任何更改,请选择“保存”。
  5. 在左侧菜单的“ 管理 ”部分中,选择“ 用户和组”。
  6. 选择“添加用户/组”。
  7. 选择“无选择项”
  8. 在搜索框中,键入测试用户的名称,然后选择该用户并点击选择
  9. 选择“ 分配 ”以将用户分配到应用程序的默认 用户 角色。
  10. 在左侧菜单的 “安全性 ”部分中,选择 “条件访问”。
  11. 选择“What if”。
  12. 选择 “未选择用户或服务主体”,选择 “未选择用户”,然后选择以前分配给该应用程序的用户。
  13. 选择 “任何云应用”,然后选择企业应用程序。
  14. 选择“What if”。 验证将应用的任何策略是否允许用户登录到应用程序。

在你的信赖方 STS 中,将 Microsoft Entra 配置为身份提供者。

接下来,将联合元数据导入到您的信赖方 STS 中。 以下步骤以 AD FS 为例,但可以改用其他信赖方 STS。

  1. 在您的信赖方 STS 的声明提供者信任列表中,选择“添加声明提供者信任”,然后选择“开始”
  2. 根据是否从 Microsoft Entra 下载了联合身份验证元数据,请选择 导入联机发布或本地网络上的声明提供程序的数据,或者 从文件中导入声明提供程序的数据
  3. 可能还需要向信赖方 STS 提供Microsoft Entra 证书。
  4. 当你将 Microsoft Entra 完全配置为标识提供者后,请确认:
    • 声明提供程序标识符是格式为 https://sts.chinacloudapi.cn/{tenantid} 的 URI。
    • 如果使用 Microsoft Entra ID 全局服务,则 SAML 单一登录的端点是格式 https://login.partner.microsoftonline.cn/{tenantid}/saml2的 URI。 有关国家云,请参阅 Microsoft Entra 身份验证和国家云
    • 信赖方 STS 可识别Microsoft Entra 证书。
    • 未配置加密。
    • 在 Microsoft Entra 中配置的声明被列为在您的信赖方 STS 中用于声明规则映射的可用选项。 如果随后添加了额外的声明,则可能需要将这些声明添加到信赖方 STS 中的标识提供者配置中。

在信赖方 STS 中配置声明规则

一旦 Microsoft Entra 作为标识提供者将声明发送给信赖方 STS,并且这些声明被认知,你需要将这些声明映射或转换成应用程序所需的声明。 以下步骤使用 AD FS 显示,但可以改用另一个信赖方 STS。

  1. 在信赖方 STS 的声明提供程序信任列表中,选择Microsoft Entra 的声明提供程序信任,然后选择“编辑声明规则”。
  2. 对于Microsoft Entra 提供的每个声明,以及应用程序所需的每个声明,请选择“ 添加规则”。 在每个规则中,选择 “传递或筛选传入声明”,或根据应用程序的要求 转换传入声明

测试应用程序的单一登录

在 Microsoft Entra 和信赖方 STS 中配置应用程序后,用户可以通过对 Microsoft Entra 进行身份验证,并使用信赖方 STS 将 Microsoft Entra 提供的令牌转换为应用程序所需的格式和声明,从而登录。

本教程演示如何使用基于 Web 的应用程序测试登录流,该应用程序实现了信赖方发起的单一登录模式。 有关详细信息,请参阅 单一登录 SAML 协议

显示应用程序、信赖方 STS 和Microsoft Entra ID 作为标识提供者之间的 Web 浏览器重定向的关系图。

  1. 在 Web 浏览器专用浏览会话中,连接到应用程序并启动登录过程。 应用程序将 Web 浏览器重定向到信赖方 STS,信赖方 STS 确定可以提供适当声明的标识提供者。
  2. 在信赖方 STS 中,如果出现提示,请选择Microsoft Entra 标识提供者。 如果使用 Microsoft Entra ID 全局服务, https://login.partner.microsoftonline.cn 信赖方 STS 会将 Web 浏览器重定向到 Microsoft Entra 登录终结点。
  3. 使用测试用户的标识登录到 Microsoft Entra,此前在步骤中配置 了谁可以登录到应用程序。 Microsoft Entra 然后根据实体标识符找到企业应用程序,并将 Web 浏览器重定向到信赖方 STS 回复 URL 终结点,并使用 Web 浏览器传输 SAML 令牌。
  4. 信赖方 STS 验证 SAML 令牌是否已由 Microsoft Entra 颁发,然后从 SAML 令牌中提取和转换声明,并将 Web 浏览器重定向到应用程序。 请确认您的应用程序通过此过程从 Microsoft Entra 收到了必需的声明。

完成配置

  1. 测试初始登录配置后,需要确保信赖方 STS 在将新证书添加到 Microsoft Entra 时保持最新状态。 某些依赖方 STS 可能拥有一个内置的过程,用于监视身份提供者的联合体元数据。
  2. 本教程演示了如何配置单一登录。 您的依赖方 STS 还可能支持 SAML 单点注销。有关该功能的更多信息,请参阅 单点注销 SAML 协议
  3. 可以删除测试用户对应用程序的分配。 可以使用其他功能(如动态组或权利管理)将用户分配到应用程序。 有关详细信息,请参阅 快速入门:创建和分配用户帐户