管理安全密钥
重要:
- 必须将此功能与 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 进行通信。启用此功能后,将阻止不包含该密钥的任何请求。使用此功能可添加额外的安全层,以防止来自内部网络的攻击。
使用此功能的常规工作流程如下:
-
启用 Web Studio 以显示功能设置。
-
为您的站点配置设置。
-
为 StoreFront 配置各项设置。
-
为 Citrix ADC 配置各项设置。
启用 Web Studio 以显示功能设置
默认情况下,安全密钥的设置在 Web Studio 中处于隐藏状态。要让 Web Studio 能够显示这些设置,请按如下所示使用 PowerShell SDK:
- 运行 Citrix Virtual Apps and Desktops PowerShell SDK。
- 在命令窗口中,运行以下命令:
-
Add-PSSnapIn Citrix*
。此命令将添加 Citrix 管理单元。 Set-ConfigSiteMetadata -Name "Citrix_DesktopStudio_SecurityKeyManagementEnabled" -Value "True"
-
有关 PowerShell SDK 的详细信息,请参阅 SDK 和 API。
为站点配置设置
可以使用 Web Studio 或 PowerShell 为您的站点配置安全密钥设置。
使用 Web Studio
- 登录 Web Studio,在左侧窗格中选择设置。
-
找到管理安全密钥磁贴,然后单击编辑。此时将显示 Manage Security Key(管理安全密钥)页面。
-
单击刷新图标以生成密钥。
重要:
- 有两个密钥可供使用。通过 XML 和 STA 端口进行通信时,您可以使用相同的密钥或不同的密钥。我们建议您一次仅使用一个密钥。未使用的密钥仅用于密钥轮换。
- 请勿单击刷新图标以更新已在使用的密钥。如果这样做,将会发生服务中断。
-
选择需要密钥进行通信的位置:
- 单击保存以应用所做的更改并关闭窗口。
使用 PowerShell
以下是相当于 Web Studio 操作的 PowerShell 步骤。
-
运行 Citrix Virtual Apps and Desktops 远程 PowerShell SDK。
- 在命令窗口中,运行以下命令:
Add-PSSnapIn Citrix*
- 运行以下命令以生成密钥并设置 Key1:
New-BrokerXmlServiceKey
Set-BrokerSite -XmlServiceKey1 <the key you generated>
- 运行以下命令以生成密钥并设置 Key2:
New-BrokerXmlServiceKey
Set-BrokerSite -XmlServiceKey2 <the key you generated>
- 运行以下一个或两个命令以在对通信进行身份验证时使用密钥:
- 要对通过 XML 端口进行的通信执行身份验证,请执行以下操作:
Set-BrokerSite -RequireXmlServiceKeyForNFuse $true
- 要对通过 STA 端口进行的通信执行身份验证,请执行以下操作:
Set-BrokerSite -RequireXmlServiceKeyForSta $true
- 要对通过 XML 端口进行的通信执行身份验证,请执行以下操作:
有关指导和语法,请参阅 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]
<!--NeedCopy-->
请为以下参数输入相应的值:
Path to store
Resource feed name
secret
要配置通过 STA 端口进行通信所需的密钥,请使用 New-STFSecureTicketAuthority
和 Set-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
<!--NeedCopy-->
请为以下参数输入相应的值:
Gateway name
STA URL
Secret
有关指导和语法,请参阅 PowerShell 命令帮助。
为 Citrix ADC 配置各项设置
注意:
除非您使用 Citrix ADC 作为网关,否则不需要为 Citrix ADC 配置此功能。如果您使用 Citrix ADC,请按照以下步骤进行操作:
-
确保以下必备配置已就绪:
- 配置了以下 Citrix ADC 相关的 IP 地址。
- 用于访问 Citrix ADC 控制台的 Citrix ADC 管理 IP (NSIP) 地址。有关详细信息,请参阅配置 NSIP 地址。
- 子网 IP (SNIP) 地址,用于启用 Citrix ADC 设备与后端服务器之间的通信。有关详细信息,请参阅配置子网 IP 地址。
- Citrix Gateway 虚拟 IP 地址和负载平衡器虚拟 IP 地址,用于登录 ADC 设备以启动会话。有关详细信息,请参阅创建虚拟服务器。
- Citrix ADC 设备中所需的模式和功能已启用。
- 要启用这些模式,请在 Citrix ADC GUI 中导航到 System(系统)> Settings(设置)> Configure Mode(配置模式)。
- 要启用这些功能,请在 Citrix ADC GUI 中导航到 System(系统)> Settings(设置)> Configure Basic Features(配置基本功能)。
- 与证书有关的配置已完成。
- 此时将创建证书签名请求 (CSR)。有关详细信息,请参阅创建证书。
- 已安装服务器和 CA 证书以及根证书。有关详细信息,请参阅安装、链接和更新。
- 已为 Citrix Virtual Desktops 创建 Citrix Gateway。单击 Test STA Connectivity(测试 STA 连接)按钮以确认虚拟服务器处于联机状态,测试连接。有关详细信息,请参阅为 Citrix Virtual Apps and Desktops 设置 Citrix ADC。
- 配置了以下 Citrix ADC 相关的 IP 地址。
-
添加重写操作。有关详细信息,请参阅配置重写操作。
- 导航到 AppExpert > Rewrite(重写)> Actions(操作)。
- 单击 Add(添加)以添加新的重写操作。可以将该操作命名为“set Type to INSERT_HTTP_HEADER”(将“类型”设置为 INSERT_HTTP_HEADER)。
- 在 Type(类型)中,选择 INSERT_HTTP_HEADS。
- 在 Header Name(标题名称)中,输入 X-Citrix-XmlServiceKey。
- 在 Expression(表达式)中,使用引号添加
<XmlServiceKey1 value>
。可以从 Desktop Delivery Controller 配置中复制 XmlServiceKey1 值。
- 添加重写策略。有关详细信息,请参阅配置重写策略。
-
导航到 AppExpert > Rewrite(重写)> Policies(策略)。
-
单击添加添加新策略。
- 在 Action(操作)中,选择在前一步中创建的操作。
- 在 Expression(表达式)中,添加 HTTP.REQ.IS_VALID。
- 单击确定。
-
-
设置负载平衡。必须为每台 STA 服务器配置一个负载平衡虚拟服务器。否则,会话将无法启动。
有关详细信息,请参阅设置基本负载平衡。
- 创建负载平衡虚拟服务器。
- 导航到 Traffic Management(流量管理)> Load Balancing(负载平衡)> Servers(服务器)。
- 在 Virtual Servers(虚拟服务器)页面中,单击 Add(添加)。
- 在协议中,选择 HTTP。
- 添加负载平衡虚拟 IP 地址,然后在 Port(端口)中选择 80。
- 单击确定。
- 创建负载平衡服务。
- 导航到 Traffic Management(流量管理)> Load Balancing(负载平衡)> Services(服务)。
- 在 Existing Server(现有服务器)中,选择在上一步中创建的虚拟服务器。
- 在 Protocol(协议)中,选择 HTTP,然后在 Port(端口)中选择 80。
- 单击 OK(确定),然后单击 Done(完成)。
- 将服务绑定到虚拟服务器。
- 选择之前创建的虚拟服务器,然后单击 Edit(编辑)。
- 在 Services and Service Groups(服务和服务组)中,单击 No Load Balancing Virtual Server Service Binding(无负载平衡虚拟服务器服务绑定)。
- 在 Service Binding(服务绑定)中,选择之前创建的服务。
- 单击绑定。
- 将之前创建的重写策略绑定到虚拟服务器。
- 选择之前创建的虚拟服务器,然后单击 Edit(编辑)。
- 在 Advanced Settings(高级设置)中,单击 Policies(策略),然后在 Policies(策略)部分中单击 +。
- 在 Choose Policy(选择策略)中,选择 Rewrite(重写),然后在 Choose Type(选择类型)中选择 Request(请求)。
- 单击继续。
- 在 Select Policy(选择策略)中,选择之前创建的重写策略。
- 单击 Bind(绑定)。
- 单击 Done(完成)。
- 如有必要,请为虚拟服务器设置持久性。
- 选择之前创建的虚拟服务器,然后单击 Edit(编辑)。
- 在 Advanced Settings(高级设置)中,单击 Persistence(持久性)。
- 选择 Others(其他)作为持久性类型。
- 选择 DESTIP 以根据虚拟服务器选择的服务的 IP 地址(目标 IP 地址)创建持久性会话
- 在 IPv4 Netmask(IPv4 网络掩码)中,添加与 DDC 相同的网络掩码。
- 单击确定。
- 对另一个虚拟服务器也重复这些步骤。
- 创建负载平衡虚拟服务器。
如果 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。
- 在 Citrix ADC GUI 中,导航到 Configuration(配置)> Integrate with Citrix Products(与 Citrix 产品集成),然后单击 XenApp and XenDesktop(XenApp 和 XenDesktop)。
-
选择网关实例,然后单击编辑图标。
-
在 StoreFront 窗格中,单击编辑图标。
- 添加 Secure Ticket Authority URL。
- 如果启用了安全 XML 功能,STA URL 必须是负载平衡服务的 URL。
- 如果禁用了安全 XML 功能,STA URL 必须是 STA(DDC 的地址)的 URL,并且 DDC 上的 TrustRequestsSentToTheXmlServicePort 参数必须设置为 True。