Authentifizierung für Ihren Teams-Bot hinzufügen

Es kann vorkommen, dass Sie Bots in Microsoft Teams erstellen müssen, die im Namen des Benutzers auf Ressourcen zugreifen können, z. B. einen E-Mail-Dienst.

In diesem Artikel wird die Verwendung von Azure Bot Service v4 SDK-Authentifizierung basierend auf OAuth 2.0 veranschaulicht. Dies erleichtert die Entwicklung eines Bots, der Authentifizierungstoken basierend auf den Anmeldeinformationen des Benutzers verwenden kann. Der Schlüssel dazu ist die Verwendung von Identitätsanbietern, wie wir später sehen werden.

OAuth 2.0 ist ein offener Standard für Authentifizierung und Autorisierung, der von Microsoft Azure Active Directory (Azure AD) und vielen anderen Identitätsanbietern verwendet wird. Ein grundlegendes Verständnis von OAuth 2.0 ist eine Voraussetzung für die Arbeit mit der Authentifizierung in Teams.

Siehe OAuth 2 Simplified für grundlegende Informationen und OAuth 2.0 für die vollständige Spezifikation.

Weitere Informationen dazu, wie der Azure Bot Service die Authentifizierung verarbeitet, finden Sie unter Benutzerauthentifizierung in einer Unterhaltung.

In diesem Artikel erhalten Sie Informationen zu folgenden Themen:

  • So erstellen Sie einen Bot mit Authentifizierungsfunktion. Sie verwenden cs-auth-sample zum Behandeln von Anmeldeinformationen für Benutzer und zum Generieren des Authentifizierungstokens.
  • So stellen Sie den Bot in Azure bereit und ordnen ihn einem Identitätsanbieter zu. Der Anbieter gibt ein Token basierend auf Anmeldeinformationen des Benutzers aus. Der Bot kann das Token für den Zugriff auf Ressourcen verwenden, z. B. einen E-Mail-Dienst, der eine Authentifizierung erfordert. Weitere Informationen finden Sie unter Microsoft Teams-Authentifizierungsflow für Bots.
  • So integrieren Sie den Bot in Microsoft Teams. Nachdem der Bot integriert wurde, können Sie sich anmelden und Nachrichten mit ihm in einem Chat austauschen.

Voraussetzungen

Erstellen der Ressourcengruppe

Die Ressourcengruppe und der Serviceplan sind nicht unbedingt erforderlich, aber sie ermöglichen es Ihnen, die von Ihnen erstellten Ressourcen bequem freizugeben. Dies ist eine bewährte Methode, um Ihre Ressourcen organisiert und verwaltbar zu halten.

Sie verwenden eine Ressourcengruppe, um einzelne Ressourcen für das Bot-Framework zu erstellen. Stellen Sie aus Leistungsgründen sicher, dass sich diese Ressourcen in derselben Azure-Region befinden.

  1. Melden Sie sich in Ihrem Browser beim Microsoft Azure-Portal an.
  2. Wählen Sie im linken Navigationsbereich Ressourcengruppen aus.
  3. Wählen Sie oben links im angezeigten Fenster die Registerkarte Hinzufügen aus, um eine neue Ressourcengruppe zu erstellen. Sie werden aufgefordert, Folgendes anzugeben:
    1. Abonnement: Verwenden Sie Ihr vorhandenes Abonnement.
    2. Ressourcengruppe. Geben Sie den Namen für die Ressourcengruppe ein. Ein Beispiel wäre TeamsResourceGroup. Denken Sie daran, dass der Name eindeutig sein muss.
    3. Wählen Sie im Dropdownmenü Region die Option USA, Westen oder eine Region in der Nähe Ihrer Anwendungen aus.
    4. Wählen Sie die Schaltfläche Überprüfen und erstellen aus. Es sollte ein Banner mit der Aufschrift Prüfung bestanden angezeigt werden.
    5. Wählen Sie die Schaltfläche Erstellen aus. Das Erstellen der Ressourcengruppe kann einige Minuten dauern.

Tipp

Wie bei den Ressourcen, die Sie später in diesem Tutorial erstellen, empfiehlt es sich, diese Ressourcengruppe für den einfachen Zugriff an Ihr Dashboard anzuheften. Wenn Sie dies tun möchten, wählen Sie das Stecknadelsymbol 📌 oben rechts im Dashboard aus.

