Botframework-solutions: L'authentification ne fonctionne pas dans la compétence TypeScript

Créé le 20 juil. 2020  ·  38Commentaires  ·  Source: microsoft/botframework-solutions

Quel projet est concerné ?

Assistant virtuel et compétence TypeScript

C'est dans quelle langue ?

Manuscrit

Ce qui se produit?

L'erreur suivante est levée lors de la tentative d'authentification

Erreur : DialogContext.beginDialog() : une boîte de dialogue avec l'ID 'AuthPrompt' n'a pas été trouvée.
à WaterfallStepContext.(D:\home\site\wwwroot\node_modules\botbuilder-dialogs\lib\dialogContext.js:123:23)
sur Generator.next ()
à D:\home\site\wwwroot\node_modules\botbuilder-dialogs\lib\dialogContext.js:7:71
à la nouvelle promesse ()
à __awaiter (D:\home\site\wwwroot\node_modules\botbuilder-dialogs\lib\dialogContext.js:3:12)
à WaterfallStepContext.beginDialog (D:\home\site\wwwroot\node_modules\botbuilder-dialogs\lib\dialogContext.js:119:16)
à MultiProviderAuthDialog.firstStep (D:\home\site\wwwroot\node_modules\bot-solutions\lib\authentication\multiProviderAuthDialog.js:75:34)
à WaterfallDialog.(D:\home\site\wwwroot\node_modules\botbuilder-dialogs\lib\waterfallDialog.js:192:48)
sur Generator.next ()
à D:\home\site\wwwroot\node_modules\botbuilder-dialogs\lib\waterfallDialog.js:7:71

Quelles sont les étapes pour reproduire ce problème ?

Déployez l'assistant virtuel et les compétences. Activer le MultiProviderAuthDialog dans la skill
Utilisez la boîte de dialogue d'authentification pour vous authentifier avec Azure Active Directory v2

Que vous attendiez-vous à ce qu'il se passe ?

Recevez une carte de connexion pour vous connecter

Pouvez-vous partager des journaux, des résultats d'erreur, etc. ?

Erreur : DialogContext.beginDialog() : une boîte de dialogue avec l'ID 'AuthPrompt' n'a pas été trouvée.
à WaterfallStepContext.(D:\home\site\wwwroot\node_modules\botbuilder-dialogs\lib\dialogContext.js:123:23)
sur Generator.next ()
à D:\home\site\wwwroot\node_modules\botbuilder-dialogs\lib\dialogContext.js:7:71
à la nouvelle promesse ()
à __awaiter (D:\home\site\wwwroot\node_modules\botbuilder-dialogs\lib\dialogContext.js:3:12)
à WaterfallStepContext.beginDialog (D:\home\site\wwwroot\node_modules\botbuilder-dialogs\lib\dialogContext.js:119:16)
à MultiProviderAuthDialog.firstStep (D:\home\site\wwwroot\node_modules\bot-solutions\lib\authentication\multiProviderAuthDialog.js:75:34)
à WaterfallDialog.(D:\home\site\wwwroot\node_modules\botbuilder-dialogs\lib\waterfallDialog.js:192:48)
sur Generator.next ()
à D:\home\site\wwwroot\node_modules\botbuilder-dialogs\lib\waterfallDialog.js:7:71

Des captures d'écran ou un contexte supplémentaire ?

Skills Bot Services Kobuk bug customer-replied-to customer-reported in-progress

Commentaire le plus utile

Merci encore @Batta32 ! J'ai utilisé le package 1.0 pour les tests. Je dois toujours conserver un paramètre de connexion dans la compétence, mais je peux faire fonctionner l'authentification. J'ai pu voir où le VA reçoit la réponse symbolique et la transmet à la compétence à traiter.

Tous les 38 commentaires

Merci @tomSauret847 d' avoir signalé ce problème ! Dès que nous aurons une mise à jour, nous reviendrons vers vous .

