设计决策:设计店面和网关集成

本文的目的是更深入地探讨Citrix Gateway与StoreFront的集成:设置意味着什么以及如何配置它们的设计考虑。

网关url、回呼url和GSLB url

StoreFront允许管理员定义多个网关,这些网关可用于单个Store中的网关直通身份验证。这个特性非常有用,因为它最大限度地减少了必须在大型全局部署中配置的store数量。我们看到,要使这个集成成功地工作,有四个关键参数:Citrix网关URL、虚拟服务器IP地址、回调URL和GSLB URL,这些将在下面的部分中讨论。

门户url

设置网关的第一个配置界面提示管理员输入友好的显示名和网关URL,即用户输入的URL,如下所示:

一般设置图1:常规设置

StoreFront只允许从其配置中定义的网关通过网关。Citrix网关将URL输入用户的web浏览器或工作空间应用程序(Receiver)客户端,并将其插入HTTP标头(XCITRIXVIA)。此信息被传递回StoreFront。然后StoreFront尝试将此值与定义的Gateway url之一进行匹配。的网关地址字段是强制性的,并且必须与用户的web浏览器或工作区应用程序(接收器)中输入的内容相匹配,以便网关通过到StoreFront才能工作。

回调url和虚拟服务器IP地址

接下来,我们将介绍一些可选字段:虚拟服务器IP地址和回调URL,它们的使用是相关的,并将一起介绍。这些字段显示在身份验证设置界面,如下图所示:

一般设置图2:身份验证设置

回调URL旨在由StoreFront用于收集有关用户的网关会话的附加信息。它并不严格用于身份验证。相反,它会查询应用于用户会话的Gateway Session策略的名称等信息。这些额外的细节可以用作基于CVAD访问控制(SmartAccess)的策略过滤器的一部分。在“无密码”身份验证场景中也需要它,例如当使用智能卡和SAML对用户的网关会话执行额外验证时。如果没有这些场景之一,则Callback URL和虚拟服务器IP地址字段都不是必需的,可以留空。

如果需要Callback URL,并且多个网关链接到单个Store, StoreFront需要一种方法,不仅可以正确识别流量是否通过网关,还可以正确识别流量来自哪个网关虚拟服务器,以便将回调路由到保存用户会话的正确网关。StoreFront首先通过匹配网关URL来执行此操作,网关URL是通过前面提到的XCITRIXVIA HTTP头接收到的。如果有多个网关指定了相同的网关URL(这将发生在GSLB架构中,其中相同的URL解析到多个单独的网关虚拟服务器),StoreFront退回到使用IP地址来标识网关,这是一个唯一的值。StoreFront通过另一个HTTP头(XCITRIXVIAVIP)从网关接收虚拟服务器VIP地址。对象的值进行匹配vServer IP地址字段中指定的一个网关。假设StoreFront可以根据虚拟服务器IP地址匹配识别一个Gateway,那么回调就成功完成。因此,只有当指定了Callback URL并且有多个网关绑定到具有相同网关URL的Store时,才需要虚拟服务器IP地址。

GSLB url

最后是GUI中没有显示的参数:GSLB URL。StoreFront 3.9版本引入了该功能仅通过PowerShell为网关定义指定GSLB URL参数。这个GSLB URL作为备用源,StoreFront接受来自相同网关定义的身份验证请求。参数中可见Get-STFRoamingGateway命令的输出。此参数的目的是减少需要为单个Store定义的网关总数,从而简化管理。如果没有它,必须为用户可以使用的每个Gateway URL +唯一Callback URL组合定义一个Gateway对象,这在企业环境中可能会迅速增加。

