Botframework-solutions: A autenticação não está funcionando no TypeScript Skill

Criado em 20 jul. 2020  ·  38Comentários  ·  Fonte: microsoft/botframework-solutions

Qual projeto é afetado?

Assistente Virtual TypeScript e habilidade

Em que idioma está isso?

TypeScript

O que acontece?

O seguinte erro é gerado durante a tentativa de autenticação

Erro: DialogContext.beginDialog (): Uma caixa de diálogo com um id de 'AuthPrompt' não foi encontrada.
em WaterfallStepContext.(D: \ home \ site \ wwwroot \ node_modules \ botbuilder-dialogs \ lib \ dialogContext.js: 123: 23)
em Generator.next ()
em D: \ home \ site \ wwwroot \ node_modules \ botbuilder-dialogs \ lib \ dialogContext.js: 7: 71
na nova promessa ()
em __awaiter (D: \ home \ site \ wwwroot \ node_modules \ botbuilder-dialogs \ lib \ dialogContext.js: 3: 12)
em WaterfallStepContext.beginDialog (D: \ home \ site \ wwwroot \ node_modules \ botbuilder-dialogs \ lib \ dialogContext.js: 119: 16)
em MultiProviderAuthDialog.firstStep (D: \ home \ site \ wwwroot \ node_modules \ bot-solutions \ lib \ authentication \ multiProviderAuthDialog.js: 75: 34)
em WaterfallDialog.(D: \ home \ site \ wwwroot \ node_modules \ botbuilder-dialogs \ lib \ waterfallDialog.js: 192: 48)
em Generator.next ()
em D: \ home \ site \ wwwroot \ node_modules \ botbuilder-dialogs \ lib \ waterfallDialog.js: 7: 71

Quais são as etapas para reproduzir esse problema?

Implante assistente virtual e habilidade. Habilite o MultiProviderAuthDialog na habilidade
Use a caixa de diálogo de autenticação para autenticar com o Azure Active Directory v2

O que você esperava que acontecesse?

Receba o cartão de login para fazer login

Você pode compartilhar algum registro, saída de erro, etc.?

Erro: DialogContext.beginDialog (): Uma caixa de diálogo com um id 'AuthPrompt' não foi encontrada.
em WaterfallStepContext.(D: \ home \ site \ wwwroot \ node_modules \ botbuilder-dialogs \ lib \ dialogContext.js: 123: 23)
em Generator.next ()
em D: \ home \ site \ wwwroot \ node_modules \ botbuilder-dialogs \ lib \ dialogContext.js: 7: 71
na nova promessa ()
em __awaiter (D: \ home \ site \ wwwroot \ node_modules \ botbuilder-dialogs \ lib \ dialogContext.js: 3: 12)
em WaterfallStepContext.beginDialog (D: \ home \ site \ wwwroot \ node_modules \ botbuilder-dialogs \ lib \ dialogContext.js: 119: 16)
em MultiProviderAuthDialog.firstStep (D: \ home \ site \ wwwroot \ node_modules \ bot-solutions \ lib \ authentication \ multiProviderAuthDialog.js: 75: 34)
em WaterfallDialog.(D: \ home \ site \ wwwroot \ node_modules \ botbuilder-dialogs \ lib \ waterfallDialog.js: 192: 48)
em Generator.next ()
em D: \ home \ site \ wwwroot \ node_modules \ botbuilder-dialogs \ lib \ waterfallDialog.js: 7: 71

Alguma captura de tela ou contexto adicional?

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

Comentários muito úteis

Obrigado novamente @ Batta32! Eu usei o pacote 1.0 para o teste. Ainda preciso manter uma configuração de conexão na habilidade, mas consigo fazer a autenticação funcionar. Consegui ver onde o VA está recebendo a resposta do token e encaminhando para a habilidade a ser processada.

Todos 38 comentários

Obrigado @ tomSauret847 por comunicar este problema! Assim que tivermos alguma atualização, entraremos em contato com você 😊.

Olá @ tomSauret847 - desculpe pelo atraso. Reproduzimos com sucesso o problema usando a habilidade TypeScript seguindo estas etapas:

  1. Remova o comentário das linhas em skillDialogBase marcadas para autenticação
  2. Passe um array OAuthPromptSettings para o construtor MultiProviderAuthDialog
  3. Adicione appsettings.oauthConnections às propriedades de botSettings
  4. Adicionar uma conexão AADv2
  5. Configure uma conexão AADv2 para o registro no Azure

