Создание бота с проверкой подлинности единого входа
Диалоговые боты в Microsoft Teams выполняют повторяющиеся автоматические задачи, инициированные пользователями, например обслуживание клиентов. Пользователю необходимо выполнить вход несколько раз без проверки подлинности единого входа. При использовании методов проверки подлинности единого входа пользователям не нужно входить в бот несколько раз.
Бот ведет себя по-разному в зависимости от беседы, в которую он участвует:
- Ботам в беседах в каналах и групповых чатах требуются пользователи бота @mention .
- Ботам в личной беседе не требуют @mention. Все сообщения, отправленные пользователем, направляются боту.
Это пошаговое руководство поможет вам создать бота с проверкой подлинности единого входа. Вы увидите следующие выходные данные:
Предварительные требования
Убедитесь, что установлены следующие средства и настроена среда разработки:
Установка | Для использования... | |
---|---|---|
Microsoft Teams | Microsoft Teams позволяет сотрудничать со всеми пользователями, с которыми вы работаете, с помощью приложений для чата, собраний и звонков в одном месте. | |
Visual Studio 2022 | Вы можете установить корпоративную версию в Visual Studio 2022, а также рабочие нагрузки ASP.NET и веб-разработки. Используйте последнюю версию. | |
Учетная запись разработчика Microsoft 365 | Доступ к учетной записи Teams с соответствующими разрешениями для установки приложения. | |
Туннель разработки | Функции приложений Teams (диалоговые боты, расширения сообщений и входящие веб-перехватчики) требуют входящих подключений. Туннель соединяет систему разработки с Teams. Туннель разработки — это мощный инструмент для безопасного открытия локального узла в Интернете и контроля доступа. Туннель разработки доступен в Visual Studio 2022 версии 17.7.0 или более поздней. или вы также можете использовать ngrok в качестве туннеля для подключения системы разработки к Teams. Он не требуется для приложений, которые содержат только вкладки. Этот пакет устанавливается в каталоге проекта (с помощью npm devDependencies ). |
Примечание.
После скачивания ngrok зарегистрируйтесь и установите authtoken.
Настройка клиента разработки Teams
Клиент похож на пространство или контейнер, в котором вы общаетесь, обмениваются файлами и выполняете собрания для своей организации в Teams. Вы также можете отправить и протестировать пользовательское приложение.
Проверка параметра отправки пользовательских приложений
После создания приложения необходимо загрузить это приложение в Teams, не распространяя его. Этот процесс называется отправкой пользовательского приложения. Войдите в учетную запись Microsoft 365, чтобы просмотреть этот параметр.
Примечание.
Отправка пользовательских приложений необходима для предварительного просмотра и тестирования приложений в локальной среде Teams. Включите отправку приложения для предварительного просмотра и тестирования приложения в Teams локально.
У вас уже есть клиент и есть ли у вас доступ администратора? Давайте проверим, действительно ли вы делаете!
Чтобы проверить настраиваемую отправку приложений в Teams, выполните приведенные далее действия.
В клиенте Teams щелкните значок Приложения .
Выберите Управление приложениями
Выберите Отправить приложение.
Найдите параметр Отправить пользовательское приложение. Если параметр отображается, включена отправка пользовательских приложений.
Примечание.
Если у вас нет возможности отправить пользовательское приложение, обратитесь к администратору Teams.
Создание бесплатного клиента разработчика Teams (необязательно)
Если у вас нет учетной записи разработчика Teams, ее можно получить бесплатно. Присоединяйтесь к программе для разработчиков Microsoft 365!
Перейдите в программу для разработчиков Microsoft 365.
Выберите Присоединиться и следуйте инструкциям на экране.
На экране приветствия выберите Настройка подписки E5.
Настройка учетной записи администратора. После завершения отобразится следующий экран.
Войдите в Teams с помощью новой учетной записи администратора, который вы только что настроили. Убедитесь, что у вас есть параметр Отправить пользовательское приложение в Teams.
Настройка локальной среды
Откройте Microsoft-Teams-Samples.
Выберите Код.
В раскрывающемся меню выберите Открыть с помощью GitHub Desktop.
Выберите Клонировать.
Регистрация приложения Microsoft Entra
Следующие действия помогут вам создать и зарегистрировать бота на портале Azure.
- Создайте и зарегистрируйте приложение Azure.
- Создайте секрет клиента, чтобы включить проверку подлинности бота с единым входом.
- Добавьте канал Teams для развертывания бота.
- Создайте туннель к конечным точкам веб-сервера с помощью туннеля разработки (рекомендуется) или ngrok.
- Добавьте конечную точку обмена сообщениями в созданный туннель разработки.
Добавление регистрации приложения
Перейдите на портал Azure.
Выберите Регистрация приложений.
Выберите + Новая регистрация.
Введите имя приложения.
Выберите Учетные записи в любом каталоге организации (любой клиент Microsoft Entra ID — Мультитенант).
Нажмите Зарегистрировать.
Ваше приложение зарегистрировано в Идентификаторе Microsoft Entra. Откроется страница обзора приложения.
Примечание.
Сохраните идентификатор приложения из идентификатора приложения (клиента) и каталога (клиента) для дальнейшего использования.
Создание туннеля
Откройте Visual Studio.
Выберите Создать новый проект.
В поле поиска введите ASP.NET. В результатах поиска выберите ASP.NET Core Web App.
Нажмите кнопку Далее.
Введите имя проекта и нажмите кнопку Далее.
Нажмите Создать.
Откроется окно обзора.
В раскрывающемся списке отладки выберите Dev Tunnels (без активного туннеля)>Создать туннель....
Открывается всплывающее окно.
Обновите следующие сведения во всплывающем окне:
- Учетная запись. Введите учетную запись Майкрософт или GitHub.
- Имя: введите имя туннеля.
- Тип туннеля: в раскрывающемся списке выберите Временный.
- Доступ: в раскрывающемся списке выберите Общедоступный.
Нажмите OK.
Появится всплывающее окно, показывающее, что туннель разработки успешно создан.
Нажмите OK.
Созданный туннель можно найти в раскрывающемся списке отладки следующим образом:
Нажмите клавишу F5 , чтобы запустить приложение в режиме отладки.
Если появится диалоговое окно Предупреждение системы безопасности , выберите Да.
Открывается всплывающее окно.
Нажмите Продолжить.
В новом окне браузера откроется домашняя страница туннеля разработки, и туннель разработки теперь активен.
Перейдите в Visual Studio и выберите Просмотреть выходные > данные.
В раскрывающемся меню консоли вывода выберите Dev Tunnels (Туннели разработки).
В консоли вывода отображается URL-адрес туннеля разработки.
Добавление веб-проверки подлинности
В левой области в разделе Управление выберите Проверка подлинности.
Выберите Добавить веб-сайт платформы>.
Введите URI перенаправления для приложения, добавив
auth-end
к полному доменному имени. Например,https://your-devtunnel-domain/auth-end
илиhttps://your-ngrok-domain/auth-end
.В разделе Неявное предоставление и гибридные потоки установите флажки Маркеры доступа и маркеры идентификаторов .
Нажмите Настроить.
В разделе Интернет выберите Добавить URI.
Введите
https://token.botframework.com/.auth/web/redirect
.Выберите Сохранить.
Создание секрета клиента
В левой области в разделе Управление выберите Сертификаты & секреты.
В разделе Секреты клиента выберите + Новый секрет клиента.
Откроется окно Добавление секрета клиента .
Введите Описание.
Нажмите Добавить.
В разделе Значение выберите Копировать в буфер обмена , чтобы сохранить значение секрета клиента для дальнейшего использования.
Добавление разрешений API
В левой области выберите Разрешения API.
Выберите + Добавить разрешение.
Выберите Microsoft Graph.
Выберите Делегированные разрешения.
Выберите User>User.Read.
Выберите Добавить разрешения.
Примечание.
Если приложению не предоставлено согласие ИТ-администратора, пользователи должны предоставить согласие при первом использовании приложения. Пользователям требуется согласие на разрешения API, только если приложение Microsoft Entra зарегистрировано в другом клиенте.
URI идентификатора приложения.
В области слева в разделе Управление выберите Предоставить API.
Рядом с полем URI идентификатора приложения нажмите кнопку Добавить.
Обновите URI идентификатора приложения в
api://botid-{AppID}
формате и нажмите кнопку Сохранить.
Добавление области
В области слева в разделе Управление выберите Предоставить API.
Выберите + Добавить область.
Введите access_as_user в качестве имени области.
В разделе Кто может предоставить согласие? выберите Администраторы и пользователи.
Обновите значения остальных полей следующим образом:
Введите , что Teams может получить доступ к профилю пользователя в качестве отображаемого имени согласия администратора.
Введите Позволяет Teams вызывать веб-API приложения от имени текущего пользователя в качестве описания согласия администратора.
Введите Teams для доступа к профилю пользователя и отправлять запросы от имени пользователя в качестве отображаемого имени согласия пользователя.
Введите Включить Teams для вызова API этого приложения с теми же правами, что и у пользователя , в описании согласия пользователя.
Убедитесь, что параметру Состояние присвоено значение Включено.
Нажмите кнопку Добавить область.
На следующем рисунке показаны поля и значения:
Примечание.
Имя области должно совпадать с URI идентификатора приложения с
/access_as_user
добавлением в конце.
Добавление клиентского приложения
В области слева в разделе Управление выберите Предоставить API.
В разделе Авторизованные клиентские приложения определите приложения, которые вы хотите авторизовать для веб-приложения вашего приложения.
Выберите + Добавить клиентское приложение.
Добавьте мобильное или классическое приложение Teams и веб-приложение Teams.
Для мобильных или классических приложений Teams: введите идентификатор клиента как
1fec8e78-bce4-4aaf-ab1b-5451cc387264
.Для веб-сайта Teams: введите идентификатор клиента как
5e3ce6c0-2b1f-4285-8d4b-75ee78787346
.
Установите флажок Авторизованные области .
Нажмите кнопку Добавить приложение.
На следующем рисунке отображается идентификатор клиента:
Обновление манифеста
В левой области выберите Манифест.
Задайте для
accessTokenAcceptedVersion
2
параметра значение и нажмите кнопку Сохранить.
Создание бота
Создание ресурса бота Azure
Примечание.
Если вы уже тестируете бот в Teams, выйдите из этого приложения и Teams. Чтобы увидеть это изменение, войдите еще раз.
Перейдите на домашнюю страницу.
Выберите + Создать ресурс.
В поле поиска введите Azure Bot.
Выберите ВВОД.
Выберите Azure Bot.
Нажмите Создать.
Введите имя бота в поле Дескриптор бота.
Выберите свою подписку в раскрывающемся списке.
Выберите свою группу ресурсов в раскрывающемся списке.
Если у вас нет существующей группы ресурсов, можно создать новую группу ресурсов. Чтобы создать новую группу ресурсов, выполните следующие действия.
- Выберите Создать.
- Введите имя ресурса и нажмите кнопку ОК.
- Выберите расположение в раскрывающемся списке Расположение новой группы ресурсов .
В разделе Цены выберите Изменить план.
Выберите FO Free>Select.
В разделе Идентификатор приложения Майкрософт выберите Тип приложения в качестве мультитенантного.
В поле Тип создания выберите Использовать существующую регистрацию приложения.
Введите идентификатор приложения.
Примечание.
Нельзя создать несколько ботов с одним идентификатором приложения Майкрософт.
Выберите Проверить и создать.
После завершения проверки нажмите кнопку Создать.
Подготовка бота занимает несколько минут.
Выберите пункт Перейти к ресурсу.
Вы успешно создали бот Azure.
Добавление канала Teams
В левой области выберите Каналы.
В разделе Доступные каналы выберите Microsoft Teams.
Установите флажок, чтобы принять условия предоставления услуг.
Выберите Принять.
Нажмите Применить.
Добавление конечной точки обмена сообщениями
Используйте URL-адрес туннеля разработки в консоли вывода в качестве конечной точки обмена сообщениями.
В левой области в разделе Параметры выберите Конфигурация.
Обновите конечную точку обмена сообщениями в формате
https://your-devtunnel-domain/api/messages
.Нажмите Применить.
Вы успешно настроили бот в службе Azure Bot.
Примечание.
Если ключ инструментирования Application Insights отображает ошибку, обновите идентификатор приложения.
Добавление параметров подключения OAuth
В левой области выберите Конфигурация.
Нажмите кнопку Добавить параметры подключения OAuth на экране Конфигурация.
В разделе Новый параметр подключения обновите следующие сведения:
- Имя. Введите имя для нового параметра подключения. Имя можно использовать в параметрах кода службы бота.
- Поставщик услуг. В раскрывающемся списке выберите Azure Active Directory версии 2.
- Идентификатор клиента: обновите идентификатор приложения Майкрософт.
- Секрет клиента: обновите значение секретов клиента.
- URL-адрес обмена маркерами: обновите универсальный код ресурса (URI) идентификатора приложения.
- Идентификатор клиента: введите Common.
- Области: введите User.Read.
Выберите Сохранить.
Настройка параметров приложения и файлов манифеста
Перейдите к файлу appsettings.json в клонированного репозитория.
Откройте файл appsettings.json и обновите следующие сведения:
- Задайте
"MicrosoftAppId"
для бота идентификатор приложения Майкрософт. - Задайте
"MicrosoftAppPassword"
значение идентификатора секрета клиента бота. - Задайте
ConnectionName
имя подключения OAuth. - Задайте значение
"MicrosoftAppType"
MultiTenant. - Задайте значение
"MicrosoftAppTenantId"
common.
- Задайте
Перейдите к файлу manifest.json в клонированного репозитория.
Откройте файл manifest.json и обновите следующие изменения:
- Замените все вхождения идентификатором
"{TODO: MicrosoftAppId}"
приложения Майкрософт. - Задайте
"<<domain-name>>"
для домена ngrok или dev tunnel.
- Замените все вхождения идентификатором
Сборка и запуск службы
Откройте Visual Studio.
Перейдите в раздел Файл>Открыть>проект или решение....
В папке bot-conversation-sso-quickstart>csharp_dotnetcore папку и выберите BotConversationSsoQuickstart.sln файл.
Выберите F5 , чтобы запустить проект.
Если появится диалоговое окно Предупреждение системы безопасности , выберите Да.
Откроется веб-страница с сообщением Ваш бот готов!.
Устранение неполадок
Если возникает ошибка Не удается найти пакет , выполните следующие действия.
- Перейдите в раздел Сервис>Диспетчер пакетов> NuGetПараметры диспетчера пакетов.
- В появившемся окне Параметры выберитеNuGet Package Manager Package Sources (Источники пакетов диспетчера>пакетов NuGet).
- Нажмите Добавить.
- В поле Имя введите
nuget.org
, а в поле Источник введитеhttps://api.nuget.org/v3/index.json
. - Выберите Обновить и ОК.
- Перестройте проект.
Отправка бота в Teams
В клонированного репозитория перейдите к разделу Примеры microsoft-Teams-samples>>bot-conversation-sso-quickstart>csharp_dotnetcore>BotConversationSsoQuickstart.
Создайте файл .zip со следующими файлами, которые находятся в папке appPackage :
- manifest.json
- outline.png
- color.png
Перейдите в Microsoft Teams.
В клиенте Teams выберите Приложения.
Выберите Управление приложениями
Выберите Отправить приложение.
Найдите параметр Отправить пользовательское приложение.
Выберите Открыть , чтобы отправить файл .zip, созданный в папку Манифест .
Нажмите кнопку Добавить , чтобы добавить бота в чат.
Вы можете взаимодействовать с ботом, отправив ему сообщение. Бот обменивается маркером единого входа и вызывает API Graph от вашего имени. Он сохраняет вход, если вы не отправите сообщение для выхода.
Отправьте сообщение боту. Бот беседы впервые запрашивает согласие.
Для настольных компьютеров: выберите Продолжить , чтобы предоставить клиенту Teams разрешения на доступ к боту.
Примечание.
Теперь вы настроили единый вход в приложение бота, и это единственный раз, когда вам придется дать согласие.
Для мобильных устройств: выберите Принять.
Примечание.
Теперь вы настроили единый вход с приложением бота на мобильных устройствах, и это единственный раз, когда вам придется дать согласие.
Выполнение задачи
Ты придумала что-то вроде этого?
Поздравляем!
Вы завершили руководство, чтобы приступить к созданию бота с проверкой подлинности единого входа.
Возникла проблема с этим разделом? Если это так, отправьте нам отзыв, чтобы мы исправили этот раздел.
Platform Docs