Aumente a resiliência da autenticação e autorização em aplicativos cliente que você desenvolve

Aprenda a criar resiliência em aplicativos cliente que usam a plataforma de identidade da Microsoft e o Microsoft Entra ID para entrar em usuários e executar ações em nome desses usuários.

Usar a Biblioteca de Autenticação da Microsoft (MSAL)

A Biblioteca de Autenticação da Microsoft (MSAL) faz parte da plataforma de identidade da Microsoft. A MSAL adquire, gerencia, armazena em cache e atualiza tokens; Utiliza as melhores práticas de resiliência. A MSAL ajuda os desenvolvedores a criar soluções seguras.

Saiba mais:

O MSAL armazena tokens em cache e usa um padrão de aquisição de token silencioso. O MSAL serializa o cache de token em sistemas operacionais que fornecem armazenamento seguro nativamente, como a Plataforma Universal do Windows (UWP), iOS e Android. Personalize o comportamento de serialização quando estiver usando:

  • Microsoft.Identity.Web
  • MSAL.NET
  • MSAL para Java
  • MSAL para Python

Saiba mais:

Quando você estiver usando o MSAL, há suporte para cache de tokens, atualização e aquisição silenciosa. Use padrões simples para adquirir os tokens para autenticação. Há suporte para muitos idiomas. Encontre exemplos de código em, Exemplos de código da plataforma de identidade da Microsoft.

try
{
    result = await app.AcquireTokenSilent(scopes, account).ExecuteAsync();
}
catch(MsalUiRequiredException ex)
{
    result = await app.AcquireToken(scopes).WithClaims(ex.Claims).ExecuteAsync()
}

MSAL é capaz de atualizar tokens. Quando a plataforma de identidade da Microsoft emite um token de longa duração, ela pode enviar informações ao cliente para atualizar o token (refresh_in). O aplicativo é executado enquanto o token antigo é válido, mas leva mais tempo para outra aquisição de token.

Versões MSAL

Recomendamos que os desenvolvedores criem um processo para usar a versão mais recente do MSAL porque a autenticação faz parte da segurança do aplicativo. Use essa prática para bibliotecas em desenvolvimento e melhore a resiliência do aplicativo.

Encontre a versão mais recente e as notas de versão:

Padrões resilientes para manipulação de tokens

Se você não usa MSAL, use padrões resilientes para manipulação de tokens. A biblioteca MSAL implementa as práticas recomendadas.

Geralmente, os aplicativos que usam autenticação moderna chamam um ponto de extremidade para recuperar tokens que autenticam o usuário ou autorizam o aplicativo a chamar APIs protegidas. O MSAL lida com autenticação e implementa padrões para melhorar a resiliência. Se você não usa o MSAL, use as orientações nesta seção para obter práticas recomendadas. Caso contrário, a MSAL implementa as práticas recomendadas automaticamente.

Tokens de cache

Certifique-se de que os aplicativos armazenem tokens em cache com precisão a partir da plataforma de identidade da Microsoft. Depois que seu aplicativo recebe tokens, a resposta HTTP com tokens tem uma expires_in propriedade que indica a duração do cache e quando reutilizá-lo. Confirme se o aplicativo não tenta decodificar um token de acesso à API.

Diagram of an app calling to Microsoft identity platform, through a token cache on the device running the application.

Os tokens armazenados em cache evitam o tráfego desnecessário entre um aplicativo e a plataforma de identidade da Microsoft. Esse cenário torna o aplicativo menos suscetível a falhas de aquisição de token, reduzindo as chamadas de aquisição de token. Os tokens armazenados em cache melhoram o desempenho do aplicativo, porque o aplicativo bloqueia a aquisição de tokens com menos frequência. Os usuários permanecem conectados ao seu aplicativo durante o tempo de vida do token.

Serializar e persistir tokens

