Ajouter l’authentification à Teams bot

Il arrive parfois que vous devrez créer des bots dans Microsoft Teams qui peuvent accéder aux ressources pour le compte de l’utilisateur, telles qu’un service de messagerie.

Cet article montre comment utiliser l’authentification SDK Azure Bot Service v4, basée sur OAuth 2.0. Cela facilite le développement d’un bot qui peut utiliser des jetons d’authentification basés sur les informations d’identification de l’utilisateur. L’élément clé de tout cela est l’utilisation de fournisseurs d’identité, comme nous le constaterons plus tard.

OAuth 2.0 est une norme ouverte pour l’authentification et l’autorisation utilisée par Azure Active Directory (Azure AD) et de nombreux autres fournisseurs d’identité. Une compréhension de base d’OAuth 2.0 est une condition préalable à l’utilisation de l’authentification dans Teams.

Voir OAuth 2 Simplifié pour une compréhension de base et OAuth 2.0 pour la spécification complète.

Pour plus d’informations sur la façon dont Azure Bot Service gère l’authentification, consultez l’authentification utilisateur dans une conversation.

Voici les titres des sections de cet article :

  • Comment créer un bot activé pour l’authentification. Vous utiliserez cs-auth-sample pour gérer les informations d’identification de connexion de l’utilisateur et la génération du jeton d’authentification.
  • Comment déployer le bot sur Azure et l’associer à un fournisseur d’identité. Le fournisseur émettra un jeton basé sur les informations d’identification de connexion de l’utilisateur. Le bot peut utiliser le jeton pour accéder à des ressources, telles qu’un service de messagerie, qui nécessitent une authentification. Pour plus d’informations, Microsoft Teams flux d’authentification pour les bots.
  • Comment intégrer le bot dans Microsoft Teams. Une fois le bot intégré, vous pouvez vous inscrire et échanger des messages avec lui dans une conversation.

Configuration requise

Créer le groupe de ressources

Le groupe de ressources et le plan de service ne sont pas strictement nécessaires, mais ils vous permettent de libérer facilement les ressources que vous créez. Il s’agit d’une bonne pratique pour maintenir l’organisation et la gestion de vos ressources.

Vous utilisez un groupe de ressources pour créer des ressources individuelles pour Bot Framework. Pour obtenir des performances, assurez-vous que ces ressources se trouvent dans la même région Azure.

  1. Dans votre navigateur, connectez-vous au portail Azure.
  2. Dans le panneau de navigation de gauche, sélectionnez Groupes de ressources.
  3. Dans le coin supérieur gauche de la fenêtre affichée, sélectionnez Ajouter un onglet pour créer un groupe de ressources. Vous serez invité à fournir les informations suivantes :
    1. Abonnement. Utilisez votre abonnement existant.
    2. Groupe de ressources. Entrez le nom du groupe de ressources. Par exemple, TeamsResourceGroup. N’oubliez pas que le nom doit être unique.
    3. Dans le menu déroulant Région, sélectionnez Ouest des États-Unis ou une région proche de vos applications.
    4. Sélectionnez le bouton Révision et créer. Vous devriez voir une bannière qui lit Validation transmise.
    5. Sélectionnez le bouton Créer. La création du groupe de ressources peut prendre quelques minutes.

Conseil

Comme pour les ressources que vous créerez plus loin dans ce didacticiel, il est bon d’épingler ce groupe de ressources à votre tableau de bord pour en faciliter l’accès. Si vous le souhaitez, sélectionnez l’icône de broche & #128204; dans le coin supérieur droit du tableau de bord.

