Citrix Cloud

使用 Azure AD 的 SAML 适用于工作区身份验证的访客和 B2B 身份

在阅读本文之前,您必须了解 B2B SAML 是否适用于您的身份验证用例。在决定实施此特定特殊情况的 SAML 解决方案之前,请仔细阅读用例描述和常见问题解答。在继续操作之前,请确保您完全理解 B2B SAML 适用的场景以及您需要使用的身份类型。大多数 SAML 用例可以通过遵循其他 SAML 文章并通过发送所有四个 cip_* 属性进行身份验证来实现。

注意:

使用 B2B SAML 会增加 Citrix Cloud 连接器上的负载,因为它们必须为每个 Workspace 最终用户登录查找用户电子邮件、SID 和 OID,而不是由 SAML 断言提供这些值。如果实际上不需要 B2B SAML,从 Citrix Cloud 连接器性能的角度来看,在 SAML 断言中发送所有四个 cip_* 属性是更优的选择。

先决条件

  • 专门配置用于 B2B SAML 的 SAML 应用程序,该应用程序仅在 SAML 断言中发送 cip_upn 进行身份验证。
  • SAML 提供程序中的前端用户。
  • 包含一对 Citrix Cloud 连接器的资源位置,这些连接器已加入创建 AD 影子帐户的 AD 林和域。
  • 使用隐式 UPN 或将备用 UPN 后缀添加到创建 AD 影子帐户的后端 AD 林。
  • 具有匹配 UPN 的后端 AD 影子帐户。
  • 映射到 AD 影子帐户用户的 DaaS 或 CVAD 资源。
  • 链接到同一资源位置的一个或多个 FAS 服务器。

常见问题

我为什么要使用 B2B SAML

大型组织邀请承包商和临时员工加入其身份平台的情况非常普遍。目标是使用承包商的现有身份(例如承包商电子邮件地址或组织外部的电子邮件地址)授予承包商对 Citrix Workspace 的临时访问权限。B2B SAML 允许使用在发布 DaaS 资源的 AD 域中不存在的本机或访客前端身份。

什么是 B2B SAML

通常,登录到 Citrix Workspace 时,会使用四个 SAML 属性 cip_* 及其相应的 AD 用户属性来验证最终用户。这四个 SAML 属性应存在于 SAML 断言中,并使用 AD 用户属性填充。B2B SAML 指的是仅需要 cip_upn SAML 属性即可成功进行身份验证。

AD 属性 SAML 断言中的默认属性名称
userPrincipalName cip_upn
Mail cip_email
objectSID cip_sid
objectGUID cip_oid

身份验证所需的其他三个 AD 用户属性 objectSID、objectGUID 和 mail 是通过加入 AD 影子帐户所在 AD 域的 Citrix Cloud 连接器获取的。在 Workspace 或 Citrix Cloud 的 SAML 登录流程中,它们不再需要包含在 SAML 断言中。

AD 属性 SAML 断言中的默认属性名称
userPrincipalName cip_upn

重要提示:

对于所有 SAML 流程(包括 B2B SAML),仍然需要发送 displayName。Workspace UI 需要 displayName 才能正确显示 Workspace 用户的全名。

什么是本机 SAML 用户身份

本机 SAML 用户是仅存在于您的 SAML 提供程序目录(例如 Entra ID 或 Okta)中的用户身份。这些身份不包含本地用户属性,因为它们不是通过 Entra ID Connect 等 AD 同步工具创建的。它们需要匹配的 AD 后端影子帐户才能枚举和启动 DaaS 资源,本机 SAML 用户必须映射到 Active Directory 中的相应帐户。

本机示例

本地本机示例

从另一个 Entra ID 租户导入的 B2B 用户是什么

B2B 用户是作为成员存在于 Entra ID 租户 1 中并被邀请到其他 Entra ID 租户(例如 Entra ID 租户 2)作为访客用户的 Entra ID 用户。B2B SAML 应用程序在 Entra ID 租户 2 中配置,并作为 SAML IdP 连接到 Citrix Cloud。B2B 用户需要匹配的 AD 后端影子帐户才能枚举和启动 DaaS 资源。B2B 用户必须映射到 Active Directory 中的相应影子帐户。