Certifique-se de que os aplicativos serializem seu cache de token com segurança para persistir os tokens entre as instâncias do aplicativo. Reutilize tokens durante sua vida. Os tokens de atualização e os tokens de acesso são emitidos por muitas horas. Durante esse período, os usuários podem iniciar seu aplicativo várias vezes. Quando um aplicativo é iniciado, confirme se ele procura acesso válido ou um token de atualização. Isso aumenta a resiliência e o desempenho do aplicativo.

Saiba mais:

Certifique-se de que o armazenamento de token persistente tenha controle de acesso e criptografia, em relação ao usuário-proprietário ou identidade do processo. Em vários sistemas operacionais, há recursos de armazenamento de credenciais.

Adquira tokens silenciosamente

Autenticar um usuário ou recuperar a autorização para chamar uma API envolve várias etapas na plataforma de identidade da Microsoft. Por exemplo, os usuários que entram pela primeira vez inserem credenciais e executam uma autenticação multifator. Cada etapa afeta o recurso que fornece o serviço. A melhor experiência do usuário com menos dependências é a aquisição silenciosa de tokens.

Diagram of Microsoft identity platform services that help complete user authentication or authorization.

A aquisição silenciosa de tokens começa com um token válido do cache de tokens do aplicativo. Se não houver um token válido, o aplicativo tentará adquirir um token usando um token de atualização disponível e o ponto de extremidade do token. Se nenhuma das opções estiver disponível, o aplicativo adquire um token usando o prompt=none parâmetro. Essa ação usa o ponto de extremidade de autorização, mas nenhuma interface do usuário aparece para o usuário. Se possível, a plataforma de identidade da Microsoft fornece um token para o aplicativo sem interação do usuário. Se nenhum método resultar em um token, o usuário se autenticará manualmente.

Nota

Em geral, certifique-se de que as aplicações não utilizam comandos como 'login' e 'consentimento'. Esses prompts forçam a interação do usuário, quando nenhuma interação é necessária.

Tratamento do código de resposta

Use as seções a seguir para saber mais sobre códigos de resposta.

Código de resposta HTTP 429

Há respostas de erro que afetam a resiliência. Se seu aplicativo receber um código de resposta HTTP 429, Solicitações Demais, a plataforma de identidade da Microsoft está limitando suas solicitações. Se um aplicativo fizer muitas solicitações, ele será limitado para impedir que o aplicativo receba tokens. Não permita que um aplicativo tente a aquisição de token antes que o tempo do campo de resposta Repetir após seja concluído. Muitas vezes, uma resposta 429 indica que o aplicativo não está armazenando em cache e reutilizando tokens corretamente. Confirme como os tokens são armazenados em cache e reutilizados no aplicativo.

Código de resposta HTTP 5x

Se um aplicativo receber um código de resposta HTTP 5x, o aplicativo não deverá entrar em um loop de repetição rápida. Use o mesmo manuseio para uma resposta 429. Se nenhum cabeçalho Retry-After aparecer, implemente uma nova tentativa de back-off exponencial com a primeira tentativa, pelo menos 5 segundos após a resposta.

Quando um pedido expira, as tentativas imediatas são desencorajadas. Implemente uma repetição de back-off exponencial, com a primeira tentativa, pelo menos 5 segundos após a resposta.

Muitos aplicativos e APIs precisam de informações do usuário para autorizar. Os métodos disponíveis têm vantagens e desvantagens.

Tokens

Os tokens de identidade (ID) e os tokens de acesso têm declarações padrão que fornecem informações. Se as informações necessárias estiverem no token, a técnica mais eficiente são as declarações de token, porque isso impede outra chamada de rede. Menos chamadas de rede equivalem a uma melhor resiliência.

Saiba mais:

Nota

Alguns aplicativos chamam o ponto de extremidade UserInfo para recuperar declarações sobre o usuário autenticado. As informações no token de ID são um superconjunto de informações do ponto de extremidade UserInfo. Habilite os aplicativos para usar o token de ID em vez de chamar o ponto de extremidade UserInfo.

