Hinzufügen von Authentifizierung zu ihren Teams-botAdd authentication to your Teams bot

Es gibt Situationen, in denen Sie möglicherweise Bots in Microsoft Teams erstellen müssen, die im Namen des Benutzers auf Ressourcen zugreifen können, beispielsweise einen e-Mail-Dienst.There are times when you may need to create bots in Microsoft Teams that can access resources on behalf of the user, such as a mail service.

In diesem Artikel wird die Verwendung der Azure bot Service V4 SDK-Authentifizierung basierend auf OAuth 2,0.This article demonstrates how to use Azure Bot Service v4 SDK authentication, based on OAuth 2.0. Dies erleichtert die Entwicklung eines bot, der Authentifizierungstoken basierend auf den Anmeldeinformationen des Benutzers verwenden kann.This makes it easier to develop a bot that can use authentication tokens based on the user's credentials. Key in all dies ist die Verwendung von Identitätsanbietern, wie wir später sehen werden.Key in all this is the use of identity providers, as we will see later.

OAuth 2.0 ist ein offener Standard für Authentifizierung und Autorisierung, der von Azure Active Directory (Azure AD) und vielen anderen Identitätsanbietern verwendet wird.OAuth 2.0 is an open standard for authentication and authorization used by Azure Active Directory (Azure AD) and many other identity providers. Ein grundlegendes Verständnis von OAuth 2,0 ist eine Voraussetzung für die Verwendung von Authentifizierung in Microsoft Teams.A basic understanding of OAuth 2.0 is a prerequisite for working with authentication in Teams.

Ein grundlegendes Verständnis finden Sie in OAuth 2 vereinfacht , und OAuth 2,0 für die vollständige Spezifikation.See OAuth 2 Simplified for a basic understanding, and OAuth 2.0 for the complete specification.

Weitere Informationen darüber, wie der Azure bot-Dienst die Authentifizierung verarbeitet, finden Sie unter User Authentication in a Conversation.For more information about how the Azure Bot Service handles authentication, see User authentication within a conversation.

In diesem Artikel erhalten Sie Informationen zu folgenden Themen:In this article you'll learn:

  • Erstellen eines Authentifizierungs aktivierten bot.How to create an authentication-enabled bot. Sie verwenden CS-auth-Sample zum Verarbeiten von Anmeldeinformationen für die Benutzeranmeldung und zum Generieren des Authentifizierungstokens.You'll use cs-auth-sample to handle user sign-in credentials and the generating the authentication token.
  • Wie Sie den bot in Azure bereitstellen und einem Identitätsanbieter zuordnen.How to deploy the bot to Azure and associate it with an identity provider. Der Anbieter gibt ein Token basierend auf den Anmeldeinformationen für die Benutzeranmeldung aus.The provider issues a token based on user sign-in credentials. Der Bot kann mithilfe des Tokens auf Ressourcen zugreifen, beispielsweise auf einen e-Mail-Dienst, für den eine Authentifizierung erforderlich ist.The bot can use the token to access resources, such as a mail service, which require authentication. Weitere Informationen finden Sie unter Microsoft Teams-Authentifizierungs Fluss für Bots.For more information see Microsoft Teams authentication flow for bots.
  • Vorgehensweise zum Integrieren des bot in Microsoft Teams.How to integrate the bot within Microsoft Teams. Nachdem der bot integriert wurde, können Sie sich in einem Chat anmelden und Nachrichten damit austauschen.Once the bot has been integrated, you can sign in and exchange messages with it in a chat.

VoraussetzungenPrerequisites

Erstellen der RessourcengruppeCreate the resource group

Die Ressourcengruppe und der Dienstplan sind nicht unbedingt erforderlich, Sie ermöglichen jedoch das bequeme Freigeben der von Ihnen erstellten Ressourcen.The resource group and the service plan aren't strictly necessary, but they allow you to conveniently release the resources you create. Dies ist eine bewährte Methode, um Ihre Ressourcen organisiert und verwaltbar zu halten.This is good practice for keeping your resources organized and manageable.

Sie verwenden eine Ressourcengruppe, um einzelne Ressourcen für das bot-Framework zu erstellen.You use a resource group to create individual resources for the Bot Framework. Stellen Sie für die Leistung sicher, dass sich diese Ressourcen in derselben Azure-Region befinden.For performance, ensure that these resources are located in the same Azure region.

  1. Melden Sie sich in Ihrem Browser beim Azure-Portalan.In your browser, sign into the Azure portal.
  2. Wählen Sie im linken Navigationsbereich Ressourcengruppenaus.In the left navigation panel, select Resource groups.
  3. Wählen Sie in der oberen linken Ecke des angezeigten Fensters Tab Hinzufügen aus, um eine neue Ressourcengruppe zu erstellen.In the upper left of the displayed window, select Add tab to create a new resource group. Sie werden aufgefordert, Folgendes bereitzustellen:You'll be prompted to provide the following:
    1. Abonnement:Subscription. Verwenden Sie Ihr vorhandenes Abonnement.Use your existing subscription.
    2. Ressourcengruppe.Resource group. Geben Sie den Namen für die Ressourcengruppe ein.Enter the name for the resource group. Ein Beispiel könnte TeamsResourceGroupsein.An example could be TeamsResourceGroup. Beachten Sie, dass der Name eindeutig sein muss.Remember that the name must be unique.
    3. Wählen Sie im Dropdownmenü Region die Option West USoder eine Region, die sich in der Nähe ihrer Anwendungen befindet.From the Region drop-down menu, select West US, or a region close to your applications.
    4. Klicken Sie auf die Schaltfläche überprüfen und erstellen .Select the Review and create button. Es sollte ein Banner angezeigt werden, das die übergebene Validierungliest.You should see a banner that reads Validation passed.
    5. Klicken Sie auf die Schaltfläche Erstellen .Select the Create button. Es kann einige Minuten dauern, bis die Ressourcengruppe erstellt wurde.It may take a few minutes to create the resource group.

Tipp

Wie bei den Ressourcen, die Sie später in diesem Lernprogramm erstellen, empfiehlt es sich, diese Ressourcengruppe für einfachen Zugriff an das Dashboard zu anheften.As with the resources you'll create later in this tutorial, it's a good idea to pin this resource group to your dashboard for easy access. Wenn Sie dies möchten, wählen Sie das Pin-Symbol & # 128204; in der oberen rechten Ecke des Dashboards.If you'd like to do so, select the pin icon 📌 in the upper right of the dashboard.