Assim que tivermos alguma atualização, entraremos em contato com você 😊.

image

Olá @ tomSauret847 - corrigimos este problema neste commit .

Na verdade, esse era um problema na biblioteca bot-solutions e agendamos a correção para ser lançada com a versão 1.0 da biblioteca.

Enquanto isso, se você quiser uma maneira de testar a correção por si mesmo, pode seguir estas etapas :

  1. Verifique este branch , com a correção aplicada para a versão 0.8 da biblioteca.
  2. Vá para a pasta de soluções de bots
  3. Execute npm install para instalar suas dependências.
  4. Execute npm run build para construir a solução.
  5. Execute npm pack para gerar um arquivo .tgz . Ele deve criar um arquivo no mesmo local, denominado bot-solutions-version.tgz
  6. Aponte para o tgz gerado em seu bot do Skill, substituindo a referência de soluções de bot no package.json do bot de "bot-solutions": "^1.0.0" para "bot-solutions": "<PATH_TO_TGZ>"
  7. Valide a autenticação usando a habilidade

image

Estaremos atentos às suas respostas 😊.

Obrigado por olhar para este @ Batta32 . Ainda estou recebendo um erro neste processo. O erro é
Erro: não foi possível encontrar a configuração de conexão com o nome {nome da conexão}

Estou configurando a conexão conforme descrito aqui para configurar o SSO para uma habilidade.

Ainda precisamos ter uma conexão de autenticação em cada habilidade com as habilidades de datilografia?
Ou podemos usar o SSO único como descrito para as habilidades de C #?

Se eu adicionar a conexão na habilidade, receberei o prompt de login como você fez, mas não receberei o token de volta após completar o login. Se você pudesse esclarecer se precisamos configurar uma única conexão no VA ou se precisamos configurar conexões em cada uma das habilidades que requerem autenticação.

Obrigado @ tomSauret847 pela sua resposta. Assim que tivermos alguma atualização, entraremos em contato com você 😊!

Olá @ tomSauret847 - reproduzimos com sucesso o problema. É porque a propriedade name em oauthConnections de appsettings.json difere da propriedade connectionName em OAuthPromptSettings você está usando.

Continuaremos revendo isso e analisando as questões que você mencionou acima. Assim que tivermos alguma atualização, entraremos em contato com você 😊.

As etapas que seguimos para reproduzir o problema foram:

  1. Siga as etapas deste comentário
  2. Depois disso, siga as etapas deste comentário
  3. Verifique se a propriedade name em oauthConnections de appsettings.json difere da propriedade connectionName em OAuthPromptSettings você está usando
  4. Inicie a habilidade e digite "caixa de diálogo de amostra de execução" e veja o erro

_Quando connectionName e name são diferentes, o problema é reproduzido_
image

_Emissão reproduzida_
image

Olá @ tomSauret847

Ainda precisamos ter uma conexão de autenticação em cada habilidade com as habilidades de datilografia?

Você precisa ter uma conexão de autenticação em cada habilidade do TypeScript até que a versão 1.0 da habilidade do TypeScript seja lançada.

Ou podemos usar o SSO único como descrito para as habilidades de C #?

O SSO para TypeScript não pode ser usado conforme descrito para as habilidades C #, pois a versão 1.0 do TypeScript ainda não foi lançada.

Deixe-nos saber se isso ajuda você 😊.

@ tomSauret847 - o erro Error: Could not find Connection Setting with name {connection name} é porque a propriedade name em oauthConnections de appsettings difere da propriedade connectionName OAuthPromptSettings você está usando.

Para resolver isso, você deve verificar se as duas propriedades são iguais .

Para mais informações, você pode verificar o comentário acima.

Obrigado @ Batta32 por investigar isso. Posso confirmar que, se criar uma propriedade de conexão na habilidade, posso obter o prompt de login. Seu comentário trouxe outra questão. Estamos nos preparando para iniciar os testes com nosso novo VA e, em seguida, entrar em produção. A pergunta que tenho,

Essa correção para a autenticação será publicada no NPM antes do lançamento 1.0?