Aumente as declarações de token padrão com declarações opcionais, como grupos. A opção Grupo de aplicativos inclui grupos atribuídos ao aplicativo. As opções Todos ou Grupos de segurança incluem grupos de aplicativos no mesmo locatário, que podem adicionar grupos ao token. Avalie o efeito, porque ele pode negar a eficiência de solicitar grupos no token causando inchaço de token e exigindo mais chamadas para obter os grupos.

Saiba mais:

Recomendamos que você use e inclua funções de aplicativo, que os clientes gerenciam usando o portal ou APIs. Atribua funções a usuários e grupos para controlar o acesso. Quando um token é emitido, as funções atribuídas estão na declaração de funções de token. As informações derivadas de um token impedem mais chamadas de APIs.

Consulte Adicionar funções de aplicativo ao seu aplicativo e recebê-las no token

Adicione declarações com base nas informações do locatário. Por exemplo, uma extensão tem um ID de usuário específico da empresa.

Adicionar informações do diretório a um token é eficiente e aumenta a resiliência reduzindo as dependências. Ele não aborda problemas de resiliência devido à incapacidade de adquirir um token. Adicione declarações opcionais para os cenários principais do aplicativo. Se o aplicativo exigir informações para a funcionalidade administrativa, o aplicativo poderá obter essas informações, conforme necessário.

Microsoft Graph

O Microsoft Graph tem um ponto de extremidade de API unificado para acessar dados do Microsoft 365 sobre padrões de produtividade, identidade e segurança. Os aplicativos que usam o Microsoft Graph podem usar informações do Microsoft 365 para autorização.

Os aplicativos exigem um token para acessar o Microsoft 365, que é mais resiliente do que as APIs anteriores para componentes do Microsoft 365, como o Microsoft Exchange ou o Microsoft SharePoint, que exigiam vários tokens.

Ao usar APIs do Microsoft Graph, use um SDK do Microsoft Graph que simplifique a criação de aplicativos resilientes que acessam o Microsoft Graph.

Consulte Visão geral do SDK do Microsoft Graph

Para autorização, considere usar declarações de token em vez de algumas chamadas do Microsoft Graph. Grupos de solicitação, funções de aplicativo e declarações opcionais em tokens. O Microsoft Graph para autorização requer mais chamadas de rede que dependem da plataforma de identidade da Microsoft e do Microsoft Graph. No entanto, se seu aplicativo depende do Microsoft Graph como sua camada de dados, o Microsoft Graph para autorização não é mais arriscado.

Usar autenticação de agente em dispositivos móveis

Em dispositivos móveis, um agente de autenticação como o Microsoft Authenticator melhora a resiliência. O agente de autenticação usa um token de atualização primário (PRT) com declarações sobre o usuário e o dispositivo. Use PRT para tokens de autenticação para acessar outros aplicativos do dispositivo. Quando um PRT solicita acesso ao aplicativo, o Microsoft Entra ID confia em seu dispositivo e declarações de MFA. Isso aumenta a resiliência, reduzindo as etapas para autenticar o dispositivo. Os usuários não são desafiados com vários prompts MFA no mesmo dispositivo.

Consulte O que é um token de atualização primário?

Diagram of an app calling Microsoft identity platform, through a token cache and token store, and authentication broker on the device running the application.

O MSAL suporta autenticação de broker. Saiba mais:

Avaliação Contínua de Acesso

A Avaliação Contínua de Acesso (CAE) aumenta a segurança e a resiliência do aplicativo com tokens de longa duração. Com o CAE, um token de acesso é revogado com base em eventos críticos e avaliação de políticas, em vez de tempos de vida curtos do token. Para algumas APIs de recursos, como o risco e a política são avaliados em tempo real, o CAE aumenta a vida útil do token em até 28 horas. O MSAL atualiza tokens de longa duração.

Saiba mais:

Se você desenvolver APIs de recursos, vá para openid.netShared Signals – A Secure Webhooks Framework.

Próximos passos