XenApp and XenDesktop

管理安全密钥

注意:

必须将此功能与 StoreFront 1912 LTSR CU2 或更高版本结合使用。

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

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

  1. 通过使用 PowerShell SDK 在 Studio 中启用该功能。

  2. 在 Studio 中配置各项设置。(使用 Studio 控制台或 PowerShell)。

  3. 在 StoreFront 中配置各项设置。(使用 PowerShell)。

启用安全密钥功能

默认情况下,该功能处于禁用状态。要将其启用,请使用远程 PowerShell SDK。有关远程 PowerShell SDK 的详细信息,请参阅 SDK 和 API

要启用此功能,请执行以下步骤:

  1. 运行 XenApp 和 XenDesktop 远程 PowerShell SDK。
  2. 在命令窗口中,运行以下命令:
    • Add-PSSnapIn Citrix*。此命令将添加 Citrix 管理单元。
    • Set-ConfigSiteMetadata -Name "Citrix_DesktopStudio_SecurityKeyManagementEnabled" -Value "True"

在 Studio 中配置各项设置

您可以通过使用 Studio 控制台或 PowerShell 在 Studio 中配置各项设置。

使用 Studio 控制台

启用该功能后,请导航到 Studio > 配置 > 管理安全密钥。您可能需要单击刷新才能显示管理安全密钥选项。

单击管理安全密钥后,将显示管理安全密钥窗口。

“管理安全密钥”向导

重要:

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

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

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

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

应用更改后,单击关闭退出管理安全密钥窗口。

使用 PowerShell

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

  1. 运行 XenApp 和 XenDeskop 远程 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 中配置各项设置

在 Studio 中完成配置后,您需要在 StoreFront 中使用 PowerShell 配置相关设置。

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

  • 要配置通过 XML 端口进行通信所需的密钥,请使用 Get-STFStoreServieSet-STFStoreService 命令。例如:
    • PS C:\> Set-STFStoreFarm $farm -Farmtype XenDesktop -Port 80 -TransportType HTTP -Servers <domain name1, domain name2> -XMLValidationEnabled $true -XMLValidationSecret <the key you generated in Studio>
  • 要配置通过 STA 端口进行通信所需的密钥,请使用 New-STFSecureTicketAuthority 命令。例如:
    • PS C:\> $sta = New-STFSecureTicketAuthority –StaUrl <STA URL> -StaValidationEnabled $true -StavalidationSecret <the key you generated in Studio>

有关指导和语法,请参阅 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 中导航到 System(系统)> Settings(设置)> Configure Mode(配置模式)
      • 要启用这些功能,请在 Citrix ADC GUI 中导航到 System(系统)> Settings(设置)> Configure Basic Features(配置基本功能)
    • 与证书有关的配置已完成。
      • 此时将创建证书签名请求 (CSR)。有关详细信息,请参阅创建证书

      创建 CSR 证书

      安装服务器证书

      安装 CA 证书

      虚拟桌面的网关

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

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

    添加重写操作

    1. Type(类型)中,选择 INSERT_HTTP_HEADS
    2. Header Name(标题名称)中,输入 X-Citrix-XmlServiceKey。
    3. Expression(表达式)中,使用引号添加 <XmlServiceKey1 value>。可以从 Desktop Delivery Controller 配置中复制 XmlServiceKey1 值。

    XML 服务密钥值

  3. 添加重写策略。有关详细信息,请参阅配置重写策略
    1. 导航到 AppExpert > Rewrite(重写)> Policies(策略)

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

    添加重写策略

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

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

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

      添加负载平衡服务器

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

      添加负载平衡服务

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

      将服务绑定到虚拟服务器

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

      绑定重写策略

      • Choose Policy(选择策略)中,选择 Rewrite(重写),然后在 Choose Type(选择类型)中选择 Request(请求)。
      • 单击继续
      • Select Policy(选择策略)中,选择之前创建的重写策略。
      • 单击 Bind(绑定)。
      • 单击完成
    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 中,导航到 Configuration(配置)> Integrate with Citrix Products(与 Citrix 产品集成),然后单击 XenApp and XenDesktop(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

管理安全密钥