Citrix ADC

对SameSite cookie属性的配置支持

SameSite属性指示浏览器是否可以将cookie用于跨站点上下文或仅用于同一站点上下文。此外,如果一个应用程序打算在跨站点上下文中被访问,那么它只能通过HTTPS连接来实现。具体请参见RFC6265。

直到2020年2月,SameSite属性才在Citrix ADC中显式设置。浏览器采用默认值(None)。不设置SameSite属性不会影响Citrix Gateway和身份验证、授权和审计部署。

随着某些浏览器的升级,例如b谷歌Chrome 80,默认的cookie跨域行为会发生变化。SameSite属性可以设置为以下值之一。谷歌Chrome的默认值设置为Lax。对于其他浏览器的某些版本,SameSite属性的默认值可能仍然设置为None。

  • 没有一个:表示浏览器只在安全连接的跨站环境中使用cookie。
  • 宽松的:表示浏览器对来自同一域和跨站点的请求使用cookie。对于跨站点,只有安全的HTTP方法(如GET请求)才能使用cookie。例如,一个子域abc.example.com的GET请求可以使用GET读取另一个子域xyz.example.com的cookie。对于跨站点,只使用安全HTTP方法,因为安全HTTP方法不会更改服务器状态。有关详细信息,请参见https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite#lax
  • 严格的:仅在同一站点上下文中使用cookie。

如果cookie中没有SameSite属性,则谷歌Chrome将假定SameSite = Lax的功能。因此,对于具有跨站点上下文的iframe中的部署(需要浏览器插入cookie),谷歌Chrome不会共享跨站点cookie。因此,网站内的iframe可能无法加载。

一个名为SameSite的新cookie属性被添加到VPN和身份验证、授权和审计虚拟服务器中。可以在全局级别和虚拟服务器级别设置此属性。

要配置SameSite属性,必须执行以下操作:

  1. 为虚拟服务器设置SameSite属性
  2. 将cookie绑定到patset(如果浏览器丢失跨站点cookie)

使用CLI设置SameSite属性

要在虚拟服务器级别设置SameSite属性,请使用以下命令。

set vpn vserver VP1 -SameSite [STRICT | LAX | None] set authentication vserver AV1 -SameSite [STRICT | LAX | None] 

要在全局级别设置SameSite属性,请使用以下命令。

set aaa参数-SameSite [STRICT | LAX |无]set vpn参数-SameSite [STRICT | LAX |无]

请注意:虚拟服务器级别设置优先于全局级别设置。Citrix建议在虚拟服务器级别设置SameSite cookie属性。

使用CLI将cookie绑定到patset

如果浏览器丢失了跨站点的cookie,您可以将该cookie字符串绑定到现有的ns_cookies_SameSite patset,以便将SameSite属性添加到cookie中。

例子:

绑定patset ns_cookies_SameSite "NSC_TMAS" 

通过使用GUI设置SameSite属性

在虚拟服务器级别设置SameSite属性:

  1. 导航到安全> AAA -应用流量>虚拟服务器。
  2. 选择虚拟服务器,单击编辑
  3. 控件中的编辑图标基本设置S部分,点击更多的
  4. SameSite,根据需要选择该选项。

选中“同一站点”复选框

要在全局级别设置SameSite属性:

  1. 导航到安全> AAA -应用流量>更改认证设置。

    更改身份验证设置

  2. 配置AAA参数页,单击SameSite列表,并根据需要选择该选项。

    选择SameSite选项

对SameSite cookie属性的配置支持