Для проверки приложения бота можно использовать проверку подлинности на основе сертификата или MSI, а не идентификатора и секрета бота. Эта проверка подлинности устраняет проблемы соответствия требованиям, связанные с использованием Microsoft Entra ID и секрета бота.
Предварительные условия
Убедитесь, что у вас есть приложение бота Teams, развернутое в Azure со следующими ресурсами:
- Бот Azure.
- Entra ID с секретом, используемым для проверки подлинности бота.
- Ресурс, в котором размещается приложение бота, например Служба приложений Azure, Функции Azure.
Чтобы обновить приложение бота для использования проверки подлинности на основе сертификатов, выполните следующие действия.
-
Создание и отправка сертификата в Azure AD
-
Обновление кода приложения бота
-
Удаление секрета бота
Создание и отправка сертификата в Azure AD
Чтобы использовать сертификат для проверки подлинности бота, выполните следующие действия:
Подготовьте сертификат и закрытый ключ.
Перейдите к портал Azure.
Выберите Регистрация приложений.
Выберите зарегистрированные приложения.
В левой области в разделе Управление выберите Сертификаты & секреты.
В разделе Сертификаты выберите Отправить сертификат.
Откроется окно Отправка сертификата .
Примечание.
Отправьте сертификат (открытый ключ) с одним из следующих типов файлов: .cer, .pem, .crt.
Отправьте подготовленный сертификат.
Введите Описание.
Нажмите Добавить.
Обновление кода приложения бота
Чтобы обновить код приложения бота, выполните следующие действия:
Откройте проект приложения бота в Visual Studio или Visual Studio Code.
Обновите код.
const credentialsFactory = new ConfigurationServiceClientCredentialFactory({
MicrosoftAppId: config.botId,
CertificatePrivateKey: '{your private key}',
CertificateThumbprint: '{your cert thumbprint}',
MicrosoftAppType: "MultiTenant",
});
const botFrameworkAuthentication = new ConfigurationBotFrameworkAuthentication(
{},
credentialsFactory
);
const adapter = new CloudAdapter(botFrameworkAuthentication);
builder.Services.AddSingleton<ServiceClientCredentialsFactory>((e) => new CertificateServiceClientCredentialsFactory("{your certificate}", "{your entra id}"));
Убедитесь, что вы протестируете бота, чтобы убедиться, что операция соответствует обновленной проверке подлинности.
Удаление секрета бота
Перед удалением секрета бота убедитесь, что приложение бота использует сертификат для проверки подлинности.
Чтобы удалить секрет бота, выполните следующие действия:
Перейдите к портал Azure.
Выберите Регистрация приложений.
Выберите зарегистрированные приложения.
В левой области в разделе Управление выберите Сертификаты & секреты.
Удалите секреты из Entra.
Теперь приложение бота использует сертификат для проверки подлинности.
Чтобы обновить приложение бота для использования проверки подлинности на основе MSI, выполните следующие действия.
-
Создание службы бота с типом MSI в Azure AD
-
Обновление кода приложения бота для MSI
-
Удаление секрета бота
Примечание.
Идентификатор и тип службы Azure Bot нельзя изменить после создания.
Создание службы бота с типом MSI в Azure AD
Чтобы создать новую службу Azure Bot с типом MSI, выполните следующие действия:
Перейдите к портал Azure.
Перейдите на домашнюю страницу.
Выберите + Создать ресурс.
В поле поиска введите Azure Bot.
Выберите клавишу ВВОД .
Выберите Azure Bot.
Нажмите Создать.
Введите имя бота в поле Дескриптор бота.
Выберите свою подписку в раскрывающемся списке.
Выберите свою группу ресурсов в раскрывающемся списке.
Если у вас нет существующей группы ресурсов, можно создать новую группу ресурсов. Чтобы создать новую службу бота Azure и управляемое удостоверение, выполните следующие действия.
- Выберите Создать.
- Введите имя ресурса и нажмите кнопку ОК.
- Выберите расположение в раскрывающемся списке Расположение новой группы ресурсов .
В разделе Идентификатор приложения Майкрософт выберите Тип приложения в качестве управляемого удостоверения, назначаемого пользователем.
В поле Тип создания выберите Создать новый идентификатор приложения Майкрософт.
ИЛИ
Сначала можно вручную создать управляемое удостоверение, а затем создать бот Azure с помощью параметра Использовать существующую регистрацию приложения.
Обновите новую конечную точку и каналы обмена сообщениями Azure Bot в соответствии со старой службой.
Перейдите к ресурсу для размещения приложений.
Выберите Параметры. > Удостоверение > назначено пользователю.
Добавьте созданное управляемое удостоверение.
Обновление кода приложения бота для MSI
Чтобы обновить код приложения бота для MSI, выполните следующие действия.
Откройте проект приложения бота в Visual Studio или Visual Studio Code.
Обновите код.
const credentialsFactory = new ConfigurationServiceClientCredentialFactory({
MicrosoftAppType: 'UserAssignedMsi',
MicrosoftAppId: '{your MSI’s client ID}',
MicrosoftAppTenantId: '{your MSI’s tenant ID}',
});
const botFrameworkAuthentication = new ConfigurationBotFrameworkAuthentication(
{},
credentialsFactory
);
const adapter = new CloudAdapter(botFrameworkAuthentication);
builder.Configuration["MicrosoftAppType"] = "UserAssignedMsi";
builder.Configuration["MicrosoftAppId"] = "{your MSI’s client ID}";
builder.Configuration["MicrosoftAppTenantId"] = "{your MSI’s tenant ID}";
builder.Services.AddSingleton<BotFrameworkAuthentication, ConfigurationBotFrameworkAuthentication>();
Обновите в BOT_ID
файле .env
.
Убедитесь, что вы протестируете бота, чтобы убедиться, что его работа соответствует обновленной проверке подлинности.
Удаление секрета бота
Перед удалением секрета бота убедитесь, что приложение бота использует сертификат для проверки подлинности.
Чтобы удалить секрет бота, выполните следующие действия:
Перейдите к портал Azure.
Выберите Регистрация приложений.
Выберите зарегистрированные приложения.
В левой области в разделе Управление выберите Сертификаты & секреты.
Удалите секреты из Entra.
Приложение бота теперь использует MSI для проверки подлинности.
См. также