Отказ в доступе к ошибкам в настройках 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 вам необходимо получить новый токен, чтобы он вступил в силу.

Другие вопросы по тегам