Adicionar autenticação de terceiros às Ações Universais de Cartões Adaptáveis
As Ações Universais de Cartões Adaptáveis usam o bot como o back-end comum para lidar com ações e introduzir um novo tipo Action.Execute
de ação , que funciona entre aplicativos, como Teams e Outlook.
Observação
O suporte ao esquema de Ações Universais de Cartões Adaptáveis v1.4 só está disponível para cartões enviados por bot.
Você pode habilitar os seguintes cenários com Action.Execute
em seus Cartões Adaptáveis Ação Universal:
- Ações Universais
- Exibições Específicas do Usuário
- Fluxos de Trabalho Sequenciais
- Modo de exibição atualizado
Para saber mais sobre Ações Universais de Cartões Adaptáveis, confira Ações Universais de Cartões Adaptáveis.
Se você quiser adicionar exibições específicas do usuário em instâncias em que um Cartão Adaptável com a Ação Universal é compartilhado, no contexto de um chat em grupo ou um canal, o usuário pode precisar ser autenticado.
No passado, os usuários que conversavam um contra um com o bot tiveram que esperar enquanto você enviava a eles uma cartão de autenticação separada. Para se comunicar com o bot, o usuário precisaria alternar do chat de grupo ou do canal que incomodaria o fluxo.
Fluxo de autenticação no protocolo Action.Execute
O fluxo de autenticação para OAuth, dentro do Action.Execute
protocolo, permite a autenticação dentro do contexto do chat em grupo ou da conversa de canal em que o Cartão Adaptável é compartilhado.
Os bots podem responder com a solicitação de entrada em resposta a Action.Execute
:
- Cartões Adaptáveis enviados por bot em um chat individual, chat em grupo ou um canal.
- Cartões Adaptáveis enviados pelo usuário do aplicativo por meio de aplicativo de extensão de mensagem (com suporte por bot) em chat individual, chat em grupo ou canal.
- Cartões Adaptáveis presentes na área de composição ou visualização enquanto o usuário está compondo a mensagem. Na área de composição, a atualização no Cartão Adaptável funciona e o bot pode querer usar um token para fornecer uma exibição específica do usuário para o usuário do aplicativo antes de enviar o cartão para o chat.
Introdução ao fluxo de logon OAuth ou nominal
As etapas de autenticação OAuth ou nominal para Cartões Adaptáveis com Ações Universais são semelhantes ao bot no Teams.
Verifique se você adicionou autenticação ao bot do Teams. Para saber mais sobre como criar um bot habilitado para autenticação, como implantar o bot no Azure e associá-lo a um provedor de identidade e como integrar o bot no Microsoft Teams, confira adicionar autenticação ao bot do Teams.
Para uma experiência de logon OAuth ou nominal na qual o usuário é apresentado com um botão ou link de entrada, o seguinte é o fluxo de logon OAuth ou nominal:
O cliente do Teams envia um Cartão Adaptável ou
actionInvokeActivity
uma solicitação para o bot.O bot usa o protocolo Serviço de Token para marcar se já houver um token armazenado em cache para o usuário especificado no
activity.from.id
campo. O canal é especificado noactivity.channelId
campo para o bot e a conexão configurada.Se houver um token armazenado em cache, o bot poderá usar esse token. Se não houver nenhum token, o bot criará um OAuthCard e o colocará na resposta com os seguintes valores:
{ 'statusCode': 401, 'type': 'application/vnd.microsoft.activity.loginRequest', 'value': { 'text': 'Please sign-in', 'connectionName': '<configured-connection-name>', 'buttons': [ { 'title': 'Sign-In', 'text': 'Sign-In', 'type': 'signin', 'value': '<sign-in-URL>' } ] } }
- Os remetentes devem incluir um valor que adere ao formato OAuthCard.
- Os remetentes devem incluir um
connectionName
. Os receptores podem ignorar solicitações de entrada com um vazio ou ausenteconnectionName
. - Os remetentes devem incluir um
button
que tenha uma matriz de botões não vazia.
Ao receber essa resposta, o cliente do Teams mostra um botão de entrada no rodapé cartão em que o usuário pode entrar.
Quando o usuário seleciona o botão Entrar , a página de entrada do provedor de identidade é aberta em uma janela do navegador. Depois que o usuário entra, a página Serviço de Token aparece com um valor de código de autorização.
O cliente do Teams cria e envia a atividade de invocação
adaptiveCard/action
comname
. O valor inclui ostate
campo que contém o código de autorização:{ 'type': 'invoke', 'name': 'adaptiveCard/action' 'value': { 'action': { 'id': 'abc123', 'type': 'Action.Execute', 'verb': 'saveCommand', 'data': { 'firstName': 'Jeff', 'lastName': 'Derstadt' } }, 'state': '123456' }, ... }
Os remetentes devem incluir um
state
campo.O canal fornece essa invocação para o bot, que usa o código de autenticação para recuperar o token do Serviço de Token. O Serviço de Token fornece o token de acesso do usuário ao bot.
Os receptores podem ignorar a
adaptiveCard/action
invocação ou a resposta com um erro se houver um campo ausente ou vaziostate
.Se o valor no
state
campo estiver incorreto, o bot retornará um erro ao cliente do Teams da seguinte maneira:{ 'statusCode': 401, 'type': 'application/vnd.microsoft.error.invalidAuthCode', }
O cliente do Teams pode solicitar novamente ao usuário o código de autorização correto ou enviar uma solicitação
Action.Execute
novamente.Se o código de autorização no
state
campo estiver correto, o bot usará o token de acesso em nome do usuário para executar suas ações.O bot responde com uma cartão ou mensagem ao cliente do Teams sem um erro.
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de