Ошибка HTTP 401.2 при использовании шлюза приложений Azure
У меня есть сайт ASP.Net, размещенный в IIS 10 в центре обработки данных Windows Server 2019 в Azure. На этом сайте включена только проверка подлинности Windows.
Когда я захожу на сайт напрямую (http://mysite-backend.example.com), мне запрашивают учетные данные, после чего все работает как положено. Когда я захожу на сайт через шлюз приложений (настроенный с частным IP-адресом) (https://mysite.example.com), мне предлагается ввести учетные данные, после чего мне снова предлагается запросить дополнительные ресурсы (размещенные на том же сервере). site, без каких-либо специальных правил для каких-либо подпапок). Мне неоднократно выдается запрос, пока я не нажму «Отмена», и в этот момент я увижу 401 для запроса ресурса в журнале сети Chrome.
Одним из ресурсов, с которыми я сталкиваюсь с этой проблемой, является запрос GET для
Я пробовал использовать разные браузеры, в том числе новую установку/с другого клиентского устройства, чтобы убедиться, что в кэше нет ничего, вызывающего проблемы. Кроме того, у меня есть
Внутренний пул имеет только 1 узел. В настройках серверной части указано, что нужно использовать имя хоста внутреннего пула вместо имени внешнего интерфейса, поэтому с точки зрения веб-сервера запросы выглядят одинаково.
В журнале событий безопасности веб-сервера я вижу неудачные попытки входа в систему (идентификатор события
Я проверил журналы App Gateway и убедился, что он ничего не блокирует. Я также установил специальное правило WAF для этого сайта и установил для него значение
Я включил отслеживание неудачных запросов для статуса 401 на внутреннем сервере; это показывает, что 401 исходит из:
-MODULE_SET_RESPONSE_ERROR_STATUS
ModuleName: IIS Web Core
Notification: AUTHENTICATE_REQUEST
HttpStatus: 401
HttpReason: Unauthorized
HttpSubStatus: 2
ErrorCode: Access is denied. (0x80070005)
ConfigExceptionInfo
Примечание. Ресурсы, которые заблокированы (т. е. получают 401 ответ), обычно совпадают, когда я тестирую на одном и том же устройстве в течение определенного периода времени; но если я протестирую в другой день или на другом устройстве, я могу увидеть блокировку разных ресурсов. Когда я впервые тестирую на любом устройстве (в основном), я вижу два xhr
Я пытаюсь получить доступ к исходному коду внутреннего сайта, чтобы лучше понять, что закодировали в них эти конечные точки поиска, и понять, может ли это быть причиной проблемы.
А пока любые идеи, которые могут возникнуть у кого-либо здесь, будут очень признательны... Заранее спасибо.
Обновление: прямой вызов конечной точки поиска также приводит к ответу HTTP 200/действительный:
$resp = Invoke-RestMethod -Method Post -Uri 'https://mySite.example.com/subfolder###/Search' -Form @{recordsToTake=25;recordsToSkip=0;sortColumn='CategorieName';sortDirection='Ascending'} -Credential $cred -StatusCodeVariable sc;"Status $sc";$resp