Salut @tomSauret847 - désolé pour le retard. Nous avons réussi à reproduire le problème à l'aide de la compétence TypeScript en suivant ces étapes :

  1. Décommentez les lignes dans skillDialogBase marquées pour l'authentification
  2. Passez un OAuthPromptSettings tableau au MultiProviderAuthDialog constructeur
  3. Ajoutez appsettings.oauthConnections aux propriétés de botSettings
  4. Ajouter une connexion AADv2
  5. Configurer une connexion AADv2 à l'inscription dans Azure

Dès que nous aurons une mise à jour, nous reviendrons vers vous .

image

Salut @tomSauret847 - nous avons corrigé ce problème dans ce commit .

Il s'agissait en fait d'un problème dans la bibliothèque bot-solutions , et nous avons prévu de publier le correctif avec la version 1.0 de la bibliothèque.

En attendant, si vous souhaitez tester le correctif par vous-même, vous pouvez suivre ces étapes :

  1. Vérifiez cette branche , avec le correctif appliqué pour la version 0.8 de la bibliothèque.
  2. Allez dans le dossier bot-solutions
  3. Exécutez npm install pour installer ses dépendances.
  4. Exécutez npm run build pour générer la solution.
  5. Exécutez npm pack pour générer un fichier .tgz . Il devrait créer un fichier au même emplacement, nommé bot-solutions-version.tgz
  6. Pointez sur le tgz généré dans votre bot Skill, en remplaçant la référence bot-solutions dans le package.json du bot de "bot-solutions": "^1.0.0" à "bot-solutions": "<PATH_TO_TGZ>"
  7. Valider l'authentification à l'aide de la Skill

image

Nous serons attentifs à vos réponses 😊.

Merci d'avoir examiné ce @Batta32 Je
Erreur : Impossible de trouver le paramètre de connexion avec le nom {nom de la connexion}

Je configure la connexion comme indiqué ici pour configurer le SSO pour une compétence.

Avons-nous toujours besoin d'une connexion d'authentification dans chaque compétence avec les compétences dactylographiées ?
Ou pouvons-nous utiliser le SSO unique tel qu'il est décrit pour les compétences C# ?

Si j'ajoute la connexion sur la compétence, j'obtiendrai l'invite de connexion comme vous l'avez fait, mais je ne recevrai pas le jeton après avoir terminé la connexion. Si vous pouviez préciser si nous devons configurer une seule connexion dans le VA ou si nous devons configurer des connexions dans chacune des compétences qui nécessitent une authentification.

Merci @tomSauret847 pour votre réponse. Dès que nous aurons une mise à jour, nous reviendrons vers vous !

Salut @ tomSauret847 - nous avons réussi à reproduire le problème. C'est parce que la propriété name dans oauthConnections du appsettings.json diffère de la propriété connectionName dans le OAuthPromptSettings vous utilisez.

Nous continuerons à examiner cela et à analyser les questions que vous avez mentionnées ci-dessus. Dès que nous aurons une mise à jour, nous reviendrons vers vous .

Les étapes que nous avons suivies pour reproduire le problème étaient les suivantes :

  1. Suivez les étapes de ce commentaire
  2. Après cela, suivez les étapes de ce commentaire
  3. Vérifiez que la propriété name dans oauthConnections du appsettings.json diffère de la propriété connectionName dans le OAuthPromptSettings vous utilisez
  4. Démarrez la Skill et tapez "run sample dialog", et voyez l'erreur

_Lorsque connectionName et name sont différents, le problème est reproduit_
image

_Problème reproduit_
image

Salut @tomSauret847

Avons-nous toujours besoin d'une connexion d'authentification dans chaque compétence avec les compétences dactylographiées ?

Vous devez disposer d'une connexion d'authentification dans chaque compétence TypeScript jusqu'à la sortie de la version 1.0 de la compétence TypeScript.

Ou pouvons-nous utiliser le SSO unique tel qu'il est décrit pour les compétences C# ?

SSO pour TypeScript ne peut pas être utilisé car il est décrit pour les compétences C# car la version 1.0 de TypeScript n'est pas encore publiée.

Faites-nous savoir si cela vous aide .