Erstellen des DienstplansCreate the service plan

  1. Wählen Sie im Azure-Portalim linken Navigationsbereich die Option Ressource erstellenaus.In the Azure portal, on the left navigation panel, select Create a resource.
  2. Geben Sie im Suchfeld den Text App-Dienst Planein.In the search box, type App Service Plan. Wählen Sie die App-Service Plan Karte in den Suchergebnissen aus.Select the App Service Plan card from the search results.
  3. Wählen Sie Erstellen aus.Select Create.
  4. Sie werden aufgefordert, die folgenden Informationen anzugeben:You'll be asked to provide the following information:
    1. Abonnement:Subscription. Sie können ein vorhandenes Abonnement verwenden.You can use an existing subscription.
    2. Ressourcengruppe.Resource Group. Wählen Sie die Gruppe aus, die Sie zuvor erstellt haben.Select the group you created earlier.
    3. Name.Name. Geben Sie den Namen für den Service Plan ein.Enter the name for the service plan. Ein Beispiel könnte TeamsServicePlansein.An example could be TeamsServicePlan. Beachten Sie, dass der Name innerhalb der Gruppe eindeutig sein muss.Remember that the name must be unique, within the group.
    4. Betriebs System.Operating System. Wählen Sie Windows oder Ihr entsprechendes Betriebssystem aus.Select Windows or your applicable OS.
    5. Region.Region. Wählen Sie " West US " oder eine Region in der Nähe ihrer Anwendungen aus.Select West US or a region close to your applications.
    6. Preisstufe.Pricing Tier. Stellen Sie sicher, dass Standard S1 ausgewählt ist.Make sure that Standard S1 is selected. Dies sollte der Standardwert sein.This should be the default value.
    7. Klicken Sie auf die Schaltfläche überprüfen und erstellen .Select the Review and create button. Es sollte ein Banner angezeigt werden, das die übergebene Validierungliest.You should see a banner that reads Validation passed.
    8. Wählen Sie Erstellen aus.Select Create. Es kann einige Minuten dauern, bis Sie den App-Dienstplan erstellt haben.It may take a few minutes to create the app service plan. Der Plan wird in der Ressourcengruppe aufgeführt.The plan will be listed in the resource group.

Erstellen der Registrierung für bot-KanäleCreate the bot channels registration

Die Registrierung von bot-Kanälen registriert Ihren Webdienst als bot mit dem bot-Framework, vorausgesetzt, Sie verfügen über eine Microsoft-App-ID und ein App-Kennwort (geheimer Client Schlüssel).The bot channels registration registers your web service as a bot with the Bot Framework, provided you have a Microsoft App Id and App password (client secret).

Wichtig

Sie müssen ihren bot nur registrieren, wenn er nicht in Azure gehostet wird.You only need to register your bot if it is not hosted in Azure. Wenn Sie einen bot über das Azure-Portal erstellt haben, ist er bereits beim Dienst registriert.If you created a bot through the Azure portal then it is already registered with the service. Wenn Sie Ihren bot über das bot-Framework oder AppStudio erstellt haben, ist Ihr bot nicht in Azure registriert.If you created your bot through the Bot Framework or AppStudio your bot isn't registered in Azure.

  1. Wählen Sie im Azure-Portalunter Azure Services die Option Ressource erstellenaus.In the Azure portal, under Azure services, select Create a resource.

  2. Geben Sie in das Suchfeld "bot" ein.In the search box enter "bot". Wählen Sie in der Dropdownliste die Option bot Channels Registrationaus.And in the drop-down list, select Bot Channels Registration.

  3. Klicken Sie auf die Schaltfläche Erstellen .Select the Create button.

  4. Geben Sie im Blade für die bot-Kanal Registrierung die angeforderten Informationen zu Ihrem bot an.In the Bot Channel Registration blade, provide the requested information about your bot.

  5. Lassen Sie das Feld Messaging-Endpunkt jetzt leer, geben Sie nach der Bereitstellung des bot die erforderliche URL ein.Leave the Messaging endpoint box empty for now, you will enter the required URL after deploying the bot. Die folgende Abbildung zeigt ein Beispiel für die Registrierungseinstellungen:The following picture shows an example of the registration settings:

    Registrierung von bot-App-Kanälen

  6. Klicken Sie auf Microsoft App-ID und Kennwort , und erstellen Sie dann neue.Click Microsoft App ID and password and then Create New.

  7. Klicken Sie im Link zum App-Registrierungs Portal auf APP-ID erstellen .Click Create App ID in the App Registration Portal link.

  8. Klicken Sie im Fenster angezeigte App-Registrierung oben links auf die Registerkarte neue Registrierung .In the displayed App registration window, click the New registration tab in the upper left.

  9. Geben Sie den Namen der bot-Anwendung ein, die Sie registrieren, wir haben BotTeamsAuth verwendet (Sie müssen ihren eigenen eindeutigen Namen auswählen).Enter the name of the bot application you are registering, we used BotTeamsAuth (you need to select your own unique name).

  10. Wählen Sie für die unterstützten Kontotypen Konten in einem beliebigen Organisations Verzeichnis (Azure AD Verzeichnis – Multimandanten) und persönliche Microsoft-Konten (beispielsweise Skype, Xbox) aus.For the Supported account types select Accounts in any organizational directory (Any Azure AD directory - Multitenant) and personal Microsoft accounts (e.g. Skype, Xbox).

  11. Klicken Sie auf die Schaltfläche registrieren .Click the Register button. Sobald abgeschlossen, zeigt Azure die Übersichts Seite für die Anwendung an.Once completed, Azure displays the Overview page for the application.

  12. Kopieren und speichern Sie den Wert der Anwendungs-ID (Client) in einer Datei.Copy and save to a file the Application (client) ID value.

  13. Klicken Sie im linken Bereich auf Zertifikat und Geheimnisse.In the left panel, click Certificate and secrets.

    1. Klicken Sie unter Client Geheimnisseauf neuer geheimer Client Schlüssel.Under Client secrets, click New client secret.
    2. Fügen Sie eine Beschreibung hinzu, um dieses Geheimnis von anderen Personen zu identifizieren, die Sie für diese APP möglicherweise erstellen müssen.Add a description to identify this secret from others you might need to create for this app.
    3. Festlegen läuft auf Ihre Auswahl ab.Set Expires to your selection.
    4. Klicken Sie auf Hinzufügen.Click Add.
    5. Kopieren Sie den geheimen Client Schlüssel, und speichern Sie ihn in einer Datei.Copy the client secret and save it to a file.
  14. Wechseln Sie zurück zum Fenster bot-Kanal Registrierung , und kopieren Sie die App-ID und den geheimen Client Schlüssel in die Felder Microsoft App-ID und Kennwort .Go back to the Bot Channel Registration window and copy the App ID and the Client secret in the Microsoft App ID and Password boxes, respectively.

  15. Klicken Sie auf OK.Click OK.

  16. Klicken Sie schließlich auf Erstellen.Finally, click Create.

Nachdem Azure die Registrierungs Ressource erstellt hat, wird es in die Liste Ressourcengruppe aufgenommen.After Azure has created the registration resource it will be included in the resource group list.

App Channels-Registrierungsgruppe für bot

Nachdem Sie Ihre bot-Kanal Registrierung erstellt haben, müssen Sie den Microsoft Teams-Kanal aktivieren.Once your bot channels registration is created, you'll need to enable the Teams channel.

  1. Wählen Sie im Azure-Portalunter Azure Services die soeben erstellte bot- Kanal Registrierung aus.In the Azure portal, under Azure services, select the Bot Channel Registration you just created.
  2. Klicken Sie im linken Bereich auf Kanäle.In the left panel, click Channels.
  3. Klicken Sie auf das Microsoft Teams-Symbol, und wählen Sie dann Speichernaus.Click the Microsoft Teams icon, then choose Save.

Hinweis

Die Ressourcen zur Registrierung von bot-Kanälen zeigen die globale Region an, selbst wenn Sie West US ausgewählt haben.The Bot Channels Registration resource will show the Global region even if you selected West US. Dies entspricht dem erwarteten Verhalten.This is expected.

Weitere Informationen finden Sie unter Erstellen eines bot für Teams.For more information, see Create a bot for Teams.

Erstellen des IdentitätsanbietersCreate the identity provider

