Citrix Virtual Apps and Desktops

管理安全密钥

重要:

  • 必须将此功能与 StoreFront 1912 LTSR CU2 或更高版本结合使用。
  • 只有 Citrix ADC 和 Citrix Gateway 12.1 及更高版本支持安全 XML 功能。

注意:

可以使用下面两个管理控制台管理您的 Citrix Virtual Apps and Desktops 部署:Web Studio(基于 Web)和 Citrix Studio(基于 Windows)。 本文仅涵盖 Web Studio。 有关 Citrix Studio 的信息,请参阅 Citrix Virtual Apps and Desktops 7 2212 或更早版本中的等效文章。

此功能允许您仅允许经批准的 StoreFront 和 Citrix Gateway 计算机与 Delivery Controller 进行通信。 启用此功能后,将阻止不包含该密钥的任何请求。 使用此功能可添加额外的安全层,以防止来自内部网络的攻击。

使用此功能的常规工作流程如下:

  1. 启用 Web Studio 以显示功能设置。

  2. 为您的站点配置设置。

  3. 为 StoreFront 配置各项设置。

  4. 为 Citrix ADC 配置各项设置。

为站点配置设置

可以使用 Web Studio 或 PowerShell 为您的站点配置安全密钥设置。

使用 Web Studio

  1. 登录 Web Studio,在左侧窗格中选择设置
  2. 找到管理安全密钥磁贴,然后单击编辑。 此时将显示 Manage Security Key(管理安全密钥)页面。

    “管理安全密钥”向导

  3. 单击刷新图标以生成密钥。

    重要:

    • 有两个密钥可供使用。 通过 XML 和 STA 端口进行通信时,您可以使用相同的密钥或不同的密钥。 我们建议您一次仅使用一个密钥。 未使用的密钥仅用于密钥轮换。
    • 请勿单击刷新图标以更新已在使用的密钥。 如果这样做,将会发生服务中断。
  4. 选择需要密钥进行通信的位置:

    • 需要密钥才能通过 XML 端口进行通信(仅限 StoreFront)。 如果选择此选项,则需要密钥才能对通过 XML 端口进行的通信执行身份验证。 StoreFront 通过此端口与 Citrix Cloud 进行通信。 有关更改 XML 端口的信息,请参阅知识中心文章 CTX127945

    • 需要密钥才能通过 STA 端口进行通信。 如果选择此选项,则需要密钥才能对通过 STA 端口进行的通信执行身份验证。 Citrix Gateway 和 StoreFront 通过此端口与 Citrix Cloud 进行通信。 有关更改 STA 端口的信息,请参阅知识中心文章 CTX101988

  5. 单击保存以应用所做的更改并关闭窗口。

使用 PowerShell

以下是相当于 Web Studio 操作的 PowerShell 步骤。

  1. 运行 Citrix Virtual Apps and Desktops 远程 PowerShell SDK。

  2. 在命令窗口中,运行以下命令:
    • Add-PSSnapIn Citrix*
  3. 运行以下命令以生成密钥并设置 Key1:
    • New-BrokerXmlServiceKey
    • Set-BrokerSite -XmlServiceKey1 <the key you generated>
  4. 运行以下命令以生成密钥并设置 Key2:
    • New-BrokerXmlServiceKey
    • Set-BrokerSite -XmlServiceKey2 <the key you generated>
  5. 运行以下一个或两个命令以在对通信进行身份验证时使用密钥:
    • 要对通过 XML 端口进行的通信执行身份验证,请执行以下操作:
      • Set-BrokerSite -RequireXmlServiceKeyForNFuse $true
    • 要对通过 STA 端口进行的通信执行身份验证,请执行以下操作:
      • Set-BrokerSite -RequireXmlServiceKeyForSta $true

有关指导和语法,请参阅 PowerShell 命令帮助。

为 StoreFront 配置各项设置

完成您的站点配置后,需要使用 PowerShell 为 StoreFront 中配置相关设置。

