2016-09-28 1 views
1

Я работаю над доказательством концепции с Azure Active Directory и собственным клиентом, получающим токен OpenID для аутентификации в веб-приложении. Нативный клиент использует Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext.AcquireTokenAsync. Мое родное клиентское приложение называется «Доказательство концепции», а веб-приложение называется «PoC-сервер».AAD/ADAL: понимание авторизации пользователя приложения и ссылка «Показать детали»

Первый раз, когда пользователь входит в систему, встроенный браузер открыт Адал требует, чтобы пользователь авторизовать приложение, с этой страницы:

Screenshot

Перевод:

Авторизоваться 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».

Что происходит? При каких условиях пользователю требуется авторизация приложения? Может ли сценарий, в котором они должны разрешить, предоставить мне страницу «Подробнее»?

+0

Странно! Я заставлю кого-нибудь посмотреть на исключение. Для приложения с несколькими арендаторами, использующего конечную точку '/ common', вы должны увидеть экран авторизации (ака согласия), если пользователь/арендатор ранее не согласился с этим приложением. Он не должен иметь никакого отношения к используемому «redirect_uri». Я подозреваю, что некоторая другая ошибка возвращается, пока Azure AD не попытается показать экран согласия. – dstrockis

+0

@dstrockis, я не использую конечную точку '/ common' (или, по крайней мере, не намеренно).Я передаю идентификатор клиента моего клиентского приложения. Если вы хотите, я могу опубликовать некоторые подробные результаты регистрации завтра. –

ответ

Смежные вопросы