Habilitar o SSO para seu aplicativo

Com o SSO (logon único) no Teams, os usuários do aplicativo têm a vantagem de usar o Teams para acessar aplicativos de extensão de bot ou mensagem. Depois de fazer logon no Teams usando a conta Microsoft ou do Microsoft 365, os usuários do aplicativo podem usar seu aplicativo sem precisar entrar novamente. Seu aplicativo está disponível para usuários de aplicativo em qualquer dispositivo com acesso concedido por meio de Microsoft Entra ID.

Observação

O SSO para um aplicativo bot no Teams tem suporte apenas em um chat individual.

Esta seção aborda a configuração de SSO necessária para aplicativos de extensão de bot e mensagens.

Experiência do usuário de logon único no Teams

Os usuários do aplicativo entrarão no Teams usando uma conta pessoal da Microsoft ou uma conta do Microsoft 365. Você pode aproveitar isso e usar o SSO para autenticar e autorizar os usuários do aplicativo. Microsoft Entra ID fornece aos usuários do aplicativo acesso ao seu aplicativo de extensão de bot ou mensagem.

  • O Teams autentica e armazena a identidade do usuário do aplicativo.
  • O bot usa a identidade armazenada do usuário do aplicativo que já é validado pelo Teams.
  • O usuário do aplicativo precisa dar consentimento ao Teams para usar a identidade para acessar seu bot.
  • O usuário do aplicativo pode acessar o aplicativo na Web, na área de trabalho ou no cliente móvel.

Observação

Os usuários do aplicativo não podem conceder permissão a alguns escopos de permissão, como o Sites.ReadWrite.All, o que permite que o usuário do aplicativo leia e grave em todos os ativos do SharePoint e do OneDrive no locatário. Para esses escopos, somente o administrador do locatário pode conceder consentimento em nome de um usuário de aplicativo.

Agora, vamos ver o que acontece no back-end durante o runtime para obter a experiência de logon único no Teams.

Logon único no Teams em runtime

Alcance o SSO em um aplicativo de extensão de bot ou mensagem obtendo o token de acesso para o usuário do aplicativo Teams que está conectado no momento. Esse processo envolve o cliente e o servidor do aplicativo bot, o cliente do Teams, o Bot Framework e Microsoft Entra ID. Durante essa interação, o usuário do aplicativo deve dar consentimento para obter o token de acesso em um ambiente multilocatário.

A imagem a seguir mostra como o SSO funciona quando um usuário de aplicativo do Teams tenta acessar o aplicativo de extensão de bot ou mensagem:

SSO para bots e extensão de mensagem no runtime

# Interação O que está acontecendo
1 Serviço de bot → cliente do Teams A mensagem enviada pelo usuário do aplicativo é recebida pelo cliente do Teams, que o envia para o bot.
Se o usuário do aplicativo tiver se conectado anteriormente, um token será salvo na Loja de Tokens do Bot Framework. O bot chama o Serviço de Token do Bot Framework que verifica se há um token existente para o usuário do aplicativo na Loja de Tokens do Bot Framework.
• Se o token existir, o usuário do aplicativo recebe acesso.
• Se nenhum token estiver disponível, o bot disparará o fluxo de auth.
2 Serviço de bot → Serviço de Token do Bot Framework O bot chama o Serviço de Token do Bot Framework para obter um link de entrada para o usuário.
3 Cliente do Serviço de Token do Bot Framework → Teams Para o aplicativo bot: o Serviço de Token do Bot Framework envia a solicitação de link de entrada para o serviço de bot, que o encaminha para o cliente do Teams em um cartão OAuth.
Para o aplicativo de extensão de mensagem: em vez do OAuth cartão, o Serviço de Token do Bot Framework envia uma solicitação de invocação.
4 Serviço de bot → cliente do Teams → ID do Serviço de Token do Bot Framework → Microsoft Entra Depois que o cliente do Teams receber o OAuth cartão para o usuário do aplicativo, se o SSO estiver habilitado, ele enviará uma solicitação de troca de tokens para o usuário do aplicativo de volta para o bot. O bot chama o Serviço de Token do Bot Framework, tentando trocar o token recebido de Microsoft Entra ID.
5 Microsoft Entra cliente do Teams → ID Para o usuário do aplicativo que está usando o serviço de bot pela primeira vez, a troca de tokens só pode ocorrer após o usuário do aplicativo dar seu consentimento. O cliente do Teams exibe uma mensagem ao usuário do aplicativo para dar consentimento.
Caso o consentimento falhe:
1. A autenticação volta para o prompt de entrada e o usuário do aplicativo deve entrar para usar o aplicativo bot. O botão de entrada aparece no cliente do Teams e, quando o usuário do aplicativo o seleciona, a página de entrada Microsoft Entra é renderizada.
2. O usuário do aplicativo entra e concede acesso ao serviço de bot.
6 Serviço de bot → Serviço de Token do Bot Framework O token para o usuário do aplicativo é armazenado na Loja de Tokens do Bot Framework.

