Я работаю над доказательством концепции с Azure Active Directory и собственным клиентом, получающим токен OpenID для аутентификации в веб-приложении. Нативный клиент использует Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext.AcquireTokenAsync
. Мое родное клиентское приложение называется «Доказательство концепции», а веб-приложение называется «PoC-сервер».AAD/ADAL: понимание авторизации пользователя приложения и ссылка «Показать детали»
Первый раз, когда пользователь входит в систему, встроенный браузер открыт Адал требует, чтобы пользователь авторизовать приложение, с этой страницы:
Перевод:
Авторизоваться Proof концепции
Доказательство концепции
Веб-сайт издателя приложения: nathexpe rimental.onmicrosoft.comДоказательство концепции необходимо разрешение на
- сервер РоС доступа (PoC-сервера)
- Войдите в систему и читать ваш профиль
Вы вошли как: [email protected]
Показать детали
[Accept] [Отменить]
Если я теперь нажмите на ссылку «Показать подробности» ссылка, он бросает исключение:
Microsoft.IdentityModel.Clients.ActiveDirectory.AdalServiceException: Non-HTTPS url redirect is not supported in webview
en Microsoft.IdentityModel.Clients.ActiveDirectory.AcquireTokenInteractiveHandler.VerifyAuthorizationResult()
en Microsoft.IdentityModel.Clients.ActiveDirectory.AcquireTokenInteractiveHandler.<PreTokenRequest>d__8.MoveNext()
--- Fin del seguimiento de la pila de la ubicación anterior donde se produjo la excepción ---
en System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
en System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
en System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
en Microsoft.IdentityModel.Clients.ActiveDirectory.AcquireTokenHandlerBase.<RunAsync>d__55.MoveNext()
я не уверен, что не-HTTPS URL он пытается для перенаправления на это, но лучше всего предположить, что это URI перенаправления собственного клиента, который я установил в hook://login
с намерением реализовать собственный обработчик протокола и посмотреть, какие вызовы были сделаны.
Это, по-видимому, подтверждает тот факт, что когда я изменил URI перенаправления на https://codegolf.stackexchange.com
(это был первый сайт с поддержкой HTTPS, который пришел на ум ...), поведение изменилось. Но не так, как я ожидал. Теперь, когда я впервые вхожу в систему как новый пользователь, он пропускает всю страницу «Authorize Proof of concept».
Что происходит? При каких условиях пользователю требуется авторизация приложения? Может ли сценарий, в котором они должны разрешить, предоставить мне страницу «Подробнее»?
Странно! Я заставлю кого-нибудь посмотреть на исключение. Для приложения с несколькими арендаторами, использующего конечную точку '/ common', вы должны увидеть экран авторизации (ака согласия), если пользователь/арендатор ранее не согласился с этим приложением. Он не должен иметь никакого отношения к используемому «redirect_uri». Я подозреваю, что некоторая другая ошибка возвращается, пока Azure AD не попытается показать экран согласия. – dstrockis
@dstrockis, я не использую конечную точку '/ common' (или, по крайней мере, не намеренно).Я передаю идентификатор клиента моего клиентского приложения. Если вы хотите, я могу опубликовать некоторые подробные результаты регистрации завтра. –