У меня есть базовое 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.