Для получения сообщений для всех пользователей организации вы можете использовать потоки делегированных потоков или клиентский учетный поток.
С делегированным потоком вы запрашиваете доступ для всех пользователей в организации, используя конечную точку согласия администратора, и администратор соглашается с приложением от имени всех пользователей организации и когда пользователи взаимодействуют с приложением, они не получают пользовательский интерфейс согласия и приложение могут получить токен доступа для пользователя, который имеет делегированные разрешения для приложения и запрашиваемого ресурса. Вот статья, в которой описывается, как это сделать: https://docs.microsoft.com/en-us/azure/active-directory/active-directory-v2-scopes#admin-restricted-scopes
Второй вариант более подходит, если вы создаете неинтерактивное приложение, такое как демон службы, в этом случае вы можете использовать данные только с идентификатором приложения. Вот статья, в которой описывается, как выполнять поток учетных данных клиента: https://docs.microsoft.com/en-us/azure/active-directory/active-directory-v2-protocols-oauth-client-creds
При любом подходе к доступу к почтовым ящикам вы запрашиваете разрешение Mail.Read, а затем отправляете запрос на конечную точку https://graph.microsoft.com/v1.0/users(userId|UPN)/messages.
Не могли бы вы поделиться процедурой выдачи себя за пользователя с помощью Graph API? –
Я не верю, что существует концепция «Олицетворения». Вы можете получить токен App-Only, а затем использовать полномочия делегата для доступа к почтовому ящику пользователя в арендаторе. – Yogesh