Habilitar a autenticação usando o provedor OAuth de terceiros
Pode ativar a autenticação na sua aplicação de separador através de Fornecedores de Identidade OAuth (IdP) de terceiros. Neste método, a identidade do utilizador da aplicação é validada e é-lhe concedido acesso por um IdP OAuth, como o Microsoft Entra ID, Google, Facebook, GitHub ou qualquer outro fornecedor. Você precisará configurar uma relação de confiança com o IdP, e os usuários do seu aplicativo também devem ser registrados com ele.
Observação
Para que a autenticação funcione para o seu separador em clientes móveis, tem de garantir que está a utilizar, pelo menos, a versão 1.4.1 da biblioteca JavaScript do Microsoft Teams.
O TeamsJS inicia uma janela separada para o fluxo de autenticação. Defina o atributo SameSite
como Lax. O cliente de desktop do Teams ou versões anteriores do Chrome ou Safari não são compatíveis com SameSite
=Nenhum.
Observação
Este tópico reflete a versão 2.0.x da biblioteca de cliente JavaScript do Microsoft Teams (TeamsJS). Se estiver a utilizar uma versão anterior, consulte a descrição geral da biblioteca do TeamsJS para obter orientações sobre as diferenças entre as versões mais recentes do TeamsJS e versões anteriores.
Usar o OAuth IdP para habilitar a autenticação
O OAuth 2.0 é um padrão aberto para autenticação e autorização utilizado pelo Microsoft Entra ID e por muitos outros fornecedores de identidade. Uma compreensão básica do OAuth 2.0 é um pré-requisito para trabalhar com autenticação no Teams. Para obter mais informações, consulte OAuth 2 simplificado que é mais fácil de seguir do que a especificação formal. O fluxo de autenticação para guias e bots é diferente porque as guias são semelhantes aos sites para que possam usar o OAuth 2.0diretamente. Os bots fazem algumas coisas de maneira diferente, mas os conceitos principais são idênticos.
Por exemplo, o fluxo de autenticação para guias e bots usando Node e o tipo de concessão implícita OAuth 2.0, consulte iniciar fluxo de autenticação para guias.
Esta secção utiliza o ID do Microsoft Entra como exemplo de um fornecedor OAuth de terceiros para ativar a autenticação numa aplicação de separador.
Observação
Antes de mostrar um botão Iniciar sessão ao utilizador e chamar a authentication.authenticate
API em resposta à seleção do botão, tem de aguardar pela conclusão da inicialização do TeamsJS. Pode encadear um .then()
processador ou await
concluir a app.initialize()
função.
O usuário interage com o conteúdo na configuração da guia ou na página de conteúdo, geralmente um botão Entrar ou Fazer login.
A guia constrói o URL para sua página inicial de autenticação. Opcionalmente, utiliza informações de marcadores de posição de URL ou chama
app.getContext()
o método TeamsJS para simplificar a experiência de autenticação do utilizador. Por exemplo, ao autenticar com o Microsoft Entra ID, se ologin_hint
parâmetro estiver definido para o endereço de e-mail do utilizador, o utilizador não terá de iniciar sessão se o tiver feito recentemente. Isto acontece porque o ID do Microsoft Entra utiliza as credenciais em cache do utilizador. A janela pop-up é mostrada brevemente e depois desaparece.Em seguida, o separador chama o
authentication.authenticate()
método .O Teams abre a página inicial em um iframe em uma janela pop-up. A página inicial gera dados aleatórios
state
, guarda-os para validação futura e redireciona para o ponto final do fornecedor de/authorize
identidade, comohttps://login.microsoftonline.com/<tenant ID>/oauth2/authorize
para o Microsoft Entra ID. Substitua<tenant id>
pelo seu próprio ID de locatário que é context.tid. Semelhante a outros fluxos de autenticação de aplicativo no Teams, a página inicial deve estar em um domínio que esteja em sua listavalidDomains
e no mesmo domínio que a página de redirecionamento de entrada de postagem.Observação
O fluxo de concessão implícita OAuth 2.0 chama um
state
parâmetro no pedido de autenticação, que contém dados de sessão exclusivos para impedir um ataque de falsificação de pedidos entre sites. Os exemplos utilizam um GUID gerado aleatoriamente para osstate
dados.No site do provedor, o usuário entra e concede acesso à guia.
O provedor leva o usuário para a página de redirecionamento OAuth 2.0 da guia com um token de acesso.
O separador verifica se o valor devolvido
state
corresponde ao que foi guardado anteriormente e chamaauthentication.notifySuccess()
, que por sua vez chama o processador de êxito (.then()
) para o método baseado emauthenticate()
promessas do passo 3.O Teams fecha a janela pop-up.
A guia exibe a interface do usuário de configuração, atualiza ou recarrega o conteúdo das guias, dependendo de onde o usuário iniciou.
Observação
Se o aplicativo for compatível com SAML SSO, o token JWT gerado por SSO da guia não poderá ser usado, pois não é compatível.
Tratar o contexto da guia como dicas
Embora o contexto da guia forneça informações úteis sobre o usuário, não use estas informações para autenticar o usuário. Autentique o utilizador mesmo que obtenha as informações como parâmetros de URL para o URL do conteúdo do separador ou ao chamar a app.getContext()
função na biblioteca de cliente JavaScript do Microsoft Teams (TeamsJS). Um ator mal-intencionado pode invocar a URL de conteúdo da guia com seus próprios parâmetros. O ator também pode invocar uma página da Web representando o Microsoft Teams para carregar a URL de conteúdo da guia em um iframe e retornar seus próprios dados para a função getContext()
. Tem de tratar as informações relacionadas com a identidade no contexto do separador como uma sugestão e validá-la antes de utilizar. Consulte as notas em navegar até a página de autorização na sua página pop-up.
Exemplo de código
Código de exemplo mostrando o processo de autenticação da guia:
Nome de exemplo | Descrição | .NET | Node.js | Manifesto |
---|---|---|---|---|
Autenticação completa da aplicação | Este exemplo mostra como utilizar a autenticação num bot, separador e extensão de mensagens com o Início de sessão único (SSO) e no Facebook com um nome de utilizador e palavra-passe | View | View | Exibir |
Confira também
Para obter uma implementação detalhada da autenticação de separadores com o Microsoft Entra ID, consulte: