В качестве упражнения я пытался создать конфигурацию swagger, которая могла бы вызывать API управления Azure, и запустить ее из онлайн-редактора swagger.
Я настроил его для использования неявной аутентификации, и он почти работает, но я просто не могу заставить Azure Framework распознавать редактор swagger как действительный URL-адрес перенаправления.
Вот все шаги, которые я предпринял. Кто-нибудь может заметить, что я делаю не так?
Используя портал Azure AD, я создаю новое приложение Azure AD
В ответные URL регистрации приложения я добавил https://editor.swagger.io/oauth2-redirect.html
Я создал следующие записи безопасности в своем документе Swagger 2.0:
securityDefinitions:
azureTokenAuthentication:
flow: implicit
authorizationUrl: https://login.microsoft.com/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/oauth2/authorize
scopes:
https://management.azure.com: Accessing the Azure API
type: oauth2
security:
- azureTokenAuthentication:
- https://management.azure.com
(отредактированный GUID - это мой идентификатор арендатора).
Теперь, когда я нажимаю кнопку «Авторизация», swagger открывает для меня диалог:
Итак, я ввожу идентификатор приложения и нажимаю авторизовать. Затем он отправляет меня на URL входа со следующими параметрами:
Обратите внимание, что redirect uri
соответствует значению, которое я ввел при регистрации приложения.
Поэтому я ввожу свое имя пользователя и пароль, а затем URL-адрес перенаправляется на следующее:
https://login.live.com/err.srf?lc=1033#error=invalid_request&error_description=The+provided+value+for+the+input+parameter+'redirect_uri'+is+not+valid.+The+expected+value+is+a+URI+which+matches+a+redirect+URI+registered+for+this+client+application.&state=rQIIAdNiNtQztFJJTTKxMEpLMtK1MDKy1DUxNknVTTJNNNO1TEs2TjVIMzCzNLMoEuISWF1yo3vvud0Ozb9b9Z66bQ-cxcgZn5NZlqqXnJ-7ilEvo6SkoNhKXz81JbMkv0ivuDwxPT21SC8zXz8_sbQkw0i3CChTlJpcAlSZm7ODkfECI-MLRsZbTPz-jiB5EJFflFmVOos5JswoLNvT1TAjOdOxwrfSsdLXxdXU08XR1D_L1cg_y9HI0zXFL8y5uMLXxbHc0znDKSXCzyA51604Mdyt1NM1LCPZOCgnOdckPdQ4KCMpNygjOTcwPcw9pyQqONt2E7NKSqqpuZGhmZGuabJ5iq6JRVqSrmWSqaGuubmlabKpeaKZqWXyKWYZmI9yE_MS01NzU_NK9BKrSovAHr7BzHiBhfEVC48BsxUHB5cAgwSDAsMPFsZFrMCQmrTR22we8wzHyc1Bd633_2M4xapfku7mkeJk5qxfkpOb7lcUXB5SmOZb7Jef7l-c526UmVUQqV_q5Zzh4uzma2tkZTiBTeYDG2MHO8MuThID9haXiJGBoaWugbGuoZGCkbGVoZmVgXkUAA2
Интересный текст, который я почерпнул из этого:
Недопустимое значение для входного параметра 'redirect_uri'. Ожидаемое значение - это URI, который соответствует URI перенаправления, зарегистрированному для этого клиентского приложения.
Но это соответствует! Что я делаю не так?!?