Sie benötigen einen Identitätsanbieter, der für die Authentifizierung verwendet werden kann.You need an identity provider that can be used for authentication. In diesem Verfahren verwenden Sie einen Azure AD Anbieter; Außerdem können andere Azure Ad Unterstützte Identitätsanbieter verwendet werden.In this procedure you'll use an Azure AD provider; other Azure AD supported identity providers can also be used.

  1. Wählen Sie im Azure-Portalim linken Navigationsbereich die Option Azure Active Directoryaus.In the Azure portal, on the left navigation panel, select Azure Active Directory.

    Tipp

    Sie müssen diese Azure AD Ressource in einem Mandanten erstellen und registrieren, in dem Sie die Berechtigung zum Delegieren von von einer Anwendung angeforderten Berechtigungen erteilen können.You'll need to create and register this Azure AD resource in a tenant in which you can consent to delegate permissions requested by an application. Anweisungen zum Erstellen eines Mandanten finden Sie unter zugreifen auf das Portal und Erstellen eines Mandanten.For instruction on creating a tenant, see Access the portal and create a tenant.

  2. Wählen Sie im linken Bereich App-Registrierungenaus.In the left panel, select App registrations.

  3. Wählen Sie im rechten Bereich die Registerkarte neue Registrierung in der oberen linken Ecke aus.In the right panel, select the New registration tab, in the upper left.

  4. Sie werden aufgefordert, die folgenden Informationen anzugeben:You'll be asked to provide the following information:

    1. Name.Name. Geben Sie den Namen der Anwendung ein.Enter the name for the application. Ein Beispiel könnte BotTeamsIdentitysein.An example could be BotTeamsIdentity. Beachten Sie, dass der Name eindeutig sein muss.Remember that the name must be unique.
    2. Wählen Sie die unterstützten Kontotypen für Ihre Anwendung aus.Select the Supported account types for your application. Wählen Sie Konten in einem beliebigen Organisations Verzeichnis (beliebige Azure AD Verzeichnis – Multimandanten) und persönliche Microsoft-Konten (beispielsweise Skype, Xbox) aus.Select Accounts in any organizational directory (Any Azure AD directory - Multitenant) and personal Microsoft accounts (e.g. Skype, Xbox).
    3. Für den Umleitungs-URI:For the Redirect URI:
      ✓wählen Sie das Webpartaus.✓Select Web.
      ✓ legen Sie die URL auf fest https://token.botframework.com/.auth/web/redirect .✓ Set the URL to https://token.botframework.com/.auth/web/redirect.
    4. Wählen Sie Registrieren aus.Select Register.
  5. Nach der Erstellung zeigt Azure die Übersichts Seite für die APP an.Once it is created, Azure displays the Overview page for the app. Kopieren Sie die folgenden Informationen, und speichern Sie Sie in einer Datei:Copy and save the following information to a file:

    1. Der Wert der Anwendungs-ID (Client) .The Application (client) ID value. Sie verwenden diesen Wert später als Client-ID , wenn Sie diese Azure-Identitäts Anwendung mit Ihrem bot registrieren.You'll use this value later as the Client ID when you register this Azure identity application with your bot.
    2. Der Verzeichnis Wert (Mandant) ID .The Directory (tenant) ID value. Sie werden diesen Wert auch später als Mandanten-ID verwenden, um diese Azure-Identitäts Anwendung mit Ihrem bot zu registrieren.You'll also use this value later as the Tenant ID to register this Azure identity application with your bot.
  6. Wählen Sie im linken Bereich Zertifikate & Secrets aus, um einen geheimen Client Schlüssel für Ihre Anwendung zu erstellen.In the left panel, select Certificates & secrets to create a client secret for your application.

    1. Wählen Sie unter Client Secretsneuen geheimen Client Schlüsselaus.Under Client secrets, select ➕ New client secret.
    2. Fügen Sie eine Beschreibung hinzu, um dieses Geheimnis von anderen Personen zu identifizieren, die Sie für diese APP möglicherweise erstellen müssen, beispielsweise für die app "bot Identity" in Microsoft Teams.Add a description to identify this secret from others you might need to create for this app, such as Bot identity app in Teams.
    3. Festlegen läuft auf Ihre Auswahl ab.Set Expires to your selection.
    4. Klicken Sie auf Hinzufügen.Select Add.
    5. Notieren Sie den geheimen Schlüssel, bevor Sie diese Seite verlassen.Before leaving this page, record the secret. Diesen Wert verwenden Sie später als geheimer Client Schlüssel , wenn Sie Ihre Azure AD Anwendung mit Ihrem bot registrieren.You'll use this value later as the Client secret when you register your Azure AD application with your bot.

Konfigurieren Sie die Verbindung mit dem Identitätsanbieter, und registrieren Sie Sie mit dem bot.Configure the identity provider connection and register it with the bot

Hinweis: Es gibt zwei Optionen für Dienstanbieter hier – Azure AD v1 und Azure AD v2.Note-there are two options for Service Providers here-Azure AD V1 and Azure AD V2. Die Unterschiede zwischen den beiden Anbietern werden hierzusammengefasst, im Allgemeinen bietet v2 jedoch mehr Flexibilität im Hinblick auf das Ändern von bot-Berechtigungen.The differences between the two providers are summarized here, but in general, V2 provides more flexibility with respect to changing bot permissions. Graph-API-Berechtigungen werden im Feld Bereiche aufgelistet, und wenn neue hinzugefügt werden, können Benutzer den neuen Berechtigungen für die nächste Anmeldung zustimmen.Graph API permissions are listed in the scopes field, and as new ones are added, bots will allow users to consent to the new permissions on the next sign in. Für v1 muss die bot-Zustimmung vom Benutzer gelöscht werden, damit im Dialogfeld OAuth neue Berechtigungen zur Eingabe aufgefordert werden.For V1, the bot consent must be deleted by the user for new permissions to be prompted in the OAuth dialog.

