Citrix Gateway

SameSite cookie 属性的配置支持

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

直到 2020 年 2 月,尚未在 Citrix ADC 设备中显式设置该 SameSite 属性。浏览器采用了默认值 (None)。未设置 SameSite 属性不会影响 Citrix Gateway 和 Citrix ADC AAA 部署。

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

  • :表示浏览器仅在安全连接时在跨站点环境中使用 cookie。
  • 松懈: 表示浏览器在同一站点上下文中使用 cookie 处理请求。在跨网站上下文中,只有像 GET 请求这样的安全 HTTP 方法才能使用 cookie。
  • Strict(严格):仅在同一站点环境中使用 cookie。

如果 cookie 中没有 SameSite 属性,谷歌浏览器会假设功能为 SameSite = Lax。 因此,对于需要浏览器插入 cookie 的跨站点环境的 iframe 中的部署,Google Chrome 不会共享跨站点 cookie。因此,Web 站点中的 iframe 可能无法加载。

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

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

  1. 设置虚拟服务器的 SameSite 属性
  2. 将 Cookie 绑定到 patset (如果浏览器丢弃了跨站点 Cookie,则浏览器会丢弃)

使用 CLI 设置 SameSite 属性

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

set vpn vserver VP1 -SameSite  [ STRICT | LAX | None ]
set aaa vserver VP1 -SameSite  [ STRICT | LAX | None ]
<!--NeedCopy-->

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

set vpn param VP1 -SameSite  [ STRICT | LAX | None ]
set aaa param VP1 -SameSite  [ STRICT | LAX | None ]
<!--NeedCopy-->

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

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

示例:

bind patset ns_cookies_SameSite "NSC_TASS"
bind patset ns_cookies_SameSite "NSC_TMAS"
<!--NeedCopy-->

使用 GUI 设置 SameSite 属性

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

  1. 导航到 Citrix Gateway > 虚拟服务器
  2. 选择虚拟服务器,然后单击 Edit(编辑)。
  3. 在 “ 基本设置 ” 部分中选择编辑图标,然后单击 “ 更多”。

    在基本设置中单击更多

  4. SameSite 中,根据需要选择该选项。

    ![设置 SameSite 复选框] (/en-us/citrix-gateway/media/samesite-gateway-virtualserver.png)

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

  1. 导航到 Citrix Gateway > 全局设置 > 更改全局设置。
  2. 单击安全选项卡。
  3. 在中 SameSite,根据需要选择该选项。

    ![选择 SameSite 复选框] (/en-us/citrix-gateway/media/samesite-gateway-global-setting.png)

SameSite cookie 属性的配置支持