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

Aprenda a usar a plataforma de identidade da Microsoft e o Microsoft Entra ID para aumentar a resiliência dos aplicativos daemon. Encontre informações sobre processos em segundo plano, serviços, aplicativos de servidor para servidor e aplicativos sem usuários.

Veja O que é a plataforma de identidades da Microsoft?

O diagrama a seguir ilustra um aplicativo daemon fazendo uma chamada para a plataforma de identidade da Microsoft.

A daemon application making a call to Microsoft identity platform.

Identidades geridas para os recursos do Azure

Se você estiver criando aplicativos daemon no Microsoft Azure, use identidades gerenciadas para recursos do Azure, que lidam com segredos e credenciais. O recurso melhora a resiliência ao lidar com a expiração, rotação ou confiança do certificado.

Consulte O que são identidades gerenciadas para recursos do Azure?

As identidades gerenciadas usam tokens de acesso de longa duração e informações da plataforma de identidade da Microsoft para adquirir novos tokens antes que os tokens expirem. Seu aplicativo é executado enquanto adquire novos tokens.

As identidades gerenciadas usam pontos de extremidade regionais, que ajudam a evitar falhas fora da região consolidando dependências de serviço. Os pontos finais regionais ajudam a manter o tráfego numa área geográfica. Por exemplo, se o recurso do Azure estiver no WestUS2, todo o tráfego permanecerá no WestUS2.

Biblioteca de autenticação do Microsoft

Se você desenvolver aplicativos daemon e não usar identidades gerenciadas, use a Biblioteca de Autenticação da Microsoft (MSAL) para autenticação e autorização. O MSAL facilita o processo de fornecimento de credenciais de cliente. Por exemplo, seu aplicativo não precisa criar e assinar asserções de token da Web JSON com credenciais baseadas em certificado.

Consulte Visão geral da Biblioteca de Autenticação da Microsoft (MSAL)

Microsoft.Identity.Web para desenvolvedores .NET

Se você desenvolver aplicativos daemon no ASP.NET Core, use a biblioteca Microsoft.Identity.Web para facilitar a autorização. Ele inclui estratégias de cache de token distribuído para aplicativos distribuídos que são executados em várias regiões.

Saiba mais:

Armazenar tokens em cache e armazenar tokens

Se você não usa o MSAL para autenticação e autorização, há práticas recomendadas para armazenar tokens em cache e armazená-los. A MSAL implementa e segue estas práticas recomendadas.

Um aplicativo adquire tokens de um provedor de identidade (IdP) para autorizar o aplicativo a chamar APIs protegidas. Quando seu aplicativo recebe tokens, a resposta com os tokens contém uma expires\_in propriedade que informa ao aplicativo por quanto tempo armazenar em cache e reutilizar o token. Certifique-se de que os aplicativos usem a propriedade para determinar a vida útil do expires\_in token. Confirme se o aplicativo não tenta decodificar um token de acesso à API. O uso do token armazenado em cache evita o tráfego desnecessário entre um aplicativo e a plataforma de identidade da Microsoft. Os usuários estão conectados ao seu aplicativo durante o tempo de vida do token.

Códigos de erro HTTP 429 e 5xx

Use as seções a seguir para saber mais sobre os códigos de erro HTTP 429 e 5xx

HTTP 429

Existem erros HTTP que afetam a resiliência. Se seu aplicativo receber um código de erro HTTP 429, Solicitações Demais, a plataforma de identidade da Microsoft está limitando suas solicitações, o que impede que seu aplicativo receba tokens. Certifique-se de que seus aplicativos não tentem adquirir um token até que o tempo no campo de resposta Repetir após expire. O erro 429 geralmente indica que o aplicativo não armazena em cache e reutiliza tokens corretamente.

HTTP 5xx

Se um aplicativo receber um código de erro HTTP 5x, o aplicativo não deverá entrar em um loop de repetição rápida. Certifique-se de que os aplicativos esperem até que o campo Retry-After expire. Se a resposta não fornecer nenhum cabeçalho Retry-After, use uma repetição de back-off exponencial com a primeira tentativa, pelo menos 5 segundos após a resposta.

Quando uma solicitação expirar, confirme se os aplicativos não tentam novamente imediatamente. Use a tentativa de back-off exponencial citada anteriormente.

Próximos passos