Erstellen des Serviceplans

  1. Wählen Sie im linken Navigationsbereich im Azure-Portal die Option Ressource erstellen aus.
  2. Geben Sie im Suchfeld App-Serviceplan ein. Wählen Sie in den Suchergebnissen die Karte App-Serviceplan aus.
  3. Wählen Sie Erstellen aus.
  4. Sie werden aufgefordert, die folgenden Informationen anzugeben:
    1. Abonnement: Sie können ein vorhandenes Abonnement verwenden.
    2. Ressourcengruppe. Wählen Sie die Gruppe aus, die Sie zuvor erstellt haben.
    3. Name. Geben Sie den Namen für den Serviceplan ein. Ein Beispiel wäre TeamsServicePlan. Denken Sie daran, dass der Name innerhalb der Gruppe eindeutig sein muss.
    4. Betriebssystem. Wählen Sie Windows oder Ihr entsprechendes Betriebssystem aus.
    5. Region. Wählen Sie USA, Westen oder eine Region in der Nähe Ihrer Anwendungen aus.
    6. Preisstufe. Stellen Sie sicher, dass Standard S1 ausgewählt ist. Dies sollte der Standardwert sein.
    7. Wählen Sie die Schaltfläche Überprüfen und erstellen aus. Es sollte ein Banner mit der Aufschrift Prüfung bestanden angezeigt werden.
    8. Wählen Sie Erstellen aus. Das Erstellen des App-Serviceplans kann einige Minuten dauern. Der Plan wird in der Ressourcengruppe aufgeführt.

Erstellen der Azure Bot-Ressourcenregistrierung

Die Azure Bot-Ressourcenregistrierung registriert Ihren Webdienst als Bot bei Bot Framework. Dadurch erhalten Sie eine Microsoft App-ID und ein App-Kennwort (geheimer Clientschlüssel).

Wichtig

Sie müssen Ihren Bot nur registrieren, wenn er nicht in Azure gehostet wird. Wenn Sie einen Bot über die Azure-Portal erstellt haben, ist er bereits beim Dienst registriert. Wenn Sie Ihren Bot über das Bot-Framework oder das Entwicklerportal erstellt haben, ist Ihr Bot nicht in Azure registriert.

  1. Besuchen Sie Azure-Portal und suchen Sie im Abschnitt Erstellen einer Ressource nach Azure Bot.

  2. Öffnen Sie den Azure Bot, und wählen Sie Erstellen aus.

  3. Geben Sie den Namen des Bot-Handle in das Feld Bot-Handle ein.

  4. Wählen Sie Ihr Abonnement aus der Dropdownliste aus.

  5. Wählen Sie Ihre Ressourcengruppe aus der Dropdownliste aus.

  6. Wählen Sie den App-Typ als Mehrinstanzenfähig für die Microsoft-App-ID aus.

    Screenshot: Auswählen mehrerer Mandanten für Microsoft AppID

  7. Wählen Sie Überprüfen + erstellen aus.

    Screenshot: Erstellen eines Azure-Bots

  8. Wenn die Prüfung bestanden wurde, wählen Sie Erstellen aus.

    Es dauert einige Augenblicke, bis Ihr Botdienst bereitgestellt wurde.

    Screenshot: Erfolgreiche Überprüfung des Azure-Bots

  9. Wählen Sie Zu Ressource wechseln aus. Der Bot und die zugehörigen Ressourcen werden in der Ressourcengruppe aufgeführt.

    Screenshot: Auswählen einer Ressourcengruppe

    Jetzt wird Ihr Azure-Bot erstellt.

    Screenshot: Erstellen von Azure-Botressourcen

So erstellen Sie den geheimen Clientschlüssel:

  1. Wählen Sie in Einstellungen die Option Konfiguration aus. Speichern Sie die Microsoft App-ID (Client-ID) zur zukünftigen Referenz.

    Screenshot: Hinzufügen Microsoft App-ID zum Erstellen eines geheimen Clientschlüssels

  2. Wählen Sie neben Microsoft App-IDdie Option Verwalten aus.

    Screenshot: Erstellen und Verwalten eines Bots

  3. Wählen Sie im Abschnitt Geheime Clientschlüssel die Option Neuer geheimer Clientschlüssel aus. Das Fenster Geheimen Clientschlüssel hinzufügen wird angezeigt.

    Screenshot: Erstellen eines neuen geheimen Clientschlüssels

  4. Geben Sie Beschreibung ein, und wählen Sie Hinzufügen aus.

    Der Screenshot zeigt, wie Eine Beschreibung für den geheimen Clientschlüssel eingegeben wird.

  5. Wählen Sie in der Spalte WertIn Zwischenablage kopieren aus, und speichern Sie die Clientgeheimnis-ID zur späteren Referenz.

    Der Screenshot zeigt, wie sie die ID des geheimen Clientschlüssels zur späteren Referenz speichern.

So fügen Sie den Microsoft Teams-Kanal hinzu:

  1. Wechseln Sie zu Startseite.

    Screenshot: Bot-Startseite

  2. Öffnen Sie Ihren Bot, der im Abschnitt Zuletzt verwendete Ressourcen aufgeführt ist.

  3. Wählen Sie im linken Bereich Kanäle und dann Microsoft Teams aus.

    Screenshot: Auswählen von Teams in Kanälen

  4. Aktivieren Sie das Kontrollkästchen, um die Nutzungsbedingungen zu akzeptieren, und wählen Sie Zustimmen aus.

    Screenshot: Festlegen der Bedingungen für

  5. Wählen Sie Speichern aus.

    Screenshot: Hinzufügen Microsoft Teams-Kanals