@tomSauret847 - l'erreur Error: Could not find Connection Setting with name {connection name} est due au fait que la propriété name dans oauthConnections du appsettings diffère de la propriété connectionName dans le OAuthPromptSettings vous utilisez.

Pour résoudre ce problème, vous devez vérifier que les deux propriétés sont égales .

Pour plus d'informations, vous pouvez vérifier le commentaire ci-dessus.

Merci @Batta32 d' avoir examiné cela. Je peux confirmer que si je crée une propriété de connexion sur la compétence, je peux obtenir l'invite de connexion. Votre commentaire a soulevé une autre question. Nous nous préparons à passer aux tests avec notre nouveau VA et ensuite à la production. La question que j'ai,

Ce correctif pour l'authentification va-t-il être publié sur NPM avant la version 1.0 ?

Pour notre environnement de production, nous aurons besoin de packages NPM publiés, nous aurions donc besoin que ce correctif soit publié avant de pouvoir déplacer cette VA en production. Je serai attentif à votre réponse.

@tomSauret847 - Merci pour votre réponse ! Nous ajoutons ces correctifs dans les PRs de TypeScript version 1.0 :

  • PR #3583 : [TypeScript][Bot-Solutions] Implement changes in Bot-Solutions to 1.0 release
  • RP #3584 : [TypeScript][Virtual Assistant] Implement changes in Virtual Assistant to 1.0 release
  • PR #3585 : [TypeScript][Skill] Implement changes in Skill to 1.0 release

Nous vous informerons dès que nous aurons une mise à jour à ce sujet. Pendant ce temps, nous travaillons sur la validation du processus d'authentification dans TypeScript.

@ tomSauret847 - nous avons identifié un autre problème selon lequel la variable État des compétences était _non définie_ pendant le processus d'authentification.

Nous avons pris comme guide le PR #3561 qui définit une valeur par défaut pour l'accesseur Skill State que nous avons incorporé dans ce commit .
Après avoir appliqué ces modifications, le processus d'authentification fonctionne correctement. Ce problème sera résolu dès que le TypeScript v1.0 sera fusionné.

Voici notre environnement utilisant cette branche : feature/southworks/test-fix-auth-skill :

En attendant, si vous souhaitez tester le correctif par vous-même, vous pouvez suivre ces étapes :

  1. Allez dans le dossier bot-solutions
  2. Exécutez npm install pour installer ses dépendances.
  3. Exécutez npm run build pour générer la solution.
  4. Exécutez npm pack pour générer un fichier .tgz. Il devrait créer un fichier au même emplacement, nommé bot-solutions-version.tgz
  5. Allez dans le dossier Skill Sample
  6. Pointez sur le tgz généré dans le bot Skill Sample, en remplaçant la référence bot-solutions dans le package.json du bot de "bot-solutions": "^1.0.0" à "bot-solutions": "<PATH_TO_TGZ>"
  7. Exécutez npm install pour installer ses dépendances.
  8. Exécutez npm run build pour construire la solution.
  9. Valider le processus d'authentification

Nous sommes attentifs à votre réponse. ??

_Variable SkillState obtenant une valeur indéfinie_
image

_Le processus d'authentification fonctionne correctement_
image

Merci encore @Batta32 ! J'ai utilisé le package 1.0 pour les tests. Je dois toujours conserver un paramètre de connexion dans la compétence, mais je peux faire fonctionner l'authentification. J'ai pu voir où le VA reçoit la réponse symbolique et la transmet à la compétence à traiter.

@Batta32 Nous avons configuré l'authentification dans 2 de nos compétences et cela fonctionne bien dans le canal Teams. Le canal de ligne directe ne dépasse pas l'invite d'authentification. La compétence ne reçoit pas le jeton après une connexion réussie. Ce problème n'est présent que dans notre canal de ligne directe. Nous utilisons l'exemple de client en ligne directe qui a été fourni et avons activé les options d'authentification améliorées afin de ne pas entrer le « code magique ». Cela fonctionnait avant l'ajout de l'authentification améliorée, mais après l'ajout de cette fonctionnalité, la compétence ne reçoit plus la réponse du jeton. Si nous annulons la compétence et retournons dans cette boîte de dialogue, le jeton sera présent et nous pourrons terminer la boîte de dialogue. Faites-moi savoir si vous avez des idées sur ce qui pourrait causer cela.