Azure AD v1Azure AD V1

  1. Wählen Sie im Azure-Portalihre Ressourcengruppe aus dem Dashboard aus.In the Azure portal, select your resource group from the dashboard.

  2. Wählen Sie Ihren bot-Kanal Registrierungslink aus.Select your bot channel registration link.

  3. Wählen Sie auf der Seite Ressource die Option Einstellungenaus.On the resource page, select Settings.

  4. Wählen Sie unter OAuth-Verbindungseinstellungen am unteren Rand der Seite die Option Einstellung hinzufügenaus.Under OAuth Connection Settings near the bottom of the page, select Add Setting.

  5. Füllen Sie das Formular wie folgt aus:Complete the form as follows:

    1. Name.Name. Geben Sie einen Namen für die Verbindung ein.Enter a name for the connection. Sie verwenden diesen Namen in Ihrem bot in der appsettings.json Datei.You'll use this name in your bot in the appsettings.json file. Beispiel BotTeamsAuthADv1.For example BotTeamsAuthADv1.

    2. Dienstanbieter.Service Provider. Wählen Sie Azure Active Directory aus.Select Azure Active Directory. Nachdem Sie diese Option ausgewählt haben, werden die Azure AD spezifischen Felder angezeigt.Once you select this, the Azure AD-specific fields will be displayed.

    3. Client-ID. Geben Sie die Anwendungs-ID (Client) ein, die Sie in den obigen Schritten für Ihre Azure Identity Provider-App aufgezeichnet haben.Client id. Enter the Application (client) ID that you recorded for your Azure identity provider app in the steps above.

    4. Geheimer Client Schlüssel.Client secret. Geben Sie den geheimen Schlüssel ein, den Sie in den obigen Schritten für Ihre Azure Identity-Anbieter-App aufgezeichnet haben.Enter the secret that you recorded for your Azure identity provider app in the steps above.

    5. Grant-Typ.Grant Type. Geben Sie ein authorization_code .Enter authorization_code.

    6. Anmelde-URL.Login URL. Geben Sie ein https://login.microsoftonline.com .Enter https://login.microsoftonline.com.

    7. Mandanten-ID: Geben Sie die Verzeichnis (Mandanten-ID) ein, die Sie zuvor für Ihre Azure Identity-App aufgezeichnet haben, oder verbreitet , je nach dem unterstützten Kontotyp, der beim Erstellen der APP für den Identitätsanbieter ausgewählt wurde.Tenant ID, enter the Directory (tenant) ID that you recorded earlier for your Azure identity app or common depending on the supported account type selected when you created the identity provider app. Um zu entscheiden, welcher Wert zugewiesen werden soll, befolgen Sie die folgenden Kriterien:To decide which value to assign follow these criteria:

      • Wenn Sie entweder Konten in diesem Organisations Verzeichnis (nur Microsoft – einzelner Mandant) oder Konten in einem Organisations Verzeichnis (Microsoft Aad Directory-Multi Mandant) ausgewählt haben, geben Sie die Mandanten-ID ein, die Sie zuvor für die Aad-App aufgezeichnet haben.If you selected either Accounts in this organizational directory only (Microsoft only - Single tenant) or Accounts in any organizational directory(Microsoft AAD directory - Multi tenant) enter the tenant ID you recorded earlier for the AAD app. Dies ist der Mandant, der den Benutzern zugeordnet ist, die authentifiziert werden können.This will be the tenant associated with the users who can be authenticated.

      • Wenn Sie Konten in einem beliebigen Organisations Verzeichnis (AAD Directory-Multi Mandanten und persönliche Microsoft-Konten wie Skype, Xbox, Outlook) ausgewählt haben, geben Sie das Wort " Common " anstelle einer Mandanten-ID ein.If you selected Accounts in any organizational directory (Any AAD directory - Multi tenant and personal Microsoft accounts e.g. Skype, Xbox, Outlook) enter the word common instead of a tenant ID. Andernfalls wird die Aad-App über den Mandanten überprüfen, dessen ID ausgewählt wurde, und persönliche Microsoft-Konten ausschließen.Otherwise, the AAD app will verify through the tenant whose ID was selected and exclude personal Microsoft accounts.

    h.h. Geben Sie für Ressourcen-URLden Eintrag ein https://graph.microsoft.com/ .For Resource URL, enter https://graph.microsoft.com/. Dies wird im aktuellen Codebeispiel nicht verwendet.This is not used in the current code sample.
    i.i. Lassen Sie Bereiche leer.Leave Scopes blank. Die folgende Abbildung ist ein Beispiel:The following image is an example:

    Teams Bots App auth Connection String ADV1 View

  6. Klicken Sie auf Speichern.Select Save.

Azure AD v2Azure AD V2

  1. Wählen Sie im Azure-Portalihre Ressourcengruppe aus dem Dashboard aus.In the Azure portal, select your resource group from the dashboard.

  2. Wählen Sie Ihren bot-Kanal Registrierungslink aus.Select your bot channel registration link.

  3. Wählen Sie auf der Seite Ressource die Option Einstellungenaus.On the resource page, select Settings.

  4. Wählen Sie unter OAuth-Verbindungseinstellungen am unteren Rand der Seite die Option Einstellung hinzufügenaus.Under OAuth Connection Settings near the bottom of the page, select Add Setting.

  5. Füllen Sie das Formular wie folgt aus:Complete the form as follows:

    1. Name.Name. Geben Sie einen Namen für die Verbindung ein.Enter a name for the connection. Sie verwenden diesen Namen in Ihrem bot in der appsettings.json Datei.You'll use this name in your bot in the appsettings.json file. Beispiel BotTeamsAuthADv2.For example BotTeamsAuthADv2.

    2. Dienstanbieter.Service Provider. Wählen Sie Azure Active Directory v2aus.Select Azure Active Directory v2. Nachdem Sie diese Option ausgewählt haben, werden die Azure AD spezifischen Felder angezeigt.Once you select this, the Azure AD-specific fields will be displayed.

    3. Client-ID. Geben Sie die Anwendungs-ID (Client) ein, die Sie in den obigen Schritten für Ihre Azure Identity Provider-App aufgezeichnet haben.Client id. Enter the Application (client) ID that you recorded for your Azure identity provider app in the steps above.

    4. Geheimer Client Schlüssel.Client secret. Geben Sie den geheimen Schlüssel ein, den Sie in den obigen Schritten für Ihre Azure Identity-Anbieter-App aufgezeichnet haben.Enter the secret that you recorded for your Azure identity provider app in the steps above.

    5. Token Exchange-URL.Token Exchange URL. Lassen Sie das Feld leer.Leave this blank.

    6. Mandanten-ID: Geben Sie die Verzeichnis (Mandanten-ID) ein, die Sie zuvor für Ihre Azure Identity-App aufgezeichnet haben, oder verbreitet , je nach dem unterstützten Kontotyp, der beim Erstellen der APP für den Identitätsanbieter ausgewählt wurde.Tenant ID, enter the Directory (tenant) ID that you recorded earlier for your Azure identity app or common depending on the supported account type selected when you created the identity provider app. Um zu entscheiden, welcher Wert zugewiesen werden soll, befolgen Sie die folgenden Kriterien:To decide which value to assign follow these criteria:

      • Wenn Sie entweder Konten in diesem Organisations Verzeichnis (nur Microsoft – einzelner Mandant) oder Konten in einem Organisations Verzeichnis (Microsoft Aad Directory-Multi Mandant) ausgewählt haben, geben Sie die Mandanten-ID ein, die Sie zuvor für die Aad-App aufgezeichnet haben.If you selected either Accounts in this organizational directory only (Microsoft only - Single tenant) or Accounts in any organizational directory(Microsoft AAD directory - Multi tenant) enter the tenant ID you recorded earlier for the AAD app. Dies ist der Mandant, der den Benutzern zugeordnet ist, die authentifiziert werden können.This will be the tenant associated with the users who can be authenticated.

      • Wenn Sie Konten in einem beliebigen Organisations Verzeichnis (AAD Directory-Multi Mandanten und persönliche Microsoft-Konten wie Skype, Xbox, Outlook) ausgewählt haben, geben Sie das Wort " Common " anstelle einer Mandanten-ID ein.If you selected Accounts in any organizational directory (Any AAD directory - Multi tenant and personal Microsoft accounts e.g. Skype, Xbox, Outlook) enter the word common instead of a tenant ID. Andernfalls wird die Aad-App über den Mandanten überprüfen, dessen ID ausgewählt wurde, und persönliche Microsoft-Konten ausschließen.Otherwise, the AAD app will verify through the tenant whose ID was selected and exclude personal Microsoft accounts.

    7. Geben Sie für Bereicheeine durch Leerzeichen getrennte Liste von Graph-Berechtigungen ein, die diese Anwendung benötigt, beispielsweise: User. Read User. ReadBasic. all Mail. ReadFor Scopes, enter a space-delimited list of graph permissions this application requires e.g.: User.Read User.ReadBasic.All Mail.Read

  6. Klicken Sie auf Speichern.Select Save.