有关 B2B 用户以及如何将其他 Entra ID 租户中的成员用户邀请到您的 Entra ID 租户作为访客用户的详细信息,请参阅 Microsoft 文档。

概述:与外部访客进行 B2B 协作以支持您的员工 Microsoft Entra B2B 协作用户的属性

什么是 AD 支持的 SAML 用户身份

AD 支持的 SAML 用户是存在于您的 SAML 提供程序目录(例如 Entra ID 或 Okta)以及您的本地 AD 林中的用户身份。这些身份包含本地用户属性,因为它们是通过 Entra ID Connect 等 AD 同步工具创建的。这些用户不需要 AD 后端影子帐户,因为它们包含本地 SID 和 OID,因此可以枚举和启动使用已加入 AD 域的 VDA 发布的 DaaS 资源。

AD 支持的 SAML

AD 支持的 SAML 用户身份

什么是前端身份

前端身份是用于登录 SAML 提供程序和 Workspace 的身份。前端身份具有不同的用户属性,具体取决于它们在 SAML 提供程序中是如何创建的。

  1. 本机 SAML 用户身份
  2. AD 支持的 SAML 用户身份

您的 SAML 提供程序可能混合了这两种类型的身份。例如,如果您的身份平台中既有承包商也有永久员工,则 B2B SAML 将适用于这两种类型的前端身份,但仅当您拥有某些本机 SAML 用户身份类型的帐户时,它才是强制性的。

前端身份

什么是后端 AD 影子帐户

后端 AD 影子帐户是 DaaS 使用的 AD 帐户,它映射到 SAML 提供程序中的相应前端身份。

为什么需要后端 AD 影子帐户

为了枚举使用已加入 AD 域的 VDA 发布的 DaaS 或 CVAD 资源,需要 VDA 所加入的 Active Directory 林中的 AD 帐户。将 DaaS 交付组中的资源映射到影子帐户用户,以及映射到您已将 VDA 加入的 AD 域中包含影子帐户的 AD 组。

重要提示:

只有没有 AD 域属性的本机 SAML 用户才需要匹配的 AD 影子帐户。如果您的前端身份是从 Active Directory 导入的,则无需使用 B2B SAML,也无需创建后端 AD 影子帐户。

如何将前端身份链接到相应的后端 AD 影子帐户

链接前端身份和后端身份的方法是使用匹配的 UPN。这两个链接的身份应具有相同的 UPN,以便 Workspace 能够识别它们代表需要登录 Workspace 并枚举和启动 DaaS 资源的同一最终用户。

重要提示

单个前端身份只能映射到单个 AD 林/域中的单个后端身份。DaaS 资源的枚举将仅使用从正确 Citrix Cloud 连接器执行的 AD 影子帐户查找中获得的单个 SID 值。您不能使用与具有相同 UPN 后缀的多个 AD 影子帐户匹配的单个前端用户来创建一对多关系。后端 AD 影子帐户应仅存在于单个 AD 林/域中。

支持使用前端和后端身份之间明确的 UPN 匹配 前端用户 (user@yourforest.com) > AD 林 1 中的后端用户 (UPN user@yourforest.com)

不支持,因为尝试将一个前端与一个后端身份匹配时存在 UPN 歧义 前端用户 (user@yourforest1.com) > AD 林 1 中的后端用户 (UPN user@yourforest1.com) > AD 林 2 中的后端用户 (UPN user@yourforest1.com)

B2B SAML 是否需要 Citrix FAS

是的。在使用任何联合身份验证方法登录 Workspace 时,启动期间 FAS 是 VDA 的 SSON 所必需的。

什么是“SID 不匹配问题”以及何时会发生

“SID 不匹配问题”是由于 SAML 断言中包含的前端用户的 SID 与 AD 影子帐户用户的 SID 不匹配而引起的。当登录到您的 SAML 提供程序的帐户具有本地 SID,且该 SID 与影子帐户用户的 SID 不同时,可能会发生这种情况。这仅在前端身份由 Entra ID Connect 等 AD 同步工具预配,并且来自与影子帐户创建位置不同的 AD 林时才会发生。

