Habilitar o logon único para o aplicativo de guia

Com o início de sessão único (SSO) no Teams, os utilizadores da aplicação têm a vantagem de utilizar o Teams para aceder a aplicações de separadores. Depois de iniciar sessão no Teams com a conta Microsoft ou o Microsoft 365, os utilizadores da aplicação podem utilizar a sua aplicação sem terem de iniciar sessão novamente. A sua aplicação está disponível para utilizadores de aplicações em qualquer dispositivo com o acesso concedido através do ID do Microsoft Entra.

Eis o que aprendeu nesta secção:

  1. Experiência do usuário de logon único: o Teams oferece aos usuários do aplicativo uma verdadeira experiência de logon único. Os utilizadores da aplicação podem utilizar a sua aplicação sem iniciar sessão novamente.
  2. SSO no Teams no runtime: a sua aplicação de separador interage com o Microsoft Entra ID no runtime para autenticação e autorização únicas para os utilizadores da sua aplicação.
  3. Ativar o SSO para a sua aplicação de separador: implemente as tarefas envolvidas para ativar o SSO na sua aplicação de separador.

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

Os utilizadores da aplicação iniciam sessão no Teams através da conta Microsoft pessoal ou da conta Microsoft 365. Pode tirar partido desta conta e utilizar o SSO para autenticar e autorizar os utilizadores da aplicação.

Captura de ecrã a mostrar a experiência de utilizador do SSO numa aplicação de separador do Teams.

  • O Teams autentica e armazena a identidade do usuário do aplicativo.
  • Seu aplicativo de guia usa a identidade armazenada do usuário do aplicativo que já está validado pelo Teams.
  • O utilizador da aplicação tem de dar consentimento ao Teams para utilizar a identidade para aceder à sua aplicação de separador.
  • O usuário do aplicativo pode acessar o aplicativo na Web, na área de trabalho ou no cliente móvel.

Você pode exibir aqui um exemplo de experiência do usuário com o logon único em um aplicativo de guia:

Representação gráfica mostra a experiência de utilizador do SSO na aplicação de separadores.

Aprimorar a experiência do usuário com o logon único

Veja o que os usuários do aplicativo ganham com a experiência de logon único:

  • O Teams obtém o token de acesso para o utilizador atual da aplicação a partir do ID do Microsoft Entra. Esta interação com o ID do Microsoft Entra é invisível para o utilizador da aplicação. Traduz-se em obter acesso à aplicação sem ter de sair do ambiente do Teams.
  • Um utilizador da aplicação só precisa de dar consentimento num ambiente multi-inquilino. Se o usuário do aplicativo e o aplicativo residirem no mesmo locatário, o usuário do aplicativo não precisará dar consentimento para usar o aplicativo.
  • Depois de consentir para o Teams pela primeira vez, o usuário do aplicativo pode usar seu aplicativo sem ter mais a necessidade de consentir, mesmo em outro dispositivo. Por esse motivo, ele oferece uma melhor experiência do usuário.
    • Como alternativa, o administrador de locatários pode dar consentimento em nome dos usuários do aplicativo. Neste cenário, quando o administrador inquilino consente os utilizadores da aplicação no inquilino, não é necessário pedir autorização aos utilizadores da aplicação. Significa que os utilizadores da aplicação não veem as caixas de diálogo de consentimento e podem aceder à aplicação de forma totalmente integrada.
  • O token de acesso é pré-selecionado pelo Teams para melhorar o desempenho e o tempo de carregamento da aplicação no ambiente do Teams.
  • Os utilizadores da aplicação não precisam de memorizar ou gravar várias palavras-passe para aceder e utilizar aplicações no ambiente do Teams.

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 numa aplicação de separador ao obter o token de acesso para o utilizador da aplicação Teams que iniciou sessão. Este processo envolve o cliente e o servidor da aplicação de separador, o cliente do Teams e o ID do Microsoft Entra. Durante esta interação, o utilizador da aplicação tem de dar consentimento para utilizar a identidade do Teams para obter o token de acesso num ambiente multi-inquilino.

A imagem a seguir mostra como o logon único funciona quando um usuário do aplicativo Teams tenta acessar o aplicativo de guia:

Captura de ecrã a mostrar o fluxo do processo SSO do separador e como funciona.

# Interação O que está acontecendo
1 Aplicativo de guia → cliente do Teams O aplicativo de guia faz uma chamada JavaScript para getAuthToken(), que informa ao Teams para obter um token de acesso.
2 Cliente do Teams → Microsoft Entra ID O Teams pede o ponto final do Microsoft Entra para o token de acesso para o utilizador da aplicação atual com base na identidade do Teams.
3 Formulário de Consentimento do Microsoft Entra ID → Se o usuário atual do aplicativo estiver usando seu aplicativo de guia pela primeira vez, o Teams exibirá a solicitação de consentimento se o aplicativo precisar acessar dados protegidos. O utilizador da aplicação (ou o administrador) tem de dar consentimento ao Teams para utilizar a identidade do Teams do utilizador da aplicação para obter o token de acesso do Microsoft Entra ID.
Como alternativa, haverá uma solicitação para lidar com a autenticação step-up, como a autenticação de dois fatores.
4 Microsoft Entra ID → Cliente teams O ID do Microsoft Entra envia o token de acesso para o Cliente do Teams. O token é um JSON Web Token (JWT) e a validação funciona tal como a validação de tokens na maioria dos fluxos OAuth padrão. O Teams armazena o token em seu nome para que futuras chamadas para getAuthToken() retornem o token armazenado em cache.
5 Cliente do Teams → Cliente do aplicativo de guia O Teams envia o token de acesso para o aplicativo de guia como parte do objeto de resultado retornado pela chamada do getAuthToken().
6 Aplicação de tabulação (entre o cliente e o servidor) O aplicativo de guia analisa o token de acesso usando o JavaScript para extrair as informações necessárias, como o endereço de email do usuário do aplicativo. O token devolvido para o aplicativo de guia é um token de acesso e um token de identidade.

Para obter mais informações, veja Adicionar código para ativar o SSO numa aplicação de separador e Adicionar código para ativar o SSO na sua aplicação de bot.

Importante

  • O getAuthToken() é válido apenas para permitir um conjunto limitado de APIs a nível de usuário, como email, perfil, offline_access e OpenId. Ele não é usado para escopos do Graph como User.Read ou Mail.Read. Para obter soluções alternativas sugeridas, confira Estender seu aplicativo com permissões do Microsoft Graph.
  • Falha getAuthToken para utilizadores anónimos, uma vez que não são contas do Microsoft Entra.

As guias são páginas da Web com reconhecimento do Teams. Para ativar o SSO numa página Web alojada numa aplicação de separador, adicione a biblioteca de cliente JavaScript do Teams e chame microsoftTeams.initialize(). Após a inicialização, chame microsoftTeams.getAuthToken() para obter o token de acesso para seu aplicativo.

Casos de uso para habilitar o logon único

Pode ativar o SSO no Teams para todas as aplicações que suportam o Microsoft Entra ID como fornecedor de identidade. Além de usar o logon único para autenticar usuários de aplicativos em um aplicativo de guia, você também pode usá-lo para habilitar o acesso contínuo no Teams.

Alguns cenários em que você pode usar a API de logon único para autenticar os usuários do seu aplicativo são:

  • Se você quiser autenticar os usuários do seu aplicativo em um aplicativo de guia do Teams, a API de logon único permitirá que os usuários do aplicativo usem seu aplicativo no Teams sem a necessidade de autenticação adicional. Com base na identidade do Teams do utilizador da aplicação, pode obter o token de acesso para os mesmos a partir do Microsoft Entra ID.
  • Se a sua aplicação utilizar caixas de diálogo (referidas como módulos de tarefas no TeamsJS v1.x) a partir de um bot, de um separador, de uma extensão de mensagem ou de Cartões Ajustáveis, pode utilizar a API de SSO para autenticar os utilizadores da sua aplicação.
  • Também pode utilizar a API de SSO para autenticar os utilizadores da sua aplicação que pretendem aceder ao Stageview sem ter de ser validado novamente.

Dica