Testen der VerbindungTest the connection

  1. Wählen Sie den Eintrag Connection aus, um die soeben erstellte Verbindung zu öffnen.Select the connection entry to open the connection you just created.

  2. Wählen Sie oben im Bereich Service Provider Connection Setting die Option Test connection aus.Select Test Connection at the top of the Service Provider Connection Setting panel.

  3. Wenn Sie das erste Mal durchführen, wird ein neues Browserfenster geöffnet, in dem Sie aufgefordert werden, ein Konto auszuwählen.The first time you do this will open a new browser window asking you to select an account. Wählen Sie diejenige aus, die Sie verwenden möchten.Select the one you want to use.

  4. Als nächstes werden Sie aufgefordert, dem Identitätsanbieter die Verwendung Ihrer Daten (Anmeldeinformationen) zu gestatten.Next, you'll be asked to allow to the identity provider to use your data (credentials). Die folgende Abbildung ist ein Beispiel:The following image is an example:

    Teams-bot-auth-Verbindungszeichenfolge ADV1

  5. Wählen Sie Annehmen aus.Select Accept.

  6. Anschließend sollten Sie zu einer Test Verbindung zu einer <your-connection-name> erfolgreichen Seite umgeleitet werden.This should then redirect you to a Test Connection to <your-connection-name> Succeeded page. Aktualisieren Sie die Seite, wenn Sie eine Fehlermeldung erhalten.Refresh the page if you get an error. Die folgende Abbildung ist ein Beispiel:The following image is an example:

Teams Bots App auth Connection Str ADV1

Der Verbindungsname wird vom bot-Code zum Abrufen von Benutzerauthentifizierungstoken verwendet.The connection name is used by the bot code to retrieve user authentication tokens.

Vorbereiten des bot-BeispielcodesPrepare the bot sample code

Nachdem die vorläufigen Einstellungen vorgenommen wurden, konzentrieren wir uns auf die Erstellung des bot, der in diesem Artikel verwendet werden soll.With the preliminary settings done, let's focus on the creation of the bot to use in this article.

  1. Klon CS-auth-Sample.Clone cs-auth-sample.

  2. Starten Sie Visual Studio.Launch Visual Studio.

  3. Wählen Sie in der Symbolleiste Datei-> Open-> Projekt/Lösung aus, und öffnen Sie das bot-Projekt.From the toolbar select File -> Open -> Project/Solution and open the bot project.

  4. In C# Update appsettings.js wie folgt:In C# Update appsettings.json as follows:

    • Legen ConnectionName Sie den Namen der Identitätsanbieter Verbindung fest, die Sie der bot-Kanal Registrierung hinzugefügt haben.Set ConnectionName to the name of the identity provider connection you added to the bot channel registration. Der Name, den wir in diesem Beispiel verwendet haben, ist BotTeamsAuthADv1.The name we used in this example is BotTeamsAuthADv1.
    • Legen MicrosoftAppId Sie die bot-APP-ID fest, die Sie zum Zeitpunkt der bot-Kanal Registrierung gespeichert haben.Set MicrosoftAppId to the bot App ID you saved at the time of the bot channel registration.
    • Legen MicrosoftAppPassword Sie den geheimen Kundenschlüssel fest, den Sie zum Zeitpunkt der bot-Kanal Registrierung gespeichert haben.Set MicrosoftAppPassword to the customer secret you saved at the time of the bot channel registration.
    • Legen ConnectionName Sie den auf den Namen der Identitätsanbieter Verbindung fest.Set the ConnectionName to the name of the identity provider connection.

    Je nach den Zeichen in Ihrem bot-Schlüssel müssen Sie möglicherweise XML-Escapezeichen für das Kennwort eingeben.Depending on the characters in your bot secret, you may need to XML escape the password. Beispielsweise müssen alle kaufmännischen und-Zeichen (&) als codiert werden &amp; .For example, any ampersands (&) will need to be encoded as &amp;.

    {
      "MicrosoftAppId": "",
      "MicrosoftAppPassword": "",
      "ConnectionName": ""
    }
    
  5. Navigieren Sie im Projektmappen-Explorer zum TeamsAppManifest Ordner öffnen manifest.json und festlegen id sowie botId zur bot-APP-ID , die Sie zum Zeitpunkt der bot-Kanal Registrierung gespeichert haben.In the Solution Explorer, navigate to the TeamsAppManifest folder, open manifest.json and set id and botId to the bot App ID you saved at the time of the bot channel registration.

Bereitstellen des bot in AzureDeploy the bot to Azure

Um den bot bereitzustellen, befolgen Sie die Schritte unter How to deploy your bot to Azure.To deploy the bot, follow the steps in the how to Deploy your bot to Azure.

Alternativ können Sie in Visual Studio die folgenden Schritte ausführen:Alternatively, while in Visual Studio, you can follow these steps:

  1. Wählen Sie im Visual Studio Projekt Mappen-Explorer den Projektnamen aus, und halten Sie ihn (oder klicken Sie mit der rechten Maustaste).In Visual Studio Solution Explorer select and hold (or right-click) the project name.

  2. Wählen Sie im Dropdownmenü die Option veröffentlichenaus.In the drop-down menu, select Publish.

  3. Wählen Sie im angezeigten Fenster den neuen Link aus.In the displayed window, select the New link.

  4. Wählen Sie im Dialogfeld App-Dienst auf der linken Seite aus, und Erstellen Sie neu auf der rechten Seite.In the dialog window, select App Service on the left and Create New on the right.

  5. Klicken Sie auf die Schaltfläche veröffentlichen .Select the Publish button.

  6. Geben Sie im nächsten Dialogfenster die erforderlichen Informationen ein.In the next dialog window, enter the required information. Es folgt ein Beispiel:The following is an example:

    auth-App-Service

  7. Wählen Sie Erstellen aus.Select Create.

  8. Wenn die Bereitstellung erfolgreich abgeschlossen wurde, sollte Sie in Visual Studio angezeigt werden.If the deployment completes successfully, you should see it reflected in Visual Studio. Darüber hinaus wird in Ihrem Standardbrowser eine Seite angezeigt, die besagt, dass Ihr bot Ready!.Moreover, a page is displayed in your default browser saying Your bot is ready!. Die URL wird wie folgt aussehen: https://botteamsauth.azurewebsites.net/ .The URL will be similar to this: https://botteamsauth.azurewebsites.net/. Speichern Sie Sie in einer Datei.Save it to a file.

  9. Navigieren Sie in Ihrem Browser zum Azure-Portal.In your browser, navigate to the Azure portal.

  10. Überprüfen Sie Ihre Ressourcengruppe, der bot sollte zusammen mit den anderen Ressourcen aufgeführt werden.Check your resource group, the bot should be listed along with the other resources. Die folgende Abbildung ist ein Beispiel:The following image is an example:

    Teams-bot-auth-App-Service-Gruppe

  11. Wählen Sie in der Gruppe Ressourcen den Namen des bot-Kanal Registrierungs namens (Link) aus.In the resource group, select the bot channel registration name (link).

  12. Wählen Sie im linken Bereich Einstellungenaus.In the left panel, select Settings.

  13. Geben Sie im Feld Messaging-Endpunkt die oben abgerufene URL ein, gefolgt von api/messages .In the Messaging endpoint box, enter the URL obtained above followed by api/messages. Dies ist ein Beispiel: https://botteamsauth.azurewebsites.net/api/messages .This is an example: https://botteamsauth.azurewebsites.net/api/messages.

  14. Klicken Sie oben links auf die Schaltfläche Speichern .Select the Save button in the upper left.

Testen des bot mit dem EmulatorTest the bot using the Emulator