Para nosso ambiente de produção, precisaremos de pacotes NPM publicados, portanto, precisaríamos que esta correção fosse publicada antes de movermos este VA para a produção. Estarei atento à sua resposta.

@ tomSauret847 - Obrigado pela sua resposta! Estamos adicionando essas correções nos PRs do TypeScript versão 1.0:

  • PR # 3583: [TypeScript][Bot-Solutions] Implement changes in Bot-Solutions to 1.0 release
  • PR # 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

Iremos informá-lo assim que tivermos alguma atualização sobre isso. Enquanto isso, estamos trabalhando na validação do processo de autenticação no TypeScript.

@ tomSauret847 - identificamos outro problema: a variável Skill State foi _undefined_ durante o processo de autenticação.

Tomamos como guia o PR # 3561 que define um valor padrão para o acessador Skill State que incorporamos neste commit .
Depois de aplicar essas alterações, o processo de autenticação funciona corretamente. Esse problema será corrigido assim que o TypeScript v1.0 for mesclado.

Este é o nosso ambiente usando este branch : feature/southworks/test-fix-auth-skill :

Enquanto isso, se você quiser uma maneira de testar a correção por si mesmo, pode seguir estas etapas:

  1. Vá para a pasta de soluções de bots
  2. Execute npm install para instalar suas dependências.
  3. Execute npm run build para construir a solução.
  4. Execute npm pack para gerar um arquivo .tgz. Ele deve criar um arquivo no mesmo local, denominado bot-solutions-version.tgz
  5. Vá para a pasta Skill Sample
  6. Aponte para o tgz gerado no bot de amostra de habilidade, substituindo a referência de soluções de bot no package.json do bot de "bot-solutions": "^1.0.0" para "bot-solutions": "<PATH_TO_TGZ>"
  7. Execute npm install para instalar suas dependências.
  8. Execute npm run build para construir a solução.
  9. Valide o processo de autenticação

Estamos atentos à sua resposta. 😊

Variável _SkillState obtendo um valor indefinido_
image

_Processo de autenticação funcionando corretamente_
image

Obrigado novamente @ Batta32! Eu usei o pacote 1.0 para o teste. Ainda preciso manter uma configuração de conexão na habilidade, mas consigo fazer a autenticação funcionar. Consegui ver onde o VA está recebendo a resposta do token e encaminhando para a habilidade a ser processada.

@ Batta32 Configuramos a autenticação em 2 de nossas habilidades e está funcionando bem no canal Teams. O canal de linha direta não está passando do prompt de autenticação. A habilidade não está recebendo o token de volta após o login bem-sucedido. Este problema está presente apenas em nosso canal de linha direta. Estamos usando o cliente de linha direta de amostra que foi fornecido e habilitou as opções de autenticação aprimoradas, portanto, não inserimos o "código mágico". Funcionou antes de adicionar a autenticação aprimorada, mas depois de adicionar esse recurso, a habilidade não está mais recebendo a resposta do token de volta. Se cancelarmos a habilidade e voltarmos para o diálogo, o token estará presente e podemos concluir o diálogo. Deixe-me saber se você tem alguma ideia sobre o que pode estar causando isso.

Obrigado @ tomSauret847 , estaremos revendo esse cenário e responderemos assim que possível!

Apenas para começar a rever o cenário:

  1. O que você quer dizer com "amostra de cliente de linha direta"?
  2. Qual cliente você está usando?
  3. O que você quer dizer com "Código mágico"?

Obrigado novamente @ Batta32 por cuidar disso. Estamos usando a amostra de linha direta do repositório de soluções do construtor de bots localizado aqui
O "código mágico" é explicado nesta questão de estouro de pilha aqui
É apenas o código que o usuário bot deve copiar e colar de volta na conversa após a autenticação bem-sucedida. Ao implementar a autenticação aprimorada, ele remove essa etapa para o usuário do bot, de forma que ele só precise se autenticar e a conversa avance conforme o token é devolvido ao bot nos bastidores.

Muito obrigado @ tomSauret847 , estaremos analisando isso e avisaremos você sobre qualquer atualização aqui 😊!

Olá @ tomSauret847 , não foi possível reproduzir esse problema porque o cenário de autenticação está funcionando corretamente.

