Добрый день всем, друзья. В одной из прошлых статей я рассказывал о том, как создать чат-бота на базе сервиса Microsoft Power Virtual Agents, полностью без программирования, с поддержкой ветвления и нескольких типов диалогов. В сегодняшней статье я покажу, как быстро создать подобного чат-бота, но уже с выводом в Microsoft Teams при использовании интеграции с Azure Active Directory и поддержкой Single Sign-on.
![](https://habrastorage.org/webt/53/ry/j_/53ryj_-wynwv8c5dacgh0gggcxi.jpeg)
Итак, давайте начнем. Наш чат бот будет аналогично построен на базе сервиса Microsoft Power Virtual Agents, входящем в линейку сервисов Power Platform, но для начала нам необходимо обеспечить будущую авторизацию нашего бота через Azure Active Directory. Переходим на portal.azure.com и открываем сервис Azure Active Directory. Для настройки будущей авторизации бота через Azure Active Directory потребуется создать новое приложение AAD.
![](https://habrastorage.org/webt/rx/4f/ne/rx4fneosnlg4q7upneayab1mrrg.png)
Переходим в раздел «App registrations» и нажимаем «New registration». Указываем имя приложения. Пусть это будет Azure AD Application, включаем опцию Accounts in any organizational directory и в Redirect URI указываем адрес из официальной документации Microsoft:
![](https://habrastorage.org/webt/g5/9m/5c/g59m5c0bxti5f1zlerj0hhjrkua.png)
Приложение готово. Теперь переходим в раздел «Сертификаты и секреты» для того, чтобы сформировать секрет для проверки подлинности. Нажимаем «Создать новый секрет», указываем его имя и срок истечения. Секрет готов. Сохраняем его чтобы не забыть.
![](https://habrastorage.org/webt/bt/rx/np/btrxnpjqtolkh1mwonu7hfpw45w.png)
Теперь самое время перейти к созданию нового бота Power Virtual Agents. Переходим по адресу powerva.microsoft.com и создаем нового бота. Указываем его имя, язык и среду, в которой он будет создан. Нажимаем «Создать».
![](https://habrastorage.org/webt/ti/tb/wy/titbwy8lzvswz8nfj0l9o_hr4g8.png)
Через несколько секунд бот будет создан. Далее, давайте произведем необходимые настройки для будущей авторизации пользователя в боте и самого бота в Microsoft Teams. Переходим в раздел Управление — Безопасность. Открываем пункт Проверка подлинности. Выбираем тип «Вручную». Поставщик услуг остается Azure Active Directory, в качестве ИД клиента указываем идентификатор созданного приложения AAD — Application ID. Секрет клиента также берем из настроек нашего приложения. Нажимаем «Сохранить».
![](https://habrastorage.org/webt/qe/on/i6/qeoni6eyxyoczy_wx79sgztoqrm.png)
Теперь переходим в раздел публикации чат-бота.
![](https://habrastorage.org/webt/kg/ya/7v/kgya7vbhfokqjgsj_moai6lqek0.png)
Нажимаем «Опубликовать», дожидаемся окончания публикации, после чего переходим к настройке каналов. Выбираем Microsoft Teams. Включаем поддержку канала Microsoft Teams и нажимаем «Отправить на утверждение администратором». Здесь нам потребуется взять идентификатор бота.
![](https://habrastorage.org/webt/ua/h2/fw/uah2fwrcz2ncj-yavvhi0yy-puw.png)
Копируем идентификатор бота и возвращаемся в приложение Azure Active Directory. Открываем раздел «Expose an API» и, в первую очередь, устанавливаем «Application ID URI» равным значению
api://botid-{teamsbotid}, где {teamsbotid} это идентификатор нашего бота.
![](https://habrastorage.org/webt/ut/ud/yq/utudyqzxs4lvsm26mioel9zraxs.png)
Нажимаем «Сохранить». Теперь создаем новый скоуп, через который будет идти обращение бота к ресурсам. Заполняем поля данными и нажимаем сохранить.
![](https://habrastorage.org/webt/xb/5u/uo/xb5uuoit17_muegnccjrcpc1wp8.png)
Скоуп создан. Далее создаем привязку приложения Teams к приложению Azure Active Directory. Для Teams используется два идентификатора — ид десктопного клиента и ид мобильного клиента. Эти идентификаторы фиксированные. Указываем в привязке оба.
![](https://habrastorage.org/webt/s5/rf/bi/s5rfbipwiaj7cgf2pqzoaazggg8.png)
Попутно зайдем в раздел «API permissions» и предоставим запрошенные права от имени администратора организации.
![](https://habrastorage.org/webt/cj/w4/c3/cjw4c3e7kf-hcdf1p54crnghq9c.png)
Возвращаемся в нашего чат-бота. Создадим диалог бота. Перейдем в раздел Темы, создать тему. Укажем имя темы и триггер фразу.
![](https://habrastorage.org/webt/ej/eg/k4/ejegk4offkkcxexvhlaqshrv5o4.png)
Настроим простой диалог. В первую очередь вызовем авторизацию пользователя.
![](https://habrastorage.org/webt/sx/in/ue/sxinueoqi5gbrmko7fdjsv4zp0o.png)
Если авторизация успешная, то зададим пару вопросов. Например, спросим за какой год требуется справка и в каком количестве экземпляров она нужна.
![](https://habrastorage.org/webt/z4/_d/vu/z4_dvuiabasg1-kvot8wop_1llo.png)
После этого создадим Power Automate поток и пробросим внутрь него параметры из диалога бота. Получив параметры, создадим с помощью кубика SharePoint элемент в списке, передав в него параметры от диалога.
![](https://habrastorage.org/webt/bn/9s/jd/bn9sjd7gcxzwo_zgcnodyum0qu0.png)
Вернемся в бота и свяжем наш диалог с только что созданным потоком.
![](https://habrastorage.org/webt/8i/ri/br/8iribrkazvjmi_6m8xrvdzfrf7g.png)
Теперь переходим к публикации бота. Нажимаем «Опубликовать», переходим к каналу Microsoft Teams и кликаем «Отправить бота на утверждение администратором».
![](https://habrastorage.org/webt/5h/hf/og/5hhfog1be92cey53rguynwwztqc.png)
Далее прописываем в настройках манифест файла идентификатор приложения Azure Active Directory и URI ресурса из скоупа «Expose an API» Azure AD приложения.
![](https://habrastorage.org/webt/qk/s8/f2/qks8f2pmoo9yhv17_t0ls2b5lya.png)
Нажимаем «Отправить на утверждение администратором». После обработки запроса идем в центр администрирования Microsoft Teams и проверяем статус приложения. Выставляем у него статус опубликовано и разрешено.
![](https://habrastorage.org/webt/nh/ij/wn/nhijwnnkmnocvq3kqpw2xigiaxq.png)
Проверяем нашего бота. Открываем Teams, переходим в магазин приложений для организации и устанавливаем бота.
![](https://habrastorage.org/webt/5h/yo/gv/5hyogvsl4ufhtx5ojjuzngylays.png)
Пишем триггер фразу и отвечаем на все вопросы. Заявка зарегистрирована, наш чат бот с выводом в Microsoft Teams с помощью Azure Active Directory готов.
![](https://habrastorage.org/webt/8m/iv/9w/8miv9wrdinicp3vash54szud35o.png)
В заключение хочу отметить, что в рамках экосистемы Microsoft 365 и Microsoft Azure можно создавать различные решения с поддержкой множества функций, как например, создание чат бота с последующим выводом его в Microsoft Teams. В следующих статьях разберем еще больше подобных решений на базе сервисов Microsoft. Всем хорошего дня и спасибо за внимание!
![](https://habrastorage.org/webt/53/ry/j_/53ryj_-wynwv8c5dacgh0gggcxi.jpeg)
Итак, давайте начнем. Наш чат бот будет аналогично построен на базе сервиса Microsoft Power Virtual Agents, входящем в линейку сервисов Power Platform, но для начала нам необходимо обеспечить будущую авторизацию нашего бота через Azure Active Directory. Переходим на portal.azure.com и открываем сервис Azure Active Directory. Для настройки будущей авторизации бота через Azure Active Directory потребуется создать новое приложение AAD.
![](https://habrastorage.org/webt/rx/4f/ne/rx4fneosnlg4q7upneayab1mrrg.png)
Переходим в раздел «App registrations» и нажимаем «New registration». Указываем имя приложения. Пусть это будет Azure AD Application, включаем опцию Accounts in any organizational directory и в Redirect URI указываем адрес из официальной документации Microsoft:
https://token.botframework.com/.auth/web/redirect
после чего нажимаем «Зарегистрировать». ![](https://habrastorage.org/webt/g5/9m/5c/g59m5c0bxti5f1zlerj0hhjrkua.png)
Приложение готово. Теперь переходим в раздел «Сертификаты и секреты» для того, чтобы сформировать секрет для проверки подлинности. Нажимаем «Создать новый секрет», указываем его имя и срок истечения. Секрет готов. Сохраняем его чтобы не забыть.
![](https://habrastorage.org/webt/bt/rx/np/btrxnpjqtolkh1mwonu7hfpw45w.png)
Теперь самое время перейти к созданию нового бота Power Virtual Agents. Переходим по адресу powerva.microsoft.com и создаем нового бота. Указываем его имя, язык и среду, в которой он будет создан. Нажимаем «Создать».
![](https://habrastorage.org/webt/ti/tb/wy/titbwy8lzvswz8nfj0l9o_hr4g8.png)
Через несколько секунд бот будет создан. Далее, давайте произведем необходимые настройки для будущей авторизации пользователя в боте и самого бота в Microsoft Teams. Переходим в раздел Управление — Безопасность. Открываем пункт Проверка подлинности. Выбираем тип «Вручную». Поставщик услуг остается Azure Active Directory, в качестве ИД клиента указываем идентификатор созданного приложения AAD — Application ID. Секрет клиента также берем из настроек нашего приложения. Нажимаем «Сохранить».
![](https://habrastorage.org/webt/qe/on/i6/qeoni6eyxyoczy_wx79sgztoqrm.png)
Теперь переходим в раздел публикации чат-бота.
![](https://habrastorage.org/webt/kg/ya/7v/kgya7vbhfokqjgsj_moai6lqek0.png)
Нажимаем «Опубликовать», дожидаемся окончания публикации, после чего переходим к настройке каналов. Выбираем Microsoft Teams. Включаем поддержку канала Microsoft Teams и нажимаем «Отправить на утверждение администратором». Здесь нам потребуется взять идентификатор бота.
![](https://habrastorage.org/webt/ua/h2/fw/uah2fwrcz2ncj-yavvhi0yy-puw.png)
Копируем идентификатор бота и возвращаемся в приложение Azure Active Directory. Открываем раздел «Expose an API» и, в первую очередь, устанавливаем «Application ID URI» равным значению
api://botid-{teamsbotid}, где {teamsbotid} это идентификатор нашего бота.
![](https://habrastorage.org/webt/ut/ud/yq/utudyqzxs4lvsm26mioel9zraxs.png)
Нажимаем «Сохранить». Теперь создаем новый скоуп, через который будет идти обращение бота к ресурсам. Заполняем поля данными и нажимаем сохранить.
![](https://habrastorage.org/webt/xb/5u/uo/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)
![](https://habrastorage.org/webt/s5/rf/bi/s5rfbipwiaj7cgf2pqzoaazggg8.png)
Попутно зайдем в раздел «API permissions» и предоставим запрошенные права от имени администратора организации.
![](https://habrastorage.org/webt/cj/w4/c3/cjw4c3e7kf-hcdf1p54crnghq9c.png)
Возвращаемся в нашего чат-бота. Создадим диалог бота. Перейдем в раздел Темы, создать тему. Укажем имя темы и триггер фразу.
![](https://habrastorage.org/webt/ej/eg/k4/ejegk4offkkcxexvhlaqshrv5o4.png)
Настроим простой диалог. В первую очередь вызовем авторизацию пользователя.
![](https://habrastorage.org/webt/sx/in/ue/sxinueoqi5gbrmko7fdjsv4zp0o.png)
Если авторизация успешная, то зададим пару вопросов. Например, спросим за какой год требуется справка и в каком количестве экземпляров она нужна.
![](https://habrastorage.org/webt/z4/_d/vu/z4_dvuiabasg1-kvot8wop_1llo.png)
После этого создадим Power Automate поток и пробросим внутрь него параметры из диалога бота. Получив параметры, создадим с помощью кубика SharePoint элемент в списке, передав в него параметры от диалога.
![](https://habrastorage.org/webt/bn/9s/jd/bn9sjd7gcxzwo_zgcnodyum0qu0.png)
Вернемся в бота и свяжем наш диалог с только что созданным потоком.
![](https://habrastorage.org/webt/8i/ri/br/8iribrkazvjmi_6m8xrvdzfrf7g.png)
Теперь переходим к публикации бота. Нажимаем «Опубликовать», переходим к каналу Microsoft Teams и кликаем «Отправить бота на утверждение администратором».
![](https://habrastorage.org/webt/5h/hf/og/5hhfog1be92cey53rguynwwztqc.png)
Далее прописываем в настройках манифест файла идентификатор приложения Azure Active Directory и URI ресурса из скоупа «Expose an API» Azure AD приложения.
![](https://habrastorage.org/webt/qk/s8/f2/qks8f2pmoo9yhv17_t0ls2b5lya.png)
Нажимаем «Отправить на утверждение администратором». После обработки запроса идем в центр администрирования Microsoft Teams и проверяем статус приложения. Выставляем у него статус опубликовано и разрешено.
![](https://habrastorage.org/webt/nh/ij/wn/nhijwnnkmnocvq3kqpw2xigiaxq.png)
Проверяем нашего бота. Открываем Teams, переходим в магазин приложений для организации и устанавливаем бота.
![](https://habrastorage.org/webt/5h/yo/gv/5hyogvsl4ufhtx5ojjuzngylays.png)
Пишем триггер фразу и отвечаем на все вопросы. Заявка зарегистрирована, наш чат бот с выводом в Microsoft Teams с помощью Azure Active Directory готов.
![](https://habrastorage.org/webt/8m/iv/9w/8miv9wrdinicp3vash54szud35o.png)
В заключение хочу отметить, что в рамках экосистемы Microsoft 365 и Microsoft Azure можно создавать различные решения с поддержкой множества функций, как например, создание чат бота с последующим выводом его в Microsoft Teams. В следующих статьях разберем еще больше подобных решений на базе сервисов Microsoft. Всем хорошего дня и спасибо за внимание!
fernando1976
достали со своими ботами реально, вижу в диалоге бота прохожу мимо, толку ноль от них
Andrew_Braun Автор
Тут больше речь про корпоративных чат-ботов, для сотрудников организации, чтобы им по вкладкам браузера и порталам не лазить, а всё делать в одном окне.
leschenko
Иногда проще пройти 10 вкладок/окон, чем добиться чего-то от бота. Особо бесит что ботов пихают куда только пихается.
Andrew_Braun Автор
Не спорю, ситуации разные бывают)