Partilhar via


Autentique aplicações Java em serviços Azure durante o desenvolvimento local usando contas de programador

Durante o desenvolvimento local, as aplicações precisam de se autenticar no Azure para aceder a vários serviços do Azure. Pode autenticar localmente utilizando uma das seguintes abordagens:

Este artigo explica como autenticar-se usando uma conta de programador com ferramentas suportadas pela biblioteca Azure Identity. Neste artigo, vai aprender a:

  • Como usar grupos Microsoft Entra para gerir de forma eficiente permissões para múltiplas contas de programadores.
  • Como atribuir funções a contas de desenvolvedor para definir o escopo das permissões.
  • Como iniciar sessão nas ferramentas de desenvolvimento local suportadas.
  • Como autenticar-se usando uma conta de programador a partir do código da sua aplicação.

Ferramentas de desenvolvedor suportadas para autenticação

Durante o desenvolvimento local, uma aplicação pode autenticar-se no Azure usando as suas credenciais do Azure. Para que esta autenticação funcione, deve estar conectado ao Azure através de uma ferramenta de desenvolvimento, como uma das seguintes:

  • Azure CLI
  • Azure Developer CLI (Interface de Linha de Comando do Azure para Desenvolvedores)
  • Azure PowerShell
  • Visual Studio Code
  • IntelliJ IDEIA

A biblioteca Azure Identity consegue detetar que o programador está iniciado sessão através de uma destas ferramentas. A biblioteca pode então obter o token de acesso Microsoft Entra através da ferramenta para autenticar a aplicação no Azure como utilizador autenticado.

Esta abordagem aproveita as contas Azure existentes do programador para simplificar o processo de autenticação. No entanto, a conta de um programador provavelmente tem mais permissões do que a aplicação exige, excedendo assim as permissões com que a aplicação funciona em produção. Como alternativa, pode-se criar principais de serviço de aplicação para usar durante o desenvolvimento local, que podem ser limitados apenas ao acesso necessário para a aplicação.

Crie um grupo Microsoft Entra para desenvolvimento local

Crie um grupo Microsoft Entra para encapsular os papéis (permissões) que a aplicação necessita no desenvolvimento local, em vez de atribuir os papéis a objetos principais de serviço individuais. Esta abordagem oferece as seguintes vantagens:

  • Cada desenvolvedor tem as mesmas funções atribuídas no nível do grupo.
  • Se uma nova função for necessária para o aplicativo, ela só precisará ser adicionada ao grupo do aplicativo.
  • Se um novo programador ingressar na equipa, um novo principal de serviço da aplicação será criado para o programador e adicionado ao grupo, garantindo que o programador tenha as permissões certas para trabalhar na aplicação.
  1. Navegue até à página de visão geral Microsoft Entra ID no portal Azure.

  2. Selecione Todos os grupos no menu à esquerda.

  3. Na página Grupos , selecione Novo grupo.

  4. Na página Novo de grupo, preencha os seguintes campos de formulário:

    • Tipo de grupo: Selecione Segurança.
    • Nome do grupo: insira um nome para o grupo que inclua uma referência ao nome do aplicativo ou ambiente.
    • Descrição do grupo: insira uma descrição que explique a finalidade do grupo.

    Uma captura de ecrã que mostra como criar um grupo no portal Azure.

  5. Selecione o link Sem membros selecionados em Membros para adicionar membros ao grupo.

  6. No painel suspenso que se abre, procure o principal de serviço que criou anteriormente e selecione-o nos resultados filtrados. Escolha o botão Selecionar na parte inferior do painel para confirmar sua seleção.

  7. Selecione Criar na parte inferior da página Novo grupo para criar o grupo e retornar à página Todos os grupos . Se não vir o novo grupo listado, aguarde um momento e atualize a página.

Atribuir funções ao grupo

De seguida, determina que funções (permissões) a tua aplicação precisa sobre que recursos e atribui esses papéis ao grupo Microsoft Entra que criaste. Os grupos podem receber uma função em um recurso, num grupo de recursos ou no âmbito de uma assinatura. Este exemplo mostra como atribuir papéis no âmbito do grupo de recursos, uma vez que a maioria das aplicações agrupa todos os seus recursos do Azure num único grupo de recursos.

  1. No portal Azure, navegue até à página Overview do grupo de recursos que contém a sua aplicação.

  2. Selecione Controle de acesso (IAM) na navegação à esquerda.

  3. Na página Controle de acesso (IAM), selecione + Adicionar e escolha Adicionar atribuição de função no menu suspenso. A página Adicionar atribuição de função fornece várias guias para configurar e atribuir funções.

  4. Na guia Função , use a caixa de pesquisa para localizar a função que você deseja atribuir. Selecione a função e, em seguida, escolha Avançar.

  5. Na aba Membros

    • Para o valor Atribuir acesso a , selecione Usuário, grupo ou entidade de serviço .
    • Para o valor Membros, escolha + Selecionar membros para abrir o painel flutuante Selecionar membros.
    • Procura o grupo Microsoft Entra que criaste anteriormente e seleciona-o nos resultados filtrados. Escolha e depois selecione para selecionar o grupo e fechar o painel de pop-up.
    • Selecione Revisar + atribuir no fundo do separador Membros.

    Uma captura de ecrã que mostra como atribuir um papel ao grupo Microsoft Entra.

  6. No separador Rever + atribuir, selecione Rever + atribuir na parte de baixo da página.

