Как разрешить любому пользователю создавать собрания Teams с помощью MsGraph

#azure #azure-active-directory #microsoft-graph-api #microsoft-teams

#azure #azure-active-directory #microsoft-graph-api #microsoft-teams

Вопрос:

Я пытаюсь разработать веб-приложение, подключенное к нашему приложению AD Azure, которое позволяет любому пользователю с кодом (указанным в нашем собственном веб-приложении) запускать собрания Teams через Ms Graph API.

Процесс прост следующим образом:

  1. Используйте код хоста для создания комнаты Ms Teams
  2. Сохраните созданную информацию о комнате в базе данных нашего веб-приложения
  3. Отправляйте пользователей, используя гостевой код, в нужную комнату Teams

Сначала я попытался использовать бета-версию Ms Graph API для использования типа разрешения «приложение», для которого хост (на шаге 1) создаст конференц-зал в нашем домене AD Azure. Однако это работает, ссылка на uuid пользователя за пределами нашего домена AD Azure не разрешена или, похоже, не работает.

Затем я переписал веб-приложение, чтобы использовать «делегированный» тип разрешения. Пользователь, использующий код хоста на шаге 1, затем перенаправляется в Microsoft для входа в систему, возвращается в наше веб-приложение с правильными токенами авторизации, которые мы можем использовать с Ms Graph для создания комнат собраний от имени вошедшего в систему пользователя.

Насколько я знаю, я настроил соответствующие разрешения для «OnlineMeetings.ReadWrite’ (или онлайновые собрания.ReadWrite.all, в зависимости от типа разрешения). Согласие администратора получено, я даже установил для типа авторизации значение «Учетные записи в любом каталоге организации (любой каталог Azure AD — Multitenant)», но безрезультатно.

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

Есть ли способ разрешить вышеупомянутое?

Ответ №1:

Для вашего требования я обобщаю две ситуации, как показано ниже, для вашей справки:

Есть два арендатора (арендатор A и арендатор B), ваше зарегистрированное приложение находится в клиенте A и установлено как Accounts in any organizational directory (Any Azure AD directory - Multitenant) .

1. Если вы хотите, чтобы пользователь из другого AD создал комнату собраний в клиенте A, это невозможно реализовать.

2. Если вы хотите, чтобы пользователь из другого AD создал комнату собраний в текущем клиенте (например, в клиенте B). Вы можете запросить токен с идентификатором клиента B в конечной точке запроса токена (например https://login.microsoftonline.com/{id of tenant B}/oauth2/v2.0/token . И в теле запроса вы должны использовать идентификатор клиента в клиенте A зарегистрированного приложения. Мы можем просто выполнить шаги с помощью auth code flow, и появится всплывающее окно с запросом входа в систему, вам необходимо использовать учетную запись администратора (клиента B) для первого входа в систему (чтобы разрешить эту операцию).