B2B SAML 可防止“SID 不匹配问题”的发生。影子帐户用户的正确 SID 始终通过加入后端 AD 域的 Citrix Cloud 连接器获取。影子帐户用户查找是使用前端用户的 UPN 执行的,然后将其与相应的后端影子帐户用户匹配。

SID 不匹配问题示例: 前端用户由 Entra ID Connect 创建并从 AD 林 1 同步。 S-1-5-21-000000000-0000000000-0000000001-0001

后端影子帐户用户AD 林 2 中创建并映射到 DaaS 资源 S-1-5-21-000000000-0000000000-0000000002-0002

SAML 断言包含所有四个 cip_* 属性,并且 cip_sid 包含值 S-1-5-21-000000000-0000000000-0000000001-0001,该值与影子帐户的 SID 不匹配并触发错误。

在 Entra ID 中为外部访客帐户配置 B2B SAML 应用程序

  1. 登录到 Azure 门户。
  2. 从门户菜单中,选择 Entra ID
  3. 在左侧窗格的“管理”下,选择“企业应用程序”。
  4. 选择“创建自己的应用程序”。
  5. 为 SAML 应用程序输入一个合适的名称,例如 Citrix Cloud SAML SSO Production B2B SAML UPN Only

    创建自己的应用程序

  6. 在左侧导航窗格中,选择“单一登录”,然后在工作窗格中,单击“SAML”。
  7. 在“基本 SAML 配置”部分中,单击“编辑”并配置以下设置:
    1. 在“标识符(实体 ID)”部分中,选择“添加标识符”,然后输入与您的 Citrix Cloud 租户所在区域关联的值:
      • 对于欧洲、美国和亚太南部地区,输入 https://saml.cloud.com
      • 对于日本地区,输入 https://saml.citrixcloud.jp
      • 对于 Citrix Cloud Government 地区,输入 https://saml.cloud.us
    2. 在“回复 URL(断言使用者服务 URL)”部分中,选择“添加回复 URL”,然后输入与您的 Citrix Cloud 租户所在区域关联的值:
      • 对于欧洲、美国和亚太南部地区,输入 https://saml.cloud.com/saml/acs
      • 对于日本地区,输入 https://saml.citrixcloud.jp/saml/acs
      • 对于 Citrix Cloud Government 地区,输入 https://saml.cloud.us/saml/acs
    3. 在“登录 URL”部分中,输入您的 Workspace URL。
    4. 在“注销 URL(可选)”部分中,输入与您的 Citrix Cloud 租户所在区域关联的值:
      • 对于欧洲、美国和亚太南部地区,输入 https://saml.cloud.com/saml/logout/callback
      • 对于日本地区,输入 https://saml.citrixcloud.jp/saml/logout/callback
      • 对于 Citrix Cloud Government 地区,输入 https://saml.cloud.us/saml/logout/callback
    5. 在命令栏中,单击“保存”。“基本 SAML 配置”部分显示如下:

      基本 SAML 配置

  8. 在“属性和声明”部分中,单击“编辑”以配置以下声明。这些声明显示在 SAML 响应中的 SAML 断言中。创建 SAML 应用程序后,配置以下属性。

    属性和声明

    1. 对于唯一用户标识符(名称 ID)声明,将名称标识符格式设置为未指定,并将其源属性设置为 user.localuserprincipalname
    2. 对于 cip_upn 声明,保留默认值 user.localuserprincipalname
    3. 对于 displayName,保留默认值 user.displayname
    4. 在“附加声明”部分中,对于任何剩余的具有 http://schemas.xmlsoap.org/ws/2005/05/identity/claims 命名空间的声明,单击省略号 (…) 按钮,然后单击“删除”。无需包含这些声明,因为它们是上述用户属性的重复项。

      完成后,“属性和声明”部分显示如下:

      属性和声明

    5. 使用此第三方在线工具获取 Citrix Cloud SAML 签名证书的副本。
    6. 在 URL 字段中输入 https://saml.cloud.com/saml/metadata,然后单击“加载”。

    突出显示的删除菜单

  9. 滚动到页面底部,然后单击“下载”。

    下载元数据证书

    下载证书

  10. 配置 Azure Active Directory SAML 应用程序签名设置。
  11. 在 Azure Active Directory SAML 应用程序中上传在步骤 10 中获取的生产 SAML 签名证书
    1. 启用“需要验证证书”。

    验证证书

    验证证书