Weitere Informationen finden Sie unter Erstellen eines Bot für Microsoft Teams.

Erstellen des Identitätsanbieters

Sie benötigen einen Identitätsanbieter, der für die Authentifizierung verwendet werden kann. In diesem Verfahren verwenden Sie einen Azure AD-Anbieter. Andere von Azure AD unterstützte Identitätsanbieter können ebenfalls verwendet werden.

  1. Wählen Sie im Azure-Portal im linken Navigationsbereich Azure Active Directory aus.

    Tipp

    Sie müssen diese Azure AD-Ressource in einem Mandanten erstellen und registrieren, in dem Sie der Delegierung von Berechtigungen zustimmen können, die von einer Anwendung angefordert werden. Anweisungen zum Erstellen eines Mandanten finden Sie unter Zugreifen auf das Portal und Erstellen eines Mandanten.

  2. Wählen Sie im linken Bereich App-Registrierungenaus.

  3. Wählen Sie im rechten Bereich oben links die Registerkarte Neue Registrierung aus.

  4. Sie werden aufgefordert, die folgenden Informationen anzugeben:

    1. Name. Geben Sie den Namen für die Anwendung ein. Ein Beispiel wäre BotTeamsIdentity. Denken Sie daran, dass der Name eindeutig sein muss.
    2. Wählen Sie Unterstützte Kontotypen für Ihre Anwendung aus. Wählen Sie Konten in einem beliebigen Organisationsverzeichnis (Beliebiges Microsoft Azure Active Directory (Azure AD) – Mehrinstanzenfähig) und persönliche Microsoft Konten (z. B. Skype, Xbox) aus.
    3. Für den Umleitungs-URI:
      ✓Wählen Sie Web aus.
      ✓ Legen Sie die URL auf fest https://token.botframework.com/.auth/web/redirect.
    4. Wählen Sie Registrieren aus.
  5. Nach der Erstellung zeigt Azure die Seite Übersicht für die App an. Kopieren und speichern Sie die folgenden Informationen in eine Datei:

    1. Der Wert der Anwendungs-ID (Client). Sie verwenden diesen Wert später als Client-ID, wenn Sie diese Azure-Identitätsanwendung bei Ihrem Bot registrieren.
    2. Der Wert der Verzeichnis-ID (Mandant). Sie verwenden diesen Wert später auch als Mandanten-ID, um diese Azure-Identitätsanwendung bei Ihrem Bot zu registrieren.
  6. Wählen Sie im linken Bereich Zertifikatgeheimnisse aus, um einen geheimen & Clientschlüssel für Ihre Anwendung zu erstellen.

    1. Wählen Sie unter Geheime Clientschlüsseldie Option Neuer geheimer Clientschlüssel aus ➕.
    2. Fügen Sie eine Beschreibung hinzu, um diesen geheimen Schlüssel von anderen zu identifizieren, die Sie möglicherweise für diese App erstellen müssen, z. B. Bot-Identitäts-App in Teams.
    3. Legen Sie das Ablaufdatum auf das gewünschte Datum fest.
    4. Klicken Sie auf Hinzufügen.
    5. Bevor Sie diese Seite verlassen, den geheimen Schlüssel notieren. Sie verwenden diesen Wert später als geheimen Clientschlüssel, wenn Sie Ihre Azure AD-Anwendung bei Ihrem Bot registrieren.

Konfigurieren der Identitätsanbieterverbindung und Registrieren beim Bot

Hinweis: Hier gibt es zwei Optionen für Dienstanbieter: Azure AD V1 und Azure AD V2. Die Unterschiede zwischen den beiden Anbietern werden hier zusammengefasst. Im Allgemeinen bietet V2 jedoch mehr Flexibilität in Bezug auf das Ändern von Botberechtigungen. Graph-API-Berechtigungen werden im Feld "Bereiche" aufgeführt, und wenn neue hinzugefügt werden, ermöglichen Bots Benutzern, den neuen Berechtigungen bei der nächsten Anmeldung zuzustimmen. Für V1 muss die Bot-Zustimmung vom Benutzer gelöscht werden, damit neue Berechtigungen im OAuth-Dialogfeld angezeigt werden.