在 StoreFront 服务器上,运行以下 PowerShell 命令:

要配置用于通过 XML 端口进行通信的密钥,请使用命令 [Set-STFStoreFarm https://developer-docs.citrix.com/en-us/storefront-powershell-sdk/current-release/Set-STFStoreFarm.html]。 例如:
$store = Get-STFStoreService -VirtualPath [Path to store] $farm = Get-STFStoreFarm -StoreService $store -FarmName [Resource feed name] Set-STFStoreFarm -Farm $farm -XMLValidationEnabled $true -XMLValidationSecret [secret]

请为以下参数输入相应的值:

  • Path to store
  • Resource feed name
  • secret

要配置用于通过 STA 端口进行通信的密钥,请使用 New-STFSecureTicketAuthoritySet-STFRoamingGateway 命令。 例如:

$gateway = Get-STFRoamingGateway -Name [Gateway name] $sta1 = New-STFSecureTicketAuthority -StaUrl [STA1 URL] -StaValidationEnabled $true -StaValidationSecret [secret] $sta2 = New-STFSecureTicketAuthority -StaUrl [STA2 URL] -StaValidationEnabled $true -StaValidationSecret [secret] Set-STFRoamingGateway -Gateway $gateway -SecureTicketAuthorityObjs $sta1,$sta2

请为以下参数输入相应的值:

  • Gateway name
  • STA URL
  • Secret

有关指导和语法,请参阅 PowerShell 命令帮助。

为 Citrix ADC 配置各项设置

注意:

除非您使用 Citrix ADC 作为网关,否则不需要为 Citrix ADC 配置此功能。 如果您使用 Citrix ADC,请按照以下步骤进行操作:

  1. 确保以下必备配置已就绪:

    • 配置了以下 Citrix ADC 相关的 IP 地址。
      • 用于访问 Citrix ADC 控制台的 Citrix ADC 管理 IP (NSIP) 地址。 有关详细信息,请参阅配置 NSIP 地址

      ADC 管理 IP 地址

      • 子网 IP (SNIP) 地址,用于启用 Citrix ADC 设备与后端服务器之间的通信。 有关详细信息,请参阅配置子网 IP 地址
      • Citrix Gateway 虚拟 IP 地址和负载平衡器虚拟 IP 地址,用于登录 ADC 设备以启动会话。 有关详细信息,请参阅创建虚拟服务器

      子网 IP 地址

    • Citrix ADC 设备中所需的模式和功能已启用。
      • 要启用这些模式,请在 Citrix ADC GUI 中转到系统 > 设置 > 配置模式
      • 要启用这些功能,请在 Citrix ADC GUI 中转到系统 > 设置 > 配置基本功能
    • 与证书有关的配置已完成。
      • 此时将创建证书签名请求 (CSR)。 有关详细信息,请参阅创建证书

      创建 CSR 证书

      安装服务器证书

      安装 CA 证书

      虚拟桌面的网关

  2. 添加重写操作。 有关详细信息,请参阅配置重写操作

    1. 转到 AppExpert > 重写 > 操作
    2. 单击 Add(添加)以添加新的重写操作。 可以将该操作命名为“set Type to INSERT_HTTP_HEADER”(将“类型”设置为 INSERT_HTTP_HEADER)。

    添加重写操作

    1. 类型中,选择 INSERT_HTTP_HEADER
    2. Header Name(标题名称)中,输入 X-Citrix-XmlServiceKey。
    3. 表达式中,添加 &lt;XmlServiceKey1 value&gt; 并用引号引起。 可以从 Desktop Delivery Controller 配置中复制 XmlServiceKey1 值。

    XML 服务密钥值

  3. 添加重写策略。 有关详细信息,请参阅配置重写策略
    1. 转到 AppExpert > 重写 > 策略

    2. 单击添加添加新策略。

    添加重写策略

    1. Action(操作)中,选择在前一步中创建的操作。
    2. Expression(表达式)中,添加 HTTP.REQ.IS_VALID。
    3. 单击确定
  4. 设置负载平衡。 必须为每台 STA 服务器配置一个负载平衡虚拟服务器。 否则,会话将无法启动。

    有关详细信息,请参阅设置基本负载平衡

    1. 创建负载平衡虚拟服务器。
      • 转到流量管理 > 负载平衡 > 服务器
      • Virtual Servers(虚拟服务器)页面中,单击 Add(添加)。

      添加负载平衡服务器

      • 协议中,选择 HTTP
      • 添加负载平衡虚拟 IP 地址,然后在 Port(端口)中选择 80
      • 单击确定
    2. 创建负载平衡服务。
      • 转到流量管理 > 负载平衡 > 服务

      添加负载平衡服务

      • Existing Server(现有服务器)中,选择在上一步中创建的虚拟服务器。
      • Protocol(协议)中,选择 HTTP,然后在 Port(端口)中选择 80
      • 单击 OK(确定),然后单击 Done(完成)。
    3. 将服务绑定到虚拟服务器。
      • 选择之前创建的虚拟服务器,然后单击 Edit(编辑)。
      • Services and Service Groups(服务和服务组)中,单击 No Load Balancing Virtual Server Service Binding(无负载平衡虚拟服务器服务绑定)。

      将服务绑定到虚拟服务器

      • Service Binding(服务绑定)中,选择之前创建的服务。
      • 单击绑定
    4. 将之前创建的重写策略绑定到虚拟服务器。
      • 选择之前创建的虚拟服务器,然后单击 Edit(编辑)。
      • Advanced Settings(高级设置)中,单击 Policies(策略),然后在 Policies(策略)部分中单击 +

      绑定重写策略

      • Choose Policy(选择策略)中,选择 Rewrite(重写),然后在 Choose Type(选择类型)中选择 Request(请求)。
      • 单击继续
      • Select Policy(选择策略)中,选择之前创建的重写策略。
      • 单击绑定
      • 单击完成
    5. 如有必要,请为虚拟服务器设置持久性。
      • 选择之前创建的虚拟服务器,然后单击 Edit(编辑)。
      • Advanced Settings(高级设置)中,单击 Persistence(持久性)。

      设置持久性

      • 选择 Others(其他)作为持久性类型。
      • 选择 DESTIP 以根据虚拟服务器选择的服务的 IP 地址(目标 IP 地址)创建持久性会话
      • IPv4 Netmask(IPv4 网络掩码)中,添加与 DDC 相同的网络掩码。
      • 单击确定
    6. 对另一个虚拟服务器也重复这些步骤。

如果 Citrix ADC 设备已配置了 Citrix Virtual Desktops,配置会发生变化

如果您已经为 Citrix ADC 设备配置了 Citrix Virtual Desktops,则必须进行以下配置更改,才能使用安全 XML 功能。

  • 在会话启动之前,请更改网关的 Security Ticket Authority URL,以使用负载平衡虚拟服务器的 FQDN。
  • 确保 TrustRequestsSentToTheXmlServicePort 参数设置为 False。 默认情况下,TrustRequestsSentToTheXmlServicePort 参数设置为 False。 但是,如果客户已为 Citrix Virtual Desktops 配置了 Citrix ADC,则 TrustRequestsSentToTheXmlServicePort 设置为 True。
  1. 在 Citrix ADC GUI 中,转到配置 > 与 Citrix 产品集成,然后单击 XenApp 和 XenDesktop
  2. 选择网关实例,然后单击编辑图标。

    编辑现有网关配置

  3. 在 StoreFront 窗格中,单击编辑图标。

    编辑 StoreFront 详细信息

  4. 添加 Secure Ticket Authority URL
    • 如果启用了安全 XML 功能,STA URL 必须是负载平衡服务的 URL。
    • 如果禁用了安全 XML 功能,STA URL 必须是 STA(DDC 的地址)的 URL,并且 DDC 上的 TrustRequestsSentToTheXmlServicePort 参数必须设置为 True。

    添加 STA URL

管理安全密钥