#azure #azure-active-directory #microsoft-graph-api #microsoft-teams
#azure #azure-active-directory #microsoft-graph-api #microsoft-teams
Вопрос:
Я пытаюсь разработать веб-приложение, подключенное к нашему приложению AD Azure, которое позволяет любому пользователю с кодом (указанным в нашем собственном веб-приложении) запускать собрания Teams через Ms Graph API.
Процесс прост следующим образом:
- Используйте код хоста для создания комнаты Ms Teams
- Сохраните созданную информацию о комнате в базе данных нашего веб-приложения
- Отправляйте пользователей, используя гостевой код, в нужную комнату 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) для первого входа в систему (чтобы разрешить эту операцию).