Résoudre les problèmes d’authentification de Bot Framework
S'APPLIQUE À : SDK v4
Ce guide peut vous aider à résoudre les problèmes d’authentification rencontrés avec votre bot en évaluant une série de scénarios pour déterminer où se produit le problème.
Remarque
Pour suivre toutes les étapes de ce guide, vous devez télécharger et utiliser Bot Framework Emulator. Vous devez également avoir accès aux paramètres d’inscription du bot dans le portail Azure.
ID d’application et mot de passe
La sécurité du bot est configurée par l’ID d’application Microsoft et le mot de passe d’application Microsoft que vous obtenez lorsque vous inscrivez votre bot auprès du Bot Framework. Ces valeurs sont généralement spécifiées dans le fichier de configuration du bot et utilisées pour récupérer les jetons d’accès à partir du service de compte Microsoft.
Si ce n’est déjà fait, déployez votre bot sur Azure pour obtenir un ID d’application Microsoft et un mot de passe d’application Microsoft qu’il peut utiliser pour l’authentification.
Remarque
Pour trouver les paramètres AppID et AppPassword d’un bot déjà déployé, consultez la rubrique MicrosoftAppID et MicrosoftAppPassword.
Étape 1 : désactiver la sécurité et tester le bot sur localhost
Cette étape consiste à vérifier que votre bot est accessible et fonctionnel sur localhost lorsque la sécurité est désactivée.
Avertissement
Lorsque vous désactivez la sécurité pour votre bot, des attaquants inconnus peuvent emprunter l’identité d’utilisateurs. Implémentez la procédure suivante uniquement si vous travaillez dans un environnement de débogage protégé.
Désactiver la sécurité
Pour désactiver la sécurité pour votre bot, modifiez ses paramètres de configuration pour supprimer les valeurs de mot de passe et d’ID d’application.
Si vous utilisez le kit SDK Bot Framework pour .NET, ajoutez ou modifiez les paramètres dans votre fichier appsettings.json :
"MicrosoftAppId": "",
"MicrosoftAppPassword": ""
Tester votre bot sur localhost
Ensuite, testez votre bot sur localhost à l’aide du Bot Framework Emulator.
- Démarrez votre bot sur localhost.
- Démarrez le Bot Framework Emulator.
- Connectez-vous à votre bot à l’aide d’Emulator.
- Tapez
http://localhost:port-number/api/messages
dans la barre d’adresse d’Emulator, où port-number correspond au numéro de port affiché dans le navigateur où s’exécute votre application. - Assurez-vous que les champs Microsoft App ID (ID d’application Microsoft) et Microsoft App Password (Mot de passe d’application Microsoft) sont vides.
- Cliquez sur Connecter.
- Tapez
- Pour tester la connectivité avec votre bot, tapez du texte dans Emulator et appuyez sur Entrée.
Si le bot répond à l’entrée et qu’aucune erreur n’apparaît dans la fenêtre de conversation, vous avez vérifié que votre bot est accessible et fonctionnel sur localhost lorsque la sécurité est désactivée. Passez à l’étape 2.
Si une ou plusieurs erreurs sont indiquées dans la fenêtre de conversation, cliquez dessus pour obtenir plus d’informations. Voici quelques problèmes courants :
- Les paramètres d’Emulator spécifient un point de terminaison incorrect pour le bot. Assurez-vous que vous avez indiqué le numéro de port approprié dans l’URL et le chemin d’accès approprié à la fin de l’URL, comme
/api/messages
. - Les paramètres d’Emulator spécifient un point de terminaison de bot qui commence par
https
. Sur localhost, le point de terminaison doit commencer parhttp
. - Les paramètres d’Emulator spécifient une valeur pour les champs Microsoft App ID (ID d’application Microsoft) et/ou Microsoft App Password (Mot de passe d’application Microsoft). Ces deux champs doivent être vides.
- La sécurité n’a pas été désactivée pour le bot. Vérifiez que le bot ne spécifie pas une valeur pour l’ID ou le mot de passe d’application.
Étape 2 : vérifier l’ID et le mot de passe d’application de votre bot
Cette étape consiste à vérifier que le l’ID et le mot de passe d’application utilisés par votre bot pour l’authentification sont valides. (Si vous ne connaissez pas ces valeurs, récupérez-les maintenant.)
Avertissement
Les instructions suivantes décrivent comment désactiver la vérification SSL pour login.microsoftonline.com
. Appliquez cette procédure uniquement sur un réseau sécurisé et pensez à changer le mot de passe de votre application par la suite.
Émettre une requête HTTP au service de connexion Microsoft
Ces instructions expliquent comment utiliser cURL pour émettre une requête HTTP au service de connexion de Microsoft. Vous pouvez utiliser un autre outil tel que Postman. Assurez-vous simplement que la requête est conforme au protocole d’authentification du Bot Framework.
Pour vérifier que l’ID et le mot de passe d’application de votre bot sont valides, émettez la requête suivante à l’aide de cURL en remplaçant APP_ID
et APP_PASSWORD
par l’ID et le mot de passe d’application de votre bot.
Conseil
Il se peut que votre mot de passe contienne des caractères spéciaux qui rendent l’appel suivant non valide. Dans ce cas, essayez de convertir votre mot de passe en encodage d’URL.
curl -k -X POST https://login.microsoftonline.com/botframework.com/oauth2/v2.0/token -d "grant_type=client_credentials&client_id=APP_ID&client_secret=APP_PASSWORD&scope=https%3A%2F%2Fapi.botframework.com%2F.default"
Cette requête tente d’échanger l’ID et le mot de passe d’application de votre bot contre un jeton d’accès. Si la requête aboutit, vous recevez une charge utile JSON qui contient notamment une propriété access_token
.
{"token_type":"Bearer","expires_in":3599,"ext_expires_in":0,"access_token":"eyJ0eXAJKV1Q..."}
Si la requête aboutit, vous avez vérifié que l’ID et le mot de passe d’application que vous avez spécifiés dans la requête sont valides. Passez à l’étape 3.
Si vous recevez une erreur en réponse à la requête, examinez la réponse pour identifier la cause de l’erreur. Si la réponse indique que l’ID ou le mot de passe d’application n’est pas valide, récupérez les valeurs correctes à partir du portail Bot Framework et émettez une nouvelle fois la requête avec les nouvelles valeurs pour vérifier leur validité.
Étape 3 : activer la sécurité et tester le bot sur localhost
À ce stade, vous avez vérifié que votre bot est accessible et fonctionnel sur localhost lorsque la sécurité est désactivée et que l’ID et le mot de passe d’application utilisés par votre bot pour l’authentification sont valides. Cette étape consiste à vérifier que votre bot est accessible et fonctionnel sur localhost lorsque la sécurité est activée.
Activer la sécurité
La sécurité de votre bot s’appuie sur les services Microsoft, même lorsque votre bot s’exécute uniquement sur localhost. Pour activer la sécurité pour votre bot, modifiez ses paramètres de configuration pour renseigner l’ID et le mot de passe d’application avec les valeurs que vous avez vérifiées à l’étape 2. Par ailleurs, vérifiez que vos packages sont à jour, en particulier System.IdentityModel.Tokens.Jwt
et Microsoft.IdentityModel.Tokens
.
Si vous utilisez le kit SDK Bot Framework pour .NET, renseignez ces paramètres dans votre fichier appsettings.config
ou les valeurs correspondantes dans votre fichier appsettings.json
:
<appSettings>
<add key="MicrosoftAppId" value="APP_ID" />
<add key="MicrosoftAppPassword" value="PASSWORD" />
</appSettings>
Si vous utilisez le kit SDK Bot Framework pour Node.js, renseignez ces paramètres (ou mettez à jour les variables d’environnement correspondantes) :
var connector = new builder.ChatConnector({
appId: 'APP_ID',
appPassword: 'PASSWORD'
});
Remarque
Pour trouver les paramètres AppID et AppPassword de votre bot, consultez la rubrique MicrosoftAppID and MicrosoftAppPassword (MicrosoftAppID et MicrosoftAppPassword).
Tester votre bot sur localhost
Ensuite, testez votre bot sur localhost à l’aide du Bot Framework Emulator.
- Démarrez votre bot sur localhost.
- Démarrez le Bot Framework Emulator.
- Connectez-vous à votre bot à l’aide d’Emulator.
- Tapez
http://localhost:port-number/api/messages
dans la barre d’adresse d’Emulator, où port-number correspond au numéro de port affiché dans le navigateur où s’exécute votre application. - Entrez l’ID d’application de votre bot dans le champ Microsoft App ID (ID d’application Microsoft).
- Entrez le mot de passe de votre bot dans le champ Microsoft App Password (mot de passe d’application Microsoft).
- Cliquez sur Connecter.
- Tapez
- Pour tester la connectivité avec votre bot, tapez du texte dans Emulator et appuyez sur Entrée.
Si le bot répond à l’entrée et qu’aucune erreur n’apparaît dans la fenêtre de conversation, vous avez vérifié que votre bot est accessible et fonctionnel sur localhost lorsque la sécurité est activée. Passez à l’étape 4.
Si une ou plusieurs erreurs sont indiquées dans la fenêtre de conversation, cliquez dessus pour obtenir plus d’informations. Voici quelques problèmes courants :
- Les paramètres d’Emulator spécifient un point de terminaison incorrect pour le bot. Assurez-vous que vous avez indiqué le numéro de port approprié dans l’URL et le chemin d’accès approprié à la fin de l’URL, comme
/api/messages
. - Les paramètres d’Emulator spécifient un point de terminaison de bot qui commence par
https
. Sur localhost, le point de terminaison doit commencer parhttp
. - Dans les paramètres d’Emulator, les champs Microsoft App ID (ID d’application Microsoft) et/ou Microsoft App Password (Mot de passe d’application Microsoft) ne contiennent pas de valeurs valides. Les deux champs doivent être renseignés et chaque champ doit contenir la valeur correspondante que vous avez vérifiée à l’étape 2.
- La sécurité n’a pas été activée pour le bot. Vérifiez que les paramètres de configuration du bot spécifient des valeurs pour l’ID et le mot de passe d’application.
Étape 4 : tester votre bot dans le cloud
À ce stade, vous avez vérifié que votre bot est accessible et fonctionnel sur localhost lorsque la sécurité est désactivée et que l’ID et le mot de passe d’application de votre bot sont valides. Vous avez également vérifié que votre bot est accessible et fonctionnel sur localhost lorsque la sécurité est activée. Cette étape consiste à déployer votre bot dans le cloud et à vérifier qu’il est accessible et fonctionnel lorsque la sécurité est activée.
Déployer votre bot dans le cloud
Le Bot Framework implique que les bots soient accessibles sur Internet. Par conséquent, vous devez déployer votre bot sur une plateforme d’hébergement cloud comme Azure. Veillez à activer la sécurité pour votre bot avant le déploiement, comme décrit à l’étape 3.
Remarque
Si vous n’avez pas encore de fournisseur d’hébergement cloud, vous pouvez vous inscrire pour obtenir un compte gratuit.
Si vous déployez votre bot sur Azure, le protocole SSL sera automatiquement configuré pour votre application. Le point de terminaison HTTPS requis par le Bot Framework sera ainsi disponible. Si vous effectuez le déploiement sur un autre fournisseur d’hébergement cloud, veillez à vérifier que votre application est configurée pour le protocole SSL, de sorte que le bot dispose d’un point de terminaison HTTPS.
Tester votre bot
Pour tester votre bot dans le cloud avec la sécurité activée, procédez comme suit.
- Assurez-vous que votre bot a été correctement déployé et qu’il est en cours d’exécution.
- Connectez-vous au portail Azure.
- Accédez à votre ressource Azure Bot pour votre bot dans le portail.
- Cliquez sur Tester dans Web Chat dans le volet Gestion du bot sur la gauche.
- Pour tester la connectivité avec votre bot, tapez du texte dans le contrôle de discussion Web et appuyez sur Entrée.
Si une erreur est indiquée dans la fenêtre de conversation, examinez le message d’erreur pour déterminer la cause de l’erreur. Voici quelques problèmes courants :
- Le point de terminaison de messagerie spécifié dans la page Paramètres de votre bot dans le portail Bot Framework est incorrect. Assurez-vous que vous avez indiqué le chemin d’accès approprié à la fin de l’URL, comme
/api/messages
. - Le point de terminaison de messagerie spécifié dans la page Paramètres de votre bot dans le portail Bot Framework ne commence pas par
https
ou n’est pas approuvé par le Bot Framework. Votre bot doit disposer d’un certificat valide approuvé chaîne. - Le bot est configuré avec des valeurs d’ID ou de mot de passe d’application manquantes ou incorrectes. Vérifiez que les paramètres de configuration du bot spécifient des valeurs valides pour l’ID et le mot de passe d’application.
Si le bot répond correctement à l’entrée, vous avez vérifié que votre bot est accessible et fonctionnel dans le cloud lorsque la sécurité est activée. À ce stade, votre bot est prêt à se connecter à un canal de manière sécurisée, comme Facebook Messenger, Direct Line, etc.
Ressources supplémentaires
Si vous rencontrez toujours des problèmes après avoir suivi les étapes ci-dessus, vous pouvez :
- Consultez la procédure Déboguer un bot ainsi que les autres articles de débogage de cette section.
- Déboguez votre bot dans le cloud à l’aide de Bot Framework Emulator et [Dev Tunnels](https://aka.ms/devtunnels logiciel de tunneling.
- Utiliser un outil de proxy comme Fiddler pour inspecter le trafic HTTPS vers votre bot et à partir de votre bot Fiddler n’est pas un produit Microsoft.
- Consulter le guide d’authentification de Bot Connector pour en savoir plus sur les technologies d’authentification utilisées par Bot Framework.
- Demander de l’aide à d’autres personnes en vous reportant aux ressources de support de Bot Framework.