Azure AD ADAL Неявное уточнение потока - PullRequest
0 голосов
/ 12 декабря 2018

Интересно, кто-нибудь может уточнить это для меня? 1001 * Я использую ADAL js для входа в приложение angular7 через неявный поток.Это работает, посылая response_type = id_token. Что происходит с этим типом ответа, так это то, что конечная точка авторизации нажата, и я должен получить токен идентификатора ID_TOKEN

Однако я получаюв ответ на токен-носитель, при входе в Microsoft Azure перенаправляется на http://localhost:4200/#access_token=xxxxxxxx&token_type=Bearer

Я ожидал, что этот токен будет возвращен как идентификационный токен, а не как токен на предъявителя, он работает правильно, как токен на предъявителя, когда я вызываюAPI бэкэнда.

ADAL.js не позволяет мне запрашивать "токен id_token", а именно: ID_TOKEN TOKEN

ИзвинитеЯ начал читать спецификацию, так как это сбило меня с толку в понимании работающего приложения, но я, несомненно, был бы признателен, если бы кто-то смог пролить немного света на то, что на самом деле делает Azure с его неявным потоком, он упоминает только id_token в документации и не ссылается на него.на тип ответа «id_token token»

, если что, Azure AD выглядит более встроенным с reponse_type = token Token

tnx заранее, Брайан

1 Ответ

0 голосов
/ 13 декабря 2018

Конечная точка Azure AD V2.0

Документы Microsoft: v2.0 Протоколы - SPA, использующие неявный поток

В нем четко упоминается, что для OpenId Connect запрос

  • должен включать response_type=id_token (который вы уже отправляете)
  • scope=openid, который, вероятно, отсутствовал и был решен послереализация потока с использованием библиотеки MSAL (как описано @brianbruff в комментариях).
  • Кроме того, для регистрации приложения должен быть включен Allow Implicit Flow.

enter image description here enter image description here enter image description here

Пример запроса из документов

// Line breaks for legibility only

https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?
client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&response_type=id_token
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&scope=openid
&response_mode=fragment
&state=12345
&nonce=678910

Azure AD V1.0Конечная точка

Документы Microsoft: Понимание потока неявного предоставления OAuth2 в Azure Active Directory (AD)

Даже здесь документация ясно говорит, что id_token можно получить, когдаиспользуя OpenID Connect.

enter image description here

Я должен сказать, что я не совсем уверен врекомендованная / правильная реализация для получения id_token в случае неявного потока грантов с v1.0.(По крайней мере, @brianbruff может использовать v2.0 и решить его проблему.)

Я вижу, что другая ссылка Microsoft Docs для OpenID соединяется с v1.0 (но не неявным потоком предоставления) упоминает использование scope=openid.Хотя в нижней части этой страницы я вижу открытые проблемы, в которых пользователи каким-то образом противоречат документации и дают обратную связь специально для потока неявных грантов.

enter image description here

Выпуск 17140

Выпуск 19382

...