Citrix Cloud

将 ADFS 配置为区身份验证的 SAML 提供商

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

完成本文中的步骤后,您可以在 ADFS 服务器和 Citrix Cloud 之间配置 SAML 连接,如 Connect SAML 作为 Citrix Cloud 中的身份提供商中所述。有关为 SAML 连接输入正确 ADFS 值的指导,请参阅本文中的 Citrix Cloud 中的 SAML 配置

必备条件

本文中的说明假设您的环境中部署了 Citrix FAS 的 ADFS 服务器。 在会话启动期间,Citrix FAS 必须提供 VDA 的单点登录。

有关更多信息,请参阅以下文章:

为 Citrix Cloud 配置信赖方信任

  1. 在 AD FS 管理控制台中,展开左侧窗格中的 AD FS 节点。
  2. 右键单击“信赖方信任”,然后选择“添加信赖方信任”。

    “添加信赖方信任”菜单选项

    将出现“添加信赖方信任”向导。

  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
    E-Mail-Addresses cip_email
    objectSID cip_sid
    objectGUID cip_oid
    Display-Name displayName
    Given-Name firstName
    姓氏 lastName

    已配置的声明规则

  14. 选择完成

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

如果您已使用默认的“开箱即用”配置您的 ADFS 服务器,则可以通过本节中的步骤对其进行更新,使其符合 Citrix 推荐的配置。如果 nameidentifier 属性未包含在声明规则集中,或者不是声明规则集中的第一个 SAML 属性,则从 Citrix Cloud 或 Citrix Workspace 的 SAML 单一注销会失败,则需要执行此任务。

注意:

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

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

  1. 在 ADFS 服务器上,找到 PowerShell ISE。右键单击并选择“以管理员身份运行”。
  2. 将现有的 ADFS 声明规则备份到文本文件中:

    Get-ADFSRelyingPartyTrust -name "CitrixCloudStaging" | Select-Object -ExpandProperty IssuanceTransformRules | Out-File "$env:USERPROFILE\desktop\claimrulesbackup.txt"
    <!--NeedCopy-->
    
  3. 下载 Citrix 提供的 claimrules.txt 文件,网址为 https://github.com/citrix/sample-scripts/tree/master/citrix-cloud
  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: True
  • SignedSamlRequestsRequired: False
  • 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-->
    
  3. 联系 Citrix 支持部门,申请激活 Citrix Cloud 客户的 EnableSamlLogoutSigningAndPost 身份验证功能。这会导致 Citrix Cloud 在用户注销 Citrix Workspace 或 Citrix Cloud 时以已签名的 POST 请求而不是未签名的重定向请求发送 SAML 单点注销请求。如果 SAML 提供商要求单点注销的签名请求并拒绝未签名的重定向,则需要发送已签名的 POST 请求。

Citrix Cloud 中的 SAML 配置

在 Citrix Cloud 中配置 SAML 连接时(如将 SAML 提供商元数据添加到 Citrix Cloud 中所述),您需要按如下方式输入 ADFS 的值:

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