Устранение неполадок со службой приложений в шлюзе приложений
Узнайте, как диагностировать и устранять проблемы, возникающие при использовании службы приложение Azure в качестве целевого объекта серверной части с Шлюз приложений Azure.
Обзор
В этой статье вы узнаете, как устранить следующие проблемы, как описано в центре архитектуры. Сохранение исходного имени узла HTTP между обратным прокси-сервером и его серверным веб-приложением
- Неправильные абсолютные URL-адреса
- Неправильные URL-адреса перенаправления
- URL-адрес службы приложений предоставляется в браузере при перенаправлении
- Пример этого: поток проверки подлинности OIDC разбит из-за перенаправления с неправильным именем узла; сюда входит использование проверки подлинности и авторизации Служба приложений
- Сломанные файлы cookie
- файлы cookie не распространяется между браузером и Служба приложений
- Пример этого: домен cookie службы приложений ARRAffinity имеет имя узла службы приложений и привязан к "example.azurewebsites.net", а не к исходному узлу. В результате сходство сеансов нарушается.
Первопричиной описанных выше симптомов является настройка, переопределивающая имя узла, используемое Шлюз приложений в сторону Служба приложений в другое имя узла, как показано в браузере. Часто имя узла переопределяется на домен по умолчанию Служба приложений "azurewebsites.net".
Пример конфигурации
Если конфигурация соответствует одной из следующих двух ситуаций, настройка будет соответствовать инструкциям в этой статье:
- Выбор имени узла из внутреннего адреса включен в протоколе HTTP Параметры
- Переопределение с определенным доменным именем имеет значение, отличное от того, что имеет запрос браузера.
Причина
Служба приложений является многоклиентской, поэтому использует заголовок узла в запросе для перенаправления запроса в правильную конечную точку. Доменное имя по умолчанию для служб приложений *. azurewebsites.net (например, contoso.azurewebsites.net) отличается от доменного имени шлюза приложений (например, contoso.com). Серверная Служба приложений отсутствует необходимый контекст для создания URL-адреса перенаправления или файлов cookie, которые соответствуют домену, как показано в браузере.
Решение
Рекомендуется настроить Шлюз приложений и Служба приложений, чтобы не переопределить имя узла. Следуйте инструкциям в разделе "Пользовательский домен (рекомендуется)" в разделе "Настройка Служба приложений с помощью Шлюз приложений
Попробуйте применить другое решение (например, перезапись заголовка location, как описано ниже) после оценки последствий, как описано в статье: сохранение исходного имени узла HTTP между обратным прокси-сервером и серверным веб-приложением. Эти последствия включают потенциал для файлов cookie, привязанных к домену, и для абсолютных URL-адресов за пределами заголовка расположения, чтобы оставаться неисправными.
Обходное решение: перезапись заголовка location
Предупреждение
Эта конфигурация поставляется с ограничениями. Мы рекомендуем проверить последствия использования различных имен узлов между клиентом и Шлюз приложений и между приложением и Служба приложений в серверной части. Дополнительные сведения см. в статье в Центре архитектуры: сохранение исходного имени узла HTTP между обратным прокси-сервером и серверным веб-приложением
Задайте имя узла в заголовке расположения в качестве имени домена шлюза приложений. Для этого создайте правило перезаписи с условием, вычисляющим содержание azurewebsites.net в ответе заголовка расположения. Кроме того, необходимо выполнить перезапись заголовка расположения, чтобы в нем содержалось имя узла шлюза приложений. Дополнительные сведения см. в разделе Перезапись заголовка расположения.
Примечание.
Поддержка перезаписи HTTP-заголовков доступна только для Standard_v2 и WAF_V2 SKU шлюза приложений. Рекомендуется использовать версию 2 для выполнения перезаписи заголовков и других расширенных возможностей, доступных в SKU версии 2.
Следующие шаги
Если описанные выше шаги не устранят проблему, отправьте запрос в службу поддержки.