Fornecer credenciais de identidade do aplicativo quando não houver usuário
Quando você, como desenvolvedor, está criando aplicativos não usuários, não tem um usuário a quem possa solicitar um nome de usuário e senha ou autenticação multifator (MFA). Você precisa fornecer a identidade do aplicativo por conta própria. Este artigo explica por que a melhor prática de credenciais de cliente Zero Trust para serviços (aplicativos não usuários) no Azure é Identidades Gerenciadas para recursos do Azure.
Problemas com contas de serviço
Usar uma "conta de serviço" (criar uma conta de usuário e usá-la para um serviço) não é uma boa solução. O Microsoft Entra ID não tem um conceito de conta de serviço. Quando os administradores criam contas de usuário para um serviço e, em seguida, compartilham senhas com desenvolvedores, isso é inseguro. Não pode ser sem senha ou ter um MFA. Em vez de usar uma conta de usuário como uma conta de serviço, sua melhor solução é usar uma das seguintes opções de credenciais de cliente.
Opções de credenciais do cliente
Há quatro tipos de credenciais de cliente que podem identificar um aplicativo.
- Chave secreta
- Certificado
- Identidades gerenciadas para recursos do Azure
- Credenciais federadas
Chave secreta ou certificado?
As chaves secretas são aceitáveis quando você tem uma infraestrutura sofisticada de gerenciamento de segredos (como o Azure Key Vault) em sua empresa. No entanto, chaves secretas em cenários em que o profissional de TI gera uma chave secreta e, em seguida, envia-a por e-mail para um desenvolvedor, que pode armazená-la em um local inseguro, como uma planilha, faz com que as chaves secretas não sejam protegidas corretamente.
As credenciais de cliente baseadas em certificado são mais seguras do que as chaves secretas. Os certificados são melhor gerenciados, pois não são o segredo em si. O segredo não faz parte de uma transmissão. Quando você usa uma chave secreta, seu cliente envia o valor real da chave secreta para o Microsoft Entra ID. Quando você usa um certificado, a chave privada do certificado nunca sai do dispositivo. Mesmo que alguém intercete, decodifice e descriptografe a transmissão, o segredo ainda é seguro porque a parte interceptante não tem a chave privada.
Prática recomendada: usar identidades gerenciadas para recursos do Azure
Quando você está desenvolvendo serviços (aplicativos não usuários) no Azure, as Identidades Gerenciadas para Recursos do Azure fornecem uma identidade gerenciada automaticamente na ID do Microsoft Entra. O aplicativo pode se autenticar em qualquer serviço que ofereça suporte à autenticação do Microsoft Entra sem gerenciar credenciais. Você não precisa gerenciar segredos; Você não precisa lidar com a possibilidade de perdê-los ou manuseá-los incorretamente. Os segredos não podem ser intercetados porque não se movem pela rede. Identidades gerenciadas para recursos do Azure é a prática recomendada se você estiver criando serviços no Azure.
Próximos passos
- Identidade e tipos de conta suportados para aplicações de inquilino único e multiinquilino explica como pode escolher se a sua aplicação permite apenas utilizadores do seu inquilino do Microsoft Entra, qualquer inquilino do Microsoft Entra ou utilizadores com contas pessoais da Microsoft.
- Desenvolver a estratégia de permissões de aplicativo ajuda você a decidir sobre a abordagem de permissões de aplicativo para o gerenciamento de credenciais.
- Fornecer credenciais de identidade de aplicativo quando não há nenhum usuário explica por que as Identidades Gerenciadas para recursos do Azure são a melhor prática de credenciais de cliente para serviços (aplicativos não usuários) no Azure.
- As práticas recomendadas de autorização ajudam você a implementar os melhores modelos de autorização, permissão e consentimento para seus aplicativos.
- Use as práticas recomendadas de desenvolvimento de gerenciamento de acesso e identidade Zero Trust em seu ciclo de vida de desenvolvimento de aplicativos para criar aplicativos seguros.
- A criação de aplicativos com uma abordagem Zero Trust para identidade fornece uma visão geral das permissões e das práticas recomendadas de acesso.