Merci @tomSauret847 , nous allons examiner ce scénario et nous vous répondrons dès que possible !

Juste pour commencer à revoir le scénario :

  1. Qu'entendez-vous par « exemple de client en ligne directe » ?
  2. Quel client utilisez-vous ?
  3. Qu'entendez-vous par « Magic Code » ?

Merci encore @Batta32 d' avoir examiné cela. Nous utilisons l'exemple de ligne directe du référentiel botbuilder-solutions situé ici
Le "code magique" est expliqué dans cette question de débordement de pile ici
Il s'agit simplement du code que l'utilisateur du bot doit copier et coller dans la conversation après s'être authentifié avec succès. En implémentant l'authentification améliorée, cette étape est supprimée pour l'utilisateur du bot afin qu'il n'ait qu'à s'authentifier et la conversation avance à mesure que le jeton est renvoyé au bot dans les coulisses.

Merci beaucoup @tomSauret847 , nous allons examiner cela et nous vous informerons de toute mise à jour ici 😊 !

Salut @tomSauret847 , nous n'avons pas pu reproduire ce problème car le scénario d'authentification fonctionne correctement.

Nous vous avons posé quelques

  1. Avez-vous vérifié si ce problème se produit en parlant directement à la Skill, sans vous connecter à un assistant virtuel ?
  2. Si vous passez par un VA pour vous connecter à la Skill, activez-vous également le canal Directline dans le VA ? Qu'y avez-vous d'autre défini, l'authentification Azure AD v2, l'authentification améliorée ?
  3. Que voulez-vous dire par « Si nous annulons la compétence et retournons dans cette boîte de dialogue, le jeton sera présent et nous pourrons terminer la boîte de dialogue » ?

Voici la configuration que nous avons utilisée :

  • Une compétence TypeScript créée avec le [email protected]
  • Configuration de l'authentification de type Azure AD v2 sur cette compétence
  • Canal Directline activé avec authentification améliorée sur la Skill
  • L' exemple Web Directline du référentiel défini sur un identifiant utilisateur spécifique ("dl_xxxx")
  • Le fichier appsettings.json sur le client Directline est défini de la même manière :
{
    "Logging": {
        "LogLevel": {
            "Default": "Warning"
        }
    },
    "AllowedHosts": "*",
    "BotName": "skillbot-name",
    "DirectLineSecret": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    "EnableDirectLineEnhancedAuthentication": true,
    "SpeechServiceRegionIdentifier": "",
    "SpeechServiceSubscriptionKey": ""
}

Les étapes que nous avons suivies sont :

  1. Contacter la Skill via le client Directline
  2. Appel de la boîte de dialogue de connexion ("run sample dialog")
  3. En cliquant sur le bouton de connexion (pas besoin du "code magique")
  4. Nous nous connectons avec succès et le bot nous accueille
  5. À partir de ce moment, chaque fois que nous répétons les étapes 1 et 2, nous sommes automatiquement connectés et accueillis par le bot

Nous serons attentifs à votre réponse.

Merci @matiasroldan6 d' avoir examiné cela. Pour répondre à tes questions

  1. Nous ne pouvons pas contacter la compétence directement car nous l'avons à l'intérieur d'un réseau virtuel, elle ne peut donc pas être atteinte par les canaux
  2. Nous atteignons la compétence via le VA et avons le canal de ligne directe configuré uniquement sur le VA. Nous utilisons l'authentification Azure AD V2 dans les propriétés de connexion sur la compétence et l'appliance virtuelle. Nous avons l'authentification améliorée définie sur le VA
  3. si nous complétons la connexion lorsque nous présentons la carte de connexion. Le bot se bloquera et n'avancera pas. Si nous annulons, revenons à une compétence dotée d'une authentification, elle possède le jeton et contourne l'invite de connexion et nous permet de continuer. Nous avons 2 compétences avec authentification et si nous nous authentifions dans une, nous sommes également authentifiés dans la seconde.
    voici une capture d'écran de notre configuration pour le canal de ligne directe sur le VA
    image

