Привязка сеанса GCloud Load Balancer ie Заголовок `Set-Cookie` - становится ошибкой в ​​Firefox из-за неправильного использования атрибута` sameSite` - PullRequest
2 голосов
/ 27 мая 2020

Согласно странице руководства: https://cloud.google.com/load-balancing/docs/backend-service#http_cookie_affinity

HTTP Cook ie affinity маршрутизирует запросы к серверным виртуальным машинам или конечным точкам в NEG на основе HTTP-готовки ie названо в флаге HTTP_COOK IE. Если клиент не предоставляет повар ie, прокси генерирует повар ie и возвращает его клиенту в заголовке Set-Cookie.

Однако из-за новых изменений безопасности в firefox, появляется следующее предупреждение:

Cookie “GCLB” will be soon rejected because it has the “sameSite” attribute set to “none” or an invalid value, without the “secure” attribute. To know more about the “sameSite“ attribute, read https://developer.mozilla.org/docs/Web/HTTP/Cookies

Мне не удалось найти способ настроить балансировщик нагрузки, чтобы изменить атрибут sameSite.

Для пример открытия в mozilla firefox (76.0.1 (64-бит)) веб-сайта: https://staging.krizo.dk/ выводит в консоли вышеуказанное предупреждающее сообщение. (https://paste.pics/979RL) (изображение повара ie: https://paste.pics/979TR)

Пример конфигурации серверной части для воспроизведения:

apiVersion: cloud.google.com/v1beta1
kind: BackendConfig
metadata:
  name: example-name-config
spec:
  timeoutSec: 7200
  connectionDraining:
    drainingTimeoutSec: 30
  sessionAffinity:
    affinityType: "GENERATED_COOKIE" #"Client_IP" #ClientIP or NONE
    affinityCookieTtlSec: 86400

и входящий ресурс:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress
  annotations:
    ingress.kubernetes.io/rewrite-target: /
    kubernetes.io/ingress.class: gce
    cloud.google.com/neg: '{"ingress": true}'
    beta.cloud.google.com/backend-config: '{"ports": {"80":"example-name-config"}}'
    ingress.kubernetes.io/enable-cors: "true"
  labels:
    purpose: example-name-config
  <...>

...