Добрый день всем, друзья. В одной из прошлых статей я рассказывал о том, как создать чат-бота на базе сервиса Microsoft Power Virtual Agents, полностью без программирования, с поддержкой ветвления и нескольких типов диалогов. В сегодняшней статье я покажу, как быстро создать подобного чат-бота, но уже с выводом в Microsoft Teams при использовании интеграции с Azure Active Directory и поддержкой Single Sign-on.



Итак, давайте начнем. Наш чат бот будет аналогично построен на базе сервиса Microsoft Power Virtual Agents, входящем в линейку сервисов Power Platform, но для начала нам необходимо обеспечить будущую авторизацию нашего бота через Azure Active Directory. Переходим на portal.azure.com и открываем сервис Azure Active Directory. Для настройки будущей авторизации бота через Azure Active Directory потребуется создать новое приложение AAD.



Переходим в раздел «App registrations» и нажимаем «New registration». Указываем имя приложения. Пусть это будет Azure AD Application, включаем опцию Accounts in any organizational directory и в Redirect URI указываем адрес из официальной документации Microsoft:
https://token.botframework.com/.auth/web/redirect
после чего нажимаем «Зарегистрировать».



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



Теперь самое время перейти к созданию нового бота Power Virtual Agents. Переходим по адресу powerva.microsoft.com и создаем нового бота. Указываем его имя, язык и среду, в которой он будет создан. Нажимаем «Создать».



Через несколько секунд бот будет создан. Далее, давайте произведем необходимые настройки для будущей авторизации пользователя в боте и самого бота в Microsoft Teams. Переходим в раздел Управление — Безопасность. Открываем пункт Проверка подлинности. Выбираем тип «Вручную». Поставщик услуг остается Azure Active Directory, в качестве ИД клиента указываем идентификатор созданного приложения AAD — Application ID. Секрет клиента также берем из настроек нашего приложения. Нажимаем «Сохранить».



Теперь переходим в раздел публикации чат-бота.



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



Копируем идентификатор бота и возвращаемся в приложение Azure Active Directory. Открываем раздел «Expose an API» и, в первую очередь, устанавливаем «Application ID URI» равным значению
api://botid-{teamsbotid}, где {teamsbotid} это идентификатор нашего бота.



Нажимаем «Сохранить». Теперь создаем новый скоуп, через который будет идти обращение бота к ресурсам. Заполняем поля данными и нажимаем сохранить.



Скоуп создан. Далее создаем привязку приложения Teams к приложению Azure Active Directory. Для Teams используется два идентификатора — ид десктопного клиента и ид мобильного клиента. Эти идентификаторы фиксированные. Указываем в привязке оба.

1fec8e78-bce4-4aaf-ab1b-5451cc387264 (Teams mobile/desktop)

5e3ce6c0-2b1f-4285-8d4b-75ee78787346 (Teams on the web)




Попутно зайдем в раздел «API permissions» и предоставим запрошенные права от имени администратора организации.



Возвращаемся в нашего чат-бота. Создадим диалог бота. Перейдем в раздел Темы, создать тему. Укажем имя темы и триггер фразу.



Настроим простой диалог. В первую очередь вызовем авторизацию пользователя.



Если авторизация успешная, то зададим пару вопросов. Например, спросим за какой год требуется справка и в каком количестве экземпляров она нужна.



После этого создадим Power Automate поток и пробросим внутрь него параметры из диалога бота. Получив параметры, создадим с помощью кубика SharePoint элемент в списке, передав в него параметры от диалога.



Вернемся в бота и свяжем наш диалог с только что созданным потоком.



Теперь переходим к публикации бота. Нажимаем «Опубликовать», переходим к каналу Microsoft Teams и кликаем «Отправить бота на утверждение администратором».



Далее прописываем в настройках манифест файла идентификатор приложения Azure Active Directory и URI ресурса из скоупа «Expose an API» Azure AD приложения.



Нажимаем «Отправить на утверждение администратором». После обработки запроса идем в центр администрирования Microsoft Teams и проверяем статус приложения. Выставляем у него статус опубликовано и разрешено.



Проверяем нашего бота. Открываем Teams, переходим в магазин приложений для организации и устанавливаем бота.



Пишем триггер фразу и отвечаем на все вопросы. Заявка зарегистрирована, наш чат бот с выводом в Microsoft Teams с помощью Azure Active Directory готов.



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