Nous avons l'ID utilisateur défini sur "dl_xxxx" dans le client en ligne directe
Nous avons l'authentification Azure AD v2 dans la connexion sur la Skill et VA
Nous avons le appsettings.json du client en ligne directe défini de la même manière que ci-dessus
Nous ne pouvons pas utiliser le canal de ligne directe sur la compétence et ne l'utilisons que sur le VA
Nous sommes en mesure d'utiliser l'authentification dans le canal Teams avec le seul problème est que les messages de dialogue sont en panne. Il ne parvient pas à envoyer le premier stepContext.context.sendActivity('message') jusqu'à une minute plus tard dans la conversion. Cela ne se produit que sur les boîtes de dialogue dans lesquelles l'authentification est incluse et dans le canal Teams uniquement.
Nous utilisons le bot-solutions 1.0 qui se trouve ici

S'il vous plaît laissez-moi savoir si vous avez besoin de plus d'informations sur la compétence et VA

Salut @tomSauret847 , nous pourrions reproduire une occurrence de ce problème.
Dans notre scénario, le problème était les adresses d'origine de confiance définies dans le canal Directline. Par exemple, la fenêtre contextuelle Directline indique que les origines de confiance doivent être _https_ ou _http_ pour _localhost_. Cela expliquerait Directline comme le seul canal qui échoue pour vous.