Créer le plan de service

  1. Dans le portail Azure,dans le panneau de navigation de gauche, sélectionnez Créer une ressource.
  2. Dans la zone de recherche, tapez App Service Plan. Sélectionnez la carte Plan du service d’application dans les résultats de la recherche.
  3. Sélectionnez Créer.
  4. Vous serez invité à fournir les informations suivantes :
    1. Abonnement. Vous pouvez utiliser un abonnement existant.
    2. Groupe de ressources. Sélectionnez le groupe que vous avez créé précédemment.
    3. Nom. Entrez le nom du plan de service. Par exemple, TeamsServicePlan. N’oubliez pas que le nom doit être unique au sein du groupe.
    4. Système d’exploitation. Sélectionnez Windows ou votre système d’exploitation applicable.
    5. Région. Sélectionnez Ouest des États-Unis ou une région proche de vos applications.
    6. Niveau de tarification. Assurez-vous que Standard S1 est sélectionné. Cette valeur doit être la valeur par défaut.
    7. Sélectionnez le bouton Révision et créer. Vous devriez voir une bannière qui lit Validation transmise.
    8. Sélectionnez Créer. La création du plan de service d’application peut prendre quelques minutes. Le plan sera répertorié dans le groupe de ressources.

Créer l’inscription des canaux de bot

L’inscription des canaux du bot inscrit votre service web en tant que bot auprès de Bot Framework, à condition que vous avez un ID d’application Microsoft et un mot de passe d’application (secret client).

Important

Vous ne devez inscrire votre bot que s’il n’est pas hébergé dans Azure. Si vous avez créé un bot via le portail Azure, il est déjà inscrit auprès du service. Si vous avez créé votre bot via Bot Framework ou AppStudio, votre bot n’est pas inscrit dans Azure.

  1. Dans le portail Azure,sous services Azure, sélectionnez Créer une ressource.

  2. Dans la zone de recherche, entrez « bot ». And in the drop-down list, select Bot Channels Registration.

  3. Sélectionnez le bouton Créer.

  4. Dans le blade d’inscription du canal bot, fournissez les informations demandées sur votre bot.

  5. Laissez la zone de point de terminaison de messagerie vide pour le moment, vous entrez l’URL requise après le déploiement du bot. L’image suivante montre un exemple des paramètres d’inscription :

    inscription des canaux d’application bot

  6. Cliquez sur L’ID et le mot de passe de l’application Microsoft, puis créez-en un.

    Créer un ID d’application  Microsoft : créer un ID d’application Microsoft

  7. Cliquez sur Créer un ID d’application dans le lien Portail d’inscription des applications.

    Inscriptions des applications

  8. Dans la fenêtre d’inscription de l’application affichée, cliquez sur l’onglet Nouvelle inscription dans le coin supérieur gauche.

  9. Entrez le nom de l’application bot que vous inscrivez, nous avons utilisé BotTeamsAuth (vous devez sélectionner votre propre nom unique).

  10. Pour les types de comptes pris en charge, sélectionnez Comptes dans n’importe quel répertoire d’organisation (n’importe quel annuaire Azure AD - Multi-client) et comptes Microsoft personnels (par exemple, Skype, Xbox).

  11. Cliquez sur le bouton Enregistrer. Une fois terminé, Azure affiche la page Vue d’ensemble de l’application.

  12. Copiez et enregistrez dans un fichier la valeur de l’ID de l’application (client).

  13. Dans le panneau gauche, cliquez sur Certificat et secrets.

    1. Sous Les secrets client, cliquez sur Nouvelle secret client.
    2. Ajoutez une description pour identifier ce secret auprès d’autres personnes que vous devrez peut-être créer pour cette application.
    3. La sélection expire.
    4. Cliquez sur Ajouter.
    5. Copiez la secret client et enregistrez-la dans un fichier.
  14. Revenir à la fenêtre Inscription du canal bot et copiez respectivement l’ID d’application et la secret client dans les zones ID de l’application Microsoft et Mot de passe.

  15. Cliquez sur OK.

  16. Enfin, cliquez sur Créer.

Une fois qu’Azure a créé la ressource d’inscription, elle sera incluse dans la liste des groupes de ressources.

groupe d’inscription des canaux d’application bot

Une fois l’inscription de vos canaux de bot créée, vous devez activer le canal Teams bot.

  1. Dans le portail Azure, sousservices Azure, sélectionnez l’inscription du canal bot que vous avez créée.
  2. Dans le panneau gauche, cliquez sur Canaux.
  3. Cliquez sur l Microsoft Teams icône, puis sélectionnez Enregistrer.