配置 Citrix Cloud B2B SAML 连接

默认情况下,Citrix Cloud 将期望 cip_upn、cip_email、cip_sid 和 cip_oid 存在于 SAML 断言中,如果未发送这些属性,则 SAML 登录将失败。为防止这种情况,在创建新的 SAML 连接时,请删除对这些属性的检查。

  1. 使用默认设置创建新的 SAML 连接。
  2. 导航到底部的“SAML 属性映射配置”部分,并在保存新的 SAML 配置之前进行更改。
  3. cip_emailcip_sidcip_oid 字段中删除 SAML 属性名称。
  4. 不要从 cip_upn 字段中删除它。
  5. 不要从其他任何属性的相应字段中删除它们。Workspace UI 仍然需要 displayName,不应更改。

B2B SAML 连接 UPN

配置您的 AD 影子帐户资源位置和连接器

需要后端影子帐户 AD 林中的资源位置和连接器对。当 SAML 断言中仅直接提供 cip_upn 时,Citrix Cloud 需要此 AD 林中的连接器来查找影子帐户用户身份和属性,例如 cip_email、cip_sid 和 cip_oid。

  1. 创建新的“资源位置”,其中将包含已加入后端影子帐户 AD 林的 Citrix Cloud 连接器。

    AD 影子帐户

  2. 将资源位置命名为与包含您希望使用的后端 AD 影子帐户的 AD 林匹配。
  3. 在新创建的资源位置中配置一对 Citrix Cloud 连接器。

例如 ccconnector1.shadowaccountforest.com ccconnector2.shadowaccountforest.com

在后端 AD 林中配置 FAS

承包商前端用户肯定需要 FAS。在 DaaS 启动期间,承包商用户将无法手动输入 Windows 凭据来完成启动,因为他们可能不知道 AD 影子帐户密码。

  1. 在创建影子帐户的后端 AD 林中配置一个或多个 FAS 服务器。
  2. 将 FAS 服务器链接到包含一对已加入创建影子帐户的后端 AD 林的 Citrix Cloud 连接器的同一资源位置。

配置 FAS

在您的 AD 域中配置备用 UPN 后缀

重要提示:

UPN 与用户的电子邮件地址不同。在许多情况下,为了方便使用,它们是相同的值,但 UPN 和电子邮件通常可以具有不同的值,并且在不同的 Active Directory 属性和不同的 Entra ID 用户属性中定义。此解决方案依赖于前端和后端身份之间的 UPN 匹配,而不是电子邮件匹配。

如果您的域在 DNS 中可公开路由,则可以使用该域的隐式 UPN 后缀,或者为希望邀请到 Okta 或 Azure AD 租户的每个外部前端用户添加匹配的备用 UPN 后缀。如果 AD 使用 yourdomain.local 作为隐式 UPN,则必须选择 yourdomain.com 等备用 UPN 后缀。Entra ID 不允许您在自定义域名中添加 yourdomain.local

例如,如果您邀请外部用户 contractoruser@hotmail.co.uk,并希望将其与后端 AD 影子帐户 contractoruser@yourforest.com 关联,则将 yourforest.com 作为 ALT UPN 后缀添加到您的 AD 林中。