Microsoft Azure Active Directory (Azure AD) V1

  1. Wählen Sie im Azure-Portal Ihre Ressourcengruppe aus dem Dashboard aus.

  2. Wählen Sie den Link zur Botregistrierung aus.

  3. Öffnen Sie die Ressourcenseite, und wählen Sie Konfiguration unter Einstellungen aus.

  4. Wählen Sie OAuth-Verbindungseinstellungen hinzufügen aus. In der folgenden Abbildung wird die entsprechende Auswahl auf der Ressourcenseite angezeigt:

    SampleAppDemoBot-Konfiguration

  5. Füllen Sie das Formular wie folgt aus:

    1. Name. Geben Sie einen Namen für die Verbindung ein. Sie verwenden diesen Namen in Ihrem Bot in der appsettings.json-Datei. Beispiel: BotTeamsAuthADv1.

    2. Dienstanbieter. Wählen Sie Microsoft Azure Active Directory (Azure AD) aus. Sobald Sie diese Option ausgewählt haben, werden die Azure AD-spezifischen Felder angezeigt.

    3. Client-ID. Geben Sie in den obigen Schritten die Anwendungs-ID (Client-ID) ein, die Sie für Ihre Azure Identity Provider-App notiert haben.

    4. Geheimer Clientschlüssel. Geben Sie in den obigen Schritten den geheimen Schlüssel ein, den Sie für Ihre Azure Identity Provider-App notiert haben.

    5. Gewährungstyp. authorization_code eingeben.

    6. Anmelde-URL. https://login.microsoftonline.com eingeben.

    7. Mandanten-ID: Geben Sie die Directory-ID (Mandant) ein, die Sie zuvor für Ihre Azure-Identitäts-App notiert haben, oder Allgemeines, je nachdem, welchen unterstützten Kontotyp Sie beim Erstellen der Identitätsanbieter-App ausgewählt haben. Um zu entscheiden, welcher Wert zugewiesen werden soll, befolgen Sie die folgenden Kriterien:

      • Wenn Sie entweder Nur Konten in diesem Organisationsverzeichnis (nur Microsoft – Einzelner Mandant) oder Konten in einem beliebigen Organisationsverzeichnis (Microsoft Azure Active Directory (Azure AD) – Mehrinstanzenfähig) ausgewählt haben, geben Sie die Mandanten-ID ein, die Sie zuvor für die Microsoft Azure Active Directory-App (Azure AD). Dies ist der Mandant, der den Benutzern zugeordnet ist, die authentifiziert werden können.

      • Wenn Sie Konten in einem beliebigen Organisationsverzeichnis (Beliebige Microsoft Azure Active Directory (Azure AD) – Mehrinstanzenfähige und persönliche Microsoft Konten wie Skype, Xbox, Outlook) ausgewählt haben, geben Sie das Wort common anstelle einer Mandanten-ID ein. Andernfalls überprüft die Azure AD-App (Azure AD) den Mandanten, dessen ID ausgewählt wurde, und schließt persönliche Microsoft Konten aus.

    h. Geben Sie für die Ressourcen-URL "https://graph.microsoft.com/" ein. Dies wird im aktuellen Codebeispiel nicht verwendet.
    i. Lassen Sie das Feld Bereiche leer. Die folgende Abbildung dient lediglich als Beispiel:

    Screenshot: Hinzufügen einer Teams-Bot-Authentifizierungsbot-Identitätsverbindung adv1

  6. Wählen Sie Speichern.

Microsoft Azure Active Directory (Azure AD) V2

  1. Wählen Sie im Azure-Portal Ihren Azure-Bot aus dem Dashboard aus.

  2. Wählen Sie auf der Ressourcenseite unter EinstellungenKonfiguration aus.

  3. Wählen Sie OAuth-Verbindungseinstellungen hinzufügen aus.
    In der folgenden Abbildung wird die entsprechende Auswahl auf der Ressourcenseite angezeigt:

    Screenshot: Entsprechende Auswahl auf der Ressourcenseite

  4. Füllen Sie das Formular wie folgt aus:

    1. Name. Geben Sie einen Namen für die Verbindung ein. Sie verwenden diesen Namen in Ihrem Bot in der appsettings.json-Datei. Beispiel: BotTeamsAuthADv2.

    2. Dienstanbieter. Wählen Sie Microsoft Azure Active Directory v2 aus. Nachdem Sie diese Option ausgewählt haben, werden die Azure AD-spezifischen Felder angezeigt.

    3. Client-ID. Geben Sie in den obigen Schritten die Anwendungs-ID (Client-ID) ein, die Sie für Ihre Azure Identity Provider-App notiert haben.

    4. Geheimer Clientschlüssel. Geben Sie in den obigen Schritten den geheimen Schlüssel ein, den Sie für Ihre Azure Identity Provider-App notiert haben.

    5. Tokenaustausch-URL. Lassen Sie dieses Feld leer.

    6. Mandanten-ID. Geben Sie die Directory-ID (Mandant) ein, die Sie zuvor für Ihre Azure-Identitäts-App notiert haben, oder Allgemeines, je nachdem, welchen unterstützten Kontotyp Sie beim Erstellen der Identitätsanbieter-App ausgewählt haben. Um zu entscheiden, welcher Wert zugewiesen werden soll, befolgen Sie die folgenden Kriterien:

      • Wenn Sie entweder Konten nur in diesem Organisationsverzeichnis (nur Microsoft – Einzelner Mandant) oder Konten in einem Organisationsverzeichnis (Microsoft Azure Active Directory – Mehrinstanzenfähig) ausgewählt haben, geben Sie die Mandanten-ID ein, die Sie zuvor für die Azure AD-App notiert haben. Dies ist der Mandant, der den Benutzern zugeordnet ist, die authentifiziert werden können.

      • Wenn Sie Konten in einem beliebigen Organisationsverzeichnis (Beliebige Microsoft Azure Active Directory (Azure AD) – Mehrinstanzenfähige und persönliche Microsoft Konten wie Skype, Xbox, Outlook) ausgewählt haben, geben Sie das Wort common anstelle einer Mandanten-ID ein. Andernfalls überprüft die Azure AD-App den Mandanten, dessen ID ausgewählt wurde, und schließt persönliche Microsoft Konten aus.

    7. Geben Sie für Bereiche eine durch Leerzeichen getrennte Liste von Graphberechtigungen ein, die für diese Anwendung erforderlich sind. Beispiel: User.Read User.ReadBasic.All Mail.Read

  5. Wählen Sie Speichern.

