Общие сведения об ошибке HTTP в выводе файла журнала веб-приложения Azure

#azure #asp.net-core #http #identity #http-status-code-302

Вопрос:

У меня есть веб-приложение Net core, которое представляет страницу входа в систему при локальном запуске и в службе веб-приложений Azure. Без каких-либо объяснений до сих пор в службе веб-приложений Azure только начали появляться ошибки. Насколько мне известно, я не изменил ни одного кода, который изменил бы это. Сборки Github взяты из YAML. Никаких изменений в Github не зарегистрировано.

Я использовал инструменты разработки Chrome и включил ведение журнала диагностики для приложений в службе приложений Azure. Я подумал, что ведение журнала может дать мне больше информации.

Подводя итог. Вывод URL-адреса сравнения для запуска моего локального приложения v Azure выглядит следующим образом:

 https://localhost:44357/Identity/Account/Login?ReturnUrl=/

https://example-app-service-rollbase.azurewebsites.net/Identity/Account/Login?ReturnUrl=/Home/Error?ReturnUrl=%2FHome%2FError ... etc ...
 

В инструментах разработки
локальный = HTTP 101
Azure = Найдено HTTP 302 (Слишком много перенаправлений. Ресурс, который вы ищете, был удален, его имя было изменено или он временно недоступен. Попробуйте очистить ваши файлы cookie)

Используя следующее в Azure CLI:

 az webapp log tail --name example-app-service-rollbase --resource-group example-resources --provider http
 

Я запускаю приложение и записываю выходные данные журнала. Для меня это более запутанно, чем проблема (для краткости я вырезал время/дату/тип браузера и ссылочные ссылки и печатаю последовательные строки вывода).:

 EXAMPLE-APP-SERVICE-ROLLBASE GET / X-ARR-LOG-ID=fffed190-2641-4ebd-b4b8-1e3034635ffe 443 - 121.74.116.232 
 

Приведенный выше вывод: Имя веб-приложения, метод HTTP, ссылка на ресурс Azure-ИДЕНТИФИКАТОР ЖУРНАЛА? amp; мой публичный IP-адрес (я нахожусь за брандмауэром в частной сети)

 EXAMPLE-APP-SERVICE-ROLLBASE GET /Identity/Account/Login ReturnUrl=/amp;X-ARR-LOG-ID=dc48d20d-4859-4956-95e0-020c6f592afd 443 - 121.74.116.232
 

Вот где проявляется проблема. Возвращение. Я понимаю, что / returnUrl обычно существует просто как механизм, указывающий на предыдущую страницу.

 EXAMPLE-APP-SERVICE-ROLLBASE GET /Identity/Account/Login ReturnUrl=/Home/Error?ReturnUrl=%2Famp;X-ARR-LOG-ID=ec2e323b-b593-4272-8b61-b9b72245255d 443 - 121.74.116.232
 

Здесь добавляется закодированное»? » (?), И отсюда накапливаются возвраты.

Примерно в этот момент я не понимаю, что я вижу. Кроме той же информации, которую я получил от инструментов разработки.

Если у кого-нибудь есть какие-либо идеи, я был бы признателен.

Ответ №1:

Azure использует это сопряжение и сопоставление redirect_uri с URL-адресом ответа в качестве меры безопасности для предотвращения неправильного использования вашего приложения, чтобы кто-то мог попытаться аутентифицировать свое собственное приложение, используя ваши координаты приложений Azure, и отправить маркер доступа в свое приложение вместо вашего.

Создал другой URL-адрес авторизации с использованием параметра redirect_uri, который не настроен в качестве допустимого URL-адреса ответа в моем приложении Azure

https://login.microsoftonline.com/1c3d2eea-12db-2ec3-437e-2eec7289e1a1/oauth2/authorize
?client_id=ef92a29b-b332-9d43-1341-23326315fa42
amp;тип ответа=id_token токен
amp;redirect_uri=https://pdogs-babel.azurewebsites.net/callback.html
amp;состояние=12345
amp;nonce=678910
amp;ресурс=https://граф.microsoft.com/

Здесь я установил параметр redirect_uri в https://pdogs-babel.azurewebsites.net, и когда я отправлю это на конечную точку авторизации…

Мы видим следующее сообщение об ошибке…

AADSTS50011: Адрес для ответа https://pdogs-babel.azurewebsites.net/callback.html не соответствует адресам ответов, настроенным для приложения: ef92a29b-b332-9d43-1341-23326315fa42.

Если вы используете неявный поток предоставления, это может позволить кому-либо получить маркер доступа, используя координаты вашего приложения. Исходный URL-адрес авторизации отправляется браузером по протоколу HTTP, и конечная точка авторизации возвращает ответ, используя ответ HTTP 302 [Найдено] со значением заголовка местоположения, содержащим URL-адрес, найденный в параметре redirect_uri, плюс фрагмент хэша, содержащий ключ доступа

введите описание изображения здесь

Пожалуйста, найдите более подробную информацию здесь