Inicie sessão no Azure usando ferramentas para programadores

De seguida, inicia sessão no Azure usando uma das ferramentas de desenvolvimento que podes usar para realizar autenticação no teu ambiente de desenvolvimento. A conta que autentica também deve existir no grupo Microsoft Entra que criou e configurou anteriormente.

Os programadores que usam Visual Studio Code podem autenticar-se diretamente com a sua conta de programador através do editor através do broker. Aplicativos que usam DefaultAzureCredential ou VisualStudioCodeCredential podem usar essa conta para autenticar solicitações de aplicativos por meio de uma experiência de logon único perfeita.

  1. No Visual Studio Code, vai ao painel Extensões e instala a extensão Azure Resources. Esta extensão permite-lhe visualizar e gerir recursos do Azure diretamente a partir do Visual Studio Code. Também utiliza o fornecedor de autenticação Microsoft incorporado Visual Studio Code para autenticar com o Azure.

    Captura de ecrã a mostrar a extensão Azure Resources.

  2. Abra a Paleta de Comandos em Visual Studio Code, depois procure e selecione Azure: Iniciar sessão.

    Captura de ecrã a mostrar como iniciar sessão no Azure em Visual Studio Code.

    Sugestão

    Abra a Paleta de Comandos usando Ctrl+Shift+P no Windows/Linux ou Cmd+Shift+P no macOS.

Autenticar os serviços do Azure a partir da sua aplicação

A biblioteca de identidade Azure fornece implementações do TokenCredential que suportam vários cenários e fluxos de autenticação Microsoft Entra. Os passos seguintes mostram-lhe como usar o DefaultAzureCredential ou uma credencial específica de ferramenta de desenvolvimento ao trabalhar com contas de utilizador localmente.

Implementar o código

  1. Adicione a azure-identity dependência ao seu pom.xml ficheiro:

    <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-identity</artifactId>
    </dependency>
    
  2. Escolha uma das implementações de credenciais com base no seu cenário.

Use uma credencial específica para a sua ferramenta de desenvolvimento

Passe uma instância TokenCredential correspondente a uma ferramenta de desenvolvimento específica para o construtor do cliente de serviço do Azure, como AzureCliCredential.

import com.azure.identity.AzureCliCredential;
import com.azure.identity.AzureCliCredentialBuilder;
import com.azure.security.keyvault.secrets.SecretClient;
import com.azure.security.keyvault.secrets.SecretClientBuilder;

AzureCliCredential credential = new AzureCliCredentialBuilder().build();

SecretClient client = new SecretClientBuilder()
    .vaultUrl("https://<your-key-vault-name>.vault.azure.net")
    .credential(credential)
    .buildClient();

Cada credencial de ferramenta segue o mesmo padrão. Substitua o tipo de credencial e o respetivo construtor conforme necessário:

  • AzureCliCredential / AzureCliCredentialBuilder
  • AzureDeveloperCliCredential / AzureDeveloperCliCredentialBuilder
  • AzurePowerShellCredential / AzurePowerShellCredentialBuilder
  • IntelliJCredential / IntelliJCredentialBuilder
  • VisualStudioCodeCredential / VisualStudioCodeCredentialBuilder

Use uma credencial disponível para uso em qualquer ferramenta de desenvolvimento

Use uma DefaultAzureCredential instância otimizada para todas as ferramentas de desenvolvimento local. Este exemplo requer que a variável AZURE_TOKEN_CREDENTIALS de ambiente seja definida por dev. Para obter mais informações, consulte Excluir uma categoria de tipo de credencial.

import com.azure.identity.DefaultAzureCredential;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.security.keyvault.secrets.SecretClient;
import com.azure.security.keyvault.secrets.SecretClientBuilder;

DefaultAzureCredential credential = new DefaultAzureCredentialBuilder()
    .requireEnvVars(AzureIdentityEnvVars.AZURE_TOKEN_CREDENTIALS)
    .build();

SecretClient client = new SecretClientBuilder()
    .vaultUrl("https://<your-key-vault-name>.vault.azure.net")
    .credential(credential)
    .buildClient();

Próximos passos

Este artigo abordou a autenticação durante o desenvolvimento, utilizando credenciais disponíveis no seu computador. Esta forma de autenticação é uma das várias formas de autenticar no Azure SDK para Java. Os artigos seguintes descrevem outras formas:

Se tiver problemas relacionados com a autenticação do ambiente de desenvolvimento, consulte Resolução de problemas com autenticação do ambiente de desenvolvimento.

Depois de dominar a autenticação, consulte Configure o registo no Azure SDK para Java para informações sobre a funcionalidade de registo fornecida pelo SDK.