В API Microsoft Graph может ли приложение с согласия администратора генерировать токен для пользователя, отличного от того, который одобрил администратор? - PullRequest
5 голосов
/ 11 января 2020

У меня есть многопользовательское приложение, зарегистрированное в Microsoft Active Directory, которое использует согласие администратора для получения доступа к некоторым API области действия приложения в Microsoft Graph API. Он использует конечную точку /token для получения токена, а затем вызывает эти API-интерфейсы Graph. Работает отлично. https://docs.microsoft.com/en-us/graph/auth-v2-service#token -request

Теперь я хочу улучшить свое приложение для доступа к некоторым делегированным (пользовательским) API-интерфейсам области, которые не разрешают доступ в области приложения. Мое приложение уже настроено для запроса этих делегированных разрешений от администратора во время согласия администратора. Но я хотел бы называть эти API как каждый пользователь в каталоге, а не как администратор, который установил мое приложение.

Важно, что я не могу иметь каждого пользователя в организация по отдельности go через поток OAuth для моего приложения.

Возможно ли это? Могу ли я каким-то образом выдать себя за пользователя, заменив токен своего приложения на токен пользователя? Может ли администратор сделать что-то программно, чтобы генерировать токены как отдельные пользователи для моего приложения, как если бы они были пропущены через поток OAuth?

1 Ответ

6 голосов
/ 21 января 2020

Нет, вы не можете преобразовать токен приложения в делегированный токен. Единственный способ действовать как конкретный c Пользователь - для этого пользователя "делегировать" эти действия в ваше приложение.

Обратите внимание, что «Согласие администратора» дает согласие только на ваше приложение для работы в пределах арендатора. Оно предназначено, а не является надстройкой согласия пользователя. Чтобы получить делегированный токен, вам необходимо получить и согласие пользователя и администратора.

...