例如,一个统一的GSLB地址后面有三个全球网关(https://www.nsg.com):一个在美国,一个在欧洲,一个在亚洲,每个都有一个唯一的回调URL,需要三个定义的网关。最重要的是,这些管理员希望能够在每个网关上单独测试身份验证。这对于理解是否存在GSLB问题(导致为每个网关定义替代的唯一名称)非常重要。这个实例意味着必须为Store配置总共6个网关,如下所示:

显示名称 网关地址 vServer IP地址 回调URL
GSLB我们 https://www.nsg.com 1.1.1.1 https://callback-us.nsg.com
GSLB欧盟 https://www.nsg.com 2.2.2.2 https://callback-eu.nsg.com
GSLB美联社 https://www.nsg.com 3.3.3.3 https://callback-ap.nsg.com
我们的网关 https://us.nsg.com 1.1.1.1 https://callback-us.nsg.com
欧盟的网关 https://eu.nsg.com 2.2.2.2 https://callback-eu.nsg.com
美联社网关 https://ap.nsg.com 3.3.3.3 https://callback-ap.nsg.com

表1:完整的网关列表

通过应用GSLB URL参数,定义的网关数量可以减少一半,同时仍然允许用户通过所有GSLB和唯一网关地址进行连接,如下所示:

显示名称 网关地址 vServer IP地址 回调URL GSLB URL
我们的网关 https://us.nsg.com 1.1.1.1 https://callback-us.nsg.com https://www.nsg.com
欧盟的网关 https://eu.nsg.com 2.2.2.2 https://callback-eu.nsg.com https://www.nsg.com
美联社网关 https://ap.nsg.com 3.3.3.3 https://callback-ap.nsg.com https://www.nsg.com

表2:带GSLB URL的综合网关列表

尽管参数名为“GslbUrl”,但它的作用只是作为该Gateway定义的备用主机名。事实并非如此作为GSLB地址,只是访问同一网关虚拟服务器的另一个名称。另一个用例是将DNS与路由到同一虚拟服务器的外部/内部网关地址分开。

注意,这个参数不能被工作区应用程序(接收器)识别,因此通常,上面例子中的url会被翻转,以便工作区应用程序(接收器)客户端可以继续使用GSLB地址,并且可以在通过web浏览器连接时使用每个网关的url:

显示名称 网关地址 虚拟服务器IP地址 回调URL GSLB URL
我们的网关 https://www.nsg.com 1.1.1.1 https://callback-us.nsg.com https://us.nsg.com
欧盟的网关 https://www.nsg.com 2.2.2.2 https://callback-eu.nsg.com https://eu.nsg.com
美联社网关 https://www.nsg.com 3.3.3.3 https://callback-ap.nsg.com https://ap.nsg.com

表3:GSLB URL调整为接收器和工作区应用程序

设计外卖

总结一下前面的部分:

  • 网关URL总是需要的,必须匹配什么是进入web浏览器或工作空间应用程序(接收器)客户端
  • 只有在使用SmartAccess CVAD策略或无密码身份验证方法(智能卡、SAML等)时才需要回调URL
  • 只有当指定了回调URL并且有多个绑定到具有相同指定网关URL的存储的网关时,才需要虚拟服务器IP地址
  • GSLB URL是StoreFront 3.9中添加的一个新参数。当一个网关虚拟服务器可以通过多个URL访问时,URL简化了网关与StoreFront的集成
  • 工作区应用程序(接收器)不读取GSLB URL参数,因此网关URL始终是这些客户端使用的URL,而GSLB URL是一个可用于基于web浏览器的连接的备用URL

选择“默认设备”

当管理员为商店启用远程访问时,必须定义一个“默认设备”,如下截图所示。

默认的设备图3:默认设备

对于基于web浏览器的访问,“默认设备”设置没有影响。对于基于工作区应用程序(Receiver)的访问,此设置在连接到Store时作为Store配置的一部分下载到Receiver。之后默认使用网关。如果所有定义的网关都共享Gateway URL,那么同样,发生的情况没有影响(Receiver只是使用该Gateway定义来提取URL以查询身份验证,因此在GSLB配置中,该查询被GSLB路由)。如前所述,工作区应用程序(接收器)不读取“GSLB URL”参数,因此定义为默认设备的网关必须定义一个适当的网关URL,如上一节中的“表3:为接收器和工作区应用程序调整的GSLB URL”所示。

如果绑定到Store的网关具有不同的网关url,则所有Receiver客户端都将使用定义为默认值的网关url。如果您为不同的用户组定义了不同的网关,这种情况就会出现问题。例如,一个网关对带令牌的用户配置LDAP+RADIUS认证,一个网关配置智能卡认证。如果用户在工作空间应用程序(接收方)中输入智能卡网关URL,但StoreFront将LDAP+RADIUS网关定义为默认网关,则在工作空间应用程序(接收方)连接到StoreFront并缓存配置后,无论用户最初输入的是什么,所有未来的身份验证请求都将发送到LDAP+RADIUS网关。解决这个问题的唯一方法是建立一个单独的商店或服务器组。

设计外卖

总结:

  • 启用远程访问的存储有一个默认的网关,它定义了工作区应用程序(接收器)客户端使用的网关URL
  • 要使用多个网关url和工作区应用程序(接收者)发起的访问,必须定义单独的Stores或StoreFront服务器组

最佳HDX路由

除了执行身份验证之外,在StoreFront中定义网关的另一个原因是为了实现最佳HDX路由。此设置为每个Citrix虚拟应用程序和桌面站点或区域分配一个网关。设置的目的是通过与用户原始身份验证点不同的网关(例如通过更接近承载用户会话的VDA的网关)重新路由ICA连接。如果这个“最佳”网关没有执行其他身份验证,它只需要STA服务器绑定会话代理,并且可以在StoreFront中设置为“仅HDX路由”网关类型,这消除了所有的身份验证设置。

在如下所示的存储设置中将该网关分配给站点(通过管理交付控制器)或区域(通过管理区域)时,有一个可选选项外部只复选框。

最佳HDX路由图4:最优HDX路由

该设置意味着“最佳”网关将仅用于“外部”发起的ICA会话,即使用Gateway passthrough作为身份验证类型的会话(StoreFront假定这意味着用户发起于公司网络之外)。该设置不适用于直接在StoreFront进行身份验证的用户(StoreFront认为这意味着用户在公司网络内)。如果清除了复选框,则所有前往该站点或区域的ICA会话都将通过定义的网关路由,无论用户是外部还是内部。没有“仅限内部”复选框。这意味着定义的网关URL需要从所有可能的用户位置都可以访问,如果没有拆分DNS,这可能是一个挑战。这是使用最优HDX路由的复杂架构场景可能需要单独的store(因为这是store级别设置)的另一种情况。

设计外卖

总结:

  • 用于最优HDX路由的网关只需要绑定STA服务器
  • 用于最佳HDX路由的网关可以是“仅限外部”或“外部和内部”,但不能是“仅限内部”。
  • 单独的存储或服务器组需要定义单独的内部和外部网关url,以实现最佳HDX路由

灯塔

信标是与StoreFront配置中的网关分开定义的,当您为商店启用远程访问并配置第一个网关时,信标将自动启用。信标是网站地址,它帮助工作区应用程序(接收器)识别端点客户端是在公司网络内部还是外部,如果客户端被确定为“内部”,则将访问请求无缝地路由到StoreFront基础URL或默认网关地址,如果客户端被确定为“外部”,则无需提示用户进行更多输入。要做到这一点,工作空间应用程序(接收器)将首先查询内部信标地址(假设外部的,面向internet的地址总是可以访问),然后只有在内部失败时才返回到外部信标地址。如果它可以到达内部URL(获得HTTP 200响应),则假定客户端位于公司网络上,并将被定向到StoreFront基础URL。

管理指引图5:管理信标

如果用户通过web浏览器连接,则根本不使用信标。这是因为用户通过在浏览器栏中键入URL来提供输入,因此将浏览器定向到特定的地址。对于Workspace应用程序(Receiver),在初始配置之后,用户永远不会提供要使用的URL的进一步输入。工作区应用程序(接收器)有基本URL和任何配置的网关URL缓存为配置的一部分,并且需要能够在用户尝试使用应用程序时代表用户智能地选择使用哪个URL。

不需要修改或调整信标地址,除非使用相同的网关URL和StoreFront基础URL。在这种情况下,外部和内部信标将是相同的,并且内部URL将可以从外部访问,这违背了目的。因此,管理员需要为内部信标选择“指定信标地址”,并输入一个只能从企业网络访问的网站。否则,了解如何应用信标地址是一个很好的故障排除实践,以便在调查基于web浏览器的访问问题时不检查它们。

设计外卖

总结:

  • 信标仅用于工作空间应用程序(接收器)客户端
  • 只有当StoreFront基础URL与Gateway URL匹配(并且可以从公司网络外部访问)时,才会修改信标。

参考文献

整合网关和店面

配置最优HDX路由

店面新功能

设计决策:设计店面和网关集成