Partilhar via


Autenticar um usuário com um token de identidade para o Exchange

Importante

Os tokens legados do Exchange foram preteridos. A partir de outubro de 2024, a identidade de utilizador e os tokens de chamada de retorno legados do Exchange começarão a ser desativados para os inquilinos do Exchange Online. Para obter a linha cronológica e os detalhes, veja a nossa página de FAQ. Isto faz parte da Iniciativa Secure Future da Microsoft, que fornece às organizações as ferramentas necessárias para responder ao cenário de ameaças atual. Os tokens de identidade de utilizador do Exchange continuarão a funcionar para o Exchange no local. A autenticação de aplicações aninhadas é a abordagem recomendada para tokens em curso.

Os tokens de identidade do usuário do Exchange fornecem uma maneira de o suplemento identificar exclusivamente um usuário do suplemento. Ao estabelecer a identidade do utilizador, pode implementar um esquema de autenticação de início de sessão único (SSO) para o seu serviço de back-end que permite que os clientes que estão a utilizar suplementos do Outlook se liguem ao seu serviço sem iniciar sessão. Confira Token de identidade do usuário do Exchange para saber mais sobre quando usar esse tipo de token. Neste artigo, vamos dar uma olhada em uma forma simples de usar o token de identidade do Exchange para autenticar um usuário para seu back-end.

Importante

Isso é apenas um exemplo simples de uma implementação de SSO. Como sempre, quando você está lidando com identidade e autenticação, deve garantir que seu código atenda aos requisitos de segurança de sua organização.

Enviar o token de ID com cada solicitação

A primeira etapa é que o seu suplemento obtenha o token de identidade do usuário do Exchange do servidor chamando getUserIdentityTokenAsync. Em seguida, o suplemento envia esse token com cada solicitação realizada para o back-end. Isso pode ocorrer em um cabeçalho ou como parte do corpo da solicitação.

Validar o token

O back-end DEVE validar o token antes de aceitá-lo. Esta é uma etapa importante para garantir que o token foi emitido pelo servidor do Exchange do usuário. Para obter informações sobre a validação de tokens de identidade do usuário do Exchange, confira Validar um token de identidade do Exchange.

Depois de validado e descodificado, o payload do token tem um aspeto semelhante ao seguinte:

{ 
    "aud" : "https://mailhost.contoso.com/IdentityTest.html",
    "iss" : "00000002-0000-0ff1-ce00-000000000000@mailhost.contoso.com",
    "nbf" : "1505749527",
    "exp" : "1505778327",
    "appctxsender":"00000002-0000-0ff1-ce00-000000000000@mailhost.context.com",
    "isbrowserhostedapp":"true",
    "appctx" : {
        "msexchuid" : "53e925fa-76ba-45e1-be0f-4ef08b59d389",
        "version" : "ExIdTok.V1",
        "amurl" : "https://mailhost.contoso.com:443/autodiscover/metadata/json/1"
    }
}

Mapear o token para um usuário em seu back-end

O serviço de back-end pode calcular uma ID de usuário exclusiva a partir do token e mapeá-la para um usuário em seu sistema de usuário interno. Por exemplo, se usar um banco de dados para armazenar os usuários, você poderá adicionar essa ID exclusiva ao registro do usuário no banco de dados.

Gerar uma ID exclusiva

Utilize uma combinação das msexchuid propriedades e amurl . Você pode, por exemplo, concatenar os dois valores em conjunto e gerar uma cadeia de caracteres codificada em Base64. Esse valor poderá sempre ser confiavelmente gerado a partir do token para que você possa mapear um token de identidade do usuário do Exchange para o usuário em seu sistema.

Verificar o usuário

Com a ID exclusiva gerada, a próxima etapa é verificar se há um usuário em seu sistema com essa ID associada.

  • Se o usuário for encontrado, o back-end tratará a solicitação como autenticada e permitirá o progresso da solicitação.

  • Se o usuário não for encontrado, o back-end retornará um erro indicando que o usuário precisa se conectar. Em seguida, o suplemento solicita que o usuário acesse o back-end usando seu método de autenticação existente. Quando o usuário é autenticado, o token de identidade do usuário do Exchange é enviado com os detalhes da autenticação do usuário. Em seguida, o back-end pode atualizar o registro do usuário no sistema com a identificação exclusiva.