Доступ к API Graph через делегированные разрешения учетной записи службы без взаимодействия с пользователем - PullRequest
0 голосов
/ 27 марта 2019

Я ищу лучший подход, позволяющий приложению получать доступ к API Graph через учетную запись службы.

Идея состоит в том, чтобы предоставить делегированные разрешения API Graph для этого приложения, которые затем будут дополнительно ограничены доступом к учетной записи службы, которая используется в приложении. Подвох в том, что взаимодействие с учетной записью службы не требуется.

Например: я хочу, чтобы разработчик создал приложение любого типа для доступа к API Graph, но управлял только ресурсами, доступ к которым предоставлен его учетной записи службы. Я не хочу, чтобы он мог управлять всеми группами AAD, например, а только теми группами AAD, где его служебная учетная запись принадлежит.

Любое руководство, чтобы начать меня с демо? Я искал учебники и статьи, но ни одна из них не соответствует моим требованиям.

Ответы [ 2 ]

0 голосов
/ 27 марта 2019

В данный момент я не думаю, что вы можете сделать это. Если вы делаете аутентификацию учетных данных клиента (идентификатор клиента + секрет / сертификат), применяются разрешения на приложения. Делегированные разрешения применяются только тогда, когда участвует пользователь. Таким образом, единственный способ ограничить область действия - это выполнять вызовы от имени пользователя.

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

Теперь, конечно, единственная проблема с токенами обновления заключается в том, что они могут устареть или быть отозванными. Разработчик должен будет снова авторизовать приложение. Если для бизнеса критически важно, чтобы такого рода ситуация не возникала, затем вы должны использовать права доступа к приложениям (которые распространяются на всю организацию, все группы и т. д.).

0 голосов
/ 27 марта 2019

Возможно, вы захотите взглянуть на Получить доступ без пользователя .

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

...

Этапы аутентификации и авторизации

Основные шаги, необходимые для настройки службы и получения токена от конечной точки Azure AD v2.0, который ваша служба может использовать для вызова Microsoft Graph под своей собственной идентификацией:

  1. Зарегистрируйте свое приложение.
  2. Настройка разрешений для Microsoft Graph в вашем приложении.
  3. Получение согласия администратора.
  4. Получение токена доступа.
  5. Использование токена доступа для вызова Microsoft Graph.

Критическим битом является конфигурация разрешений.Вероятно, нужно изучить справку о разрешениях , чтобы узнать, обеспечивает ли она необходимую гранулярность.

2.Настройка разрешений для Microsoft Graph

Для приложений, которые вызывают Microsoft Graph под своей собственной идентификацией, Microsoft Graph предоставляет разрешения для приложений.... Вы предварительно настраиваете разрешения приложения, в которых оно нуждается при регистрации приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...