使用 Active Directory 域和信任 UI 在 Active Directory 中添加备用 UPN 后缀

  1. 登录到后端 AD 林中的域控制器。
  2. 打开“运行”对话框,然后键入 domain.msc,然后单击“确定”。
  3. 在“Active Directory 域和信任”窗口中,右键单击“Active Directory 域和信任”,然后选择“属性”。
  4. 在“UPN 后缀”选项卡上,在“备用 UPN 后缀”框中,添加一个备用 UPN 后缀,然后选择“添加”。

    AD 域和信任 UI

  5. 单击“确定”。

使用 PowerShell 管理后端 AD 林的 UPN 后缀

您可能需要向后端 AD 林添加大量新的 UPN 后缀,以便创建必要的影子帐户 UPN。您需要添加到后端 AD 林的备用 UPN 后缀的数量将取决于您选择邀请到 SAML 提供程序租户的外部用户数量。

以下是一些 PowerShell 命令,可用于在需要创建大量新的备用 UPN 后缀时实现此目的。

# 获取 AD 林中现有 ALT UPN 后缀的列表
(Get-ADForest).UPNSuffixes

# 添加或删除 ALT UPN 后缀
$NewUPNSuffixes = @("yourforest.com","externalusers.com")

# 根据您希望执行的操作将 action 设置为“add”或“remove”。
$Action = "add"
foreach($NewUPNSuffix in $NewUPNSuffixes)
{
    Get-ADForest | Set-ADForest -UPNSuffixes @{ $Action=$NewUPNSuffix }
}
<!--NeedCopy-->

在后端 AD 林中配置 AD 影子帐户

  1. 创建新的 AD 影子帐户用户。
  2. 对于新的 AD 用户,默认选择 AD 林隐式 UPN,例如 yourforest.local。选择您之前创建的相应备用 UPN 后缀。例如,选择 yourforest.com 作为影子帐户用户的 UPN 后缀。

    新对象用户

    影子帐户用户的 UPN 也可以通过 PowerShell 更新。

    Set-ADUser "contractoruser" -UserPrincipalName "contractoruser@yourforest.com"
    <!--NeedCopy-->
    

    重要提示

    即使您指定的 UPN 后缀在 AD 林中不存在,Windows AD PowerShell 也将允许您创建具有该 UPN 后缀的影子帐户用户。您希望使用的备用 UPN 后缀必须存在于 AD 林中,因为 Citrix Cloud 连接器依赖此列表来查找后端影子帐户用户。如果备用 UPN 后缀未按上述屏幕截图所示出现在 AD 林中,则 Citrix Cloud 将无法将您的前端身份与适当的后端 AD 影子帐户匹配。

  3. 影子帐户用户的 UPN 应与外部前端身份用户的 UPN 完全匹配。
  4. 测试前端用户登录 Workspace。
  5. 验证登录成功后,Workspace 中是否枚举了所有预期资源。映射到 AD 影子帐户的资源应显示。

配置访客 Entra ID 用户 UPN 以匹配 AD 影子帐户 UPN

