Citrix Cloud™

将 ADFS 配置为商店身份验证的 SAML 提供程序

本文介绍如何配置 Citrix Cloud™ 使用 SAML 登录商店或 Citrix Cloud 所需的信赖方信任。

完成本文中的步骤后,您可以按照 (/zh-cn/citrix-cloud/citrix-cloud-management/identity-access-management/saml-identity.html) 中所述,配置 ADFS 服务器与 Citrix Cloud 之间的 SAML 连接。有关为 SAML 连接输入正确的 ADFS 值的指导,请参阅本文中的 (#saml-configuration-in-citrix-cloud)。

先决条件

本文中的说明假定您的环境中已部署运行正常的 ADFS 服务器,并集成了 Citrix FAS。Citrix FAS 是在会话启动期间向 VDA 提供单点登录所必需的。

有关详细信息,请参阅以下文章:

  • Citrix FAS 文档:
    • (/zh-cn/federated-authentication-service/current-release/install-configure.html)
    • (/zh-cn/federated-authentication-service/current-release/deployment-architectures/adfs)
  • Citrix Tech Zone:参考架构:联合身份验证服务

为 Citrix Cloud 配置信赖方信任

  1. 在 AD FS 管理控制台中,展开左侧窗格中的 AD FS 节点。
  2. 右键单击 Relying Party Trust,然后选择 Add Relying Party Trust。

    (/en-us/citrix-cloud/media/saml-adfs-add-relying-party-trust-menu.png)

    此时将显示“添加信赖方信任”向导。

  3. 选择 声明感知,然后选择 下一步。

    已选择“声明感知”选项的 ADFS 信任向导

  4. 在 联合元数据地址 中,输入 https://saml.cloud.com/saml/metadata.xml。选择 下一步。

    已输入联合元数据地址的 ADFS 信任向导

  5. 对于显示名称,输入 CitrixCloudProd。选择 下一步。

    已输入显示名称的 ADFS 信任向导

  6. 对于访问控制策略,选择 允许所有人。选择 下一步。

    已突出显示访问控制策略的 ADFS 信任向导

  7. 在 准备添加信任 屏幕上,选择 下一步。
  8. 在 完成 屏幕上,选择 为此应用程序配置声明颁发策略。选择 下一步。

    已选择“编辑声明颁发策略”菜单选项的 ADFS 控制台

  9. 右键单击新创建的信赖方信任,并选择 编辑声明颁发策略。
  10. 单击 添加规则,然后选择 将 LDAP 属性作为声明发送。选择 下一步。
  11. 在 声明规则名称 中,输入 CitrixCloud。
  12. 在 属性存储 中,选择 Active Directory。
  13. 在将 LDAP 属性映射到传出声明类型下,添加以下 LDAP 属性,完全按照所示:

    LDAP 属性 传出声明类型
    用户主体名称 名称 ID
    用户主体名称 cip_upn
    显示名称 displayName
    名字 givenName
    姓氏 familyName

    重要提示:

    NameID 必须始终是添加到声明列表中的第一个声明,否则单一注销 (SLO) 将无法正常运行。

    配置的声明规则(/en-us/citrix-cloud/media/saml-adfs-edit-claim-issuance-rule-dialog.png)

  14. 选择 完成。

  15. 右键单击新创建的名为“CitrixCloudProd”的信赖方信任,然后选择属性。

  16. 选择 Endpoints 选项卡,然后单击 Add SAML。

  17. 从端点类型下拉列表中选择 SAML logout。

  18. 从绑定下拉列表中选择 POST。

  19. 在“受信任的 URL:”和“响应 URL:”中输入 https://saml.cloud.com/saml/logout/callback>。

    SAML 端点(/en-us/citrix-cloud/media/saml-endpoint.png)

  20. 单击 OK 和 Apply。

使用 PowerShell 修改 Citrix Cloud 信赖方信任

如果您已使用默认的“开箱即用”配置配置了 ADFS 服务器,本节中的步骤可让您对其进行更新,使其符合 Citrix 推荐的配置。如果声明规则集中不包含 nameidentifier 属性,或者它不是声明规则集中的第一个 SAML 属性,则 Citrix Cloud 或应用商店的 SAML 单一注销将失败,需要执行此任务来解决此问题。

注意:

如果您已按照本文中 为 Citrix Cloud 配置信赖方信任 中的步骤创建了声明规则集,则无需执行此任务。

要完成此任务,您需要使用 PowerShell 将现有规则集替换为新的声明规则集。ADFS 管理控制台不支持此类操作。

  1. 在 ADFS 服务器上,找到 PowerShell ISE。右键单击并选择 Run as administrator。
  2. 备份您现有的 ADFS 声明规则到文本文件:

    Get-ADFSRelyingPartyTrust -name "CitrixCloudProd" | Select-Object -ExpandProperty IssuanceTransformRules | Out-File "$env:USERPROFILE\desktop\claimrulesbackup.txt"
    <!--NeedCopy-->
    
  3. 下载 Citrix 在 https://github.com/citrix/sample-scripts/tree/master/citrix-cloud 提供的 claimrules.txt 文件。
  4. 将 claimrules.txt 文件复制到您的桌面。
  5. 使用 claimrules.txt 文件导入所需的声明规则:

    Set-ADFSRelyingPartyTrust -Name "CitrixCloudProd" `
                          -MetadataUrl "https://saml.cloud.com/saml/metadata" `
                          -AutoUpdateEnabled $True `
                          -IssuanceTransformRulesFile "$env:USERPROFILE\desktop\claimrules.txt" `
                          -SignedSamlRequestsRequired $True `
                          -SamlResponseSignature "MessageAndAssertion" `
                          -Enabled $True
    <!--NeedCopy-->
    

使用 PowerShell 更新信赖方信任的 SAML 签名设置

默认情况下,ADFS 信赖方信任具有以下设置:

  • EncryptClaims: 是
  • SignedSamlRequestsRequired: 否
  • SamlResponseSignature: AssertionOnly

为了提高安全性,Citrix 建议对单点登录 (SSO) 和单点注销都使用已签名的 SAML 请求。本节介绍如何使用 PowerShell 更新现有信赖方信任的签名设置,使其符合 Citrix 推荐的配置。

  1. 获取 ADFS 服务器上当前的 RelyingPartyTrust 配置。

    Get-ADFSRelyingPartyTrust -TargetName "CitrixCloudProd"
    <!--NeedCopy-->
    
  2. 更新 CitrixCloudProd 信赖方信任设置。

    Set-ADFSRelyingPartyTrust -Name "CitrixCloudProd" `
                          -SignedSamlRequestsRequired $True `
                          -SamlResponseSignature "MessageAndAssertion"
    <!--NeedCopy-->
    

Citrix Cloud 中的 SAML 配置

在 Citrix Cloud 中配置 SAML 连接时(如 (/zh-cn/citrix-cloud/citrix-cloud-management/identity-access-management/saml-identity.html#add-saml-provider-metadata-to-citrix-cloud) 中所述),您将按如下方式输入 ADFS 的值:

对 Identity and Access Management > Authentication > Add an identity provider > SAML 中的 SAML 连接使用默认推荐值。

在 Citrix Cloud 的此字段中 输入此值
实体 ID https://adfs.YourDomain.com/adfs/services/trust,其中 YourDomain.com 是您的 ADFS 服务器域。
签署身份验证请求 是
SSO 服务 URL https://adfs.YourDomain.com/adfs/ls,其中 YourDomain.com 是您的 ADFS 服务器域。
SSO 绑定机制 HTTP 提交
SAML 响应 签署响应或断言
身份验证上下文 未指定,精确
注销 URL https://adfs.YourDomain.com/adfs/ls,其中 YourDomain.com 是您的 ADFS 服务器域。
注销请求签名 是
SLO 绑定机制 HTTP Post 请求

从 MMC ADFS 管理控制台中导出 ADFS 签名证书。请参阅下面的屏幕截图,了解 3 个证书中哪一个是正确的,以便在 SAML 连接中上传到 Citrix Cloud。

导出 ADFS

将 ADFS 配置为商店身份验证的 SAML 提供程序