在 Citrix Cloud 中使用限定范围内的实体 ID 配置 SAML 应用程序
本文介绍如何在同一 SAML 提供程序中配置多个 SAML 应用程序。
某些 SAML 提供商,例如 Azure Active Directory (AD)、Active Directory 联合服务 (ADFS)、PingFederate 和 PingSSO,禁止在多个 SAML 应用程序中重复使用相同的服务提供商 (SP) 实体 ID。因此,在同一 SAML 提供程序中创建两个或更多不同的 SAML 应用程序的管理员无法将它们链接到相同或不同的 Citrix Cloud 租户。尝试使用相同的 SP 实体 ID 创建第二个 SAML 应用程序,例如 https:\\saml.cloud.com
,当现有的 SAML 应用程序已经在使用它时,会在 SAML 提供程序上触发错误,表明该实体 ID 已在使用中。
下图说明了此错误:
-
在 Azure Active Directory 中
-
在 PingFederate 中:
Citrix Cloud 中限定范围内的实体 ID 功能解决了这一限制,因此您可以在 SAML 提供程序(例如 Azure AD 租户)中创建多个 SAML 应用程序,并将其链接到单个 Citrix Cloud 租户。
什么是实体 ID
SAML 实体 ID 是一个唯一标识符,用于在 SAML 身份验证和授权协议中标识特定实体。通常,实体 ID 是分配给实体并用于 SAML 消息和元数据的 URL 或 URI。您在 SAML 提供商中创建的每个 SAML 应用程序都被视为一个独特的实体。
例如,在 Citrix Cloud 和 Azure AD 之间的 SAML 连接中,Citrix Cloud 是服务提供商 (SP),Azure AD 是 SAML 提供商。两者都有一个实体 ID,必须在 SAML 连接的另一端进行配置。这意味着必须在 Azure AD 中配置 Citrix Cloud 的实体 ID,并且 Azure AD 的实体 ID 必须在 Citrix Cloud 中配置。
以下实体 ID 是 Citrix Cloud 中通用实体 ID 和限定范围内的实体 ID 的示例:
- 通用:
https://saml.cloud.com
- 限定范围:
https://saml.cloud.com/67338f11-4996-4980-8339-535f76d0c8fb
按地区划分的通用和限定范围内的 SP 实体 ID
Citrix Cloud 中的现有 SAML 连接(在 2023 年 11 月之前创建)对每个 SAML 连接和 Citrix Cloud 租户使用相同的通用实体 ID。只有新的 Citrix Cloud SAML 连接才提供使用限定范围内的实体 ID 的选项。
如果您选择将限定范围内的实体 ID 用于新连接,则任何现有的 SAML 连接将继续使用其原始通用实体 ID 运行。
下表列出了每个 Citrix Cloud 区域的通用和限定范围内的 SP 实体 ID:
Citrix Cloud 区域 | 通用 SP 实体 ID | 限定范围内的实体 ID |
---|---|---|
美国、欧盟、亚太南部 | https://saml.cloud.com |
https://saml.cloud.com/67338f11-4996-4980-8339-535f76d0c8fb |
日本 | https://saml.citrixcloud.jp |
https://saml.citrixcloud.jp/db642d4c-ad2c-4304-adcf-f96b6aa16c29 |
政府 | https://saml.cloud.us |
https://saml.cloud.us/20f1cf66-cfe9-4dd3-865c-9c59a6710820 |
为新的和现有的 SAML 连接生成唯一的 SP 实体 ID
当您创建新的 SAML 连接时,Citrix Cloud 会生成一个唯一 ID (GUID)。要生成限定范围内的实体 ID,请在创建新连接时启用配置限定范围内的 SAML 实体 ID 设置。
如果要更新现有 SAML 连接以使用限定范围内的实体 ID,则必须断开 SAML 提供程序与 Citrix Cloud 中的身份和访问管理 > 身份验证页面的连接,然后将其重新连接。Citrix Cloud 不允许您直接编辑现有 SAML 连接。但是,您可以克隆配置并修改克隆。
重要:
在完成 SAML 连接过程之前将其关闭,会丢弃 Citrix Cloud 自动生成的实体 ID。当您重启 SAML 连接过程时,Citrix Cloud 会生成一个新的限定范围内的实体 ID GUID。配置 SAML 提供程序时,请使用这个新的限定范围内的实体 ID。如果您要更新现有 SAML 连接以使用限定范围内的实体 ID,则必须使用 Citrix Cloud 生成的限定范围内的 ID 更新该连接的 SAML 应用程序。
有关限定范围内的实体 ID 的常见问题
我能否在同一 Azure AD 租户中创建多个 Azure AD SAML 应用程序并将其链接到一个或多个 Citrix Cloud 租户
Citrix Cloud 的限定范围内的实体 ID 功能解决了某些 SAML 提供商施加的防止重复实体 ID 的限制。使用此功能,您可以在 Azure AD 租户中预置多个 SAML 应用程序,并使用来自单个 Citrix Cloud 租户的限定范围内的实体 ID 配置每个应用程序。
我还能将相同的 Azure AD SAML 应用程序链接到多个 Citrix Cloud 租户吗
这种情况在 Citrix Cloud 客户中很常见,Citrix 将继续支持这种情况。要实现此方案,您必须满足以下要求:
- 使用通用实体 ID,例如
https://saml.cloud.com
。 - 不要为你的 SAML 连接启用限定范围内的实体 ID。
如何决定是否在我的 SAML 提供商中使用限定范围内的实体 ID
Citrix Cloud 中的限定范围内的实体 ID 允许您根据要求灵活使用通用或限定范围内的实体 ID。考虑您需要的 SAML 应用程序的数量以及您拥有的 Citrix Cloud 租户的数量。此外,请考虑每个租户是否可以共享现有的 SAML 应用程序或需要自己的限定范围内的 SAML 应用程序。
重要:
如果您的 SAML 提供商已经允许您使用相同的实体 ID 创建多个 SAML 应用程序(例如
https://saml.cloud.com
),则无需启用限定范围内的实体 ID 或对现有 SAML 配置进行任何更改。您无需在 Citrix Cloud 或 SAML 应用程序中更新任何设置。
受影响的 SAML 提供商
下表列出了允许或限制使用重复实体 ID 的 SAML 提供商。
SAML 提供商 | 支持重复的实体 ID |
---|---|
Azure AD(云端) | 否 |
ADFS(本地) | 否 |
PingFederate(本地) | 否 |
PingOneSSO(云端) | 否 |
Okta(云端) | 是 |
Duo(云端) | 是 |
OneLogin(云端) | 是 |
受影响的用例
下表根据您的用例所需的 SAML 应用程序,说明是否支持通用或限定范围内的实体 ID,以及您的 SAML 提供商是否支持重复的实体 ID。
用例要求 | SAML 提供商支持重复的实体 ID? | 支持的配置 |
---|---|---|
只有一个 SAML 应用程序 | 是 | 通用或限定范围内的实体 ID |
只有一个 SAML 应用程序 | 否 | 通用或限定范围内的实体 ID |
两个或多个 SAML 应用程序 | 是 | 通用或限定范围内的实体 ID |
两个或多个 SAML 应用程序 | 否 | 限定范围内的实体 ID |
Workspace 自定义 URL 和 SAML 应用程序对 | 是 | 通用或限定范围内的实体 ID |
Workspace 自定义 URL 和 SAML 应用程序对 | 否 | 限定范围内的实体 ID |
将同一 SAML 应用程序关联到多个 Citrix Cloud 租户 | 是 | 通用实体 ID |
将同一 SAML 应用程序关联到多个 Citrix Cloud 租户 | 否 | 通用实体 ID |
使用限定范围内的实体 ID 配置主 SAML 连接
在此任务中,您将使用主 SAML 应用程序(SAML 应用程序 1)的限定范围内的实体 ID 在 Citrix Cloud 中创建 SAML 连接。
- 在 Citrix Cloud 菜单中,选择 Identity and Access Management(身份和访问管理)。
- 在“身份验证”选项卡上,找到 SAML 2.0,然后从省略号菜单中选择“连接”。
- 当系统提示您创建唯一的登录 URL 时,输入贵公司的简短 URL 友好标识符(例如
https://citrix.cloud.com/go/mycompany
),然后选择“保存并继续”。此标识符在 Citrix Cloud 中必须是唯一的。 - 在“配置 SAML 身份提供商”下,选择 配置限定范围内的 SAML 实体 ID。Citrix Cloud 会自动生成限定范围内的实体 ID,并填充实体 ID、断言使用者服务和注销 URL 的字段。
- 在配置与 Citrix Cloud 的 SAML 连接下,输入您的 SAML 提供商提供的连接详情。
- 接受默认 SAML 属性映射。
- 选择“测试并完成”。
使用通用实体 ID 配置主 SAML 连接
在此任务中,您将使用主 SAML 应用程序(SAML 应用程序 1)的默认通用实体 ID 在 Citrix Cloud 中创建 SAML 连接。
- 在 Citrix Cloud 菜单中,选择 Identity and Access Management(身份和访问管理)。
- 在“身份验证”选项卡上,找到 SAML 2.0,然后从省略号菜单中选择“连接”。
- 当系统提示您创建唯一的登录 URL 时,输入贵公司的简短 URL 友好标识符(例如
https://citrix.cloud.com/go/mycompany
),然后选择“保存并继续”。此标识符在 Citrix Cloud 中必须是唯一的。 - 在“配置 SAML 身份提供商”下,验证配置限定范围内的 SAML 实体 ID 是否已禁用。
- 在配置与 Citrix Cloud 的 SAML 连接下,输入您的 SAML 提供商提供的连接详情。
- 如果需要,在 服务提供商 SAML 元数据中,单击“下载”以获取通用 SAML 元数据的副本。
- 接受默认 SAML 属性映射。
- 选择“测试并完成”。
使用 Citrix Workspace 定制域配置 SAML 连接
本部分包括使用限定范围内的或通用实体 ID 的自定义 Workspace URL 配置 SAML 连接。
本节中的任务仅在您拥有用于 SAML 的现有自定义 Workspace URL 时适用。如果您没有使用带有 SAML 身份验证的自定义 Workspace URL,则可以跳过本节中的任务。
有关更多信息,请参阅以下文章:
使用 Workspace 自定义 URL 和通用实体 ID 配置 SAML 连接
在此任务中,“配置限定范围内的实体 ID 设置被禁用。
- 从 Citrix Cloud 菜单中,选择 Workspace 身份验证。
- 在“自定义 Workspace URL”中,从省略号菜单中选择“编辑”。
- 选择同时使用 [customerName] .cloud.com URL 和自定义域 URL。
- 输入 SAML 应用程序 2 的通用实体 ID、SSO URL 和可选 SLO URL,然后上载您之前从 SAML 提供商处下载的签名证书。
- 如果需要,在自定义域的服务提供商 SAML 元数据中,单击下载以获取 Workspace 自定义 URL SAML 应用程序的通用 SAML 元数据的副本。
- 单击保存。
使用 Workspace 自定义 URL 和限定范围内的实体 ID 配置 SAML 连接
在此任务中,启用了配置限定范围内的实体 ID 设置。
- 从 Citrix Cloud 菜单中,选择 Workspace 身份验证。
- 在“自定义 Workspace URL”中,从省略号菜单中选择“编辑”。
- 选择同时使用 [customerName] .cloud.com URL 和自定义域 URL。
- 输入 SAML 应用程序 2 的限定范围内的实体 ID、SSO URL 和可选 SLO URL,然后上载您之前从 SAML 提供商处下载的 SAML 签名证书。
- 单击保存。
保存配置后,Citrix Cloud 会生成包含正确 GUID 的限定范围内的 SAML 元数据。如果需要,您可以获取 Workspace 自定义 URL SAML 应用程序的限定范围内的元数据的副本。
- 在“身份和访问管理”页面上,找到 SAML 连接,然后从省略号菜单中选择“查看”。
- 在 自定义域的服务提供商 SAML 元数据中,单击 下载。
查看主 Workspace URL 和自定义 Workspace URL SAML 应用程序的 SAML 配置
查看您的限定范围内的 SAML 连接的配置详细信息时,Citrix Cloud 会显示主 SAML 应用程序和 Workspace 自定义域 SAML 应用程序的限定范围内的实体 ID 设置。
例如,启用限定范围内的实体 ID 时,自定义域字段的服务提供商实体 ID 和服务提供商实体 ID 包含 Citrix Cloud 生成的限定范围内的实体 ID。
禁用限定范围内的实体 ID 时,自定义域字段的服务提供商实体 ID 和服务提供商实体 ID 包含通用实体 ID。
您可以通过将限定范围内的实体 ID 附加到现有实体 ID 值来更新 SAML 提供商中的现有 SAML 应用程序。
限定范围内的实体 ID 的 SAML 提供商配置
在 Citrix Cloud 中使用限定范围内的实体 ID 配置 SAML 连接后,您可以将限定范围内的实体 ID 添加到您的 SAML 提供程序。
本节包括来自 Azure AD 和 PingFederate 的配置示例。
限定范围内的实体 ID 的 Azure AD SAML 配置
在此示例中,在 Azure AD 的标识符字段中输入来自 Citrix Cloud 的限定范围内的实体 ID。
带限定范围内的实体 ID 的 PingFederate SAML 配置
在此示例中,在“合作伙伴的实体 ID”字段和“基本 URL”字段中分别填充了 Citrix Cloud 中指定限定范围内的实体 ID 和通用实体 ID。
故障排除
Citrix 建议使用 SAML-tracer 浏览器扩展来解决 SAML 配置中的任何问题。此扩展程序将 Base64 编码的请求和响应解码为 SAML XML,从而使信息呈现人类可读性。您可以使用 SAML-tracer 扩展来检查 Citrix Cloud(服务提供商)生成并发送给您的 SAML 提供商(身份提供商)的 SSO 和 SLO SAML 请求。扩展可以显示两个请求中是否都包含实体 ID 范围 (GUID)。
- 在 Web 浏览器的扩展面板中,安装并启用 SAML-tracer 扩展程序。
- 执行 SAML 登录和注销操作,并使用 SAML-tracer 扩展程序捕获整个流程。
-
在 SAML SSO 请求或 SLO 请求中找到以下行。
<saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">https://saml.cloud.com/cfee4a86-97a8-49cf-9bb6-fd15ab075b92</saml:Issuer> <!--NeedCopy-->
- 验证实体 ID 是否与您的 SAML 提供商应用程序中配置的实体 ID 相匹配。
- 验证“颁发者”字段中是否存在限定范围内的实体 ID,并验证它在 SAML 提供商中的配置是否正确。
- 导出并保存 SAML-tracer JSON 输出。如果您正在与 Citrix 支持部门合作解决问题,请将输出上载到您的 Citrix 支持案例。
Azure AD 故障排除
问题: 配置 SLO 后,注销 Azure AD 失败。Azure AD 向用户显示以下错误:
如果在 Citrix Cloud 中为 SAML 连接启用了限定范围内的实体 ID,则必须在 SSO 和 SLO 请求中发送限定范围内的实体 ID。
原因: 已配置限定范围内的实体,但 SLO 请求中缺少实体 ID。验证限定范围内的实体 ID 是否存在于 SAML-tracer 输出中的 SLO 请求中。
本地 PingFederate 故障排除
问题: 启用限定范围内的实体 ID 设置后,登录或注销 PingFederate 失败。
原因: PingFederate 管理员将限定范围内的实体 ID 添加到 SP 连接基础 URL 中。
要更正此问题,请仅将限定范围内的实体 ID 添加到合作伙伴的实体 ID 字段中。将限定范围内的实体 ID 添加到基本 URL 会导致 SAML 端点格式不正确。如果 Citrix Cloud 基本 URL 更新不正确,则从基本 URL 派生的所有其他 SAML 端点相关 URL 都会导致登录失败。
以下端点是 SAML-tracer 输出中可能出现格式错误的 Citrix Cloud SAML 端点的示例:
https://saml.cloud.com/<GUID>/saml/acs
https://saml.cloud.com/<GUID>/saml/logout/callback
下图显示了一个配置错误的 PingFederate SAML 应用程序。正确配置的字段显示为绿色。配置错误的字段显示为红色。