当外部访客用户被邀请到 Entra ID 租户时,会创建一个自动生成的 UPN,指示该用户是外部用户。外部 Entra ID 用户将自动分配 @Entra IDtenant.onmicrosoft.com UPN 后缀,这不适用于 B2B SAML,并且不会与您的 AD 影子帐户匹配。这需要更新以匹配 Entra ID 中导入的 DNS 域以及您在 AD 林中创建的备用 UPN 后缀。

  1. 将与您添加到 AD 林的备用 UPN 后缀匹配的自定义域导入 Entra ID。

    自定义域名

  2. 邀请访客用户,例如 contractoruser@hotmail.co.uk,并确保受邀访客用户接受 Microsoft 对 Entra ID 租户的邀请。

    Microsoft 生成的外部访客用户 UPN 格式示例。 contractoruser_hotmail.co.uk#EXT#@yourEntra IDtenant.onmicrosoft.com

    MD omnisoft

    MD 访客

    重要提示:

    Citrix Cloud 和 Workspace 不能使用包含 # 字符的 UPN 进行 SAML 身份验证。

  3. 安装必要的 Azure PowerShell Graph 模块,以便管理 Entra ID 用户。

    Install-Module -Name "Microsoft.Graph" -Force
    Get-InstalledModule -Name  "Microsoft.Graph"
    <!--NeedCopy-->
    
  4. 使用全局管理员帐户和 Directory.AccessAsUser.All 范围登录到您的 Entra ID 租户。

    重要提示:

    如果您使用权限较低的帐户或未指定 Directory.AccessAsUser.All 范围,则将无法完成步骤 4 并更新访客用户的 UPN。

    Connect-MgGraph -Scopes Directory.AccessAsUser.All
    <!--NeedCopy-->
    
  5. 使用与您为 AD 影子帐户配置的 UPN 匹配的 UPN 更新 Entra ID 用户。

    $GuestUserId = (Get-MgUser -UserId "contractoruser_hotmail.co.uk#EXT#@yourentraidtenant.onmicrosoft.com").Id
    Update-MgUser -UserId $GuestUserId -UserPrincipalName "contractoruser@your.com"
    <!--NeedCopy-->
    
  6. 获取 Entra ID 租户中所有外部访客用户的列表(可选)。

    外部访客用户

    Get-MgUser -filter "userType eq 'Guest'" | Select Id,DisplayName,UserPrincipalName,Mail
    <!--NeedCopy-->
    
  7. 获取需要更新 UPN 的访客用户身份,然后更新其 UPN 后缀。

    $GuestUserId = (Get-MgUser -UserId "contractoruser_hotmail.co.uk#EXT#@yourEntra IDtenant.onmicrosoft.com").Id
        
    Update-MgUser -UserId $GuestUserId -UserPrincipalName "contractoruser@yourforest.com"
    <!--NeedCopy-->
    
  8. 检查是否可以使用新更新的 UPN 找到访客用户身份。

    Get-MgUser -UserId "contractoruser@yourforest.com"
    <!--NeedCopy-->
    

测试 B2B SAML 解决方案

在 AD、Citrix Cloud 和您的 SAML 提供程序中完成所有记录的步骤后,您需要测试登录并验证 Workspace 中是否为访客用户显示了正确的资源列表。

Citrix 建议使用 SAML-tracer 浏览器扩展进行所有 SAML 调试。此扩展适用于大多数常用 Web 浏览器。该扩展将 Base64 编码的请求和响应解码为 SAML XML,使其可读。

SAML 跟踪器

使用 SAML 跟踪器捕获的仅使用 cip_upn 进行身份验证的 B2B SAML 断言示例。

B2B SAML 示例

测试前端

  1. 将正确的 DaaS 资源映射到 AD 支持的影子帐户用户或包含它们的组。

  2. 启动 SAML 跟踪器浏览器扩展并捕获整个登录和注销流程。

  3. 使用表中为要测试的前端用户类型指定的属性登录 Workspace。

    访客 Entra ID 用户登录: 您邀请到 Entra ID 租户作为访客用户的承包商用户具有电子邮件地址 contractoruser@hotmail.co.uk

    当 Entra ID 提示时,输入访客用户的电子邮件地址

    或者

    AD 支持的 Entra ID 用户/本机 Entra ID 用户登录: 这些 Entra ID 用户将具有 adbackeduser@yourforest.comnativeuser@yourforest.com 格式的 UPN。

    当 Entra ID 提示时,输入用户的 UPN

  4. 检查断言是否仅包含用于身份验证的 cip_upn 属性,以及它是否还包含 Workspace UI 所需的 displayName 属性。

  5. 检查用户是否可以在 UI 中看到所需的 DaaS 资源。

B2B SAML 解决方案故障排除

SAML 断言中发送了错误的 UPN

原因:这仅适用于从 Entra ID 租户 1 导入到 Entra ID 租户 2 的 B2B 帐户。当使用从其他 Entra ID 租户导入的 B2B 用户时,SAML 断言中可能会发送错误的 UPN。如果使用 user.userprincipalname 并且最终用户使用从另一个 Entra ID 租户导入的 B2B 用户登录,则 SAML 断言中将发送错误的 cip_upn 值。SAML 断言中使用的 cip_upn 值将来自包含 B2B 用户作为成员的源 Entra ID 租户。使用 user.localuserprincipalname 可确保 cip_upn 值取自邀请 B2B 用户作为访客的 Entra ID 租户。

