Добрый день всем, друзья. В одной из прошлых статей я рассказывал о том, как создать чат-бота на базе сервиса 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:

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

Теперь самое время перейти к созданию нового бота 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 используется два идентификатора — ид десктопного клиента и ид мобильного клиента. Эти идентификаторы фиксированные. Указываем в привязке оба.

Попутно зайдем в раздел «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. Всем хорошего дня и спасибо за внимание!

Итак, давайте начнем. Наш чат бот будет аналогично построен на базе сервиса 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. Всем хорошего дня и спасибо за внимание!