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. 单击 OKApply

使用 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 提供程序