Fizemos algumas perguntas para você:

  1. Você verificou se esse problema acontece conversando diretamente com a Habilidade, sem se conectar a um Assistente Virtual?
  2. Se você está passando por um VA para se conectar ao Skill, também está habilitando o canal Directline no VA? O que mais você definiu nele, autenticação do Azure AD v2, autenticação aprimorada?
  3. O que você quer dizer com "Se cancelarmos a habilidade e voltarmos para aquele diálogo, o token estará presente e podemos completar o diálogo"?

Esta é a configuração que estamos usando:

  • Uma habilidade TypeScript criada com o [email protected]
  • Configuração de autenticação do tipo Azure AD v2 nessa habilidade
  • Canal Directline habilitado com autenticação aprimorada na habilidade
  • O exemplo da
  • O appsettings.json no cliente Directline é definido de forma semelhante a este:
{
    "Logging": {
        "LogLevel": {
            "Default": "Warning"
        }
    },
    "AllowedHosts": "*",
    "BotName": "skillbot-name",
    "DirectLineSecret": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    "EnableDirectLineEnhancedAuthentication": true,
    "SpeechServiceRegionIdentifier": "",
    "SpeechServiceSubscriptionKey": ""
}

As etapas que seguimos são:

  1. Contactar a Skill através do cliente Directline
  2. Invocando a caixa de diálogo de login ("executar caixa de diálogo de amostra")
  3. Clicar no botão de login (sem necessidade do "código mágico")
  4. Nós logamos com sucesso e o bot nos cumprimenta
  5. A partir desse momento, toda vez que repetimos as etapas 1 e 2, somos automaticamente logados e recebidos pelo bot

Estaremos atentos à sua resposta.

Obrigado @ matiasroldan6 por investigar isso. Para responder às suas perguntas

  1. Não podemos entrar em contato com a habilidade diretamente, pois a temos dentro de uma VNET, portanto, não pode ser alcançada pelos canais
  2. Estamos alcançando a habilidade através do VA e temos o canal de linha direta configurado apenas no VA. Estamos usando a autenticação do Azure AD V2 nas propriedades de conexão no Skill e VA. Temos a autenticação aprimorada definida no VA
  3. se concluirmos o login quando apresentado com o cartão de login. O bot travará e não avançará. Se cancelarmos, voltaremos para uma habilidade que possui autenticação, ela possui o token e ignora o prompt de login e nos permite continuar. Temos 2 habilidades com autenticação e se autenticamos em uma, somos autenticados na segunda também.
    aqui está uma captura de tela de nossa configuração para o canal de linha direta no VA
    image

Temos o ID do usuário definido como "dl_xxxx" no cliente de linha direta
Temos a autenticação Azure AD v2 na conexão no Skill e VA
Temos o appsettings.json do cliente de linha direta definido da mesma forma que você definiu acima
Não podemos usar o canal de linha direta na habilidade e apenas usá-lo no VA
Podemos usar a autenticação no canal Equipes com o único problema é que as mensagens de diálogo estão fora de ordem. Ele está deixando de enviar o primeiro stepContext.context.sendActivity ('mensagem') até um minuto depois na conversão. Isso só acontece em diálogos que possuem autenticação incluída neles e apenas no canal Teams.
Estamos usando o bot-solutions 1.0 que está localizado aqui

Por favor, deixe-me saber se você precisar de mais informações sobre a habilidade e VA

Olá @ tomSauret847 , podemos reproduzir uma ocorrência deste problema.
Em nosso cenário, o problema eram os endereços de origens confiáveis definidos no canal Directline. Por exemplo, o pop-up Directline afirma que as origens confiáveis precisam ser _https_ ou _http_ para _localhost_. Isso explicaria o Directline como o único canal que está falhando para você.