Notes

La ressource d’inscription des canaux bots affiche la région globale même si vous avez sélectionné Ouest des États-Unis. Ceci est normal.

Pour plus d’informations, voir Créer un bot pour Teams.

Créer le fournisseur d’identité

Vous avez besoin d’un fournisseur d’identité qui peut être utilisé pour l’authentification. Dans cette procédure, vous allez utiliser un fournisseur Azure AD de données . d Azure AD fournisseurs d’identité pris en charge peuvent également être utilisés.

  1. Dans le portail Azure,dans le panneau de navigation de gauche, sélectionnez Azure Active Directory.

    Conseil

    Vous devez créer et inscrire cette ressource Azure AD dans un client dans lequel vous pouvez consentir à déléguer les autorisations demandées par une application. Pour obtenir des instructions sur la création d’un client, voir Accéder au portail et créer un client.

  2. Dans le panneau gauche, sélectionnez Inscriptions d’applications.

  3. Dans le panneau droit, sélectionnez l’onglet Nouvel enregistrement, dans le coin supérieur gauche.

  4. Vous serez invité à fournir les informations suivantes :

    1. Nom. Entrez le nom de l’application. Par exemple, BotTeamsIdentity. N’oubliez pas que le nom doit être unique.
    2. Sélectionnez les types de comptes pris en charge pour votre application. Sélectionnez les comptes dans n’importe quel répertoire d’organisation (n’importe quel Azure AD - Multi-client) et les comptes Microsoft personnels (par exemple, Skype, Xbox).
    3. Pour l’URI de redirection:
      ✓Sélectionnez Web.
      ✓ définir l’URL sur https://token.botframework.com/.auth/web/redirect .
    4. Sélectionnez Inscrire.
  5. Une fois créé, Azure affiche la page Vue d’ensemble de l’application. Copiez et enregistrez les informations suivantes dans un fichier :

    1. Valeur de l’ID de l’application (client). Vous utiliserez cette valeur ultérieurement comme ID client lorsque vous enregistrerez cette application d’identité Azure auprès de votre bot.
    2. Valeur de l’ID du répertoire (client). Vous utiliserez également cette valeur ultérieurement comme ID de client pour inscrire cette application d’identité Azure auprès de votre bot.
  6. Dans le panneau gauche, sélectionnez Certificats & secrets pour créer une secret client pour votre application.

    1. Sous Les secrets client, sélectionnez ➕ Nouvelle secret client.
    2. Ajoutez une description pour identifier ce secret auprès d’autres personnes que vous devrez peut-être créer pour cette application, telles que l’application d’identité bot dans Teams.
    3. La sélection expire.
    4. Sélectionnez Ajouter.
    5. Avant de quitter cette page, enregistrez le secret. Vous utiliserez cette valeur comme secret client ultérieurement lorsque vous enregistrerez votre application Azure AD votre bot.

Configurer la connexion du fournisseur d’identité et l’inscrire auprès du bot

Remarque : il existe deux options pour les fournisseurs de services Azure AD V1 et Azure AD V2. Les différences entre les deux fournisseurs sont résumées ici,mais en général, V2 offre plus de flexibilité en ce qui concerne la modification des autorisations de bot. Graph Les autorisations d’API sont répertoriées dans le champ d’étendues et, à mesure que de nouvelles autorisations sont ajoutées, les bots permettent aux utilisateurs d’autoriser les nouvelles autorisations à la prochaine connexion. Pour V1, le consentement du bot doit être supprimé par l’utilisateur pour que de nouvelles autorisations soient invités dans la boîte de dialogue OAuth.

