Создание Microsoft Teams чат-бота без программирования с поддержкой Azure Active Directory

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

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

rx4fneosnlg4q7upneayab1mrrg.png

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

https://token.botframework.com/.auth/web/redirect
после чего нажимаем «Зарегистрировать».

g59m5c0bxti5f1zlerj0hhjrkua.png

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

btrxnpjqtolkh1mwonu7hfpw45w.png

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

titbwy8lzvswz8nfj0l9o_hr4g8.png

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

qeoni6eyxyoczy_wx79sgztoqrm.png

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

kgya7vbhfokqjgsj_moai6lqek0.png

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

uah2fwrcz2ncj-yavvhi0yy-puw.png

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

utudyqzxs4lvsm26mioel9zraxs.png

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

xb5uuoit17_muegnccjrcpc1wp8.png

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

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

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

s5rfbipwiaj7cgf2pqzoaazggg8.png

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

cjw4c3e7kf-hcdf1p54crnghq9c.png

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

ejegk4offkkcxexvhlaqshrv5o4.png

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

sxinueoqi5gbrmko7fdjsv4zp0o.png

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

z4_dvuiabasg1-kvot8wop_1llo.png

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

bn9sjd7gcxzwo_zgcnodyum0qu0.png

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

8iribrkazvjmi_6m8xrvdzfrf7g.png

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

5hhfog1be92cey53rguynwwztqc.png

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

qks8f2pmoo9yhv17_t0ls2b5lya.png

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

nhijwnnkmnocvq3kqpw2xigiaxq.png

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

5hyogvsl4ufhtx5ojjuzngylays.png

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

8miv9wrdinicp3vash54szud35o.png

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

© Habrahabr.ru