Доступ запрещен для добавления расширения Microsoft Graph Schema в сообщение - PullRequest
0 голосов
/ 16 января 2020

В настоящее время мы создаем мультитенантное приложение, в котором пользователи с правами администратора могут войти в Office365 и манипулировать электронной почтой других пользователей. Мы хотим добавить расширение схемы для созданного сообщения, но я получаю ошибку AccessDenied. Обратите внимание, что я использую расширение схемы arxone_path, то есть Available (вы можете попробовать его использовать).

Сначала я установил делегированное разрешение Mail.ReadWrite при регистрации моего приложения в Azure ( как сказано на https://docs.microsoft.com/en-us/graph/api/opentypeextension-post-opentypeextension?view=graph-rest-1.0#permissions). Я также добавил Mail.ReadWrite.Shared разрешение. Используя маркер доступа пользователя, я могу получить, создать, удалить или обновить сообщение другого пользователя. Но если я пытаюсь обновить сообщение, добавив расширение схемы, например:

PATCH https://graph.microsoft.com/v1.0/{{user}}/messages/{{message}}
Content-Type: application/json
{
    "arxone_path": {
        "path":"some/path"
    }
}

Я всегда получаю такой ответ:

HTTP/1.1 403 Forbidden
Content-type: application/json
{
  "error": {
    "code": "ErrorAccessDenied",
    "message": "Access is denied. Check credentials and try again.",
    "innerError": {
      "request-id": "a95b0641-63e9-4601-82f2-d8c4ed6d64d8",
      "date": "2020-01-16T16:12:29"
    }
  }
}

Подводя итог, я могу:

  • Редактировать одно из сообщений собственного подключенного пользователя -> ОК
  • Добавить расширение собственного сообщения подключенного пользователя -> ОК
  • Редактировать другое сообщение пользователя -> ОК
  • Добавить расширение другого сообщения пользователя -> НЕ ОК

Ответы [ 2 ]

0 голосов
/ 06 февраля 2020

Вы не можете добавить Open Extension к объектам пользователей, используя маркер делегированного доступа для другого пользователя. Вам потребуется, чтобы этот пользователь выполнил вход и использовал токен делегированного доступа.

Другой подход заключается в использовании разрешений для приложений (только для приложений) и запросе User.ReadWrite.All, что потребует согласия администратора от администратора. .

0 голосов
/ 16 января 2020

Я полагаю, что url говорит о том, что вам могут потребоваться дополнительные разрешения (в зависимости от типа учетной записи) при попытке создать открытое расширение.

Делегированный (работа или школа) User.ReadWrite.All
Делегированный (личная учетная запись Microsoft) User.ReadWrite
Приложение User.ReadWrite.All

...