Erstellen eines Bots mit SSO-Authentifizierung
Konversationsbots in Microsoft Teams führen sich wiederholende automatisierte Aufgaben durch, die von Benutzern initiiert werden, z. B. kundendienst. Der Benutzer muss sich mehrmals ohne einmaliges Anmelden (Single Sign-On, SSO) anmelden. Bei SSO-Authentifizierungsmethoden müssen sich die Benutzer nicht mehrmals beim Bot anmelden.
Ein Bot verhält sich je nach Der Konversation, an der er beteiligt ist, unterschiedlich:
- Bots in Kanal- und Gruppenchatunterhaltungen erfordern, dass die Benutzer den Bot verwenden @mention .
- Bots in einer 1:1-Unterhaltung erfordern keine @mention. Alle vom Benutzer gesendeten Nachrichten werden an den Bot weitergeleitet.
Diese Schritt-für-Schritt-Anleitung hilft Ihnen beim Erstellen eines Bots mit SSO-Authentifizierung. Die folgende Ausgabe wird angezeigt:
Voraussetzungen
Stellen Sie sicher, dass Sie die folgenden Tools installieren und Ihre Entwicklungsumgebung einrichten:
Installieren | Zum Benutzen... | |
---|---|---|
Microsoft Teams | Microsoft Teams für die Zusammenarbeit mit allen Personen, mit denen Sie über Apps für Chats, Besprechungen und Anrufe zusammenarbeiten, alles an einem Ort. | |
Visual Studio 2022 | Sie können die Unternehmensversion in Visual Studio 2022 und die Workloads ASP.NET und Webentwicklung installieren. Verwenden Sie die neueste Version. | |
Microsoft 365-Entwicklerkonto | Zugriff auf das Teams-Konto mit den entsprechenden Berechtigungen zum Installieren einer App. | |
Entwicklungstunnel | Teams-App-Features (Konversationsbots, Nachrichtenerweiterungen und eingehende Webhooks) erfordern eingehende Verbindungen. Ein Tunnel verbindet Ihr Entwicklungssystem mit Teams. Dev Tunnel ist ein leistungsstarkes Tool, um Ihren Localhost sicher für das Internet zu öffnen und zu steuern, wer Zugriff hat. Dev Tunnel ist in Visual Studio 2022 Version 17.7.0 oder höher verfügbar. Oder Sie können ngrok auch als Tunnel verwenden, um Ihr Entwicklungssystem mit Teams zu verbinden. Dies ist nicht für Apps erforderlich, die nur Registerkarten enthalten. Dieses Paket wird im Projektverzeichnis installiert (mit npm devDependencies ). |
Hinweis
Nachdem Sie ngrok heruntergeladen haben, registrieren Sie sich, und installieren Sie authtoken.
Einrichten Ihres Teams-Entwicklungsmandanten
Ein Mandant ist wie ein Raum oder Container, in dem Sie chatten, Dateien freigeben und Besprechungen für Ihre Organisation in Teams ausführen. Sie können die benutzerdefinierte App auch hochladen und testen.
Überprüfen auf benutzerdefinierte App-Uploadoption
Nachdem Sie die App erstellt haben, müssen Sie ihre App in Teams laden, ohne sie zu verteilen. Dieser Vorgang wird als benutzerdefinierter App-Upload bezeichnet. Melden Sie sich bei Ihrem Microsoft 365-Konto an, um diese Option anzuzeigen.
Hinweis
Ein benutzerdefinierter App-Upload ist für die Vorschau und das Testen von Apps in der lokalen Teams-Umgebung erforderlich. Aktivieren Sie den App-Upload, um eine Vorschau ihrer App in Teams lokal anzuzeigen und zu testen.
Verfügen Sie bereits über einen Mandanten und über Administratorzugriff? Lassen Sie uns überprüfen, ob Sie dies wirklich tun!
So überprüfen Sie benutzerdefinierte Upload-Apps in Teams:
Wählen Sie im Teams-Client das Symbol Apps aus.
Wählen Sie Verwalten Ihrer Apps aus.
Wählen Sie App hochladen aus.
Suchen Sie nach der Option Benutzerdefinierte App hochladen. Wenn die Option angezeigt wird, ist der benutzerdefinierte App-Upload aktiviert.
Hinweis
Wenden Sie sich an den Teams-Administrator, wenn Sie nicht die Möglichkeit haben, eine benutzerdefinierte App hochzuladen.
Erstellen eines kostenlosen Teams-Entwicklermandanten (optional)
Wenn Sie nicht über ein Teams-Entwicklerkonto verfügen, können Sie es kostenlos erhalten. Nehmen Sie am Microsoft 365-Entwicklerprogramm teil!
Gehen Sie zu Microsoft 365-Entwicklerprogramm.
Wählen Sie Jetzt beitreten aus, und folgen Sie den Anweisungen auf dem Bildschirm.
Wählen Sie auf der Willkommensseite E5-Abonnement einrichten aus.
Richten Sie ein Administratorkonto ein. Nachdem Sie fertig sind, wird der folgende Bildschirm angezeigt.
Melden Sie sich mit dem neuen Administratorkonto, das Sie gerade eingerichtet haben, bei Teams an. Vergewissern Sie sich, dass Sie über die Option Benutzerdefinierte App hochladen in Teams verfügen.
Einrichten einer lokalen Umgebung
Öffnen Sie Microsoft-Teams-Samples.
Wählen Sie Code aus.
Wählen Sie im Dropdownmenü Mit GitHub Desktop öffnen aus.
Wählen Sie Klonen aus.
Registrieren der Microsoft Entra-App
Die folgenden Schritte helfen Ihnen beim Erstellen und Registrieren Ihres Bots im Azure-Portal:
- Erstellen und registrieren Sie Ihre Azure-App.
- Erstellen Sie einen geheimen Clientschlüssel, um die SSO-Authentifizierung des Bots zu aktivieren.
- Fügen Sie den Teams-Kanal hinzu, um den Bot bereitzustellen.
- Erstellen Sie einen Tunnel zu den Endpunkten Ihres Webservers mithilfe von Dev Tunnel (empfohlen) oder ngrok.
- Fügen Sie dem von Ihnen erstellten Entwicklungstunnel einen Messagingendpunkt hinzu.
Hinzufügen der App-Registrierung
Navigieren Sie zum Azure-Portal.
Wählen Sie App-Registrierungen aus.
Wählen Sie + Neue Registrierung aus.
Geben Sie den Namen Ihrer App ein.
Wählen Sie Konten in einem beliebigen Organisationsverzeichnis (Beliebiger Microsoft Entra ID-Mandant – Mehrinstanzenfähig) aus.
Wählen Sie Registrieren aus.
Ihre App ist in der Microsoft Entra-ID registriert. Die App-Übersichtsseite wird angezeigt.
Hinweis
Speichern Sie die App-ID unter Anwendungs-ID (Client) und Verzeichnis-ID (Mandant) zur weiteren Verwendung.
Erstellen eines Tunnels
Öffnen Sie Visual Studio.
Wählen Sie Neues Projekt erstellen aus.
Geben Sie im Suchfeld ASP.NET ein. Wählen Sie in den Suchergebnissen ASP.NET Core Web App aus.
Wählen Sie Weiter aus.
Geben Sie Projektname ein , und wählen Sie Weiter aus.
Wählen Sie Erstellen aus.
Ein Übersichtsfenster wird angezeigt.
Wählen Sie in der Dropdownliste Debug die Option Dev Tunnels (kein aktiver Tunnel)>Tunnel erstellen... aus.
Ein Popupfenster wird geöffnet.
Aktualisieren Sie die folgenden Details im Popupfenster:
- Konto: Geben Sie ein Microsoft- oder GitHub-Konto ein.
- Name: Geben Sie einen Namen für Ihren Tunnel ein.
- Tunneltyp: Wählen Sie in der Dropdownliste die Option Temporär aus.
- Zugriff: Wählen Sie in der Dropdownliste Öffentlich aus.
Wählen Sie OK aus.
Ein Popupfenster wird angezeigt, in dem angezeigt wird, dass der Entwicklungstunnel erfolgreich erstellt wurde.
Wählen Sie OK aus.
Sie finden den tunnel, den Sie erstellt haben, in der Debug-Dropdownliste wie folgt:
Wählen Sie F5 aus, um die Anwendung im Debugmodus auszuführen.
Wenn ein Dialogfeld Sicherheitswarnung angezeigt wird, wählen Sie Ja aus.
Ein Popupfenster wird geöffnet.
Wählen Sie Weiter.
Die Dev Tunnel-Startseite wird in einem neuen Browserfenster geöffnet, und der Entwicklungstunnel ist jetzt aktiv.
Wechseln Sie zu Visual Studio, und wählen Sie Ausgabe anzeigen >aus.
Wählen Sie im Dropdownmenü Ausgabekonsoledie Option Dev Tunnels aus.
In der Ausgabekonsole wird die Dev Tunnel-URL angezeigt.
Hinzufügen einer Webauthentifizierung
Wählen Sie im linken Bereich unter Verwalten die Option Authentifizierung aus.
Wählen SiePlattformweb>hinzufügenaus.
Geben Sie den Umleitungs-URI für Ihre App ein, indem Sie an den vollqualifizierten Domänennamen anfügen
auth-end
. Zum Beispielhttps://your-devtunnel-domain/auth-end
oderhttps://your-ngrok-domain/auth-end
.Aktivieren Sie unter Implizite Genehmigung und Hybridflows die Kontrollkästchen Zugriffstoken und ID-Token .
Wählen Sie Konfigurieren aus.
Wählen Sie unter Web die Option URI hinzufügen aus.
https://token.botframework.com/.auth/web/redirect
eingeben.Klicken Sie auf Speichern.
Erstellen eines geheimen Clientschlüssels
Wählen Sie im linken Bereich unter Verwalten die Option Zertifikate & Geheimnisse aus.
Wählen Sie unter Geheime Clientschlüsseldie Option + Neuer geheimer Clientschlüssel aus.
Das Fenster Geheimen Clientschlüssel hinzufügen wird angezeigt.
Geben Sie Beschreibung ein.
Klicken Sie auf Hinzufügen.
Wählen Sie unter Wertdie Option In Zwischenablage kopieren aus, um den Wert des geheimen Clientschlüssels zur weiteren Verwendung zu speichern.
API-Berechtigungen hinzufügen
Wählen Sie im linken Bereich API-Berechtigungen aus.
Wählen Sie + Berechtigung hinzufügen aus.
Wählen Sie Microsoft Graph aus.
Wählen Sie Delegierte Berechtigungen aus.
Wählen Sie User>User.Read aus.
Wählen Sie Berechtigungen hinzufügen aus.
Hinweis
Wenn einer App keine Zustimmung des IT-Administrators erteilt wird, müssen Benutzer bei der ersten Verwendung einer App ihre Zustimmung erteilen. Benutzer müssen den API-Berechtigungen nur zustimmen, wenn die Microsoft Entra-App in einem anderen Mandanten registriert ist.
Anwendungs-ID-URI
Wählen Sie im linken Bereich unter Verwalten die Option API verfügbar machen aus.
Wählen Sie neben Anwendungs-ID-URIdie Option Hinzufügen aus.
Aktualisieren Sie den Anwendungs-ID-URI im
api://botid-{AppID}
Format, und wählen Sie Speichern aus.
Hinzufügen eines Bereichs
Wählen Sie im linken Bereich unter Verwalten die Option API verfügbar machen aus.
Wählen Sie + Bereich hinzufügen aus.
Geben Sie access_as_user als Bereichsnamen ein.
Wählen Sie unter Wer kann zustimmen?die Option Administratoren und Benutzer aus.
Aktualisieren Sie die Werte für die restlichen Felder wie folgt:
Geben Sie Teams kann als Anzeigename der Administratoreinwilligungauf das Profil des Benutzers zugreifen ein.
Geben Sie Erlaubt Teams das Aufrufen der Web-APIs der App als aktuellen Benutzer als Beschreibung der Administratoreinwilligung ein.
Geben Sie Teams kann auf das Benutzerprofil zugreifen und Anforderungen im Namen des Benutzers als Anzeigename für die Benutzereinwilligung stellen ein.
Geben Sie Teams aktivieren ein, um die APIs dieser App mit den gleichen Rechten wie der Benutzer als Beschreibung der Benutzereinwilligung aufzurufen.
Stellen Sie sicher, Zustand auf Aktiviert festgelegt ist.
Klicken Sie auf Bereich hinzufügen.
Die folgende Abbildung zeigt die Felder und die Werte:
Hinweis
Der Bereichsname muss mit dem Anwendungs-ID-URI übereinstimmen, der
/access_as_user
am Ende angefügt ist.
Hinzufügen einer Clientanwendung
Wählen Sie im linken Bereich unter Verwalten die Option API verfügbar machen aus.
Identifizieren Sie unter Autorisierte Clientanwendungen die Anwendungen, die Sie für die Webanwendung Ihrer App autorisieren möchten.
Wählen Sie + Clientanwendung hinzufügen aus.
Fügen Sie Teams mobile oder Desktop- und Teams-Webanwendung hinzu.
Für Teams Mobile oder Desktop: Geben Sie die Client-ID als ein
1fec8e78-bce4-4aaf-ab1b-5451cc387264
.Für Teams-Web: Geben Sie die Client-ID als ein
5e3ce6c0-2b1f-4285-8d4b-75ee78787346
.
Aktivieren Sie das Kontrollkästchen Autorisierte Bereiche .
Wählen Sie Anwendung hinzufügen aus.
Die folgende Abbildung zeigt die Client-ID:
Aktualisieren des Manifests
Wählen Sie im linken Bereich Manifest aus.
Legen Sie den Wert für auf
accessTokenAcceptedVersion
fest,2
und wählen Sie Speichern aus.
Erstellen Ihres Bots
Erstellen einer Azure-Botressource
Hinweis
Wenn Sie Ihren Bot bereits in Teams testen, melden Sie sich von dieser App und Von Teams ab. Melden Sie sich erneut an, um diese Änderung anzuzeigen.
Wechseln Sie zu Startseite.
Wählen Sie + Ressource erstellen aus.
Geben Sie in das Suchfeld Azure Bot ein.
Drücken Sie die EINGABETASTE.
Wählen Sie Azure Bot aus.
Wählen Sie Erstellen aus.
Geben Sie den Botnamen im Bothandle ein.
Wählen Sie Ihr Abonnement aus der Dropdownliste aus.
Wählen Sie Ihre Ressourcengruppe aus der Dropdownliste aus.
Wenn Sie nicht über eine vorhandene Ressourcengruppe verfügen, können Sie eine neue Ressourcengruppe erstellen. Führen Sie die folgenden Schritte aus, um eine neue Ressourcengruppe zu erstellen:
- Wählen Sie Neu erstellen aus.
- Geben Sie den Ressourcennamen ein, und wählen Sie OK aus.
- Wählen Sie in der Dropdownliste Neuer Ressourcengruppenstandort einen Standort aus.
Wählen Sie unter Preise die Option Plan ändern aus.
Wählen Sie FO Free>Select aus.
Wählen Sie unter Microsoft App-IDdie Option App-Typ als mehrinstanzenfähig aus.
Wählen Sie unter Erstellungstyp die Option Vorhandene App-Registrierung verwenden aus.
Geben Sie die App-ID ein.
Hinweis
Sie können nicht mehr als einen Bot mit derselben Microsoft-App-ID erstellen.
Wählen Sie Überprüfen + erstellen aus.
Nachdem die Überprüfung erfolgreich war, wählen Sie Erstellen aus.
Die Bereitstellung des Bots dauert einige Minuten.
Wählen Sie Zu Ressource wechseln aus.
Sie haben Ihren Azure-Bot erfolgreich erstellt.
Hinzufügen eines Teams-Kanals
Wählen Sie im linken Bereich Kanäle aus.
Wählen Sie unter Verfügbare Kanäledie Option Microsoft Teams aus.
Aktivieren Sie das Kontrollkästchen, um die Nutzungsbedingungen zu akzeptieren.
Wählen Sie Zustimmen aus.
Wählen Sie Anwenden aus.
So fügen Sie einen Messagingendpunkt hinzu
Verwenden Sie die Dev Tunnel-URL in der Ausgabekonsole als Messagingendpunkt.
Wählen Sie im linken Bereich unter Einstellungen die Option Konfiguration aus.
Aktualisieren Sie den Messagingendpunkt im Format
https://your-devtunnel-domain/api/messages
.Wählen Sie Anwenden aus.
Sie haben erfolgreich einen Bot im Azure Bot-Dienst eingerichtet.
Hinweis
Wenn der Application Insights-Instrumentierungsschlüssel einen Fehler anzeigt, aktualisieren Sie mit der App-ID.
Hinzufügen von OAuth-Verbindungseinstellungen
Wählen Sie im linken Bereich Konfiguration aus.
Wählen Sie OAuth-Verbindungseinstellungen hinzufügen aus.
Aktualisieren Sie unter Neue Verbindungseinstellung die folgenden Details:
- Name: Geben Sie einen Namen für Ihre neue Verbindungseinstellung ein. Sie können den Namen in den Einstellungen Ihres Botdienstcodes verwenden.
- Dienstanbieter: Wählen Sie in der Dropdownliste Azure Active Directory v2 aus.
- Client-ID: Aktualisieren Sie Ihre Microsoft-App-ID.
- Geheimer Clientschlüssel: Aktualisieren Sie den Wert der geheimen Clientschlüssel.
- Tokenaustausch-URL: Aktualisieren Sie den Anwendungs-ID-URI.
- Mandanten-ID: Geben Sie Allgemein ein.
- Bereiche: Geben Sie User.Read ein.
Klicken Sie auf Speichern.
Einrichten von App-Einstellungen und Manifestdateien
Wechseln Sie zur appsettings.json-Datei im geklonten Repository.
Öffnen Sie die appsettings.json-Datei , und aktualisieren Sie die folgenden Informationen:
- Legen Sie
"MicrosoftAppId"
auf die Microsoft-App-ID Ihres Bots fest. - Legen Sie
"MicrosoftAppPassword"
auf den Wert der geheimen Client-ID Ihres Bots fest. - Legen Sie als OAuth-Verbindungsname fest
ConnectionName
. - Legen Sie auf MultiTenant fest
"MicrosoftAppType"
. - Legen Sie diese Einstellung auf common fest
"MicrosoftAppTenantId"
.
- Legen Sie
Wechseln Sie zur manifest.json-Datei im geklonten Repository.
Öffnen Sie die manifest.json-Datei , und aktualisieren Sie die folgenden Änderungen:
- Ersetzen Sie alle Vorkommen von
"{TODO: MicrosoftAppId}"
durch Ihre Microsoft-App-ID. - Legen Sie auf Ihre ngrok- oder Dev Tunnel-Domäne fest
"<<domain-name>>"
.
- Ersetzen Sie alle Vorkommen von
Erstellen und Ausführen des Diensts
Öffnen Sie Visual Studio.
Wechseln Sie zu Datei>Projekt>/Projektmappe öffnen....
Wählen Siecsharp_dotnetcore Ordner bot-conversation-sso-quickstart> aus, und wählen Sie BotConversationSsoQuickstart.sln Datei aus.
Wählen Sie F5 aus, um das Projekt auszuführen.
Wenn ein Dialogfeld Sicherheitswarnung angezeigt wird, wählen Sie Ja aus.
Eine Webseite wird mit der Meldung Ihr Bot ist bereit! geöffnet.
Fehlerbehebung
Wenn der Fehler Paket nicht gefunden angezeigt wird, führen Sie die folgenden Schritte aus:
- Wechseln Sie zu Extras>NuGet-Paket-Manager-Paket-Manager-Einstellungen>.
- Wählen Sie im daraufhin angezeigten Fenster Optionendie Option NuGet-Paket-Manager-Paketquellen>aus.
- Klicken Sie auf Hinzufügen.
- Geben Sie unter Name die Zeichenfolge
nuget.org
ein, und geben Sie unter Quelle einhttps://api.nuget.org/v3/index.json
. - Wählen Sie Aktualisieren und OK aus.
- Erstellen Sie Ihr Projekt neu.
Hochladen des Bots in Teams
Wechseln Sie in Ihrem geklonten Repository zu Microsoft-Teams-Beispiele>>bot-conversation-sso-quickstart>csharp_dotnetcore>BotConversationSsoQuickstart.
Erstellen Sie eine .zip-Datei mit den folgenden Dateien, die im Ordner appPackage vorhanden sind:
- manifest.json
- outline.png
- color.png
Wechseln Sie zu Microsoft Teams.
Wählen Sie im Teams-Client Apps aus.
Wählen Sie Verwalten Ihrer Apps aus.
Wählen Sie App hochladen aus.
Suchen Sie nach der Option Hochladen einer benutzerdefinierten App.
Wählen Sie Öffnen aus, um die .zip Datei hochzuladen, die Sie im Manifestordner erstellt haben.
Wählen Sie Hinzufügen aus, um den Bot ihrem Chat hinzuzufügen.
Sie können mit dem Bot interagieren, indem Sie diesem eine Nachricht senden. Der Bot tauscht ein SSO-Token aus und ruft die Graph-API in Ihrem Namen auf. Sie bleiben angemeldet, es sei denn, Sie senden eine Nachricht zum Abmelden.
Senden Sie eine Nachricht an den Bot. Der Konversationsbot bittet zum ersten Mal um Zustimmung.
Für Desktop: Wählen Sie Weiter aus, um dem Teams-Client Berechtigungen für den Zugriff auf den Bot zu erteilen.
Hinweis
Nun haben Sie SSO für Ihre Bot-App konfiguriert, und es ist das einzige Mal, dass Sie ihre Zustimmung erteilen müssen.
Für Mobilgeräte: Wählen Sie Akzeptieren aus.
Hinweis
Jetzt haben Sie einmaliges Anmelden für Ihre Bot-App auf mobilgeräte konfiguriert, und es ist das einzige Mal, dass Sie ihre Zustimmung erteilen müssen.
Abschließen der Herausforderung
Haben Sie sich so etwas einfallen lassen?
Herzlichen Glückwunsch!
Sie haben das Tutorial für die ersten Schritte mit dem Erstellen eines Bots mit SSO-Authentifizierung abgeschlossen.
Liegt ein Problem mit diesem Abschnitt vor? Wenn ja, senden Sie uns Feedback, damit wir den Abschnitt verbessern können.