Para verificar se este também é o seu problema, você pode tentar definir como origens confiáveis:
O endereço do seu bot (https://xxxxx.azurewebsites.net ou https://xxxx.ngrok.io se você estiver depurando localmente)
Seu localhost, se necessário, como http: // localhost
image

A configuração para reproduzir isso foi:

  • Um assistente virtual 1.0 com

    • Bot-Solutions 1.0 nas dependências

    • Autenticação do Azure AD v2 habilitada

    • Canal Directline habilitado com autenticação aprimorada em

    • Origens confiáveis ​​no canal Directline definidas como https: // localhost : xxxx (_xxxx_ sendo o endereço do cliente Directline) e o endereço do bot (https://xxxxx.azurewebsites.net ou https://xxxx.ngrok.io para conexões locais ) Fizemos isso emulando as configurações da imagem que você anexou em sua última mensagem.

  • Uma habilidade 1.0 com

    • Bot-Solutions 1.0 nas dependências

    • Autenticação do Azure AD v2 habilitada

    • Conectado ao Assistente Virtual.

  • O cliente da web Directline configurado com ID de usuário e autenticação aprimorada com a mesma configuração de nossa mensagem anterior.

Nossas etapas de reprodução foram:

  1. Conecte a amostra Directline ao Assistente.
  2. Tentativa de acionar a autenticação ("caixa de diálogo de amostra de execução").
  3. A caixa de diálogo Autenticação é exibida, mas depois de clicar no botão nada acontece e o bot deixa de responder, mesmo a outras tentativas de invocar a autenticação.
    image
  1. Cancele o fluxo e execute novamente as etapas 1 e 2, então somos autenticados automaticamente e recebidos pelo bot.

Por favor, deixe-nos saber se isso é de alguma ajuda. Estaremos atentos às suas respostas.

Obrigado @ matiasroldan6 por investigar isso. As configurações que você mostra acima são as mesmas que estamos usando. Removemos a rota localhost e apenas temos o endereço do bot nas origens confiáveis ​​para o canal de linha direta (https://xxxxx.azurewebsites.net). A habilidade ainda não responde após o prompt de login e se cancelarmos a conversa e invocarmos a habilidade novamente, ela terá o token e continuará o diálogo. Ainda não conseguimos obter a habilidade de receber o token depois que o usuário fizer login.

Obrigado pela sua resposta @ tomSauret847 - continuaremos a trabalhar para tentar encontrar a solução para este problema 😊.

Temos perguntas para entender como você está usando o endpoint azurewebsites.net levando em consideração a versão 1.0 de soluções de bots (PR # 3583):

  1. Você está usando o Messaging endpoint de seu Web App Bot (assistente virtual) publicado?
  2. Como você integrou a versão 1.0 das soluções de bot em seu Assistente Virtual publicado e habilidade? Entendemos que você usou o pacote .tgz da biblioteca. Isso está correto?
  3. Existe alguma possibilidade de testar usando o endpoint do host local configurando-o como acima na configuração do canal de linha direta?

Obrigado @ Batta32

  1. Estamos usando o ponto de extremidade de mensagens do VA na configuração de host confiável.
  2. estamos usando o pacote .tgz que foi clonado da versão 1.0. Removemos a pasta node_modules e os arquivos package-lock.json antes de mover o pacote .tgz. Em seguida, atualizou o arquivo package.json e, em seguida, executou a instalação do npm
  3. Testamos com o host local e recebemos a mesma resposta. Ainda não conseguimos fazer o token passar pela conversa, mas quando a caixa de diálogo é cancelada e reiniciada, o token está presente.

Obrigado @ tomSauret847 , continuaremos analisando este problema com as novas informações que você forneceu! Assim que tivermos alguma atualização, entraremos em contato com você 😊.

Olá @ tomSauret847 , reproduzimos com êxito uma ocorrência deste problema.

Uma coisa que notamos em suas respostas anteriores é que você está usando o URL do seu bot como uma origem confiável.
De acordo com este comentário e esta documentação , você deve ter a URL do seu cliente de bate-papo.
image

Nossa configuração foi:

Passos:

  1. Use o cliente web Directline para entrar em contato com o Assistente Virtual
  2. Invoque a habilidade ("caixa de diálogo de amostra de execução")
  3. Será apresentado o botão de autenticação pelo Skill, clique nele (nada acontece)
  4. Repetir a etapa 2 nos autentica automaticamente, sem exibir o botão de autenticação.

Continuaremos analisando esse problema conforme confirmamos e conforme você mencionou, que no Microsoft Teams and Emulator isso está funcionando.
image

Olá @ tomSauret847 , executamos com sucesso o processo de autenticação usando a autenticação avançada.

Colocamos algumas perguntas para que você possa verificar do nosso lado:

  1. Você pode verificar se você tem as pastas publicadas dos bots implantados acessando no Kudu (https: //.scm.azurewebsites.net / ZipDeployUI) substituindo <WEB_APP_BOT_NAME> pelo nome do seu recurso de bot? Verifique se você tem node_modules , lib e o restante das pastas.
  2. Você pode verificar se o Endpoint de mensagens dos bots é o endpoint de produção (azurewebsites.net)?
  3. Você conectou o Assistente Virtual às Habilidades usando o endpoint de produção?
  4. Você pode verificar se consegue acessar o Manifesto de Habilidade da Habilidade publicada? Caso contrário, adicione as alterações do PR # 3601

Este é o nosso ambiente :

Seguimos estas etapas :

  1. Aplicar as alterações do PR # 3601 na habilidade
  2. Crie uma pasta para armazenar o arquivo Bot-Solutions 1.0 .tgz em ambas as amostras
  3. Aponte a referência das soluções de bot para o tgz local, como "bot-solutions": ".//TGZ//bot-solutions-1.0.0.tgz" dos bots
  4. Implante os bots usando deploy.ps1
  5. Conecte as duas amostras com Botskills usando o remoteManifest
  6. Defina as configurações de conexão OAuth de ambas as amostras com um AADv2
  7. Configure o oauthConnections nos appsettings de cada amostra
  8. Publique os dois exemplos usando o script publish.ps1
  9. Ative o canal Directline no Assistente Virtual
  10. Habilite a autenticação aprimorada na linha direta do assistente virtual
  11. Conecte a amostra Directline ao Assistente Virtual

    1. Observação : atualize esta linha para um GUID estático se desejar preservar a conversa

  12. Finalmente, acione a autenticação usando run sample dialog
  13. Após o login, o Skill pedirá um nome
  14. Verifique se a autenticação aprimorada está funcionando corretamente

Por último, mas não menos importante, confirmamos as mesmas etapas usando bots C # e verificamos se também está funcionando corretamente.

Estaremos atentos à sua resposta 😊

_Configuração da autenticação avançada_
image

_Comunicação bem-sucedida usando autenticação aprimorada e bots TypeScript_
auth fixed

_Comunicação bem-sucedida usando autenticação avançada e bots C #_
image

Obrigado @VictorGrycuk. Desculpe pela resposta tardia, precisamos configurar uma instância de teste para verificar a correção. Conseguimos fazer a autenticação funcionar na instância de teste e restringimos onde está o problema.

Para nossa instância do VA / Skills, nós os colocamos atrás de um gateway de aplicativo com um firewall. Parece que esse é o motivo pelo qual a autenticação aprimorada não está funcionando. Quando implementamos isso em um VA e habilidade fora dessa configuração, está funcionando corretamente. o gateway de aplicativo coloca outro host na mistura e pensamos que é isso que está bloqueando o token. Portanto, temos a seguinte pergunta,

Existe uma maneira de fazer com que a autenticação aprimorada funcione com um bot atrás de um App Gateway?

Ótimo @ tomSauret847! Faremos uma pesquisa e alguns testes para revisar uma maneira de fazer a autenticação aprimorada funcionar com um bot atrás de um App Gateway.

Assim que tivermos alguma atualização sobre isso, avisaremos aqui 😊.

Olá @ tomSauret847 , fizemos uma pequena pesquisa e surgimos com algumas perguntas .

  1. Você está testando usando os bots implantados no Azure ou no servidor de promessas?
  2. O seu gateway de aplicativo é um Gateway de Aplicativo do Azure ?
  3. Você está usando bots TypeScript ou C #? Como você mencionou anteriormente, você fez a transição para bots C #.

Estaremos atentos à sua resposta 🙂

Obrigado por responder @VictorGrycuk aqui estão as respostas às nossas perguntas,

  1. Estamos testando com os bots implantados no Azure. Não podemos criar um túnel para testar localmente.

  2. Sim, estamos usando um gateway de aplicativo do Azure com WAF, conforme descrito em seu link

  3. Estes são bots TypeScript (VA e 2 habilidades com autenticação), estamos usando apenas 1 habilidade C # para contornar o problema do loop síncrono e não há autenticação nele.

Olá @ tomSauret847 , desculpe pela demora - achamos que deveria ser possível usar a Autenticação Avançada com um Gateway de Aplicativo do Azure com os bots por trás dele.

Algumas perguntas adicionais:

  1. Você pode se conectar ao Virtual Assistant com um emulador usando o IP público do Gateway? Em nossos testes, confirmamos que isso é possível
  2. Você pode se conectar e se comunicar com uma habilidade por meio do VA sem comunicação aprimorada?

Componentes :

Configuração :

  • Virtual Assistant usando Enhanced Authentication, conforme explicado neste comentário
  • A habilidade conectada ao Assistente Virtual configurada com a autenticação
  • Linha direta conforme configurado no mesmo comentário acima
  • Gateway de aplicativo apontando para o bot implantado, conforme explicado neste artigo

Estaremos trabalhando para replicar este cenário.

Obrigado @VictorGrycuk. As respostas às suas perguntas são
Você pode se conectar ao Virtual Assistant com um emulador usando o IP público do Gateway? Em nossos testes, confirmamos que isso é possível

  • Não temos tunelamento disponível porque não conseguimos conectar ao VA com um emulador, mas temos chat na web disponível. O VA se conectará à habilidade e completará os diálogos.

Você pode se conectar e se comunicar com uma habilidade por meio do VA sem comunicação aprimorada?

  • Sim, se não usarmos a autenticação avançada, podemos copiar e colar o código e a autenticação funcionará conforme o esperado. Gostaríamos da integração perfeita que a autenticação aprimorada fornece aos nossos usuários.

Olá @ tomSauret847 , podemos confirmar que a autenticação aprimorada funciona com os bots por trás de um gateway de aplicativo do Azure.

Criamos o PR # 3694 que inclui uma nova documentação sobre como configurar um Gateway de Aplicativo do Azure com um bot implantado.

Fizemos nosso teste seguindo estas etapas :

  1. Siga as etapas descritas neste comentário para implantar bots com autenticação aprimorada
  2. Siga as etapas detalhadas no documento Configurando uma investigação de integridade do Gateway com um bot TypeScript para conectar o Assistente Virtual implantado ao pool de back-end do Gateway de Aplicativo do Azure
  3. Teste o login da habilidade implantada usando o exemplo Directline
  4. A autenticação aprimorada funcionou e o diálogo de amostra de habilidade continuou conforme o esperado

Como esse parece ser um problema de configuração do Gateway de Aplicativo do Azure, sugiro que você peça sugestões em https://stackoverflow.com/questions/tagged/botframework ; e se você estiver bem, podemos encerrar este problema 🙂.

Obrigado @VictorGrycuk Vamos trabalhar com as informações que você postou. Já notei que este link está quebrado.

Obrigado @ tomSauret847 , esse link levará à configuração de uma sonda de integridade do Gateway com um bot TypeScript (bem como esta imagem ), uma vez que os documentos são mesclados em master branch, já que a documentação usa {{site.baseurl}} para gere os URLs.

@peterinnesmsft - podemos encerrar o problema devido à inatividade. @ tomSauret847 se você ainda estiver tendo problemas,

Além disso, se você tiver alguma dúvida, pergunte em https://stackoverflow.com/questions/tagged/botframework.

Todo o processo de autenticação será resolvido assim que os seguintes PRs forem mesclados para o TypeScript versão 1.0:

  • PR # 3583: [TypeScript][Bot-Solutions] Implement changes in Bot-Solutions to 1.0 release
  • PR # 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

Obrigado @ Batta32 por sua ajuda nisso. Estamos tendo que colocar esta seção em espera por enquanto, então fecharei este problema e reabrirei se tivermos problemas quando o retomarmos.

@ Batta32 Temos uma pergunta rápida sobre esse assunto. O SSO para o texto digitado ainda está disponível? Descobrimos que o problema é que nossas habilidades estão protegidas por um firewall e não podemos receber a resposta do token. Quando passamos as credenciais do VA, ele não está encaminhando o token para a habilidade, está apenas reiniciando a conversa. Se o SSO para texto digitado não estiver disponível, quando você espera que esteja? Obrigado por toda sua ajuda neste assunto.

Olá @ tomSauret847 , SSO não está disponível para TypeScript atualmente, pois foi introduzido na versão 1.0. Os PRs do TypeScript versão 1.0 devem ser aprovados e mesclados para lançar uma nova versão com esse recurso.

Avisaremos você assim que tivermos alguma atualização 😊.

Esta página foi útil?
0 / 5 - 0 avaliações