Pour vérifier s'il s'agit également de votre problème, pouvez-vous essayer de définir comme origines de confiance :
Votre adresse de bot (soit https://xxxxx.azurewebsites.net ou https://xxxx.ngrok.io si vous déboguez localement)
Votre localhost si vous en avez besoin, comme http://localhost
image

Le paramètre pour reproduire cela était :

  • Un assistant virtuel 1.0 avec

    • Bot-Solutions 1.0 aux dépendances

    • Authentification Azure AD v2 activée

    • Canal Directline activé avec authentification améliorée activée

    • Origines approuvées dans le canal Directline définies sur https://localhost :xxxx (_xxxx_ étant l'adresse du client Directline) et l'adresse du bot (https://xxxxx.azurewebsites.net ou https://xxxx.ngrok.io pour les connexions locales ). Nous avons fait cela en imitant les paramètres de l'image que vous avez jointe dans votre dernier message.

  • Une compétence 1.0 avec

    • Bot-Solutions 1.0 aux dépendances

    • Authentification Azure AD v2 activée

    • Connecté à l'assistant virtuel.

  • Le client Web Directline défini avec l'ID utilisateur et l'authentification améliorée avec la même configuration que notre message précédent.

Nos étapes de repro étaient :

  1. Connectez l'exemple Directline à l'Assistant.
  2. Tentez de déclencher l'authentification ("run sample dialog").
  3. La boîte de dialogue d'authentification s'affiche, mais après avoir cliqué sur le bouton, rien ne se passe et le bot ne répond plus, même aux nouvelles tentatives d'appel d'authentification.
    image
  1. Annulez le flux, puis réexécutez les étapes 1 et 2, puis nous sommes automatiquement authentifiés et nous sommes accueillis par le bot.

S'il vous plaît laissez-nous savoir si cela est d'une quelconque aide. Nous serons attentifs à vos réponses.

Merci @matiasroldan6 d' avoir examiné cela. Les paramètres que vous montrez ci-dessus sont les mêmes que ceux que nous utilisons. Nous avons supprimé la route localhost et n'avons que l'adresse du bot dans les origines de confiance pour le canal de ligne directe (https://xxxxx.azurewebsites.net). La compétence ne répond toujours pas après l'invite de connexion et si nous annulons la conversation et invoquons à nouveau la compétence, elle aura le jeton et continuera le dialogue. Nous ne parvenons toujours pas à obtenir la compétence pour recevoir le jeton une fois que l'utilisateur s'est connecté.

Merci pour votre réponse @tomSauret847 - nous continuerons à travailler dessus en essayant de trouver la solution à ce problème 😊.

Nous avons des questions afin de comprendre comment vous utilisez le point azurewebsites.net terminaison

  1. Utilisez-vous le Messaging endpoint de votre Web App Bot (Virtual Assistant) publié ?
  2. Comment avez-vous intégré la version 1.0 de bot-solutions dans votre assistant virtuel et votre compétence publiés ? Nous comprenons que vous avez utilisé le package .tgz de la bibliothèque. Est-ce correct?
  3. Existe-t-il une possibilité de tester à l'aide du point de terminaison localhost en le configurant comme ci-dessus dans la configuration du canal de ligne directe ?

Merci @Batta32

  1. Nous utilisons le point de terminaison de messagerie de l'appliance virtuelle dans la configuration d'hôte de confiance.
  2. nous utilisons le package .tgz qui a été cloné à partir de la version 1.0. Nous avons supprimé le dossier node_modules et les fichiers package-lock.json avant de passer au package .tgz. Ensuite, a mis à jour le fichier package.json, puis a exécuté l'installation de npm
  3. Nous avons testé avec l'hôte local et avons reçu la même réponse. Nous ne parvenons toujours pas à faire passer le jeton à travers la conversation, mais lorsque le dialogue est annulé et redémarré, le jeton est présent.

Merci @tomSauret847 , nous continuerons d'examiner ce problème avec ces nouvelles informations que vous avez fournies ! Dès que nous aurons une mise à jour, nous reviendrons vers vous .

Salut @tomSauret847 , nous avons réussi à reproduire une occurrence de ce problème.

Une chose que nous avons remarquée dans vos réponses précédentes est que vous utilisez l'URL de votre bot comme origine de confiance.
D'après ce commentaire , et cette documentation , vous devriez avoir l'URL de votre client de chat.
image

Notre configuration était :

Pas:

  1. Utilisez le client Web Directline pour contacter l'assistant virtuel
  2. Invoquer la compétence ("exécuter l'exemple de dialogue")
  3. Se voir présenter le bouton d'authentification par la Skill, cliquer dessus (rien ne se passe)
  4. La répétition de l'étape 2 nous authentifie automatiquement, sans afficher le bouton d'authentification.

Nous continuerons à examiner ce problème comme nous l'avons confirmé et comme vous l'avez mentionné, que dans Microsoft Teams et Emulator, cela fonctionne.
image

Salut @tomSauret847 , nous avons exécuté avec succès le processus d'authentification à l'aide de l'authentification améliorée.

Nous avons posé quelques

  1. Pouvez-vous vérifier si vous avez les dossiers publiés des bots déployés accédant à Kudu (https://.scm.azurewebsites.net/ZipDeployUI) en remplaçant <WEB_APP_BOT_NAME> par le nom de votre ressource de bot ? Vérifiez si vous avez le node_modules , lib , et le reste des dossiers.
  2. Pouvez-vous vérifier si le point de terminaison de messagerie des bots est le point de terminaison de production (azurewebsites.net) ?
  3. Avez-vous connecté l'assistant virtuel aux compétences à l'aide du point de terminaison de production ?
  4. Pouvez-vous vérifier si vous pouvez accéder au manifeste de compétence de la compétence publiée ? Sinon, ajoutez les modifications du PR #3601

C'est notre environnement :

Nous avons suivi ces étapes :

  1. Appliquer les modifications du PR #3601 dans la Skill
  2. Créez un dossier pour stocker le fichier Bot-Solutions 1.0 .tgz sur les deux échantillons
  3. Pointez la référence bot-solutions vers le tgz local, tel que "bot-solutions": ".//TGZ//bot-solutions-1.0.0.tgz" des bots
  4. Déployez les bots en utilisant deploy.ps1
  5. Connectez les deux exemples avec Botskills en utilisant le remoteManifest
  6. Configurez les paramètres de connexion OAuth des deux exemples avec un AADv2
  7. Configurez les oauthConnections dans les appsettings de chaque échantillon
  8. Publiez les deux exemples à l'aide du script publish.ps1
  9. Activer le canal Directline sur l'assistant virtuel
  10. Activer l'authentification améliorée sur la ligne directe de l'assistant virtuel
  11. Connectez l'exemple Directline à l'assistant virtuel

    1. Remarque : Mettez à jour cette ligne en un GUID statique si vous souhaitez conserver la conversation

  12. Enfin, déclenchez l'authentification en utilisant run sample dialog
  13. Après la connexion, la Skill demandera un nom
  14. Vérifiez que l'authentification renforcée fonctionne correctement

Enfin, nous avons confirmé les mêmes étapes à l'aide de bots C# et vérifié que cela fonctionnait également correctement.

Nous serons attentifs à votre réponse

_Configuration de l'Authentification Renforcée_
image

_Communication réussie à l'aide de l'authentification améliorée et des robots TypeScript_
auth fixed

_Communication réussie à l'aide de l'authentification améliorée et des robots C#_
image

Merci @VictorGrycuk. Désolé pour la réponse tardive, nous avions besoin de configurer une instance de test pour vérifier le correctif. Nous avons réussi à faire fonctionner l'authentification dans l'instance de test et avons identifié le problème.

Pour notre instance de VA/Skills, nous les avons derrière une passerelle d'application avec un pare-feu. Il semble que c'est la raison pour laquelle l'authentification améliorée ne fonctionne pas. Lorsque nous implémentons cela sur un VA et une compétence en dehors de cette configuration, cela fonctionne correctement. la passerelle d'application place un autre hôte dans le mix et nous pensons que c'est ce qui bloque le jeton. Nous avons donc la question suivante,

Existe-t-il un moyen de faire fonctionner l'authentification améliorée avec un bot derrière une passerelle d'application ?

Super @tomSauret847 ! Nous ferons une recherche et quelques tests afin d'examiner un moyen de faire fonctionner l'authentification améliorée avec un bot derrière une passerelle d'application.

Dès que nous aurons une mise à jour à ce sujet, nous vous le ferons savoir ici .

Salut @tomSauret847 , nous avons fait une petite recherche et nous avons posé quelques

  1. Testez-vous à l'aide des bots déployés dans Azure ou sur le serveur de promesses ?
  2. Votre passerelle d'application est-elle une passerelle d' application Azure ?
  3. Utilisez-vous des robots TypeScript ou C# ? Comme vous l'avez mentionné précédemment, vous êtes passé aux robots C#.

Nous serons attentifs à votre réponse

Merci d'avoir répondu @VictorGrycuk voici les réponses à nos questions,

  1. Nous testons avec les bots déployés sur Azure. Nous ne sommes pas en mesure de créer un tunnel pour tester localement.

  2. Oui, nous utilisons une passerelle d'application Azure avec un WAF comme indiqué dans votre lien

  3. Ce sont des robots TypeScript (VA et 2 compétences avec authentification), nous n'utilisons qu'une compétence C# pour contourner le problème de la boucle synchrone et il n'y a pas d'authentification.

Salut @ tomSauret847 , désolé pour le retard - nous pensons qu'il devrait être possible d'utiliser l'authentification améliorée avec une passerelle d'application Azure ayant les bots derrière elle.

Quelques questions supplémentaires :

  1. Pouvez-vous vous connecter à l'assistant virtuel avec un émulateur en utilisant l'adresse IP publique de la passerelle ? Lors de nos tests, nous avons confirmé que cela est possible
  2. Pouvez-vous vous connecter et communiquer avec une compétence via le VA sans une communication améliorée ?

Composants :

Paramétrage :

  • Assistant virtuel utilisant l'authentification améliorée, comme expliqué dans ce commentaire
  • La Skill connectée à l'Assistant Virtuel configurée avec l'authentification
  • Ligne directe telle que configurée dans le même commentaire que ci-dessus
  • Application Gateway pointant vers le bot déployé comme expliqué dans cet article

Nous allons travailler à reproduire ce scénario.

Merci @VictorGrycuk Les réponses à vos questions sont
Pouvez-vous vous connecter à l'assistant virtuel avec un émulateur en utilisant l'adresse IP publique de la passerelle ? Lors de nos tests, nous avons confirmé que cela est possible

  • Nous n'avons pas de tunnel disponible car nous ne pouvons pas nous connecter à l'appliance virtuelle avec un émulateur, mais nous avons un chat Web disponible. Le VA se connectera à la compétence et terminera les dialogues.

Pouvez-vous vous connecter et communiquer avec une compétence via le VA sans une communication améliorée ?

  • Oui, si nous n'utilisons pas l'authentification améliorée, nous pouvons copier et coller le code et l'authentification fonctionne comme prévu. Nous souhaitons l'intégration transparente que l'authentification améliorée offre à nos utilisateurs.

Salut @tomSauret847 , nous pouvons confirmer que l'authentification améliorée fonctionne avec les bots derrière une passerelle d'application Azure.

Nous avons créé le PR #3694 qui comprend une nouvelle documentation sur la configuration d'une passerelle d'application Azure avec un bot déployé.

Nous avons fait notre test en suivant ces étapes :

  1. Suivez les étapes décrites dans ce commentaire pour déployer des bots avec l'authentification améliorée
  2. Suivez les étapes détaillées dans le document Configuration de la sonde d'intégrité d'une passerelle avec un bot TypeScript pour connecter l'assistant virtuel déployé au pool principal d'Azure Application Gateway.
  3. Tester la connexion de la compétence déployée à l'aide de l' exemple Directline
  4. L'authentification améliorée a fonctionné et la boîte de dialogue d'échantillon de compétence s'est poursuivie comme prévu

Comme cela semble être un problème de configuration d'Azure Application Gateway, je vous suggère de demander des suggestions à https://stackoverflow.com/questions/tagged/botframework ; et si vous allez bien, nous pouvons clore ce problème 🙂.

Merci @VictorGrycuk Nous allons travailler sur les informations que vous avez publiées. J'ai déjà remarqué que ce lien est rompu.

Merci @tomSauret847 , ce lien conduira à la configuration de la sonde de santé d'une passerelle avec un bot TypeScript (ainsi que cette image ) une fois les documents fusionnés dans la branche master , car la documentation utilise {{site.baseurl}} pour générer les URL.

@peterinnesmsft - nous pouvons fermer le problème en raison de l'inactivité. @tomSauret847 si vous rencontrez toujours des problèmes, n'hésitez pas à réactiver et nous pourrons le reprendre ou créer un nouveau problème !

De plus, si vous avez des questions, veuillez les poser sur https://stackoverflow.com/questions/tagged/botframework.

L'ensemble du processus d'authentification sera résolu dès que les PR suivants seront fusionnés pour TypeScript version 1.0 :

  • PR #3583 : [TypeScript][Bot-Solutions] Implement changes in Bot-Solutions to 1.0 release
  • RP #3584 : [TypeScript][Virtual Assistant] Implement changes in Virtual Assistant to 1.0 release
  • PR #3585 : [TypeScript][Skill] Implement changes in Skill to 1.0 release

Merci @Batta32 pour votre aide à ce sujet. Nous devons mettre cette section en attente pour le moment, je vais donc fermer ce problème et le rouvrir si nous avons des problèmes lorsque nous le reprendrons.

@Batta32 Nous avons une question rapide sur ce problème. Le SSO pour dactylographié est-il encore disponible ? Nous avons découvert que le problème est que nos compétences sont derrière un pare-feu et ne peuvent pas recevoir la réponse du jeton. Lorsque nous transmettons les informations d'identification du VA, il ne transmet pas le jeton à la compétence, il redémarre simplement la conversation. Si l'authentification unique pour le texte dactylographié n'est pas disponible, quand pensez-vous qu'elle le sera ? Merci pour toute votre aide sur ce problème.

Salut @tomSauret847 , SSO n'est pas disponible pour TypeScript actuellement car il est introduit dans la version 1.0. Les PR de TypeScript version 1.0 doivent être approuvés et fusionnés afin de publier une nouvelle version avec cette fonctionnalité.

Nous vous tiendrons au courant dès que nous aurons une mise à jour 😊.

Cette page vous a été utile?
0 / 5 - 0 notes