使用 Citrix Secure Browser 延长旧版 Web 应用程序的寿命
在 Web 应用程序和框架的世界中,必须接受多样性。不同类型的用户、组和公司需要访问正确的工具、应用程序和权限,才能连接到支持 Web 的业务应用程序。在大多数情况下,有一些合规性因素决定了如何访问这些应用程序。需要支持较旧的子系统和较旧的浏览器框架的企业面临着一项艰巨的任务,要为业务关键型应用程序提供足够的访问权限并满足合规性要求。以下文档介绍了如何在创建更新和迁移策略时利用 Citrix Secure Browser 延长旧版 Web 应用程序和浏览器的访问权限以及使用寿命。
该解决方案要求发布允许外部或内部用户访问的合规浏览器,无论用户如何连接或使用哪种浏览器连接到内部站点。此解决方案利用 XenDesktop 服务器操作系统 VDA、StoreFront、NetScaler Gateway 和 XenApp Secure Browser。当符合IT管理员设置的所有要求时,用户将合规浏览器或端点重定向到使用本机浏览器;如果策略检测到不合规的浏览器或端点,则会将用户重定向到远程容器化发布的浏览器会话。无论用户如何连接到环境,用户只需知道每个资源一个 URL(这样可以降低培训和支持成本)。
体系结构
以下部分将介绍用户如何访问内部站点,而不管用户是从内部网络还是外部网络进行连接。在这种情况下,一种浏览器类型 (Internet Explorer) 是兼容的浏览器,另一种 (Google Chrome) 是不兼容的。由每家公司决定如何以及哪些浏览器映射到合规性策略。
对于此解决方案,我们假设 NetScaler Gateway 配置为对已发布的应用程序进行外部访问,这在图 1 中表示为网关虚拟服务器 1。第二个虚拟服务器(网关虚拟服务器 2)将用户重定向到启动 Secure Browser 的 HTML5 Receiver 会话。
用例
需要维护当前浏览器不再支持的旧版 Web 应用程序。在这种情况下,IT 仍然需要维护专为 Internet Explorer 8 设计的网站,并且供应商不再发布支持新浏览器或其他浏览器的增强功能。要解决此问题,IT 管理员发布了 Secure Browser,以允许满足浏览器要求的用户访问站点。下图解释了内部和外部用户工作流中的每个连接。
连接工作流程
- 每个用户都输入从外部 DNS 服务器解析的站点 URL,在我们的示例中为
https://train.qckr.net
- 浏览器连接到 NetScaler Gateway 负载平衡器并确定合规性要求。
- 当浏览器不合规时,内部和外部用户都会重定向到 NetScaler Gateway 虚拟服务器。当浏览器合规时,NetScaler Gateway 会通过负载平衡器为外部用户代理与内部站点的连接,并将本地浏览器重定向到内部用户的站点。
- 虚拟服务器会自动启动由 StoreFront 枚举的会话。
- StoreFront 联系 XenDesktop 控制器以获取会话信息和路由。
- 会话通过 Secure Browser 桌面组启动;在这种情况下,会话是具有已发布兼容浏览器的服务器操作系统 VDA。
- 会话通过 NetScaler Gateway 设备上的 ICA 代理进行连接。
- Citrix Receiver for HTML5 可在本机浏览器中建立用户的会话。
- 内部站点通过与 Citrix Receiver for HTML5 的 Secure Browser 会话显示。
设置和配置
本部分内容介绍如何使用 NetScaler Gateway 远程连接实现当前 XenDesktop 环境的解决方案。
解决方案要求
安装程序需要安装和配置以下组件:
- XenDesktop 桌面控制器服务器
- 具有配置为外部访问的应用商店的 Citrix StoreFront 服务器
- 具有 XenDesktop 虚拟服务器的 NetScaler Gateway
- 使用已安装的浏览器作为 Secure Browser 的服务器操作系统 VDA
- 指向新 NetScaler 负载平衡器的外部 DNS 地址
- 指向新的 NetScaler Gateway 虚拟服务器的外部 DNS 地址
配置
XenDesktop 桌面控制器
将服务器操作系统 VDA 添加到名为 Secure Browser 目录的新计算机目录。
为 Secure Browser 目录创建交付组并发布 Internet Explorer。在命令行参数中,键入 -k <URL of Internal Site>。-k 参数用于在 Kiosk 模式下打开 Internet Explorer。在这个例子中,我们正在发布 Internet Explorer 8 并使用内部站点作为 URL。
您可以将交付组分配给特定的用户和组。如果用例不需要添加桌面访问权限,则无需添加桌面访问权限。
在服务器操作系统 VDA 上,安装服务器或客户端身份验证证书,以便在控制器上启用 SSL 和 VDA 通信。
装载 XenDesktop 7.6 或更高版本安装介质。打开一个 PowerShell 命令窗口,然后运行 %MediaDrive%:\Support\Tools\SslSupport\Enable-VdaSSL.ps1 –Enable
重新启动服务器操作系统 VDA 实例。
在 XenDesktop 控制器上,打开 PowerShell 命令窗口并运行命令 ASNP Citrix*。
运行以下三个命令以启用代理到 VDA 的安全通信:
Get-BrokerAccessPolicyRule –DesktopGroupName ‘Secure Browser Desktop Group’ | Set-BrokerAccessPolicyRule –HdxSslEnabled $true*
<!--NeedCopy-->
Set-BrokerSite –DnsResolutionEnabled $true
<!--NeedCopy-->
Set-BrokerSite -TrustRequestsSentToTheXmlServicePort $true*
<!--NeedCopy-->
StoreFront
创建名为 SecureBrowser 的新应用商店,然后选择“仅允许未经身份验证的用户访问此应用商店”。由于所有用户都将令牌从 NetScaler Gateway 传递到控制器,因此流量将经过身份验证。
添加 XenDesktop 控制器。
启用远程访问并添加将在以下步骤中配置的第二个 NetScaler Gateway。对于此配置,您不需要在 StoreFront/NetScaler Gateway 配置中使用回调或 VIP 地址。
使用向导默认设置完成应用商店的创建。
创建应用商店后,单击管理 Receiver for Web 站点。
在“管理 Receiver for Web 站点”页面上,单击“配置”,转到“网站快捷方式”,添加内部网站 URL,然后单击“获取快捷方式”链接。
以有权访问已发布的 Secure Browser 应用程序的普通用户身份登录。
复制 Secure Browser 应用程序的 URL,并将其保存在文本文件中,以便稍后在 NetScaler Gateway 配置中使用。
返回到编辑 Receiver for Web 属性,单击“部署 Citrix Receiver”,然后选择始终使用 Receiver for HTML5。选择选项在与 Receiver for Web 相同的选项卡中启动应用程序。
单击 Workspace 控制,在注销操作中,选择终止。清除选项启用 Workspace 控制。
单击“客户端界面设置”,清除“自动启动桌面”选项,然后单 击“确定”以保存设置。
在文本编辑器中,打开文件 C:\inetpub\wwwroot\Citrix\SecureBrowserWeb\web.config。
查找设置 <appShortcuts promptForUntrustedShortcuts=”true”>,将其设置为 false 并保存更改。**禁用此设置可防止 StoreFront 询问用户是否要启动应用程序。
NetScaler Gateway
在 NetScaler Gateway GUI 的导航窗格中,单击 XenApp 和 XenDesktop,然后在控制板上单击创建新网关。
在 StoreFront 属性中,将站点路径设置为 /Citrix/SecureBrowserWeb,并将应用商店名称设置为 SecureBrowser 作为 StoreFront 服务器中的新应用商店。
继续向导并保存新的虚拟服务器。
在 NetScaler Gateway 节点上,展开策略并转到会话。
选择“操 作”选项卡,编辑第二个虚拟服务器的新创建操作,然后编辑 AC_WB_ 策略操作。
在“已发布的应用程序”选项卡上,粘贴以前保存的“Web 界面地址”字段中的应用程序快捷方式 URL,然后单击“确定”。
在导航窗格中,单击 AppExpert 节点,展开响应者部分,然后单击操作。
添加一个新的 操作,将其命名为“内部连接”,并将类型设置为“重定向”。
在“表 达式”字段中,添加要用引号连接的内部站点的 URL,例如https://mysite.acme.com
单击创建保存操作。
添加新操作,将其命名为“外部连接”,并将类型设置为“重定向”。
在表达式字段中,添加由引号引起的第二个 NetScaler Gateway 虚拟服务器的 URL,例如 https://gateway.acme.com
单击创建保存操作。
转到“响应程序策略”节点。
添加新策略,将其命名为“检测浏览器符合性”,在“操作”下拉列表中,选择您之前创建的“外部连接”操作。
将未定义的结果操作设置为 NOOP。
在表达式字段中,添加以下文本:
HTTP.REQ.HEADER(“User-Agent”).CONTAINS(“AppleWebKit”) | HTTP.REQ.HEADER(“User-Agent”).CONTAINS(“Chrome”) |
上面的表达式检测到不合规的浏览器,或者在本用例中不是 Internet Explorer。
单击创建保存更改。
添加新策略,将其命名为“检测客户端源”,将之前创建的“操作”设置为“内部连接”操作。
将未定义的结果操作设置为 NOOP。
在表达式字段中,添加以下文本:
(CLIENT.IP.SRC.IN_SUBNET(172.17.0.0/23) |
替换或添加以上每个子网以匹配您的内部网络环境。在这种情况下,用户代理与配置的 Internet Explorer 版本匹配,并且客户端正在从内部网络进行连接。
单击创建保存更改。
在导航窗格中,展开流量管理 > 负载平衡,然后选择服务器。添加用于托管内部站点的服务器。
在导航窗格中,单击负载均衡下的服务组,添加新的服务组,将协议设置为 SSL,并将上一步中创建的服务器绑定到服务组成员列表。
单击完成。
在导航窗格中,单击负载平衡节点中的虚拟服务器,单击添加并命名服务器 Intranet 站点。
将 协议 设置为 SSL ,然后键入负载平衡器的 IP 地址。
绑定在上一步中创建的服务组内部 Web 服务器,并配置用于外部访问的证书。将内部根 CA 证书绑定到 CA 证书,以便负载平衡器可以将 SSL 卸载到内部 Web 服务器。
在详细信息窗格的高级设置中,单击 + 策略。单击加号 (+) 以绑定新策略。
选择“选择策略”的响应程序 ,然后单击“继续”。选择“检测客户端源”并将优先级设置为 100。
单击 Bind(绑定)。
单击响应程序策略部分,单击添加绑定,选择检测浏览器符合性并将优先级设置为 110。单击 Bind(绑定)。
单击“关闭”,然后单击“完成”。
保存 NetScaler Gateway 配置。
用例结果和期望
本节回顾每个用户如何连接上述配置的使用案例和预期结果。在以下所有用例中,用户打开本地安装的浏览器,并键入培训站点的外部 URL。
使用不合规浏览器的外部用户
预期结果: 用户在浏览器选项卡中启动 Citrix Receiver 会话,该选项卡使用已发布的 Secure Browser 呈现站点。
使用兼容浏览器的外部用户
预期结果:NetScaler Gateway 代理本地浏览器和内部网站之间的流量。
使用不合规浏览器的内部用户
预期结果:用户在浏览器选项卡中启动 Citrix Receiver 会话,该选项卡使用已发布的 Secure Browser 呈现站点。
使用兼容浏览器的内部用户
预期结果:用户会话重定向到内部站点;NetScaler Gateway 不代理连接,因为客户端是从内部网络进行连接。
已知限制
- 传递给 NetScaler Gateway 虚拟服务器的动态 URL 不支持将 Citrix Receiver for HTML5 用于 Secure Browser。
- 要将启动 URL 传递给虚拟服务器,请在会话配置文件中禁用 ICA 代理。ICA 代理是 Citrix Receiver for HTML5 的一个要求。
- Citrix Receiver for HTML5 不支持内容重定向。
- 管理员可以在 StoreFront 中为 Web 站点配置 Citrix Receiver。
- 具有多个独立站点的环境,为每个站点创建不同的 NetScaler Gateway 会话策略并将它们绑定到虚拟服务器,或者创建一个可以托管内部站点 URL 的内部启动门户。