Как разрешить кому угодно создавать собрания Teams через MsGraph

Я пытаюсь разработать веб-приложение, подключенное к нашему приложению 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 (или OnlineMeetings.ReadWrite.all, в зависимости от типа разрешения). Согласие администратора было сделано, я даже установил тип аутентификации на «Учетные записи в любом каталоге организации (любой каталог Azure AD - Multitenant)», но безрезультатно.

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

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


person Kozie    schedule 27.11.2020    source источник


Ответы (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 зарегистрированного приложения. Мы можем просто реализовать шаги с помощью поток кода аутентификации, и он появится Чтобы запросить вход в систему, вам необходимо использовать учетную запись администратора (клиента B), чтобы выполнить вход в первый раз (чтобы разрешить эту операцию).

person Hury Shen    schedule 30.11.2020