У меня есть приложение .NET, которое использует ADFS для единого входа. Он работает, когда я тестирую его на своем локальном компьютере и в тестовой среде, но не работает при развертывании в клиентской среде.
Клиентская среда выглядит следующим образом: HTTPS Public IP: 443 -> NAT Internal IP -> Accelerator: 80 -> Load Balancer: 80 -> Reverse Proxy Server: 80 -> APP Server: 80
Обратный прокси-сервер перепишет URL-адрес с app.url.com на app-internal.url.com.
Приложение должно работать так:
Пользователь получит доступ к http s: //app.url.com/appname. Затем приложение .NET при первой загрузке перенаправит пользователя на сервер ADFS: http s: //adfsurl.domain.com/adfs/ls?
После успешной аутентификации ADFS будет перенаправлять обратно на URL-адрес приложения.
Моя проблема в том, что приложение перенаправляется на http://app.url.com/adfs/ls/? вместо http s: //adfsurl.domain.com/adfs/ls?
Есть ли еще какая-то конфигурация, которую мне нужно сделать, например правило для исходящего трафика?
Вам может потребоваться отменить выбор Хост обратной перезаписи в заголовках ответа в настройках ARR и дополнительно установить preserveHostHeader = "true" в applicationhost.config
Чтобы установить preserveHostHeader = "true" в applicationhost.config:
%WINDIR%\System32\inetsrv\appcmd.exe set config -section:system.webServer/proxy /preserveHostHeader:"True" /commit:apphost
Видеть:
https://stackoverflow.com/questions/43433352/sso-adfs-redirection-issue-with-reverse-proxy-with-arr