У меня проблема с настройкой приложения Open Auth ID .net Core 2 в качестве службы приложений за брандмауэром веб-приложений с использованием маршрутизации на основе пути.
Моим приложением является myapp.azurewebsites.net с сетевым ограничением, которое делает его недоступным из общедоступного Интернета. Я развернул WAF в той же VNET и разрешил трафик между WAF и службой приложений, используя маршрут на основе пути "/ Admin *".
Эффект состоит в том, что https://myapp.azurewebsites.net не доступен через Интернет, но https://myWAF/Admin доступен и сопоставляется со службой приложения.
Эта установка работает нормально, но когда яввести аутентификацию Open ID в мое основное приложение .net, исходящий заголовок Location включает свой myapp.azurewebsites.net/signin-oidc в качестве URI ответа.
Это не работает, потому что хост не доступен из Интернета. Я предпринял несколько попыток:
- Я добавил URL WAF (https://myWAF/Admin/signin-oidc) в URL регистрации приложения в Azure App Registrations, чтобы позволить AAD принять измененный URL (как законный * 1018). *
- Я запрограммировал app.UseForwardedHeaders (принудительное повторное использование всех заголовков X-Forwarded) в моем файле startup.cs, который не оказывает никакого влияния на заголовок Location, отправляемый моей службой приложений. Я предполагаю, что WAFотправляет заголовки X-Forwarded, но если это так, стек Open Auth ID их не использует.
- Я кодировал перезапись заголовка в WAF, чтобы заменить myapp.azurewebsites.net URL-адресом WAFЭто правильно заменяет URL-адрес и разрешает обратный вызов, но затем завершается с ошибкой корреляции (которая, похоже, является общей ошибкой стека Open ID, означающей «одноразовый номер не совпадает». Возможно, что одноразовый номер основан на URL-адресе, являющемсяперезвонил - который в моем случае меняется из-за перенаправления WAF, но это предположение).
Мне кажется, чтоЯ должен иметь возможность использовать заголовки X-Forwarded в моем приложении, чтобы обойти необходимость кодирования перезаписей заголовков в WAF, но я не могу найти пример, где это успешно используется для изменения URI ответаотправлено с помощью Open ID.
Мой вопрос;Является ли использование заголовка X-Forwarded правильным подходом к обработке прокси в контексте OAuth, или перезапись заголовка в WAF является правильным подходом?
Я установил