双跳 DMZ 部署中的通信流
要了解双跳 DMZ 部署中涉及的配置问题,您必须对双跳 DMZ 部署中各种 NetScaler Gateway 和 Citrix Virtual Apps 组件如何通信以支持用户连接有基本的了解。
用户连接到 StoreFront™ 的过程以连续流的形式发生。此过程涉及以下高级步骤。
-
验证用户
-
创建会话票证
-
启动 Citrix Workspace 应用程序
-
完成连接
下图显示了用户连接到 StoreFront 过程中发生的步骤。在安全网络中,运行 Citrix Virtual Apps™ 的计算机也运行安全票证颁发机构 (STA)、XML 服务和已发布的应用程序。
连接过程
验证用户是双跳 DMZ 部署中用户连接过程的第一步。
下图显示了此部署中的用户连接过程。
在用户身份验证阶段,会发生以下基本过程:
-
用户在 Web 浏览器中键入 NetScaler Gateway 的地址(例如
<https://www.ng.wxyco.com>)以连接到第一个 DMZ 中的 NetScaler Gateway。如果您在 NetScaler Gateway 上启用了登录页面身份验证,则 NetScaler Gateway 会对用户进行身份验证。 -
第一层DMZ中的NetScaler Gateway接收请求。
-
NetScaler Gateway 将 Web 浏览器连接重定向到 StoreFront。
-
StoreFront 将用户凭据发送到内部网络中服务器场中运行的 Citrix® XML 服务。
-
Citrix XML 服务对用户进行身份验证。
-
XML 服务创建用户有权访问的已发布应用程序列表,并将此列表发送到 StoreFront。注意:
-
如果您在 NetScaler Gateway 上启用身份验证,设备会将 NetScaler Gateway 登录页面发送给用户。用户在登录页面上输入身份验证凭据,设备对用户进行身份验证。然后,NetScaler Gateway 将用户凭据返回到 StoreFront。
-
如果您未启用身份验证,NetScaler Gateway 不会执行身份验证。设备连接到 StoreFront,检索 StoreFront 登录页面,并将 StoreFront 登录页面发送给用户。用户在 StoreFront 登录页面上输入身份验证凭据,NetScaler Gateway 将用户凭据传回 StoreFront。
创建会话票证是双跳 DMZ 部署中用户连接过程的第二阶段。在会话票证创建阶段,会发生以下基本过程: -
-
StoreFront 与内部网络中的 XML 服务和安全票证颁发机构 (STA) 进行通信,为用户有权访问的每个已发布应用程序生成会话票证。会话票证包含运行托管已发布应用程序的 Citrix Virtual Apps 的计算机的别名地址。
-
STA 保存托管已发布应用程序的服务器的 IP 地址。然后,STA 将请求的会话票证发送到 StoreFront。每个会话票证都包含一个别名,该别名表示托管已发布应用程序的服务器的 IP 地址,但不是实际的 IP 地址。
-
StoreFront 为每个已发布应用程序生成一个 ICA® 文件。ICA 文件包含由 STA 颁发的票证。然后,StoreFront 创建一个网页,其中包含指向已发布应用程序的链接列表,并将此网页发送到用户设备上的 Web 浏览器。启动 Citrix Workspace 应用程序是双跳 DMZ 部署中用户连接过程的第三阶段。基本过程如下:
-
用户单击 StoreFront 中已发布应用程序的链接。StoreFront 将该已发布应用程序的 ICA 文件发送到用户设备的浏览器。ICA 文件包含指示 Web 浏览器启动 Receiver 的数据。ICA 文件还包含第一个 DMZ 中 NetScaler Gateway 的完全限定域名 (FQDN) 或域名系统 (DNS) 名称。
-
Web 浏览器启动 Receiver,用户使用 ICA 文件中的 NetScaler Gateway 名称连接到第一个 DMZ 中的 NetScaler Gateway。进行初始 SSL/TLS 握手以建立运行 NetScaler Gateway 的服务器的身份。完成连接是双跳 DMZ 部署中用户连接过程的第四个也是最后一个阶段。在连接完成阶段,会发生以下基本过程:
-
用户单击 StoreFront 中已发布应用程序的链接。
-
Web 浏览器接收 StoreFront 生成的 ICA 文件并启动 Citrix Workspace 应用程序。 注意:ICA 文件包含指示 Web 浏览器启动 Citrix Workspace 应用程序的代码。
-
Citrix Workspace 应用程序启动与第一个 DMZ 中 NetScaler Gateway 的 ICA 连接。
-
第一个 DMZ 中的 NetScaler Gateway 与内部网络中的安全票证颁发机构 (STA) 通信,以将会话票证中的别名地址解析为运行 Citrix Virtual Apps 或 StoreFront 的计算机的真实 IP 地址。此通信通过第二个 DMZ 由 NetScaler Gateway 代理进行代理。
-
第一个 DMZ 中的 NetScaler Gateway 完成与 Citrix Workspace 应用程序的 ICA 连接。
-
Citrix Workspace 应用程序现在可以通过两个 NetScaler Gateway 设备与内部网络上运行 Citrix Virtual Apps 的计算机进行通信。
完成用户连接过程的详细步骤如下: -
-
Citrix Workspace 应用程序将已发布应用程序的 STA 票证发送到第一个 DMZ 中的 NetScaler Gateway。
-
第一个 DMZ 中的 NetScaler Gateway 联系内部网络中的 STA 进行票证验证。为了联系 STA,NetScaler Gateway 与第二个 DMZ 中的 NetScaler Gateway 代理建立 SOCKS 或带 SSL 的 SOCKS 连接。
-
第二个 DMZ 中的 NetScaler Gateway 代理将票证验证请求传递给内部网络中的 STA。STA 验证票证并将其映射到托管已发布应用程序的运行 Citrix Virtual Apps 的计算机。
-
STA 将响应发送到第二层 DMZ 中的 NetScaler Gateway 代理,该响应随后传递到第一层 DMZ 中的 NetScaler Gateway。此响应完成票证验证,并包含托管已发布应用程序的计算机的 IP 地址。
-
第一层 DMZ 中的 NetScaler Gateway 将 Citrix Virtual Apps 服务器的地址合并到用户连接数据包中,并将此数据包发送到第二层 DMZ 中的 NetScaler Gateway 代理。
-
第二层 DMZ 中的 NetScaler Gateway 代理向连接数据包中指定的服务器发出连接请求。
-
服务器响应第二层 DMZ 中的 NetScaler Gateway 代理。第二层 DMZ 中的 NetScaler Gateway 代理将此响应传递到第一层 DMZ 中的 NetScaler Gateway,以完成服务器与第一层 DMZ 中的 NetScaler Gateway 之间的连接。
-
第一层 DMZ 中的 NetScaler Gateway 通过将最终连接数据包传递给用户设备,完成与用户设备的 SSL/TLS 握手。用户设备与服务器之间的连接已建立。
-
ICA 流量在用户设备和服务器之间流动,通过第一层 DMZ 中的 NetScaler Gateway 和第二层 DMZ 中的 NetScaler Gateway 代理。