Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Com o logon único (SSO) no Teams, os usuários de aplicativos se beneficiam do uso do Teams para acessar aplicativos de guia. Depois de fazer logon no Teams usando uma conta Microsoft ou Microsoft 365, os usuários do aplicativo podem usar seu aplicativo 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.
Veja o que você aprende nesta seção:
- Experiência do usuário de logon único: o Teams oferece aos usuários do aplicativo uma verdadeira experiência de logon único. Os usuários do aplicativo podem usar seu aplicativo sem entrar novamente.
- SSO no Teams em tempo de execução: seu aplicativo de guia interage com o Microsoft Entra ID em tempo de execução para autenticação e autorização únicas para os usuários do aplicativo.
- Habilitar o SSO para seu aplicativo de guia: implemente as tarefas envolvidas para habilitar o SSO em seu aplicativo de guia.
Experiência do usuário de logon único no Teams
Os usuários do aplicativo entram no Teams usando uma conta Microsoft pessoal ou uma conta do Microsoft 365. Você pode aproveitar essa conta e usar o SSO para autenticar e autorizar usuários do aplicativo.
- 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 usuário do aplicativo precisa dar consentimento ao Teams para usar a identidade para acessar seu aplicativo de guia.
- 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:
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 usuário do aplicativo atual do Microsoft Entra ID. Essa interação com o Microsoft Entra ID é invisível para o usuário do aplicativo. Isso se traduz em obter acesso ao aplicativo sem precisar sair do ambiente do Teams.
- Um usuário do aplicativo precisa consentir apenas em um ambiente multilocatário. 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 pode conceder consentimento em nome dos usuários do aplicativo. Nesse cenário, quando o administrador consente para os usuários do aplicativo no locatário, os usuários do aplicativo não precisam ser solicitados a dar o consentimento. Isso significa que os usuários do aplicativo não veem as caixas de diálogo de consentimento e podem acessar o aplicativo sem problemas.
- O token de acesso é pré-buscado pelo Teams para melhorar o desempenho e o tempo de carregamento do aplicativo no ambiente do Teams.
- Os usuários do aplicativo não precisam memorizar ou gravar várias senhas para acessar e usar aplicativos no ambiente do Teams.
Observação
Uma permissão delegada do Microsoft Graph sendo consentível pelo usuário não garante que os usuários finais possam conceder consentimento em todos os locatários. As políticas de consentimento de locatário do Microsoft Entra podem bloquear o consentimento do usuário e exigir aprovação do administrador, mesmo para permissões que geralmente não exigem consentimento do administrador.
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 aplicativo de guia obtendo um token de acesso para o usuário do aplicativo Teams que está conectado. Esse processo envolve o cliente e o servidor do aplicativo de guia, o cliente do Teams e o Microsoft Entra ID. Durante essa interação, o usuário do aplicativo deve dar consentimento para usar a identidade do Teams para obter o token de acesso em um ambiente multilocatário.
A imagem a seguir mostra como o logon único funciona quando um usuário do aplicativo Teams tenta acessar o aplicativo de guia:
| # | 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 solicita o ponto de extremidade do Microsoft Entra para o token de acesso do usuário do aplicativo atual com base na identidade do Teams. |
| 3 | Microsoft Entra ID → Formulário de consentimento | Se o usuário atual do aplicativo estiver usando seu aplicativo de guia pela primeira vez, o Teams exibirá uma solicitação de consentimento se o aplicativo precisar acessar alguns dados protegidos. O usuário do aplicativo (ou o administrador) deve dar consentimento ao Teams para usar a identidade do Teams do usuário do aplicativo para obter um 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 | Cliente do Microsoft Entra ID → Teams | O Microsoft Entra ID envia o token de acesso para o cliente do Teams. O token é um JSON Web Token (JWT) e sua validação funciona exatamente como a validação de token 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 | Aplicativo de guia (entre cliente e 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, consulte Adicionar código para habilitar o SSO em um aplicativo de guia e Adicionar código para habilitar o SSO em seu aplicativo 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 comoUser.ReadouMail.Read. Para obter soluções alternativas sugeridas, confira Estender seu aplicativo com permissões do Microsoft Graph. - Isso
getAuthTokenfalha para usuários anônimos, pois eles não são contas do Microsoft Entra.
As guias são páginas da Web com reconhecimento do Teams. Para habilitar o SSO em uma página da Web hospedada em um aplicativo de guia, adicione a biblioteca de clientes 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
Você pode habilitar o SSO no Teams para todos os aplicativos que dão suporte ao Microsoft Entra ID como um provedor 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 usuário do aplicativo, você pode obter um token de acesso para ele no Microsoft Entra ID.
- Se o aplicativo usar caixas de diálogo (chamadas de módulos de tarefa no TeamsJS v1.x) de dentro de um bot, uma guia, uma extensão de mensagem ou Cartões Adaptativos, você poderá usar a API de SSO para autenticar os usuários do aplicativo.
- Você também pode usar a API de SSO para autenticar os usuários do aplicativo que desejam acessar o Stageview sem precisar ser validado novamente.
Dica
Você também pode usar a API de SSO para autenticar usuários do aplicativo em caixas de diálogo que incorporam conteúdo da Web.
Para obter o logon único em runtime, configure seu aplicativo para habilitar o logon único para autenticar e autorizar usuários de aplicativos.
Habilitar o SSO para um aplicativo da guia do Teams
Esta seção descreve as tarefas envolvidas na implementação do SSO para um aplicativo do Teams. Essas tarefas possuem uma linguagem e estrutura desconhecida.
Para habilitar o SSO para um aplicativo da guia Teams:
- 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.
- Adicionar código: adicione o código para lidar com o token de acesso, envie esse token para o código do servidor do aplicativo no cabeçalho Authorization e valide o token de acesso quando ele for recebido.
- Atualize o manifesto do aplicativo Teams: atualize o manifesto do aplicativo cliente do Teams 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.
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. Portanto, os aplicativos que usam cookies de terceiros para autenticação em suas guias de Canal ou Chat e aplicativos pessoais não podem concluir seus 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 que o SSO funcione no painel lateral 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
Use os seguintes guias passo a passo para habilitar o SSO para o aplicativo do 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 armazena em cache o token de acesso (ou solicita um novo se ele 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 dá suporte apenas ao token OAuth 2.0. Ele não dá suporte ao token SAML.
- Não há suporte para vários domínios por aplicativo. Para obter mais informações, consulte Aplicativos personalizados criados para sua organização (aplicativos LOB).
- Não há suporte para redirecionamentos para iframes ou aplicativos agenciados. Certifique-se de usar MSAL.js no quadro superior da janela se usar as APIs de redirecionamento ou usar a API
(window.parent!==window) => truepop-up.