Testen der Verbindung

  1. Wählen Sie den Verbindungseintrag aus, um die von Ihnen erstellte Verbindung zu öffnen.

  2. Wählen Sie oben im Bereich Verbindungseinstellung für DienstanbieterVerbindung testen aus.

  3. Wenn Sie dies zum ersten Mal tun, wird ein neues Browserfenster geöffnet, in dem Sie aufgefordert werden, ein Konto auszuwählen. Wählen Sie das Konto, das Sie verwenden möchten.

  4. Als Nächstes werden Sie aufgefordert, dem Identitätsanbieter die Verwendung Ihrer Daten (Anmeldeinformationen) zu erlauben. Die folgende Abbildung dient lediglich als Beispiel:

    Der Screenshot zeigt, wie Sie die Teams-Bot-Authentifizierungs-Verbindungszeichenfolge adv1 hinzufügen.

  5. Wählen Sie Annehmen aus.

  6. Dadurch sollten Sie dann zu einer Seite Testverbindung zu <Ihrem Verbindungsnamen> Erfolgreich weitergeleitet werden . Aktualisieren Sie die Seite, wenn ein Fehler angezeigt wird. Die folgende Abbildung dient lediglich als Beispiel:

    Der Screenshot zeigt, wie Sie die Verbindungszeichenfolge adv1 der Teams-App-Authentifizierung hinzufügen.

Der Verbindungsname wird vom Botcode verwendet, um Benutzerauthentifizierungstoken abzurufen.

Vorbereiten des Bot-Beispielcodes

