Netflix Zuul не проходит корреляцию Кук ie для. Net Core 3.1 Web App - Identity Server 4 и Nginx - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть базовое c. Net Core 3.1 mvc веб-приложение, которое использует гибридный поток в сочетании с Identity Server 4 (на основе их быстрых запусков). Последний находится за nginx, а веб-приложение - за nginx и zuul. Когда я нажимаю кнопку входа в веб-приложение, меня перенаправляют на страницу входа в Identity Server. После входа в систему перенаправление oidc завершается неудачно, и в логах моего веб-приложения появляется ошибка идентификатора повара cook ie, указывающая, что она была потеряна.

После этого я поместил веб-приложение прямо позади nginx, как Identity Server, и все работает, как ожидалось, с перенаправлениями входа и выхода из системы oidc.

Это моя zuul конфигурация в application.properties

zuul.sensitive-headers=Cookie,Set-Cookie
zuul.ignored-services= '*'
zuul.add-host-header=true

server.port=9002
spring.application.name=zuul
eureka.instance.preferIpAddress=true
eureka.client.serviceUrl.defaultZone=${EUREKA_URI:http://localhost:9001/eureka}
zuul.strip-prefix=false
eureka.client.fetch-registry=true
eureka.client.register-with-eureka=true

Есть ли что-то еще, что мне может понадобиться в этой конфигурации для решения моей проблемы?

My nginx настроен на пересылку всех необходимых заголовков для веб-приложения, но, вероятно, что-то теряется в нисходящем направлении при прокси от zuul.

location / {
   proxy_pass http://zuul:9002/;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header X-Scheme $scheme;
   proxy_set_header X-Forwarded-Proto $scheme;
   proxy_set_header Host $host;
   proxy_set_header X-Forwarded-Host $host;
}

Все это делается с использованием контейнеров Docker.

1 Ответ

0 голосов
/ 28 апреля 2020

В конце концов это было довольно простое исправление, так как я изначально неверно истолковал документацию zuul. То, что я действительно делаю выше, это файлы cookie черного списка:

zuul.sensitive-headers=Cookie,Set-Cookie

Похоже, что zuul черные списки Cookie,Set-Cookie,Authorisation из коробки. Как только я установил для свойства пустую строку или случайное имя строки, все работает как положено.

...