Microsoft Graph: организация сведений о пользователе (адресная книга) с Directory.AccessAsUser.All - PullRequest
0 голосов
/ 18 декабря 2018

Я создаю почтовый клиент, пытаюсь выполнить поиск по конечной точке пользователей Graph API, аналогично тому, что было возможно в веб-службах Exchange через SOAP.

В EWS с ResolveNames сервер возвращает подробности(т. е. должность, должность, телефон и т. д.) только из области организации аутентифицированного пользователя, аналогичной поиску в адресной книге из почтового клиента (т. е. OWA).

Использование Graph API (основанного на том, что янашел рекомендуемый API для почтовых приложений следующего поколения O365) данные пользователя возвращают null:

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users/$entity",
  "businessPhones": [],
  "displayName": "John Smith",
  "givenName": "John",
  "jobTitle": null,
  "mail": "john@contoso.com",
  "mobilePhone": null,
  "officeLocation": null,
  "preferredLanguage": null,
  "surname": "Smith",
  "userPrincipalName": "john@contoso.com",
  "id": "xxxx"
}

Я запросил следующие области: User.Read, User.ReadBasic.All, Calendars.Read, Calendars.ReadWrite, Calendars.Read.Shared, Calendars.ReadWrite.Shared, Contacts.Read, Contacts.Read.Shared, People.Read

Я попытался несколькозвонки, но простой запрос для пользователей организации демонстрирует проблему:

https://graph.microsoft.com/v1.0/users

Исходя из документации, похоже, что эта информация видна только при предоставлении Directory.AccessAsUser.All -Область действия уровня администратора, которая запрещена \ нецелесообразна для приложений общего пользования.

Есть ли способ выполнить простое обращение?s поиск книг с ограниченными данными пользователя с использованием Graph API без согласия администратора?Если нет, есть ли другой API или метод, который я могу использовать?Или, планирует ли Microsoft расширить конечную точку «Пользователи», чтобы включить эту основную информацию?

Если пользователь прошел проверку подлинности, представляется целесообразным разрешить поиск в адресной книге \ GAL \ user.

1 Ответ

0 голосов
/ 19 декабря 2018

Область действия User.ReadBasic.All предоставляет доступ только к базовому набору свойств пользователя (без каламбура):

Позволяет приложению читать базовый набор свойств профиля.других пользователей в вашей организации от имени вошедшего в систему пользователя.Это включает отображаемое имя, имя и фамилию, адрес электронной почты, открытые расширения и фото.Также позволяет приложению читать полный профиль вошедшего в систему пользователя.

Чтобы прочитать полный набор свойств пользователя, вам необходимо (как минимум) запросить User.Read.All:

Позволяет приложению читать полный наборсвойств профиля, отчетов и менеджеров других пользователей в вашей организации от имени вошедшего в систему пользователя.

Это намного более ограничительная область, чем упомянутая вами область Directory.AccessAsUser.All, но она требует согласия администратора, прежде чем обычные пользователи могут дать на это согласие.Не существует механизма, позволяющего обойти условие «Согласие администратора».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...