Wenn Sie es nicht bereits getan haben, installieren Sie den Microsoft bot Framework-Emulator.If you haven't done it already, install the Microsoft Bot Framework Emulator. Siehe auch Debuggen mit dem Emulator.See also Debug with the Emulator.

Damit die bot-Beispiel Anmeldung funktioniert, müssen Sie den Emulator wie unten gezeigt konfigurieren.In order for the bot sample login to work you must configure the Emulator as shown below.

Konfigurieren des Emulators für die AuthentifizierungConfigure the Emulator for authentication

Wenn ein bot eine Authentifizierung erfordert, müssen Sie den Emulator wie unten gezeigt konfigurieren.If a bot requires authentication, you must configure the Emulator as shown below.

  1. Starten Sie den Emulator.Start the Emulator.
  2. Wählen Sie im Emulator das Zahnradsymbol ⚙ unten links oder die Registerkarte Emulatoreinstellungen in der oberen rechten Ecke aus.In the Emulator, select the gear icon ⚙ in the bottom left, or the Emulator Settings tab in the upper right.
  3. Aktivieren Sie das Kontrollkästchen mit der Version 1,0-Authentifizierungstoken.Check the box by Use version 1.0 authentication tokens.
  4. Geben Sie den lokalen Pfad zum ngrok -Tool ein.Enter the local path to the ngrok tool. Siehe bot Framework Emulator/ngrok Tunneling Integration wiki.See the Bot Framework Emulator / ngrok tunneling integration Wiki. Weitere Informationen zum Tool finden Sie unter ngrok.For more tool information, see ngrok.
  5. Aktivieren Sie das Kontrollkästchen ngrok ausführen, wenn der Emulator gestartet wird.Check the box by Run ngrok when the Emulator starts up.
  6. Klicken Sie auf die Schaltfläche Speichern .Select the Save button.

Wenn der bot eine Anmeldekarte anzeigt und der Benutzer die Anmeldeschaltfläche auswählt, öffnet der Emulator eine Seite, die der Benutzer zum Anmelden mit dem Authentifizierungsanbieter verwenden kann.When the bot displays a sign-in card and the user selects the sign-in button, the Emulator opens a page that the user can use to sign in with the authentication provider. Sobald der Benutzer dies tut, generiert der Anbieter ein Benutzertoken und sendet es an den bot.Once the user does so, the provider generates a user token and sends it to the bot. Danach kann der bot im Namen des Benutzers handeln.After that, the bot can act on behalf of the user.

Testen des bot lokalTest the bot locally

Nachdem Sie den Authentifizierungsmechanismus konfiguriert haben, können Sie die eigentlichen bot-Tests durchführen.After you have configured the authentication mechanism, you can perform the actual bot testing.

  1. Führen Sie das bot-Beispiel lokal auf Ihrem Computer aus, beispielsweise über Visual Studio.Run the bot sample locally on your machine, via Visual Studio for example.

  2. Starten Sie den Emulator.Start the Emulator.

  3. Klicken Sie auf die Schaltfläche bot öffnen .Select the Open bot button.

  4. Geben Sie in der bot-URLdie lokale URL des bot ein.In the Bot URL, enter the bot's local URL. Normalerweise http://localhost:3978/api/messages .Usually, http://localhost:3978/api/messages.

  5. Geben Sie in der Microsoft App-ID die APP-ID des bot von ein appsettings.json .In the Microsoft App ID enter the bot's app ID from appsettings.json.

  6. Geben Sie im Microsoft App-Kennwort das App-Kennwort des bot aus dem ein appsettings.json .In the Microsoft App password enter the bot's app password from the appsettings.json.

  7. Wählen Sie verbindenaus.Select Connect.

  8. Geben Sie nach dem Starten des bot einen beliebigen Text ein, um die Anmeldekarte anzuzeigen.After the bot is up and running, enter any text to display the sign-in card.

  9. Wählen Sie die Schaltfläche Anmelden aus.Select the Sign in button.

  10. Ein Popupdialogfeld wird angezeigt, um die geöffnete URL zu bestätigen.A pop-up dialog is displayed to Confirm Open URL. Dadurch kann der Benutzer des bot (Sie) authentifiziert werden.This is to allow the bot's user (you) to be authenticated.

  11. Wählen Sie Bestätigen aus.Select Confirm.

  12. Wenn Sie dazu aufgefordert werden, wählen Sie das entsprechende Benutzerkonto aus.If asked, select the applicable user's account.

  13. Je nachdem, welche Konfiguration Sie für den Emulator verwendet haben, erhalten Sie eine der folgenden Optionen:Depending which configuration you used for the Emulator, you get one of the following:

    1. Verwenden des Anmelde BestätigungscodesUsing sign-in verification code
      ✓ ein Fenster wird geöffnet, in dem der Validierungscode angezeigt wird.✓ A window is opened displaying the validation code.
      ✓ kopieren Sie den Validierungscode, und geben Sie ihn in das Feld Chat ein, um die Anmeldung abzuschließen.✓ Copy and enter the validation code into the chat box to complete the sign-in.
    2. Verwenden von Authentifizierungstoken.Using authentication tokens.
      ✓ Sie auf der Grundlage ihrer Anmeldeinformationen angemeldet sind.✓ You're logged in based on your credentials.

    Die folgende Abbildung ist ein Beispiel für die bot-Benutzeroberfläche, nachdem Sie sich angemeldet haben:The following image is an example of the bot UI after you've logged in:

    Authentifizierungs-bot-Anmelde Emulator

  14. Wenn Sie " Ja " auswählen, wenn der bot möchte, dass Ihr Token angezeigtwird, erhalten Sie eine ähnliche Antwort wie die folgende:If you select Yes when the bot asks Would you like to view your token?, you'll get a response similar to the following:

    Authentifizierungs-bot-Anmelde Emulator-Token

  15. Geben Sie Logout in das Feld Eingabe Chat ein, um sich abzumelden. Dadurch wird das Benutzertoken freigegeben, und der Bot kann nicht in Ihrem Namen handeln, bis Sie sich erneut anmelden.Enter logout in the input chat box to sign out. This releases the user token, and the bot won't be able to act on your behalf until you sign in again.

Hinweis

Für die bot-Authentifizierung ist die Verwendung des bot Connector-Dienstserforderlich.Bot authentication requires use of the Bot Connector Service. Der Dienst greift auf die Registrierungsinformationen für bot-Kanäle für Ihren bot zu.The service accesses the bot channels registration information for your bot.