Azure AD V1

  1. Dans le portail Azure,sélectionnez votre groupe de ressources dans le tableau de bord.

  2. Sélectionnez le lien d’inscription de votre canal bot.

  3. Ouvrez la page de ressources et sélectionnez Configuration sous Paramètres.

  4. Sélectionnez Ajouter une connexion OAuth Paramètres.
    L’image suivante affiche la sélection correspondante dans la page de ressources :
    Configuration de SampleAppDemoBot

  5. Remplissez le formulaire comme suit :

    1. Nom. Entrez un nom pour la connexion. Vous utiliserez ce nom dans votre bot dans le appsettings.json fichier. Par exemple BotTeamsAuthADv1.

    2. Fournisseur de services. Sélectionnez Azure Active Directory. Une fois cette sélection sélectionnée, les Azure AD spécifiques sont affichés.

    3. ID client. Entrez l’ID d’application (client) que vous avez enregistré pour votre application de fournisseur d’identité Azure dans les étapes ci-dessus.

    4. Secret client. Entrez le secret que vous avez enregistré pour votre application de fournisseur d’identité Azure dans les étapes ci-dessus.

    5. Type d’octroi. Entrez authorization_code .

    6. URL de connexion. Entrez https://login.microsoftonline.com .

    7. ID de client, entrez l’ID d’annuaire (client) que vous avez enregistré précédemment pour votre application d’identité Azure ou commun en fonction du type de compte pris en charge sélectionné lors de la création de l’application fournisseur d’identité. Pour déterminer la valeur à attribuer, suivez ces critères :

      • Si vous avez sélectionné des comptes dans cet annuaire d’organisation uniquement (Microsoft uniquement - Client unique) ou des comptes dans un répertoire d’organisation (annuaire Microsoft AAD - Multi-client), entrez l’ID de locataire que vous avez enregistré précédemment pour l’application AAD. Il s’agit du client associé aux utilisateurs qui peuvent être authentifiés.

      • Si vous avez sélectionné des comptes dans un répertoire d’organisation (n’importe quel répertoire AAD - comptes Microsoft multi-clients et personnels par exemple, Skype, Xbox, Outlook), entrez le mot commun au lieu d’un ID de client. Dans le cas contraire, AAD’application vérifiera via le client dont l’ID a été sélectionné et exclura les comptes Microsoft personnels.

    h. Pour l’URL de la ressource, entrez https://graph.microsoft.com/ . Cela n’est pas utilisé dans l’exemple de code actuel.
    i. Laissez les étendues vides. L’image suivante est un exemple :

    Affichage adv1 de chaîne de connexion d’th de l’application teams bots

  6. Sélectionnez Enregistrer.

Azure AD V2

  1. Dans le portail Azure,sélectionnez votre groupe de ressources dans le tableau de bord.

  2. Sélectionnez le lien d’inscription de votre canal bot.

  3. Ouvrez la page de ressources et sélectionnez Configuration sous Paramètres.

  4. Sélectionnez Ajouter une connexion OAuth Paramètres.
    L’image suivante affiche la sélection correspondante dans la page de ressources :
    SampleAppDemoBot Configuration

  5. Remplissez le formulaire comme suit :

    1. Nom. Entrez un nom pour la connexion. Vous utiliserez ce nom dans votre bot dans le appsettings.json fichier. Par exemple BotTeamsAuthADv2.

    2. Fournisseur de services. Sélectionnez Azure Active Directory v2. Une fois cette sélection sélectionnée, les Azure AD spécifiques sont affichés.

    3. ID client. Entrez l’ID d’application (client) que vous avez enregistré pour votre application de fournisseur d’identité Azure dans les étapes ci-dessus.

    4. Secret client. Entrez le secret que vous avez enregistré pour votre application de fournisseur d’identité Azure dans les étapes ci-dessus.

    5. URL de Exchange jeton. Laissez ce vide.

    6. ID de client, entrez l’ID d’annuaire (client) que vous avez enregistré précédemment pour votre application d’identité Azure ou commun en fonction du type de compte pris en charge sélectionné lors de la création de l’application fournisseur d’identité. Pour déterminer la valeur à attribuer, suivez ces critères :

      • Si vous avez sélectionné des comptes dans cet annuaire d’organisation uniquement (Microsoft uniquement - Client unique) ou des comptes dans un répertoire d’organisation (annuaire Microsoft AAD - Multi-client), entrez l’ID de locataire que vous avez enregistré précédemment pour l’application AAD. Il s’agit du client associé aux utilisateurs qui peuvent être authentifiés.

      • Si vous avez sélectionné des comptes dans un répertoire d’organisation (n’importe quel répertoire AAD - comptes Microsoft multi-clients et personnels par exemple, Skype, Xbox, Outlook), entrez le mot commun au lieu d’un ID de client. Dans le cas contraire, AAD’application vérifiera via le client dont l’ID a été sélectionné et exclura les comptes Microsoft personnels.

    7. Pour les étendues, entrez une liste délimitée par des espaces d’autorisations graphiques que cette application requiert par exemple : User.Read User.ReadBasic.All Mail.Read

  6. Sélectionnez Enregistrer.

