Нужны ли приложению разрешения на уровне приложения для чтения настроек почтового ящика других пользователей с помощью MSGraph?

Я пытаюсь прочитать текст сообщения об отсутствии на работе человека с помощью MSGraph. Я понимаю, что единственный способ сделать это - получить настройки почтового ящика, как указано здесь.

Есть ли другой способ прочитать сообщение об отсутствии на работе?

Предполагая, что нет другого способа, я тогда прочитал, например, в этой ссылке что для вызова GET /users/{id|userPrincipalName}/mailboxSettings вам необходимо иметь разрешения приложения для MailboxSettings.Read, MailboxSettings.ReadWrite. Так ли это до сих пор? Для меня не имеет смысла, что вам нужны разрешения на уровне приложения. Нет ли делегированного (требуется согласие администратора) MailboxSettings.Read.All ??? Проблема в том, что большинство ИТ-отделов будут колебаться (или свиньи полетят раньше, чем некоторые ИТ-отделы) дать приложению это разрешение на запуск без вошедшего в систему пользователя.

В качестве альтернативы я вижу, что есть свойство User в настройках почтового ящика, поэтому, используя параметр запроса $ select, вы можете вызвать это https://graph.microsoft.com/v1.0/users/{id}?$select=mailboxSettings работает или должно работать с User.Read.All.

ОБНОВЛЕНИЕ в соответствии с предложением ниже, я добавил 2 предложения к голосу пользователя MSGraph.

  1. Информация об отсутствии на рабочем месте человека должна быть включена в информацию об его календаре / freebusy (getchedule).
  2. Должно быть разрешение Mailboxsettings.Read.All.

Пожалуйста, нажмите на ссылку и проголосуйте за них, если вы согласны.


person darbid    schedule 16.06.2020    source источник


Ответы (1)


Нет, нет ни MailboxSettings.Read.All, ни MailboxSettings.Read.Shared. Вы можете увидеть список на странице https://docs.microsoft.com/graph/permissions-reference#mail-permissions. Я призываю вас запросить эту функцию как функцию на https://microsoftgraph.uservoice.com.

Один из возможных подходов, учитывая доступные в настоящее время разрешения для этого API, - использовать разрешения приложения и настроить политика доступа к приложениям, чтобы ограничить доступ к почтовым ящикам - если это проблема, о которой вы говорите. Я не понимаю, почему было бы предпочтительнее предоставить учетной записи пользователя доступ к этой информации для всех почтовых ящиков в организации, но не субъекту службы приложений.

Он не входит в состав User.Read.All по замыслу. На самом деле это не свойство пользователя, это конфигурация, хранящаяся в почтовом ящике. В Graph он абстрагируется как свойство, но для доступа к нему требуются дополнительные разрешения.

person Jason Johnston    schedule 16.06.2020
comment
Жалко, но спасибо, что сообщили мне. Мой вопрос был дополнен вашим предложением, и я внес несколько предложений, так что давайте посмотрим, как это пойдет. - person darbid; 16.06.2020
comment
Джейсон 1 вещь; Достаточно ли MailboxSettings.Read на уровне приложения, чтобы просто прочитать информацию другого пользователя, или ReadWrite также требуется? Я не хочу ничего менять, просто прочтите свойства automaticRepliesSetting. - person darbid; 16.06.2020
comment
Да, вы можете получить только .Read. Возникла проблема со службой в сочетании со способом получения SDK параметров, из-за которой он не работал только с .Read. Однако в сервисе это исправлено, поэтому SDK следует разблокировать. - person Jason Johnston; 16.06.2020