Também pode utilizar a API de SSO para autenticar utilizadores de aplicações em caixas de diálogo que incorporam conteúdo Web.

Para obter o logon único em runtime, configure seu aplicativo para habilitar o logon único para autenticar e autorizar usuários de aplicativos.

Ativar o SSO para uma aplicação de separador do Teams

Esta secção descreve as tarefas envolvidas na implementação do SSO para uma aplicação do Teams. Essas tarefas possuem uma linguagem e estrutura desconhecida.

Para ativar o SSO para uma aplicação de separador do Teams:

       Captura de ecrã a mostrar os passos para ativar o SSO para o separador.

  1. Configurar a aplicação com o Microsoft Entra ID: crie uma aplicação Microsoft Entra para gerar um ID de aplicação e o URI do ID da aplicação. Para gerar o token de acesso, configure âmbitos e autorize aplicações cliente fidedignas.
  2. Adicionar código: adicione o código para processar o token de acesso, envie este token para o código do servidor da sua aplicação no cabeçalho Autorização e valide o token de acesso quando for recebido.
  3. Atualizar o manifesto da aplicação Teams: atualize o manifesto da aplicação cliente do Teams com o ID da aplicação e o URI do ID da aplicação gerados no Microsoft Entra ID para permitir que o Teams peça tokens de acesso em nome da sua aplicação.

Cookies de terceiros no iOS

Após a atualização do iOS 14, a Apple bloqueou o acesso de cookies de terceiros para todos os aplicativos por padrão. Por conseguinte, as aplicações que utilizam cookies de terceiros para autenticação nos respetivos separadores Canal ou Chat e aplicações Pessoais não podem concluir os fluxos de trabalho de autenticação em clientes iOS do Teams. Para estar em conformidade com os requisitos de privacidade e segurança, você deve migrar para um sistema baseado em token ou usar cookies primários para os fluxos de trabalho de autenticação do usuário.

Suporte de cliente móvel do Teams

Para o aplicativo móvel do Teams, as versões de cliente que dão suporte ao logon único são:

  • Teams para Android (1416/1.0.0.2020073101 and later)
  • Teams para iOS (version: 2.0.18 and later)
  • Biblioteca JavaScript do Teams (versão: 1.11 e posterior) para o SSO funcionar no painel do lado da reunião

Para obter uma melhor experiência no Teams, use a versão mais recente do iOS e Android.

Guias passo a passo

Utilize os seguintes guias passo a passo para ativar o SSO para a aplicação Teams:

Práticas recomendadas

Aqui está uma lista de práticas recomendadas:

  • Chame o token de acesso somente quando precisar dele: chame o getAuthToken() somente quando precisar de um token de acesso. Você pode chamá-lo quando um usuário do aplicativo acessa seu aplicativo de guia ou para usar uma função específica que requer validação do usuário do aplicativo.
  • Não armazene o token de acesso no código do lado do cliente: não armazene em cache ou armazene o token de acesso no código do lado do cliente do aplicativo. O cliente do Teams coloca em cache o token de acesso (ou pede um novo se expirar). Isso garante que não haja vazamento acidental do token do seu aplicativo Web.
  • Use o código do lado do servidor para chamadas do Microsoft Graph: use sempre o código do lado do servidor para fazer as chamadas do Microsoft Graph ou outras chamadas que exijam a passagem de um token de acesso. Nunca retorne o token OBO ao cliente para permitir que o cliente faça chamadas diretas ao Microsoft Graph. Isso ajuda a proteger o token de ser interceptado ou vazado. Para mais informações, confira Estender o aplicativo de guia com permissões e escopo do Microsoft Graph.

Limitações conhecidas

  • O SSO no Teams suporta apenas o token OAuth 2.0. Ele não dá suporte ao token SAML.
  • Não são suportados vários domínios por aplicação. Para obter mais informações, veja aplicações personalizadas criadas para a sua organização (aplicações LOB).
  • Os redirecionamentos não são suportados para iframes ou aplicações mediadas. Certifique-se de que utiliza MSAL.js na moldura superior da janela se utilizar as APIs de redirecionamento ou utilizar a API (window.parent!==window) => truede pop-up .

Próxima etapa

Confira também

Glossário