Токен доступа, дающий разные AUD? - PullRequest
0 голосов
/ 11 февраля 2020

Я пытаюсь пройти аутентификацию с помощью API Management в Azure через OAuth. Я правильно настроил этот кусок.

У меня происходит поток неявного входа в систему OAuth2, где я получаю токен ID и токен доступа (response_type=id_token+token). Когда я проверяю aud в возвращенном маркере доступа, вместо идентификатора клиента я получаю Aud API Graph по умолчанию (00000003-0000-0000-c000-000000000000), который мне нужно использовать для аутентификации с помощью элемента управления API.

Это должно остаться за OAuth, поскольку это внутреннее приложение, то, что я не хочу выпускать на публике c. Я использую неявный поток, потому что веб-страница - это SPA, размещенный на Blob.

1 Ответ

2 голосов
/ 11 февраля 2020

Как сказали джунны, если вы хотите получить aud вашего clientId, вам нужно добавить действительную область действия для вашего приложения.

Go до Expose a scope вашего приложения, зарегистрированного в azure ad и Add a scope.

enter image description here

И добавьте область видимости в URL, как показано ниже:

https://login.microsoftonline.com/xxxx/oauth2/v2.0/authorize?
client_id=xxxxx
&response_type=id_token+token
&redirect_uri=https://localhost:123
&scope=openid api://xxxxxxxxxxxxxxxxxxxxxx-a3aab90df9fc/webread
&response_mode=fragment
&state=12345
&nonce=678910

Затем декодируйте токен доступа, вы получите идентификатор клиента в ауд:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...