Выдача себя за другое лицо с помощью Microsoft Graph

Есть ли способ выдать себя за пользователя в Office 365 с помощью нового API Microsoft Graph?

В настоящее время я использую EWS API, чтобы выдавать себя за пользователей Office 365 и добавлять события календаря.


person Thivy Ruthra    schedule 02.12.2015    source источник


Ответы (1)


Microsoft Graph использует OAuth2.0, поэтому ваше приложение может работать как зарегистрированный пользователь, если пользователь предоставляет приложению возможность (в вашем случае) читать / записывать события календаря. (В OAuth2.0 этот поток известен как поток кода). Если вам нужно, чтобы ваше приложение создавало события от имени многих пользователей, когда пользователь фактически не вошел в ваше приложение - скажем, ваше приложение является какой-то службой демона - тогда вы можете использовать только приложение OAuth2.0 (клиент учетные данные) поток. Получение токена делегированного доступа для вызова Microsoft Graph описано здесь: https://docs.microsoft.com/azure/active-directory/develop/v2-oauth2-client-creds-grant-flow

Надеюсь это поможет,

person Dan Kershaw - MSFT    schedule 03.12.2015
comment
Чтобы уточнить, поток учетных данных клиента не приводит к делегированному доступу на уровне пользователя, а вместо этого обращается к API как к самому приложению, правильно? Можно ли вместо этого заставить приложение выдавать себя за отдельных пользователей и выполнять запросы API от имени этого пользователя? - person vinod; 24.03.2016
comment
Добавлю по первому утверждению. По второму пункту - у нас действительно нет возможности ActAs. Это сверхмощная возможность, которую нужно использовать с осторожностью, и у нас нет графика для реализации такого рода функций. Есть ли у вас какие-либо конкретные сценарии, в которых вам нужна эта возможность? Другой вариант - использовать делегированный поток, получить токен обновления (offline_access) и использовать его для олицетворения пользователя, даже если он активно не использует ваше приложение. - person Dan Kershaw - MSFT; 26.03.2016
comment
Есть ли какие-либо параллели или возможность использования роли ApplicationImpersonation в Exchange? Поскольку EWS не рекомендуется, нам необходимо перейти на Graph API для доступа к календарям почтовых ящиков комнат, а некоторые существующие клиенты используют роли олицетворения в Exchange вместо того, чтобы устанавливать разрешения почтового ящика для каждого почтового ящика комнаты. В EWS также рекомендуется олицетворение, чтобы избежать ограничений бюджета подписки для учетной записи службы в сценарии push (хотя мне еще предстоит определить, как выполнять push-соединения с Graph). - person tjmoore; 14.09.2018
comment
Чтобы прояснить последнюю часть моего предыдущего комментария, когда я говорю о «push», я имею в виду потоковые подписки в EWS. Похоже, что у Outlook API есть поддержка потоковой подписки, но нет Graph API. То же самое в отношении бюджета / троттлинга. - person tjmoore; 14.09.2018
comment
@ Дэн Кершоу - MSFT Почему ActAs суперсильна? Я бы предпочел дать права ActAs демону-приложению, чем возможность изменять все, что является стандартным для учетных записей приложений. - person ssimm; 21.10.2019
comment
... какие-либо конкретные сценарии, в которых вам нужна эта возможность? Как лучше всего отправить сообщение чата в Teams из приложения-демона? Вам нужна аутентифицированная учетная запись пользователя, чтобы отправлять сообщения от их имени. - person kostasvs; 19.05.2021