Testen des bereitgestellten botTest the deployed bot

  1. Navigieren Sie in Ihrem Browser zum Azure-Portal.In your browser, navigate to the Azure portal.

  2. Suchen Sie Ihre Ressourcengruppe.Find your resource group.

  3. Wählen Sie den Link Ressource aus.Select the resource link. Die Seite Ressource wird angezeigt.The resource page is displayed.

  4. Wählen Sie auf der Seite Ressource die Option Test im Webchataus.In the resource page, select Test in Web Chat. Der bot startet und zeigt die vordefinierten Begrüßungen an.The bot starts and displays the predefined greetings.

  5. Geben Sie im Feld Chat eine beliebige Eingabe ein.Type anything in the chat box.

  6. Aktivieren Sie das Kontrollkästchen Anmelden .Select the Sign in box.

  7. Ein Popupdialogfeld wird angezeigt, um die geöffnete URL zu bestätigen.A pop-up dialog is displayed to Confirm Open URL. Dadurch kann der Benutzer des bot (Sie) authentifiziert werden.This is to allow the bot's user (you) to be authenticated.

  8. Wählen Sie Bestätigen aus.Select Confirm.

  9. Wenn Sie dazu aufgefordert werden, wählen Sie das entsprechende Benutzerkonto aus.If asked, select the applicable user's account. Die folgende Abbildung ist ein Beispiel für die bot-Benutzeroberfläche, nachdem Sie sich angemeldet haben:The following image is an example of the bot UI after you have logged in:

    bereitgestellte Authentifizierungs-bot-Anmeldung..

  10. Wählen Sie die Schaltfläche Ja aus, um das Authentifizierungstoken anzuzeigen.Select the Yes button to display your authentication token. Die folgende Abbildung ist ein Beispiel:The following image is an example:

    bereitgestelltes Token für auth-bot-Anmeldung..

  11. Geben Sie Logout ein, um sich abzumelden.Enter logout to sign out.

    Authentifizierungs-bot bereitgestellt Logout

Hinweis

Wenn Sie bei der Anmeldung Probleme haben, versuchen Sie, die Verbindung erneut zu testen, wie in den vorherigen Schritten beschrieben.If you're having problems signing in, try to test the connection again as described in the previous steps. Dadurch könnte das Authentifizierungstoken neu erstellt werden.This could recreate the authentication token. Mit dem bot-Framework-Webchat Client in Azure müssen Sie sich möglicherweise mehrere Male anmelden, bevor die Authentifizierung ordnungsgemäß eingerichtet wurde.With the Bot Framework Web Chat client in Azure, you may need to sign in several times before the authentication is established correctly.

Installieren und Testen des bot in Microsoft TeamsInstall and test the bot in Teams

  1. Stellen Sie in Ihrem bot-Projekt sicher, dass der TeamsAppManifest Ordner den manifest.json zusammen mit einem outline.png und color.png Dateien enthält.In your bot project, ensure that the TeamsAppManifest folder contains the manifest.json along with an outline.png and color.png files.

  2. Navigieren Sie im Projektmappen-Explorer zum TeamsAppManifest Ordner.In Solution Explorer, navigate to the TeamsAppManifest folder. Bearbeiten manifest.json , indem Sie die folgenden Werte zuweisen:Edit manifest.json by assigning the following values:

    1. Stellen Sie sicher, dass die bot-APP-ID , die Sie zum Zeitpunkt der bot-Kanal Registrierung erhalten haben, und zugewiesen ist id botId .Ensure that the bot App ID you received at the time of the bot channel registration is assigned to id and botId.
    2. Weisen Sie diesen Wert zu: validDomains: [ "token.botframework.com" ] .Assign this value: validDomains: [ "token.botframework.com" ].
  3. Wählen Sie die Dateien aus, und zippen Sie Sie manifest.json outline.png color.png .Select and zip the manifest.json, outline.png, and color.png files.

  4. Öffnen Sie Microsoft Teams.Open Microsoft Teams.

  5. Wählen Sie im linken Bereich unten das Symbol appsaus.In the left panel, at the bottom, select the Apps icon.

  6. Wählen Sie im rechten Bereich unten die Option benutzerdefinierte App hochladenaus.In the right panel, at the bottom, select Upload a custom app.

  7. Navigieren Sie zum TeamsAppManifest Ordner, und laden Sie das gezippte Manifest hoch.Navigate to the TeamsAppManifest folder and upload the zipped manifest. Der folgende Assistent wird angezeigt:The following wizard is displayed:

    Upload von auth-bot-Teams

  8. Klicken Sie auf die Schaltfläche Zum Team hinzufügen.Select the Add to a team button.

  9. Wählen Sie im nächsten Fenster das Team aus, in dem Sie den bot verwenden möchten.In the next window, select the team where you want to use the bot.

  10. Wählen Sie die Schaltfläche Einrichten eines bot aus.Select the Set up a bot button.

  11. Wählen Sie im linken Bereich die drei Punkte (●●●) aus.Select the three dots (●●●) in the left panel. Wählen Sie dann das App Studio -Symbol aus.Then select the App Studio icon.

  12. Wählen Sie die Registerkarte Manifest-Editor aus. Das Symbol für den von Ihnen hochgeladenen bot sollte angezeigt werden.Select the Manifest editor tab. You should see the icon for the bot you uploaded.

  13. Außerdem sollten Sie in der Lage sein, den bot als Kontakt in der Chat Liste zu sehen, den Sie zum Austauschen von Nachrichten mit dem bot verwenden können.Also, you should be able to see the bot listed as a contact in the chat list that you can use to exchange messages with the bot.

Testen des bot lokal in Microsoft TeamsTesting the bot locally in Teams

Microsoft Teams ist ein vollständig Cloud-basiertes Produkt, für das alle Dienste, auf die es zugreift, über die Cloud über HTTPS-Endpunkte verfügbar sein müssen.Microsoft Teams is an entirely cloud-based product, it requires all services it accesses to be available from the cloud using HTTPS endpoints. Um den bot (unser Beispiel) für die Arbeit in Microsoft Teams zu aktivieren, müssen Sie daher entweder den Code in der Cloud Ihrer Wahl veröffentlichen oder eine lokal ausgeführten Instanz über ein Tunneling -Tool Extern zugänglich machen.Therefore, to enable the bot (our sample) to work in Teams, you need to either publish the code to the cloud of your choice, or make a locally running instance externally accessible via a tunneling tool. Wir empfehlen ngrok, mit dem eine extern adressierbare URL für einen Port erstellt wird, den Sie lokal auf Ihrem Computer öffnen.We recommend ngrok, which creates an externally addressable URL for a port you open locally on your machine. Führen Sie die folgenden Schritte aus, um ngrok als Vorbereitung für die lokale Ausführung Ihrer Microsoft Teams-App einzurichten:To set up ngrok in preparation for running your Microsoft Teams app locally, follow these steps:

  1. Wechseln Sie in einem Terminalfenster zu dem Verzeichnis, in dem Sie ngrok.exe installiert haben.In a terminal window, go the directory where you have ngrok.exe installed. Es wird empfohlen, den Pfad der Umgebungsvariable so festzulegen, dass darauf verwiesen wird.We suggest setting the environment variable path to point to it.

  2. Ausführen, beispielsweise ngrok http 3978 --host-header=localhost:3978 .Run, for example, ngrok http 3978 --host-header=localhost:3978. Ersetzen Sie die Portnummer bei Bedarf.Replace the port number as needed. Dadurch wird ngrok gestartet, um den angegebenen Port abzuhören.This launches ngrok to listen on the port you specify. Im Gegenzug erhalten Sie eine extern adressierbare URL, die gültig ist, solange ngrok ausgeführt wird.In return, it gives you an externally addressable URL, valid for as long as ngrok is running. Die folgende Abbildung ist ein Beispiel:The following image is an example:

    Teams-bot-App-Authentifizierungs-Verbindungszeichenfolge ADV1..

  3. Kopieren Sie die Weiterleitungs-HTTPS-Adresse.Copy the forwarding HTTPS address. Es sollte wie folgt aussehen: https://dea822bf.ngrok.io/ .It should be similar to the following: https://dea822bf.ngrok.io/.

  4. Append /api/messages zu erhalten https://dea822bf.ngrok.io/api/messages .Append /api/messages to obtain https://dea822bf.ngrok.io/api/messages. Dies ist der Nachrichten Endpunkt für den bot, der lokal auf Ihrem Computer läuft und über das Internet in einem Chat in Microsoft Teams erreichbar ist.This is the messages endpoint for the bot running locally on your machine and reachable over the web in a chat in Microsoft Teams.

  5. Ein letzter Schritt besteht darin, den Nachrichten Endpunkt des bereitgestellten bot zu aktualisieren.One final step to perform is to update the messages endpoint of the deployed bot. In dem Beispiel haben wir den bot in Azure bereitgestellt.In the example, we deployed the bot in Azure. So * * lassen Sie uns diese Schritte ausführen:So **let's perform these steps:

    1. Navigieren Sie in Ihrem Browser zum Azure-Portal.In your browser navigate to the Azure portal.
    2. Wählen Sie Ihre bot-Kanal Registrierungaus.Select your Bot Channel Registration.
    3. Wählen Sie im linken Bereich Einstellungenaus.In the left panel, select Settings.
    4. Geben Sie im rechten Bereich im Feld Messaging-Endpunkt die ngrok-URL in unserem Beispiel ein https://dea822bf.ngrok.io/api/messages .In the right panel, in the Messaging endpoint box, enter the ngrok URL, in our example, https://dea822bf.ngrok.io/api/messages.
  6. Starten Sie Ihren bot lokal, beispielsweise in Visual Studio Debugmodus.Start your bot locally, for example in Visual Studio debug mode.

  7. Testen Sie den bot, während er lokal mit dem Test-Webchatdes bot-Framework-Portals läuft.Test the bot while running locally using the Bot Framework portal's Test Web chat. Wie der Emulator erlaubt Ihnen dieser Test nicht den Zugriff auf Teams-spezifische Funktionen.Like the Emulator, this test doesn't allow you to access Teams-specific functionality.

  8. Im Terminal-Fenster, in dem ngrok Sie sich befinden, können Sie den HTTP-Datenverkehr zwischen dem bot und dem Chat Client sehen.In the terminal window where ngrok is running you can see HTTP traffic between the bot and the web chat client. Wenn Sie eine detailliertere Ansicht wünschen, geben Sie in einem Browserfenster die Daten ein, http://127.0.0.1:4040 die Sie aus dem vorherigen Terminalfenster erhalten haben.If you want a more detailed view, in a browser window enter http://127.0.0.1:4040 you obtained from the previous terminal window. Die folgende Abbildung ist ein Beispiel:The following image is an example:

    Authentifizierungs-bot-Teams ngrok Tests..

