Habilitar o SSO para seu aplicativo

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

Observação

O SSO para um aplicativo de bot no Teams tem suporte no escopo de chat individual e em grupo, e não tem suporte no escopo do canal.

Esta seção aborda a configuração de SSO necessária para aplicativos de bot e extensão de 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. O Microsoft Entra ID fornece aos usuários do aplicativo acesso ao seu bot ou aplicativo de extensão de mensagem, seja em escopos pessoais ou em grupo.

  • O Teams autentica e armazena a identidade do usuário do aplicativo.
  • Seu bot usa a identidade armazenada do usuário do aplicativo que já foi 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.

Vejamos como o SSO funciona em diferentes escopos.

No escopo pessoal, o usuário do aplicativo interage com o bot ou aplicativo de extensão de mensagem em um chat individual. O usuário precisa consentir apenas uma vez para usar o bot ou o aplicativo de extensão de mensagem.

O infográfico mostra o fluxo de consentimento do bot em escopo pessoal.

Os escopos de permissão para acessar recursos permanecem os mesmos nos escopos pessoal e de grupo. Para obter mais informações, consulte adicionar código para habilitar o SSO em seu aplicativo de bot.

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 pode conceder consentimento em nome de um usuário do 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

Obtenha o SSO em um bot ou aplicativo de extensão de mensagem obtendo o token de acesso para o usuário do aplicativo Teams que está conectado. Esse processo envolve o cliente e o servidor do aplicativo bot, o cliente do Teams, o Bot Framework e o 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 do aplicativo Teams tenta acessar o bot ou o aplicativo de extensão de mensagem:

SSO para bots e extensão de mensagem em tempo de execução

# Interação O que está acontecendo
1 Cliente do Teams → serviço Bot A mensagem que o usuário do aplicativo envia é recebida pelo cliente do Teams, que a envia ao bot.
Se o usuário do aplicativo tiver entrado anteriormente, um token será salvo no Repositório 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 no Repositório de Tokens do Bot Framework.
• Se o token existir, o usuário do aplicativo receberá acesso.
• Se nenhum token estiver disponível, o bot acionará o fluxo de autenticação.
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 Serviço de token do Bot Framework → cliente do Teams Para aplicativo de bot: o Serviço de Token do Bot Framework envia o link de solicitação de entrada para o serviço de bot, que o encaminha para o cliente do Teams em um OAuth card.
Para o aplicativo de extensão de mensagem: em vez do card OAuth, o Serviço de Token do Bot Framework envia uma solicitação de invocação.
4 Cliente do Teams → Serviço de Bot → Serviço de Token do Bot Framework → Microsoft Entra ID Depois que o cliente do Teams recebe o OAuth card para o usuário do aplicativo, se o SSO estiver habilitado, ele envia uma solicitação de troca de token para o usuário do aplicativo de volta ao bot. O bot chama o Serviço de Token do Bot Framework, tentando trocar o token recebido do Microsoft Entra ID.
5 Cliente do Microsoft Entra ID → Teams Para o usuário do aplicativo que está usando o serviço de bot pela primeira vez, a troca de token só pode ocorrer depois que o usuário do aplicativo der 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 recai 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 do 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 no Repositório 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 card é usado para obter o token de acesso do Microsoft Entra ID usando tokenExchangeResource. Seguindo o consentimento do usuário do aplicativo, o cliente do Teams envia o token recebido do Microsoft Entra ID para o aplicativo bot usando tokenExchange. Em seguida, o aplicativo bot pode analisar o token para recuperar as informações do usuário do aplicativo, como o 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 bot e extensão de mensagem usam o Bot Framework para lidar com a comunicação com os usuários do aplicativo.

  • Aplicativo de bot: também conhecido como chatbot ou bot de conversa, é um serviço que executa tarefas simples e repetitivas para usuários de aplicativos. 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 e 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 mensagem. Para habilitar o SSO para um bot do Teams ou aplicativo de extensão de mensagem:

  1. Configurar o aplicativo com o Microsoft Entra ID: crie um aplicativo do Microsoft Entra para gerar uma ID do aplicativo e um URI da ID do aplicativo. Para gerar um token de acesso, configure escopos e autorize 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.

    Importante

    Se o bot for criado usando a Identidade Gerenciada Atribuída pelo Usuário, um Registro de Aplicativo não será criado automaticamente. Você deve criar um Registro de Aplicativo separado no Microsoft Entra ID, atribuir as permissões necessárias e usar seu webApplicationInfo ID do aplicativo (cliente) na seção do manifesto do aplicativo. Para obter mais informações, consulte a propriedade webApplicationInfo.

  2. Adicionar código: adicione o código para manipular o token de acesso para enviar esse token ao código do servidor do aplicativo no cabeçalho Authorization e para 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 ao qual deseja adicionar código para habilitar o SSO.

  3. Atualize o manifesto do aplicativo (anteriormente chamado de manifesto do aplicativo do Teams): atualize o manifesto do aplicativo com o URI da ID do aplicativo e da ID do aplicativo gerado no 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 bot e extensão de 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