Tester la connexion

  1. Sélectionnez l’entrée de connexion pour ouvrir la connexion que vous avez créée.

  2. Sélectionnez Tester la connexion en haut du panneau Paramètres de connexion du fournisseur de services.

  3. La première fois que vous le faites, une nouvelle fenêtre de navigateur s’ouvre et vous demande de sélectionner un compte. Sélectionnez celui que vous souhaitez utiliser.

  4. Ensuite, vous serez invité à autoriser le fournisseur d’identité à utiliser vos données (informations d’identification). L’image suivante est un exemple :

    teams bot auth connection string adv1

  5. Sélectionnez Accepter.

  6. Vous devez ensuite vous rediriger vers une page De connexion test à <your-connection-name> Réussite. Actualisez la page si vous obtenez une erreur. L’image suivante est un exemple :

    teams bots app auth connection str adv1

Le nom de connexion est utilisé par le code du bot pour récupérer les jetons d’authentification de l’utilisateur.

Préparer l’exemple de code du bot

Une fois les paramètres préliminaires terminés, nous allons nous concentrer sur la création du bot à utiliser dans cet article.

  1. Clone cs-auth-sample.

  2. Lancez Visual Studio.

  3. Dans la barre d’outils, sélectionnez Fichier -> Ouvrir -> Project/Solution et ouvrez le projet bot.

  4. Dans C# update appsettings.json comme suit :

    • Définissez ce nom sur le nom de la connexion de fournisseur d’identité que vous ConnectionName avez ajoutée à l’inscription du canal du bot. Le nom que nous avons utilisé dans cet exemple est BotTeamsAuthADv1.
    • Définissez MicrosoftAppId ce dernier sur l’ID d’application du bot que vous avez enregistré au moment de l’inscription du canal du bot.
    • Définissez MicrosoftAppPassword la secret client que vous avez enregistrée au moment de l’inscription au canal du bot.

    En fonction des caractères dans votre secret de bot, vous devrez peut-être éviter le mot de passe au code XML. Par exemple, toutes les andersands (&) doivent être codées comme &amp; .

    {
      "MicrosoftAppType": "",
      "MicrosoftAppId": "",
      "MicrosoftAppPassword": "",
      "ConnectionName": "",
    
  5. Dans l’Explorateur de solutions, accédez au dossier, ouvrez et définissez l’ID d’application du bot que vous avez enregistré au moment de l’inscription du TeamsAppManifest manifest.json canal du id botId bot.

Déployer le bot sur Azure

Pour déployer le bot, suivez les étapes de la procédure de déploiement de votre bot sur Azure.

Vous pouvez également utiliser Visual Studio, vous pouvez suivre les étapes suivantes :

  1. Dans Visual Studio’Explorateur de solutions, sélectionnez et maintenez (ou cliquez avec le bouton droit) le nom du projet.

  2. Dans le menu déroulant, sélectionnez Publier.

  3. Dans la fenêtre affichée, sélectionnez le lien Nouveau.

  4. Dans la fenêtre de boîte de dialogue, sélectionnez Service d’application sur la gauche et Créer à droite.

  5. Sélectionnez le bouton Publier.

  6. Dans la fenêtre de boîte de dialogue suivante, entrez les informations requises. Voici un exemple :

    auth-app-service

  7. Sélectionnez Créer.

  8. Si le déploiement se termine correctement, vous devez le voir dans Visual Studio. En outre, une page s’affiche dans votre navigateur par défaut pour dire que votre bot est prêt !. L’URL sera similaire à celle-ci : https://botteamsauth.azurewebsites.net/ Enregistrez-le dans un fichier.

  9. Dans votre navigateur, accédez au portail Azure.

  10. Vérifiez votre groupe de ressources, le bot doit être répertorié avec les autres ressources. L’image suivante est un exemple :

    teams-bot-auth-app-service-group

  11. Dans le groupe de ressources, sélectionnez le nom d’inscription du canal bot (lien).

  12. Dans le panneau gauche, sélectionnez Paramètres.

  13. Dans la zone Point de terminaison de messagerie, entrez l’URL obtenue ci-dessus, suivie de api/messages . Voici un exemple : https://botteamsauth.azurewebsites.net/api/messages .

  14. Sélectionnez le bouton Enregistrer dans le coin supérieur gauche.

Testez le bot à l’aide du Emulator

Si vous ne l’avez pas déjà fait, installez le Microsoft Bot Framework Emulator. Voir aussi Déboguer avec le Emulator.

Pour que l’exemple de connexion du bot fonctionne, vous devez configurer le Emulator.

Configurer le Emulator pour l’authentification

Si un bot nécessite une authentification, vous devez configurer le Emulator. Pour configurer :

  1. Démarrez la Emulator.
  2. Dans la Emulator, sélectionnez l’icône d’engrenage ⚙ en bas à gauche ou l’onglet Emulator Paramètres dans le coin supérieur droit.
  3. Cochez la case en authentification version 1.0.
  4. Entrez le chemin d’accès local à l’outil ngrok. Consultez le Wiki Bot Framework Emulator/ngrok d’intégrationde tunneling. Pour plus d’informations sur l’outil, voir ngrok.
  5. Cochez la case par Exécuter ngrok au démarrage du Emulator.
  6. Sélectionnez le bouton Enregistrer.

Lorsque le bot affiche une carte de visite et que l’utilisateur sélectionne le bouton de se connecte, le Emulator ouvre une page que l’utilisateur peut utiliser pour se connecter avec le fournisseur d’authentification. Une fois que l’utilisateur a fait cela, le fournisseur génère un jeton utilisateur et l’envoie au bot. Après cela, le bot peut agir pour le compte de l’utilisateur.

Tester le bot localement

Une fois que vous avez configuré le mécanisme d’authentification, vous pouvez effectuer le test réel du bot.

  1. Exécutez l’exemple de bot localement sur votre ordinateur, Visual Studio par exemple.

  2. Démarrez la Emulator.

  3. Sélectionnez le bouton Ouvrir le bot.

  4. Dans l’URL du bot, entrez l’URL locale du bot. Généralement, http://localhost:3978/api/messages .

  5. Dans l’ID d’application Microsoft, entrez l’ID d’application du bot à partir de appsettings.json .

  6. Dans le mot de passe de l’application Microsoft, entrez le mot de passe de l’application du bot à partir du appsettings.json .

  7. Sélectionnez Connecter.

  8. Une fois que le bot est en cours d’exécution, entrez du texte pour afficher la carte de signature.

  9. Sélectionnez le bouton Se connecter.

  10. Une boîte de dialogue s’affiche pour confirmer l’ouverture de l’URL. Cela permet à l’utilisateur du bot (vous) d’être authentifié.

  11. Sélectionner Confirmer.

  12. Si vous y êtes invité, sélectionnez le compte de l’utilisateur applicable.

  13. Selon la configuration que vous avez utilisée pour Emulator, vous obtenez l’une des configurations suivantes :

    1. Utilisation du code de vérification de la signature
      ✓ fenêtre ouverte affichant le code de validation.
      ✓ copiez et entrez le code de validation dans la zone de conversation pour terminer la signature.
    2. Utilisation de jetons d’authentification.
      ✓ vous êtes connecté en fonction de vos informations d’identification.

    L’image suivante est un exemple de l’interface utilisateur du bot après vous être connecté :

    émulateur de connexion au bot d’authentification

  14. Si vous sélectionnez Oui lorsque le bot vous demande Voulez-vous afficher votre jeton ?, vous recevrez une réponse semblable à la suivante :

    Jeton d’émulateur de connexion du bot d’authentification

  15. Entrez la connexion dans la zone de conversation d’entrée pour vous déconnecter. Cela libère le jeton utilisateur et le bot ne peut pas agir en votre nom tant que vous ne vous connectez pas à nouveau.

Notes

L’authentification du bot nécessite l’utilisation du service Bot Connector. Le service accède aux informations d’inscription des canaux du bot pour votre bot.

Tester le bot déployé

  1. Dans votre navigateur, accédez au portail Azure.

  2. Recherchez votre groupe de ressources.

  3. Sélectionnez le lien de la ressource. La page de ressources s’affiche.

  4. Dans la page de ressources, sélectionnez Tester dans la conversation web. Le bot démarre et affiche les salutations prédéfinës.

  5. Tapez quoi que ce soit dans la zone de conversation.

  6. Sélectionnez la zone Se connectez.

  7. Une boîte de dialogue s’affiche pour confirmer l’ouverture de l’URL. Cela permet à l’utilisateur du bot (vous) d’être authentifié.

  8. Sélectionner Confirmer.

  9. Si vous y êtes invité, sélectionnez le compte de l’utilisateur applicable. L’image suivante est un exemple de l’interface utilisateur du bot après vous être connecté :

    Connexion du bot d’authentification déployée.

  10. Sélectionnez le bouton Oui pour afficher votre jeton d’authentification. L’image suivante est un exemple :

    Jeton déployé de connexion au bot d’authentification.

  11. Entrez la connexion pour vous déconnecter.

    Connexion déployée par le bot d’th

Notes

Si vous avez des problèmes de connexion, essayez de tester à nouveau la connexion comme décrit dans les étapes précédentes. Cela pourrait recréer le jeton d’authentification. Avec le client De conversation web Bot Framework dans Azure, vous devrez peut-être vous y connecter plusieurs fois avant que l’authentification ne soit établie correctement.

Installer et tester le bot dans Teams

  1. Dans votre projet de bot, assurez-vous que le dossier contient TeamsAppManifest le contenu et les manifest.json outline.png color.png fichiers.

  2. Dans l’Explorateur de solutions, accédez au TeamsAppManifest dossier. Modifiez manifest.json en attribuant les valeurs suivantes :

    1. Assurez-vous que l’ID d’application du bot que vous avez reçu au moment de l’inscription au canal du bot est affecté à id et botId .
    2. Affectez cette valeur : validDomains: [ "token.botframework.com" ] .
  3. Sélectionnez et compresser manifest.json les fichiers et les outline.png color.png fichiers.

  4. Ouvrez Microsoft Teams.

  5. Dans le panneau gauche, en bas, sélectionnez l’icône Applications.

  6. Dans le panneau droit, en bas, sélectionnez Télécharger une application personnalisée.

  7. Accédez au TeamsAppManifest dossier et téléchargez le manifeste compressé. L’Assistant suivant s’affiche :

    Chargement des équipes de bot d’th

  8. Sélectionnez le bouton Ajouter à une équipe.

  9. Dans la fenêtre suivante, sélectionnez l’équipe dans laquelle vous souhaitez utiliser le bot.

  10. Sélectionnez le bouton Configurer un bot.

  11. Sélectionnez les trois points (●●●) dans le panneau gauche. Sélectionnez ensuite l’icône App Studio.

  12. Sélectionnez l’onglet Éditeur de manifeste. Vous devriez voir l’icône du bot que vous avez téléchargé.

  13. En outre, vous devriez être en mesure de voir le bot répertorié en tant que contact dans la liste de conversation que vous pouvez utiliser pour échanger des messages avec le bot.

Test du bot localement dans Teams

Microsoft Teams est un produit entièrement basé sur le cloud, tous les services accessibles doivent être disponibles à partir du cloud à l’aide de points de terminaison HTTPS. Par conséquent, pour permettre au bot (notre exemple) de fonctionner dans Teams, vous devez publier le code dans le cloud de votre choix ou rendre une instance en cours d’exécution localement accessible en externe via un outil de tunneling. Nous vous recommandons ngrok,qui crée une URL adressan externe pour un port que vous ouvrez localement sur votre ordinateur. Pour configurer ngrok en vue de l’exécution locale de Microsoft Teams’application, suivez les étapes suivantes :

  1. Dans une fenêtre terminal, allez dans le répertoire où vous ngrok.exe avez installé. Nous vous suggérons de définir le chemin d’accès de la variable d’environnement pour qu’il pointe vers celui-ci.

  2. Exécuter, par exemple, ngrok http 3978 --host-header=localhost:3978 . Remplacez le numéro de port selon vos besoins. Cela lance ngrok pour écouter sur le port que vous spécifiez. En retour, il vous donne une URL adressan externe, valide tant que ngrok est en cours d’exécution. L’image suivante est un exemple :

    teams bot app auth connection string adv1.

  3. Copiez l’adresse HTTPS de forwarding. Il doit être similaire à ce qui https://dea822bf.ngrok.io/ suit :

  4. Append /api/messages pour obtenir https://dea822bf.ngrok.io/api/messages . Il s’agit du point de terminaison des messages pour le bot s’exécutant localement sur votre ordinateur et accessible sur le web dans une conversation Microsoft Teams.

  5. Une dernière étape consiste à mettre à jour le point de terminaison des messages du bot déployé. Dans l’exemple, nous avons déployé le bot dans Azure. Par donc, **nous allons effectuer les étapes suivantes :

    1. Dans votre navigateur, accédez au portail Azure.
    2. Sélectionnez votre inscription au canal bot.
    3. Dans le panneau gauche, sélectionnez Paramètres.
    4. Dans le panneau droit, dans la zone Point de terminaison de messagerie, entrez l’URL ngrok, dans notre https://dea822bf.ngrok.io/api/messages exemple.
  6. Démarrez votre bot localement, par exemple en mode Visual Studio débogage.

  7. Testez le bot lors de l’exécution locale à l’aide de la conversation Web test du portail Bot Framework. Comme le Emulator, ce test ne vous permet pas d’accéder Teams fonctionnalités spécifiques.

  8. Dans la fenêtre terminal où s’exécute le trafic HTTP entre le bot et ngrok le client de conversation web. Si vous souhaitez une vue plus détaillée, dans une fenêtre de navigateur, entrez ce que vous avez obtenu à partir de http://127.0.0.1:4040 la fenêtre terminal précédente. L’image suivante est un exemple :

    Test ngrok des équipes de bot d’th.

Notes

Si vous arrêtez et redémarrez ngrok, l’URL change. Pour utiliser ngrok dans votre projet et en fonction des fonctionnalités que vous utilisez, vous devez mettre à jour toutes les références d’URL.

Informations supplémentaires

TeamsAppManifest/manifest.json

Ce manifeste contient les informations requises par Microsoft Teams pour se connecter au bot :

{
  "$schema": "https://developer.microsoft.com/json-schemas/teams/v1.8/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" ]
}

Avec l’authentification, Teams se comporte légèrement différemment des autres canaux, comme expliqué ci-dessous.

Gestion de l’activité d’appel

Une activité d’appel est envoyée au bot au lieu de l’activité d’événement utilisée par d’autres canaux. Cette action est effectuée en sous-classant l’ActivityHandler.

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

L’activité d’appel doit être transmis à la boîte de dialogue si le OAuthPrompt est utilisé.

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

Voir aussi

Ajouter l’authentification via Azure Bot Service