Citrix ADC

对 SameSite cookie 属性的配置支持

SameSite 属性指示浏览器是否可以用于跨站点上下文,还是仅用于同一站点上下文。此外,如果应用程序打算在跨站点上下文中访问,那么它只能通过 HTTPS 连接来访问。有关详细信息,请参阅 RFC6265。

直到 2020 年 2 月,Citrix ADC 中未明确设置 SameSite 属性。浏览器采用默认值(无)。SameSite 属性的非设置不会影响 Citrix Gateway 和 Citrix ADC AAA 部署。

在某些浏览器升级后,例如 Google Chrome 80,Cookie 的默认跨域行为会发生变化。“SameSite”属性可设置为以下值之一。Google Chrome 的默认值设置为 Lax。对于某些版本的其他浏览器,SameSite 属性的默认值仍可能设置为“无”。

  • :指示浏览器仅在安全连接上下文中在跨站点上下文中使用 Cookie。
  • 宽松: 指示浏览器在同一站点上下文中使用 cookie 来处理请求。在跨站点上下文中,只有像 GET 请求这样的安全 HTTP 方法可以使用 cookie。
  • 严格:仅在同一站点上下文中使用 Cookie。

如果 Cookie 中没有相同列表属性,Google Chrome 采用 SameSite = Lax 的功能。 因此,对于具有跨站点上下文要求浏览器插入 Cookie 的 iframe 内部署,Google Chrome 不共享跨站点 Cookie。因此,网站中的 iframe 可能无法加载。

将向 VPN 和 Citrix ADC AAA 虚拟服务器添加一个名为 SameSite 的新 cookie 属性。可以在全局级别和虚拟服务器级别设置此属性。

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

  1. 设置虚拟服务器的 SameSite 属性
  2. 将 Cookie 绑定到程序集(如果浏览器丢弃跨站点 Cookie)

使用 CLI 设置 SameSite 属性

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

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

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

set vpn param VP1 -SameSite  [ STRICT | LAX | None ]
set aaa param VP1 -SameSite  [ STRICT | LAX | None ]

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

如果浏览器删除了跨站点 Cookie,您可以将该 Cookie 字符串绑定到现有的 ns_cookies_SameSite 模式集,以便将 SameSite 属性添加到 cookie 中。

示例:

bind patset ns_cookies_SameSite "NSC_TASS"
bind patset ns_cookies_SameSite "NSC_TMAS"

通过使用 GUI 设置 SameSite 属性

要在虚拟服务器级别设置 SameSite 属性,请执行以下操作:

  1. 导航到 安全性 > AAA — 应用程序流量 > 虚拟服务器。
  2. 选择一个虚拟服务器,然后单击 编辑
  3. 单击基本设置部分中的编辑图标,然后单击更多
  4. SameSite 中,根据需要选择该选项。

选择“SameSite”复选框

要在全局级别设置 SameSite 属性,请执行以下操作:

  1. 导航到 安全性 > AAA — 应用程序流量 > 更改身份验证设置。

    更改身份验证设置

  2. 配置 AAA 参数页中,单击 SameSite,然后根据需要选择该选项。

    选择“SameSite”选项

对 SameSite cookie 属性的配置支持