Предоставить доступ к общему почтовому ящику из приложения
В Office 365, по-видимому, невозможно назначить группу безопасности для общего почтового ящика. Это означает, что все пользователи должны быть добавлены в общий почтовый ящик вручную, что является проблемой.
Тем не менее, Microsoft Graph, кажется, предлагает способ подписаться на изменения в данной группе. В результате я задумал создать простое приложение-функцию Azure, которое получает веб-хук от Microsoft Graph, когда кто-то добавляется / удаляется из определенной группы, и быстро добавляет / удаляет пользователя из списка общих почтовых ящиков.
Проблема, с которой я столкнулся, заключается в том, что в Microsoft Graph отсутствует вызов API для предоставления пользователю доступа к общему почтовому ящику; и я не смог найти другой API Microsoft, который позволил бы это.
Я обнаружил, что единственный способ сделать это программным способом - это PowerShell, который требует, чтобы я создал пользователя для аутентификации, а не для предоставления доступа к приложению. В настоящее время PowerShell также имеет экспериментальную поддержку функций Azure, и я даже не уверен, поддерживают ли функции Azure вызовы PowerShell в Exchange Online или как установить их при необходимости.
Кто-нибудь знает способ сделать это с помощью вызовов REST или JavaScript, или еще лучше сделать это с Microsoft Flow без написания кода?
Если в ближайшее время я не получу ответы на предпочтительный метод, я найду решение, как сделать это с помощью функции Azure или Microsoft Flow и PowerShell.
1 ответ
Вместо функции Azure вы можете использовать автоматизацию Azure для создания Runbook Azure, который будет выполнять ваш код PowerShell.
Runbooks позволяет вам импортировать модули, предоставляя вам все функции, необходимые для работы Exchange Online PowerShell. Это также позволяет хранить учетные данные учетной записи с правильным уровнем разрешений. (Во время тестирования вы можете использовать учетную запись администратора службы Exchange или глобального администратора).
Таким образом, вы можете создать пользователя Azure AD, использовать права Exchange RBAC, чтобы ограничить его, чтобы иметь только разрешения на то, что ему нужно делать из соображений безопасности, а затем сохранить права этого пользователя в функциональности учетных данных Runbook.
Затем Runbook может быть запущен через веб-крючок.
Небольшое примечание: вы не можете добавить группу безопасности, но вы можете добавить группу безопасности с включенной поддержкой почты и дать ей права. Группу можно скрыть из глобального списка адресов в Exchange и просто использовать поддельный почтовый адрес в домене.onmicrosoft.com арендатора.
Единственное, что следует отметить, этот метод использования групп для разрешений дает пользователю правильные права доступа, но почтовый ящик не будет автоматически добавлен в Outlook. Причина этого в том, что Exchange добавляет флаг Automapping к объекту, которому вы предоставляете права доступа к почтовому ящику. Но установка этого флага для группы не повторяется, а также добавляет флаги для пользователей, поэтому пользователям нужно будет вручную зайти в Outlook и сказать ему открыть почтовый ящик.