Предоставленные области API MS Graph, не отраженные в токене доступа
У нас есть почтовая интеграция для почтовых ящиков MS, и мы используем MS Graph API для нашей интеграции. Мы создали приложение OAuth, и в приложение были добавлены правильные области Mail, при создании токена доступа мы используем конечную точку v2 OAuth, упомянутую в документе MS, с областью действия .default.
Интеграция работает нормально в большинстве случаев, но иногда, когда новый пользователь предоставляет разрешение приложению, и мы немедленно генерируем токен доступа с помощью refreshToken, область содержит только 1-2 области, а остальные области отсутствуют в токене.
Это временно, и при повторной попытке все области возвращаются в accessToken, и мы можем получить доступ к почтовому ящику. Это связано с некоторой задержкой репликации в конце MS?
Вот ответ на такую ошибку:
AADSTS65001: пользователь или администратор не дал согласия на использование приложения с идентификатором {'appID'} с именем {'appName'}. Отправьте интерактивный запрос авторизации для этого пользователя и ресурса.
Идентификатор трассировки: fc857dc7-0964-417e-9c3d-e23a3c0f9d00
Идентификатор корреляции: c9da409c-f988-4045-95b9-0a71113fdcdd
Отметка времени: 2023-02-01 13:03:03Z
Области действия, предоставленные приложению:
openid
profile
email
EWS.AccessAsUser.All
SMTP.Send
User.Read
Mail.ReadWrite
Mail.ReadWrite.Shared
Mail.Send
Mail.Send.Shared
Области, отсутствующие в токене доступа:
Mail.Send
PS: Мы используем делегированный доступ к почтовому ящику, а токен имеет автономный доступ, также поток userConsent в порядке.