Невозможно прочитать полные профили пользователей MS Graph при наличии необходимых областей - PullRequest
2 голосов
/ 21 июня 2019

Я использую GraphServiceClient в своем коде для доступа к нескольким конечным точкам для данных.У меня есть служебная учетная запись, которая входит в Azure AD со следующими областями: Group.Read.All, User.Read.All, Mail.Read.

Однако с этими необходимыми областями я не могу получить MailFolders для профиля пользователя или даты рождения пользователя.Это выдает следующую ошибку:

ServiceException: Code: -2147024891, System.UnauthorizedAccessException.

Делегированные разрешения в Azure AD уже предоставлены администратором (https://imgur.com/iFb0rx9).

Пример почтовых папок:

var result = await client
  .Users[user.Id]
  .MailFolders
  .Request()
  .GetAsync();

Этовозвращенная ошибка:

ServiceException: 
   Code: ErrorAccessDenied
   Message: Access is denied. Check credentials and try again.

Могу ли я не получить доступ к профилям других пользователей или я что-то пропустил?

Ответы [ 2 ]

1 голос
/ 21 июня 2019

Если у вас есть Mail.Read в качестве делегированного разрешения (имеется в виду, что вы вошли в систему с пользователем), то вы можете читать только свою собственную почту, , даже если кто-то дал вам разрешения на свой почтовый ящик, Для чтения других почтовых ящиков вам необходимо запросить разрешение Mail.Read.Shared.

Если у вас есть Mail.Read в качестве разрешения приложения (что означает отсутствие входа пользователя в ваше приложение с использованием потока учетных данных клиента), то вы можете читать все почтовые ящики в вашей организации.

0 голосов
/ 21 июня 2019

Я считаю, что на этот вопрос уже дан ответ.Даже если ваше приложение имеет согласие администратора на выполнение чего-либо, оно не отменяет разрешение делегата Exchange, если вы понимаете, что я имею в виду.

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

...