Nachdem die vorläufigen Einstellungen abgeschlossen sind, konzentrieren wir uns auf die Erstellung des Bots, der in diesem Artikel verwendet werden soll.

  1. Klonen Sie cs-auth-sample.

  2. Öffnen Sie Visual Studio.

  3. Wählen Sie auf der Symbolleiste Datei > Projekt/Projektmappe öffnen > aus, und öffnen Sie das Botprojekt.

  4. Aktualisieren Sie in C# appsettings.json wie folgt:

    • Legen Sie ConnectionName auf den Namen der Identitätsanbieterverbindung fest, die Sie der Botregistrierung hinzugefügt haben. Der in diesem Beispiel verwendete Name ist BotTeamsAuthADv1.
    • Legen Sie MicrosoftAppId auf die Bot-App-ID fest, die Sie zum Zeitpunkt der Botregistrierung gespeichert haben.
    • Legen Sie MicrosoftAppPassword auf den geheimen Kundenschlüssel fest, den Sie zum Zeitpunkt der Botregistrierung gespeichert haben.

    Abhängig von den Zeichen in Ihrem geheimen Botschlüssel müssen Sie das Kennwort möglicherweise mit XML-ESCAPEZEICHEN versehen. Beispielsweise müssen alle kaufmännischen Und-Zeichen (&) als &amp;codiert werden.

    {
      "MicrosoftAppType": "",
      "MicrosoftAppId": "",
      "MicrosoftAppPassword": "",
      "ConnectionName": "",
    
  5. Navigieren Sie im Projektmappen-Explorer zum TeamsAppManifest Ordner, öffnen manifest.json Sie und legen Sie id und botId die Bot-App-ID fest, die Sie zum Zeitpunkt der Botregistrierung gespeichert haben.

Bereitstellen des Bots in Azure

Führen Sie zum Bereitstellen des Bots die Schritte unter Bereitstellen Ihres Bots in Azure aus.

Alternativ können Sie in Visual Studio die folgenden Schritte ausführen:

  1. Wählen Sie in Visual Studio Projektmappen-Explorer den Projektnamen aus, und halten Sie diesen gedrückt (oder klicken Sie mit der rechten Maustaste darauf).

  2. Wählen Sie im Dropdownmenü Veröffentlichen aus.

  3. Wählen Sie im angezeigten Fenster den Link Neu aus.

  4. Wählen Sie im Dialogfeld auf der linken Seite App Service und auf der rechten Seite Neu erstellen aus.

  5. Klicken Sie auf die Schaltfläche Veröffentlichen.

  6. Geben Sie im nächsten Dialogfeld die erforderlichen Informationen ein. Es folgt ein Beispiel:

    Screenshot: Eingeben der erforderlichen Informationen für den Authentifizierungs-App-Dienst

  7. Wählen Sie Erstellen aus.

  8. Wenn die Bereitstellung erfolgreich abgeschlossen wurde, sollte sie in Visual Studio angezeigt werden. Darüber hinaus wird in Ihrem Standardbrowser eine Seite mit der Meldung Ihr Bot ist bereit! angezeigt. Die URL sieht folgendermaßen aus: https://botteamsauth.azurewebsites.net/. Speichern Sie sie in einer Datei.

  9. Wechseln Sie in Ihrem Browser zum Azure-Portal.

  10. Überprüfen Sie Ihre Ressourcengruppe, der Bot sollte zusammen mit den anderen Ressourcen aufgeführt werden. Die folgende Abbildung dient lediglich als Beispiel:

    Screenshot: Überprüfen der Ressourcengruppe und des Bots

  11. Wählen Sie in der Ressourcengruppe den Namen der Botregistrierung (Link) aus.

  12. Wählen Sie im linken Bereich Einstellungen aus.

  13. Geben Sie im Feld Messagingendpunkt die oben abgerufene URL gefolgt von api/messages ein. Dies ist ein Beispiel: https://botteamsauth.azurewebsites.net/api/messages.

    Hinweis

    Für einen Bot ist nur ein Messagingendpunkt zulässig.

  14. Wählen Sie oben links die Schaltfläche Speichern aus.

Testen des Bots mithilfe von Emulator

Wenn Sie dies noch nicht getan haben, installieren Sie den Microsoft Bot Framework Emulator. Siehe auch Debuggen mit dem Emulator.

Damit die Bot-Beispielanmeldung funktioniert, müssen Sie den Emulator konfigurieren.

Konfigurieren des Emulators für die Authentifizierung

Wenn ein Bot eine Authentifizierung erfordert, müssen Sie den Emulator konfigurieren. So konfigurieren Sie:

  1. Starten Sie den Emulator.
  2. Wählen Sie im Emulator das Zahnradsymbol ⚙ unten links oder die Registerkarte Emulatoreinstellungen in der oberen rechten Ecke aus.
  3. Aktivieren Sie das Kontrollkästchen Authentifizierungstoken der Version 1.0 verwenden.
  4. Geben Sie den lokalen Pfad zum ngrok-Tool ein. Siehe Bot Framework Emulator/ngrok-Tunnelingintegration Wiki. Weitere Toolinformationen finden Sie unter ngrok.
  5. Aktivieren Sie das Kontrollkästchen, indem Sie ngrok ausführen, wenn der Emulator gestartet wird.
  6. Wählen Sie die Schaltfläche Speichern aus.

Wenn der Bot eine Anmeldekarte anzeigt und der Benutzer die Anmeldeschaltfläche auswählt, öffnet der Emulator eine Seite, mit der sich der Benutzer beim Authentifizierungsanbieter anmelden kann. Sobald der Benutzer dies tut, generiert der Anbieter ein Benutzertoken und sendet es an den Bot. Danach kann der Bot im Namen des Benutzers handeln.

Lokales Testen des Bots

Nachdem Sie den Authentifizierungsmechanismus konfiguriert haben, können Sie die eigentlichen Bottests durchführen.

  1. Führen Sie das Botbeispiel lokal auf Ihrem Computer aus, z. B. über Visual Studio.

  2. Starten Sie den Emulator.

  3. Wählen Sie die Schaltfläche Bot öffnen aus.

  4. Geben Sie in der Bot-URL die lokale URL des Bots ein. In der Regel unter http://localhost:3978/api/messages.

  5. Geben Sie in der Microsoft-App-ID die App-ID des Bots aus appsettings.json ein.

  6. Geben Sie im Microsoft App-Kennwort das App-Kennwort des Bots aus appsettings.json ein.

  7. Wählen Sie Verbinden aus.

  8. Nachdem der Bot ausgeführt wurde, geben Sie einen beliebigen Text ein, um die Anmeldekarte anzuzeigen.

  9. Wählen Sie die Schaltfläche Anmelden aus.

  10. Ein Popupdialogfeld wird mit der Aufforderung URL öffnen bestätigen angezeigt. Dies soll die Authentifizierung des Bot-Benutzers (Sie) ermöglichen.

  11. Wählen Sie Bestätigen aus.

  12. Wenn Sie dazu aufgefordert werden, wählen Sie das Konto des entsprechenden Benutzers aus.

  13. Je nachdem, welche Konfiguration Sie für den Emulator verwendet haben, erhalten Sie eine der folgenden Optionen:

    1. Verwenden des Anmeldungsprüfcodes
      ✓ Es wird ein Fenster geöffnet, in dem der Validierungscode angezeigt wird.
      ✓ Kopieren Sie den Validierungscode, und geben Sie diesen in das Chatfeld ein, um die Anmeldung abzuschließen.
    2. Verwenden von Authentifizierungstoken.
      ✓ Sie sind basierend auf Ihren Anmeldeinformationen angemeldet.

    Die folgende Abbildung ist ein Beispiel für die Bot-Benutzeroberfläche, nachdem Sie sich angemeldet haben:

    Screenshot: Beispiel für die Bot-Benutzeroberfläche, nachdem Sie sich angemeldet haben

  14. Wenn Sie Ja auswählen, wenn der Bot fragt Möchten Sie Ihr Token anzeigen? erhalten Sie eine Antwort ähnlich der folgenden:

    Screenshot: Auswählen der Zustimmung

  15. Geben Sie Abmelden in das Eingabe-Chatfeld ein, um sich abzumelden. Dadurch wird das Benutzertoken veröffentlicht, und der Bot kann erst in Ihrem Namen handeln, wenn Sie sich erneut anmelden.

Hinweis

Die Bot-Authentifizierung erfordert die Verwendung des Bot Connector-Diensts. Der Dienst greift auf die Bots-Registrierungsinformationen für Ihren Bot zu.

Testen des bereitgestellten Bots

  1. Wechseln Sie in Ihrem Browser zum Azure-Portal.

  2. Suchen Sie Ihre Ressourcengruppe.

  3. Wählen Sie den Ressourcenlink aus. Die Ressourcenseite wird angezeigt.

  4. Wählen Sie auf der Ressourcenseite Testen im Webchat aus. Der Bot startet und zeigt die vordefinierten Begrüßungen an.

  5. Geben Sie etwas in das Chatfeld ein.

  6. Wählen Sie das Feld Anmelden aus.

  7. Ein Popupdialogfeld wird mit der Aufforderung URL öffnen bestätigen angezeigt. Dies soll die Authentifizierung des Bot-Benutzers (Sie) ermöglichen.

  8. Wählen Sie Bestätigen aus.

  9. Wenn Sie dazu aufgefordert werden, wählen Sie das Konto des entsprechenden Benutzers aus. Die folgende Abbildung ist ein Beispiel für die Bot-Benutzeroberfläche, nachdem Sie sich angemeldet haben:

    Screenshot: Beispiel für die Benutzeroberfläche des Teams-Bots, nachdem Sie sich angemeldet haben

  10. Wählen Sie die Schaltfläche Ja aus, um Ihr Authentifizierungstoken anzuzeigen. Die folgende Abbildung dient lediglich als Beispiel:

    Screenshot: Auswählen der Schaltfläche

  11. Geben Sie "Abmelden" ein, um sich abzumelden.

    Screenshot: Eingeben der Abmeldung zum Abmelden

Hinweis

Wenn Sie Probleme beim Anmelden haben, versuchen Sie erneut, die Verbindung zu testen, wie in den vorherigen Schritten beschrieben. Dadurch kann das Authentifizierungstoken neu erstellt werden. Mit dem Bot Framework Webchat-Client in Azure müssen Sie sich möglicherweise mehrmals anmelden, bevor die Authentifizierung ordnungsgemäß eingerichtet wird.

Installieren und Testen des Bots in Teams

  1. Stellen Sie in Ihrem Botprojekt sicher, dass der Ordner TeamsAppManifest die manifest.json zusammen mit einer outline.png und color.png-Dateien enthält.

  2. Navigieren Sie Projektmappen-Explorer zum TeamsAppManifest Ordner. Bearbeiten Sie manifest.json, indem Sie die folgenden Werte zuweisen:

    1. Stellen Sie sicher, dass die Bot-App-ID, die Sie zum Zeitpunkt der Botregistrierung erhalten haben, id und botIdzugewiesen ist.
    2. Weisen Sie diesen Wert zu: validDomains: [ "token.botframework.com" ].
  3. Wählen Sie die Dateien manifest.json, outline.png und color.png aus und zippen Sie sie.

  4. Öffnen Sie Microsoft Teams.

  5. Wählen Sie im linken Bereich unten das Apps-Symbol aus.

  6. Wählen Sie im rechten Bereich unten Benutzerdefinierte App hochladen aus.

  7. Wechseln Sie zum TeamsAppManifest Ordner, und laden Sie das gezippte Manifest hoch. Der folgende Assistent wird angezeigt:

    Screenshot: Beispiel für den Bot, nachdem er in Teams hochgeladen wurde

  8. Klicken Sie auf die Schaltfläche Zum Team hinzufügen.

  9. Wählen Sie im nächsten Fenster das Team aus, in dem Sie den Bot verwenden möchten.

  10. Wählen Sie die Schaltfläche Bot einrichten aus.

  11. Wählen Sie im linken Bereich die drei Punkte (●●●) aus. Wählen Sie dann das Symbol Entwicklerportal aus.

  12. Wählen Sie die Registerkarte Manifest-Editor aus. Das Symbol für den hochgeladenen Bot sollte angezeigt werden.

  13. Außerdem sollte der Bot in der Chatliste als Kontakt aufgeführt sein, über den Sie Nachrichten mit dem Bot austauschen können.

Testen des Bots lokal in Teams

Teams ist ein vollständig cloudbasiertes Produkt. Es erfordert, dass alle Dienste, auf die es zugreift, über HTTPS-Endpunkte aus der Cloud verfügbar sind. Damit der Bot (unser Beispiel) in Teams funktioniert, müssen Sie daher entweder den Code in der Cloud Ihrer Wahl veröffentlichen oder eine lokal ausgeführte Instanz extern über ein Tunneling-Tool zugänglich machen. Wir empfehlen ngrok, wodurch eine extern adressierbare URL für einen Port erstellt wird, den Sie lokal auf Ihrem Computer öffnen. Führen Sie die folgenden Schritte aus, um ngrok als Vorbereitung für die lokale Ausführung Ihrer Teams-App einzurichten:

  1. Wechseln Sie in einem Terminalfenster zu dem Verzeichnis, in dem Sie ngrok.exe installiert haben. Es wird empfohlen, den Pfad Umgebungsvariable so festzulegen, dass er darauf zeigt.

  2. Führen Sie z. B ngrok http 3978 --host-header=localhost:3978 aus. Ersetzen Sie die Portnummer nach Bedarf. Dadurch wird ngrok gestartet, um den von Ihnen angegebenen Port lauschen zu können. Im Gegenzug erhalten Sie eine extern adressierbare URL, die so lange gültig ist, wie ngrok ausgeführt wird. Die folgende Abbildung dient lediglich als Beispiel:

    Screenshot der Authentifizierungs-Verbindungszeichenfolge für die Teams-Bot-App adv1

  3. Kopieren Sie die HTTPS-Adresse unter Forwarding. Sie sieht folgendermaßen aus: https://dea822bf.ngrok.io/.

  4. Fügen Sie /api/messages an, um https://dea822bf.ngrok.io/api/messages abzurufen. Dies ist der Nachrichtenendpunkt für den Bot, der lokal auf Ihrem Computer ausgeführt wird und über das Web in einem Chat in Teams erreichbar ist.

  5. Ein letzter Schritt besteht darin, den Nachrichtenendpunkt des bereitgestellten Bots zu aktualisieren. Im Beispiel haben wir den Bot in Azure bereitgestellt. Führen wir also die folgenden Schritte aus:

    1. Wechseln Sie in Ihrem Browser zum Azure-Portal.
    2. Wählen Sie Ihre Bot-Registrierung aus.
    3. Wählen Sie im linken Bereich Einstellungen aus.
    4. Geben Sie im rechten Bereich im Feld Nachrichtenendpunkt die ngrok-URL ein, in unserem Beispiel, https://dea822bf.ngrok.io/api/messages.
  6. Starten Sie Ihren Bot lokal, z. B. im Debugmodus von Visual Studio.

  7. Testen Sie den Bot während der lokalen Ausführung, indem Sie Webchat testen des Bot Framework-Portals verwenden. Wie der Emulator ermöglicht ihnen dieser Test nicht den Zugriff auf Teams-spezifische Funktionalität.

  8. Im Terminalfenster, in dem ngrok ausgeführt wird, wird HTTP-Datenverkehr zwischen dem Bot und dem Webchatclient angezeigt. Wenn Sie eine detailliertere Ansicht wünschen, geben Sie in einem Browserfenster http://127.0.0.1:4040 ein, die Sie aus dem vorherigen Terminalfenster abgerufen haben. Die folgende Abbildung dient lediglich als Beispiel:

    Screenshot: ngrok-Tests für Authentifizierungsbot-Teams

Hinweis

Wenn Sie ngrok beenden und neu starten, ändert sich die URL. Um ngrok in Ihrem Projekt zu verwenden, und abhängig von den verwendeten Funktionen müssen Sie alle URL-Verweise aktualisieren.

Weitere Informationen

TeamsAppManifest/manifest.json

Dieses Manifest enthält Informationen, die Teams benötigt, um eine Verbindung mit dem Bot herzustellen:

{
  "$schema": "https://developer.microsoft.com/json-schemas/teams/v1.8/MicrosoftTeams.schema.json",
  "manifestVersion": "1.5",
  "version": "1.0.0",
  "id": "",
  "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 Teams etwas anders als andere Kanäle, wie unten erläutert.

Behandeln der Aufrufaktivität

Eine Aufrufaktivität wird an den Bot und nicht an die Ereignisaktivität gesendet, die von anderen Kanälen verwendet wird. Dazu wird ActivityHandler unterklassiert.

Bots/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.cs

DieAufrufaktivität muss an das Dialogfeld weitergeleitet werden, wenn OAuthPrompt verwendet wird.

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.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;
}

Codebeispiel

Dieser Abschnitt enthält ein Sdk-Beispiel für die Botauthentifizierung v3.

Beispielname Beschreibung .NET Node.js Python
Botauthentifizierung In diesem Beispiel wird gezeigt, wie Sie mit der Authentifizierung in einem Bot für Teams beginnen. View View View
Registerkarten-, Bot- und Nachrichtenerweiterungs-SSO (ME) Dieses Beispiel zeigt SSO für Registerkarten, Bots und ME – Suche, Aktion, linkunfurl. View View Nicht verfügbar

Siehe auch

Hinzufügen der Authentifizierung über Azure Bot Service