Para um bot ou um aplicativo de extensão de mensagem, o aplicativo bot envia um cartão OAuth para o cliente do Teams. Esse cartão é usado para obter o token de acesso de Microsoft Entra ID usando tokenExchangeResource. Após o consentimento do usuário do aplicativo, o cliente do Teams envia o token recebido de Microsoft Entra ID para o aplicativo bot usando tokenExchange. O aplicativo bot pode analisar o token para recuperar as informações do usuário do aplicativo, como endereço de email.

Importante

Um bot ou aplicativo de extensão de mensagem pode ter mais de um ponto de extremidade ativo. A primeira vez que o usuário do aplicativo receberia a solicitação de consentimento para todos os pontos de extremidade ativos.

Habilitar o SSO para um aplicativo do Teams

Os aplicativos de extensão de bot e mensagem usam o Bot Framework para lidar com a comunicação com os usuários do aplicativo.

  • Aplicativo bot: também chamado de chatbot ou bot de conversa, é um serviço que executa tarefas simples e repetitivas para usuários de aplicativo. Os bots podem fazer parte de um aplicativo maior ou ser um serviço autônomo.

  • Aplicativo de extensão de mensagem: é um serviço Web que você hospeda que pode ser invocado no cliente do Teams. Ele utiliza o esquema de mensagens de um bot para garantir uma comunicação segura. Você precisará registrar seu serviço Web como um bot para habilitar o SSO para seu aplicativo de extensão de mensagem.

Esta seção descreve as tarefas envolvidas na implementação do SSO para um bot do Teams ou aplicativo de extensão de mensagens. Para habilitar o SSO para um bot do Teams ou um aplicativo de extensão de mensagem:

  1. Configurar o aplicativo com Microsoft Entra ID: crie um aplicativo Microsoft Entra para gerar uma ID do aplicativo e um URI de ID do aplicativo. Para gerar um token de acesso, você configura escopos e autoriza aplicativos cliente confiáveis. A configuração necessária no Microsoft Entra ID para habilitar o SSO em um bot e aplicativos de extensão de mensagem é a mesma. Crie um recurso de bot e configure o segredo do cliente, o ponto de extremidade de mensagens e a conexão OAuth para habilitar o SSO.

  2. Adicionar código: adicione o código para manipular o token de acesso para enviar esse token ao código do servidor do seu aplicativo no cabeçalho Autorização e validar o token de acesso quando ele for recebido. O código necessário para habilitar o SSO em um aplicativo bot é diferente do código necessário para um aplicativo de extensão de mensagem.

    Observação

    Esta seção permite que você selecione o aplicativo para o qual deseja adicionar código para habilitar o SSO.

  3. Atualizar manifesto do aplicativo (anteriormente chamado de manifesto de aplicativo do Teams): atualize o manifesto do aplicativo com a ID do aplicativo e o URI de ID do aplicativo gerado em Microsoft Entra ID para permitir que o Teams solicite tokens de acesso em nome do seu aplicativo. A atualização necessária no arquivo de manifesto do aplicativo é a mesma para aplicativos de extensão de bot e mensagem.

  4. Configurar escopos e permissões do Graph: você pode adicionar mais escopos ao seu aplicativo estendendo seu aplicativo com permissões e escopos do Microsoft Graph.

Próxima etapa

Confira também

Glossário