Sie können die zertifikat- oder MSI-basierte Authentifizierung verwenden, um Ihre Bot-App anstelle der Bot-ID und des Geheimnisses zu überprüfen. Diese Authentifizierung löst die Complianceprobleme im Zusammenhang mit der Verwendung von Microsoft Entra ID und Botgeheimnissen.
Voraussetzungen
Stellen Sie sicher, dass Sie eine Teams-Bot-App in Azure mit den folgenden Ressourcen bereitgestellt haben:
- Ein Azure-Bot.
- Ein Entra ID mit einem Geheimnis, das für die Botauthentifizierung verwendet wird.
- Eine Ressource, die Ihre Bot-App hostet, z. B. Azure App Service, Azure Functions.
So aktualisieren Sie Ihre Bot-App für die Verwendung der zertifikatbasierten Authentifizierung:
-
Erstellen und Hochladen eines Zertifikats in Azure AD
-
Aktualisieren des Bot-App-Codes
-
Löschen des Botgeheimnisses
Erstellen und Hochladen eines Zertifikats in Azure AD
So verwenden Sie ein Zertifikat für die Botauthentifizierung:
Bereiten Sie ein Zertifikat und einen privaten Schlüssel vor.
Navigieren Sie zum Azure-Portal.
Wählen Sie App-Registrierungen aus.
Wählen Sie Ihre registrierte App aus.
Wählen Sie im linken Bereich unter Verwalten die Option Zertifikate & Geheimnisse aus.
Wählen Sie unter Zertifikate die Option Zertifikat hochladen aus.
Das Fenster Zertifikat hochladen wird angezeigt.
Hinweis
Laden Sie ein Zertifikat (öffentlicher Schlüssel) mit einem der folgenden Dateitypen hoch: .cer, PEM, CRT.
Laden Sie das von Ihnen vorbereitete Zertifikat hoch.
Geben Sie Beschreibung ein.
Klicken Sie auf Hinzufügen.
Aktualisieren des Bot-App-Codes
Führen Sie die Schritte zum Aktualisieren des Bot-App-Codes aus:
Öffnen Sie Ihr Bot-App-Projekt in Visual Studio oder Visual Studio Code.
Aktualisieren Sie Ihren 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}"));
Stellen Sie sicher, dass Sie Ihren Bot testen, um zu bestätigen, dass der Vorgang der aktualisierten Authentifizierung entspricht.
Löschen des Botgeheimnisses
Stellen Sie sicher, dass Ihre Bot-App das Zertifikat für die Authentifizierung verwendet, bevor Sie das Botgeheimnis löschen.
So löschen Sie das Botgeheimnis:
Navigieren Sie zum Azure-Portal.
Wählen Sie App-Registrierungen aus.
Wählen Sie Ihre registrierte App aus.
Wählen Sie im linken Bereich unter Verwalten die Option Zertifikate & Geheimnisse aus.
Löschen Sie die Geheimnisse aus Entra.
Ihre Bot-App verwendet jetzt das Zertifikat für die Authentifizierung.
So aktualisieren Sie Ihre Bot-App für die Verwendung der MSI-basierten Authentifizierung:
-
Erstellen eines Botdiensts mit MSI-Typ in Azure AD
-
Aktualisieren des Bot-App-Codes für MSI
-
Löschen des Botgeheimnisses
Hinweis
Die ID und der Typ des Azure Bot-Diensts können nach der Erstellung nicht geändert werden.
Erstellen eines Botdiensts mit MSI-Typ in Azure AD
Führen Sie die folgenden Schritte aus, um einen neuen Azure Bot-Dienst mit DEM MSI-Typ zu erstellen:
Navigieren Sie zum Azure-Portal.
Wechseln Sie zu Startseite.
Wählen Sie + Ressource erstellen aus.
Geben Sie in das Suchfeld Azure Bot ein.
Drücken Sie die EINGABETASTE .
Wählen Sie Azure Bot aus.
Wählen Sie Erstellen aus.
Geben Sie den Botnamen im Bothandle ein.
Wählen Sie Ihr Abonnement aus der Dropdownliste aus.
Wählen Sie Ihre Ressourcengruppe aus der Dropdownliste aus.
Wenn Sie nicht über eine vorhandene Ressourcengruppe verfügen, können Sie eine neue Ressourcengruppe erstellen. Führen Sie die folgenden Schritte aus, um einen neuen Azure-Botdienst und eine verwaltete Identität zu erstellen:
- Wählen Sie Neu erstellen aus.
- Geben Sie den Ressourcennamen ein, und wählen Sie OK aus.
- Wählen Sie in der Dropdownliste Neuer Ressourcengruppenstandort einen Standort aus.
Wählen Sie unter Microsoft App-IDdie Option App-Typ als benutzerseitig zugewiesene verwaltete Identität aus.
Wählen Sie unter Erstellungstyp die Option Neue Microsoft-App-ID erstellen aus.
OR
Sie können zuerst manuell eine verwaltete Identität und dann den Azure-Bot mithilfe von Vorhandene App-Registrierung verwenden erstellen.
Aktualisieren Sie den neuen Azure Bot-Messagingendpunkt und die neuen Kanäle, um sie mit denen des alten Diensts übereinzugleichen.
Navigieren Sie zu Ihrer App-Hostingressource.
Wählen Sie Einstellungen > Identität > Benutzerseitig zugewiesen aus.
Fügen Sie die verwaltete Identität hinzu, die Sie erstellt haben.
Aktualisieren des Bot-App-Codes für MSI
Führen Sie die folgenden Schritte aus, um den Bot-App-Code für MSI zu aktualisieren:
Öffnen Sie Ihr Bot-App-Projekt in Visual Studio oder Visual Studio Code.
Aktualisieren Sie Ihren 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>();
Aktualisieren Sie in BOT_ID
Ihrer .env
Datei.
Stellen Sie sicher, dass Sie Ihren Bot testen, um zu bestätigen, dass der Betrieb der aktualisierten Authentifizierung entspricht.
Löschen des Botgeheimnisses
Stellen Sie sicher, dass Ihre Bot-App das Zertifikat für die Authentifizierung verwendet, bevor Sie das Botgeheimnis löschen.
So löschen Sie das Botgeheimnis:
Navigieren Sie zum Azure-Portal.
Wählen Sie App-Registrierungen aus.
Wählen Sie Ihre registrierte App aus.
Wählen Sie im linken Bereich unter Verwalten die Option Zertifikate & Geheimnisse aus.
Löschen Sie die Geheimnisse aus Entra.
Ihre Bot-App verwendet jetzt MSI für die Authentifizierung.
Siehe auch