Hinweis

Wenn Sie ngrok beenden und neu starten, ändert sich die URL.If you stop and restart ngrok, the URL changes. Um ngrok in Ihrem Projekt zu verwenden, müssen Sie in Abhängigkeit von den von Ihnen verwendeten Funktionen alle URL-Verweise aktualisieren.To use ngrok in your project, and depending on the capabilities you're using, you must update all URL references.

Weitere InformationenAdditional information

TeamsAppManifest/manifest.jseinTeamsAppManifest/manifest.json

Dieses Manifest enthält Informationen, die Microsoft Teams benötigt, um eine Verbindung mit dem bot herzustellen.This manifest contains information needed by Microsoft Teams to connect with the bot.

{
  "$schema": "https://developer.microsoft.com/json-schemas/teams/v1.7/MicrosoftTeams.schema.json",
  "manifestVersion": "1.5",
  "version": "1.0.0",
  "id": "",
  "packageName": "com.teams.auth.bot",
  "developer": {
    "name": "TeamsBotAuth",
    "websiteUrl": "https://www.microsoft.com",
    "privacyUrl": "https://www.teams.com/privacy",
    "termsOfUseUrl": "https://www.teams.com/termsofuse"
  },
  "icons": {
    "color": "color.png",
    "outline": "outline.png"
  },
  "name": {
    "short": "TeamsBotAuth",
    "full": "Teams Bot Authentication"
  },
  "description": {
    "short": "TeamsBotAuth",
    "full": "Teams Bot Authentication"
  },
  "accentColor": "#FFFFFF",
  "bots": [
    {
      "botId": "",
      "scopes": [
        "groupchat",
        "team"
      ],
      "supportsFiles": false,
      "isNotificationOnly": false
    }
  ],
  "permissions": [
    "identity",
    "messageTeamMembers"
  ],
  "validDomains": [ "token.botframework.com" ]
}

Bei der Authentifizierung verhält sich Microsoft Teams geringfügig anders als andere Kanäle, wie unten erläutert.With authentication, Teams behaves slightly differently than other channels, as explained below.

Behandeln von Invoke-AktivitätHandling Invoke Activity

Eine Invoke-Aktivität wird an den bot statt an die Ereignisaktivität gesendet, die von anderen Kanälen verwendet wird.An Invoke Activity is sent to the bot rather than the Event Activity used by other channels. Dies wird durch Unterklassen für das ActivityHandlergetan.This is done by sub-classing the ActivityHandler.

Bots/DialogBot. csBots/DialogBot.cs

    public class DialogBot<T> : TeamsActivityHandler where T : Dialog
    {
        protected readonly BotState ConversationState;
        protected readonly Dialog Dialog;
        protected readonly ILogger Logger;
        protected readonly BotState UserState;

        public DialogBot(ConversationState conversationState, UserState userState, T dialog, ILogger<DialogBot<T>> logger)
        {
            ConversationState = conversationState;
            UserState = userState;
            Dialog = dialog;
            Logger = logger;
        }

        public override async Task OnTurnAsync(ITurnContext turnContext, CancellationToken cancellationToken = default(CancellationToken))
        {
            await base.OnTurnAsync(turnContext, cancellationToken);

            // Save any state changes that might have occurred during the turn.
            await ConversationState.SaveChangesAsync(turnContext, false, cancellationToken);
            await UserState.SaveChangesAsync(turnContext, false, cancellationToken);
        }

        protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
        {
            Logger.LogInformation("Running dialog with Message Activity.");

            // Run the Dialog with the new message Activity.
            await Dialog.RunAsync(turnContext, ConversationState.CreateProperty<DialogState>(nameof(DialogState)), cancellationToken);
        }
    }
}

Bots/TeamsBot. csBots/TeamsBot.cs

Die Invoke-Aktivität muss an das Dialogfeld weitergeleitet werden, wenn die OAuthPrompt verwendet wird.The Invoke Activity must be forwarded to the dialog if the OAuthPrompt is used.

protected override async Task OnTeamsSigninVerifyStateAsync(ITurnContext<IInvokeActivity> turnContext, CancellationToken cancellationToken)
{
    Logger.LogInformation("Running dialog with signin/verifystate from an Invoke Activity.");

    // The OAuth Prompt needs to see the Invoke Activity in order to complete the login process.

    // Run the Dialog with the new Invoke Activity.
    await Dialog.RunAsync(turnContext, ConversationState.CreateProperty<DialogState>(nameof(DialogState)), cancellationToken);
}

TeamsActivityHandler.csTeamsActivityHandler.cs


protected virtual Task OnInvokeActivityAsync(ITurnContext<IInvokeActivity> turnContext, CancellationToken cancellationToken)
{
    switch (turnContext.Activity.Name)
    {
        case "signin/verifyState":
            return OnSigninVerifyStateAsync(turnContext, cancellationToken);

        default:
            return Task.CompletedTask;
    }
}

protected virtual Task OnSigninVerifyStateAsync(ITurnContext<IInvokeActivity> turnContext, CancellationToken cancellationToken)
{
    return Task.CompletedTask;
}