缺少 cip_* 属性错误

B2B SAML 解决方案故障排除

原因 1:SAML 属性不存在于 SAML 断言中,但 Citrix Cloud 配置为期望接收它。您未能从 SAML 属性部分中的 Citrix Cloud SAML 连接中删除不必要的 cip_* 属性。断开并重新连接 SAML 以删除对不必要的 cip_* 属性的引用。

原因 2:如果 Citrix Cloud 连接器在您的后端 AD 林中没有相应的 AD 影子帐户可供查找,也可能发生此错误。您可能已正确配置前端身份,但具有匹配 UPN 的后端 AD 影子帐户身份不存在或无法找到。

登录成功但用户登录 Workspace 后未显示 DaaS 资源

原因:这很可能是由于前端到后端身份 UPN 映射不正确造成的。

确保前端和后端身份的两个 UPN 完全匹配,并代表登录 Workspace 的同一最终用户。检查 DaaS 交付组是否包含到正确的 AD 影子帐户用户或包含它们的 AD 组的映射。

在启动 DaaS 资源期间,FAS SSON 到已加入 AD 域的 VDA 失败

尝试启动 DaaS 资源时,Workspace 最终用户会收到在 GINA 中输入其 Windows 凭据的提示。此外,事件 ID 103 出现在 FAS 服务器的 Windows 事件日志中。

[S103] Server [CC:FASServer] requested UPN [frontenduser@yourforest.com]  `SID S-1-5-21-000000000-0000000000-0000000001-0001`,但查找返回 `SID S-1-5-21-000000000-0000000000-0000000001-0002`。[correlation: cc#967472c8-4342-489b-9589-044a24ca57d1]
<!--NeedCopy-->

原因:您的 B2B SAML 部署存在“SID 不匹配问题”。您的前端身份包含来自与后端影子帐户 AD 林不同的 AD 林的 SID。 不要在 SAML 断言中发送 cip_sid

当多个连接的 AD 林中存在相同的 UPN 后缀时,AD 支持的用户登录失败

Citrix Cloud 具有多个资源位置和连接器,这些位置和连接器已加入不同的 AD 林。当从与影子帐户 AD 林不同的 AD 林导入到 Entra ID 的 AD 支持用户被使用时,登录失败。

AD 林 1 同步到 Entra ID 以创建具有 UPN 的前端用户,例如 frontenduser@yourforest.com

AD 林 2 包含具有 UPN 的后端影子帐户,例如 frontenduser@yourforest.com

原因:您的 B2B SAML 部署存在“UPN 歧义问题”。Citrix Cloud 无法确定使用哪个连接器来查找用户的后端身份。

不要在 SAML 断言中发送 cip_sid。 您的用户 UPN 存在于连接到 Citrix Cloud 的多个 AD 林中。

配置 Citrix Cloud SAML 连接

所有 Citrix 登录流程都需要使用 Workspace URL 或 Citrix Cloud GO URL 由服务提供商发起。

从您的 Entra ID 门户获取 Entra ID SAML 应用程序 SAML 端点,以输入到 Citrix Cloud 中。

AAD SAML 端点

在 Citrix Cloud SAML 连接中使用的 Entra ID SAML 端点示例

在“身份和访问管理 > 身份验证 > 添加身份提供商 > SAML”中,使用 SAML 连接的默认推荐值。

重要提示:

EntraID SSO 和注销 SAML 端点是相同的 URL。

Citrix Cloud 中的此字段 输入此值
实体 ID https://sts.windows.net/<yourEntraIDTenantID>
签名身份验证请求
SSO 服务 URL https://login.microsoftonline.com/<yourEntraIDTenantID>/saml2
SSO 绑定机制 HTTP Post
SAML 响应 签名响应或断言
身份验证上下文 未指定,精确
注销 URL https://login.microsoftonline.com/<yourEntraIDTenantID>/saml2
签名注销请求
SLO 绑定机制 HTTP Post