Partilhar via


Autentice aplicações Go nos serviços Azure usando a biblioteca Azure Identity

As aplicações podem usar a biblioteca Azure Identity para autenticar no Microsoft Entra ID, que concede acesso aos serviços e recursos Azure. Este requisito de autenticação aplica-se quer a aplicação seja implementada no Azure, alojada no local ou executada localmente numa estação de trabalho de programador. As secções seguintes descrevem as abordagens recomendadas para autenticar uma aplicação para o Microsoft Entra ID em diferentes ambientes ao utilizar as bibliotecas cliente do Azure SDK.

A autenticação baseada em token através do Microsoft Entra ID é a abordagem recomendada para autenticar aplicações no Azure, em vez de usar cadeias de ligação ou opções baseadas em chaves. O módulo cliente Azure Identity para Go fornece autenticação baseada em tokens e permite que as aplicações autentiquem em recursos Azure, quer a aplicação seja executada localmente, no Azure ou num servidor local.

Vantagens da autenticação baseada em tokens

A autenticação baseada em tokens oferece as seguintes vantagens em relação às cadeias de conexão:

  • A autenticação baseada em tokens garante que apenas as aplicações específicas destinadas a aceder ao recurso Azure podem fazê-lo, enquanto qualquer pessoa ou qualquer aplicação com uma string de ligação pode ligar-se a um recurso Azure.
  • A autenticação baseada em token permite limitar ainda mais o acesso aos recursos do Azure apenas às permissões específicas necessárias para o aplicativo. Esta abordagem segue o princípio do menor privilégio. Por outro lado, uma cadeia de conexão concede direitos completos ao recurso do Azure.
  • Ao usar uma identidade gerida para autenticação baseada em token, a Azure lida com funções administrativas para si, para que não tenha de se preocupar com tarefas como proteger ou substituir segredos. Esta funcionalidade torna a aplicação mais segura porque não existe cadeia de ligação ou segredo de aplicação que possa ser comprometido.
  • As cadeias de ligação são funcionalmente equivalentes a credenciais e requerem tratamento especial para evitar fugas acidentais. Tem de os armazenar de forma segura (por exemplo, no Azure Key Vault) e nunca os incorporar diretamente no código-fonte da sua aplicação nem submetê-los a um sistema de controlo de versões. A Microsoft Secure Future Initiative (SFI) proíbe o uso de cadeias de ligação e segredos de longa duração semelhantes, pois podem ser usados para comprometer a sua aplicação se não forem cuidadosamente geridos.
  • A biblioteca de Identidade do Azure adquire e gerencia tokens do Microsoft Entra para você.

Limitar o uso de cadeias de ligação a cenários onde a autenticação baseada em token não seja uma opção, aplicações iniciais de prova de conceito, ou protótipos de desenvolvimento que não acedam a dados de produção ou sensíveis. Quando possível, use os tipos de credenciais na biblioteca de Identidades do Azure para autenticar nos recursos do Azure.

Autenticação em diferentes ambientes

O tipo de autenticação baseada em tokens que uma aplicação usa para autenticar nos recursos do Azure depende de onde a aplicação é executada. O diagrama a seguir fornece orientação para diferentes cenários e ambientes:

Um diagrama que mostra as estratégias de autenticação baseadas em tokens recomendadas para um aplicativo, dependendo de onde ele está sendo executado.

Quando uma aplicação é:

  • Alojado no Azure: A aplicação deve autenticar-se nos recursos do Azure usando uma identidade gerida. Para mais informações, veja autenticação em ambientes de servidor.
  • A correr localmente durante o desenvolvimento: A aplicação pode autenticar-se no Azure usando um application service principal para desenvolvimento local ou as credenciais Azure do programador. Para mais informações, consulte autenticação durante o desenvolvimento local.
  • Alojado no local: A aplicação deve autenticar-se nos recursos do Azure usando uma entidade de serviço de aplicação ou, no caso do Azure Arc, uma identidade gerida. Para mais informações, veja autenticação em ambientes de servidor.

Autenticação para aplicativos hospedados no Azure

Quando hospeda a sua aplicação no Azure, ela pode usar identidades geridas para autenticar nos recursos do Azure sem precisar de gerir quaisquer credenciais. Existem dois tipos de identidades gerenciadas: atribuídas pelo usuário e atribuídas pelo sistema.

Usar uma identidade gerenciada atribuída pelo usuário

Cria-se uma identidade gerida atribuída pelo utilizador como um recurso Azure autónomo. Podes atribuí-lo a um ou mais recursos Azure, permitindo que esses recursos partilhem a mesma identidade e permissões. Para autenticar usando uma identidade gerida atribuída pelo utilizador, crie a identidade, atribua-a ao seu recurso Azure e depois configure a sua aplicação para usar essa identidade para autenticação, especificando o seu ID de cliente, ID de recurso ou ID de objeto.

Usar uma identidade gerenciada atribuída ao sistema

Ativa-se uma identidade gerida atribuída pelo sistema diretamente num recurso Azure. A identidade está vinculada ao ciclo de vida desse recurso e é excluída automaticamente quando o recurso é excluído. Para autenticar usando uma identidade gerida atribuída pelo sistema, ative a identidade no seu recurso Azure e depois configure a sua aplicação para usar essa identidade para autenticação.

Autenticação durante o desenvolvimento local

Durante o desenvolvimento local, pode autenticar-se nos recursos do Azure usando as suas credenciais de programador ou um principal de serviço. Este método de autenticação permite-lhe testar a lógica de autenticação da sua aplicação sem a implementar no Azure.

Usar credenciais de desenvolvedor

Você pode usar suas próprias credenciais do Azure para autenticar recursos do Azure durante o desenvolvimento local. Normalmente, utiliza-se uma ferramenta de desenvolvimento, como o Azure CLI, que pode fornecer à sua aplicação os tokens necessários para aceder aos serviços Azure. Este método é conveniente, mas só deve ser usado para fins de desenvolvimento.

Usar uma entidade de serviço

Crias um principal de serviço num tenant Microsoft Entra para representar uma aplicação e usas-no para autenticar nos recursos do Azure. Você pode configurar seu aplicativo para usar credenciais da entidade de serviço durante o desenvolvimento local. Esse método é mais seguro do que usar credenciais de desenvolvedor e está mais próximo de como seu aplicativo se autentica na produção. No entanto, continua a ser menos ideal do que usar uma identidade gerida devido à necessidade de segredos.

Autenticação para aplicativos hospedados no local

Para aplicativos hospedados localmente, você pode usar uma entidade de serviço para autenticar recursos do Azure. Este método envolve criar um principal de serviço no Microsoft Entra ID, atribuir-lhe as permissões necessárias e configurar a sua aplicação para usar as suas credenciais. Com este método, a sua aplicação local pode aceder de forma segura aos serviços Azure.