Я хотел бы получить разъяснения о том, как использовать токены 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 является единственным потребителем токенов, должны ли мы использовать идентификационные токены или токены доступа?