ID токены против токенов доступа в неявном потоке предоставления - PullRequest
1 голос
/ 19 октября 2019

Я хотел бы получить разъяснения о том, как использовать токены ID и токены доступа в неявном потоке грантов. У меня есть Angular SPA с использованием MSAL.js для пакета Angular и веб-API. API НЕ вызывает никаких внешних сервисов, таких как MSFT Graph. Внутренний сервер использует заявки на роль от JWT для установления авторизации RBAC только для наших функций API.

Этот документ говорит: https://docs.microsoft.com/en-us/azure/active-directory/develop/id-tokens

id_tokens отправляются клиентскому приложению как частьпоток OpenID Connect. Они могут быть отправлены вдоль или вместо токена доступа и используются клиентом для аутентификации пользователя.

Идентификаторы должны использоваться для проверки того, что пользователь является тем, кем он себя считает, и получения дополнительных полезных данных. информация о них - ее не следует использовать для авторизации вместо токена доступа.

В этом документе показан поток аутентификации, в котором веб-API вызывается с токеном ID вместо токена доступа:https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-implicit-grant-flow

В этом примере кода также отправляется токен идентификатора (вызывая собственный пример веб-API): https://github.com/Azure-Samples/active-directory-javascript-singlepageapp-dotnet-webapi-v2

Внутренний образец примера проверяет аудиторию токена идентификатора по идентификатору клиента приложения, которое его выпустило. .

Учитывая, что наш API является единственным потребителем токенов, должны ли мы использовать идентификационные токены или токены доступа?

Ответы [ 2 ]

0 голосов
/ 21 октября 2019

отметьте эту часть enter image description here

Сначала он вызывает acquTokenSlient, который получает токен из кэша, если он доступен, если не вызывает acquTokenPopUp, который получит токен доступа для конкретной областиЯ не уверен, откроет ли это всплывающее окно или получит токен в фоновом режиме со скрытым фреймом. Но он наверняка получит токен доступа. API никогда не может быть доступен с ID токеном.

проверьте https://docs.microsoft.com/bs-latn-ba/azure/active-directory/develop/scenario-spa-acquire-token для получения дополнительной информации

0 голосов
/ 20 октября 2019

Вообще говоря, при защите вашего API с помощью платформы Microsoft Identity клиенты должны использовать токен доступа при выполнении запросов API, а не идентификатор ID.

...