Отказ в доступе к ошибкам в настройках mailbox для пользователей
Я пытаюсь ударить https://graph.microsoft.com/v1.0/users/{userId}/mailboxSettings
конечная точка с токеном аутентификации и в ответ 403 Error Access Denied
ответ.
Я предоставил как уровень приложения, так и делегированные разрешения для MailboxSettings.Read, MailboxSettings.ReadWrite
, Я могу проверить, включены ли эти разрешения в установленном приложении, изучив мой декодированный токен авторизации с помощью jwt.ms
, Вот пример из декодированного токена:
"scp": "Directory.AccessAsUser.All Files.ReadWrite.All Group.ReadWrite.All Mail.Read Mail.ReadWrite Mail.Send MailboxSettings.Read MailboxSettings.ReadWrite Sites.ReadWrite.All"
Я также проверил, что пользователю, для которого я запрашиваю настройки mailboxSettings, предоставлен доступ через согласие администратора.
Я могу вернуть mailboxSettings, если я попаду в конечную точку для администратора или https://graph.microsoft.com/v1.0/users/me/mailboxSettings
конечная точка. Любая помощь приветствуется.
4 ответа
Быстро я проверил с Microsoft Graph Explorer, и он работает для меня. Поэтому я бы попросил вас протестировать приведенный выше вызов API с помощью Graph Explorer и посмотреть, сможете ли вы воспроизвести проблему или нет.
Я считаю, что проблема в том, что ваш токен был сгенерирован с использованием делегированных областей. Делегированный аромат MailboxSettings.Read
а также MailboxSettings.ReadWrite
может получить доступ только к почтовому ящику текущего аутентифицированного пользователя.
Чтобы получить доступ к другим пользователям, вам необходимо использовать области приложения. Подробнее о том, как работают эти области (и как их выбирать), вы можете прочитать в этой статье блога: Приложение против делегированных областей.
Как уже говорили другие, делегированный токен работает только для чтения mailboxSettings
текущего аутентифицированного пользователя. Я включил mailboxSettings
как область применения, но я получаю ту же ошибку. Виновником проблемы было то, что я использовал для кода токен с использованием кода авторизации.
После перехода к предоставлению учетных данных клиента я успешно получаю токен аутентификации, который содержит mailboxSettings
Область применения уровня, и я могу получить 200 ответов на конечных точках для всех пользователей.
У меня была та же проблема с аутентификацией на уровне приложения. Я добавил все те же привилегии, но это все равно не сработало. Затем я запросил новый токен, и все воплотилось в жизнь.
Я знаю, что это старый вопрос, но я думаю, что ответ на ОП таков: после изменения разрешений API в Entra вам необходимо получить новый токен, чтобы он вступил в силу.