Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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:
- Use uma conta de programador com uma das ferramentas suportadas pela biblioteca Azure Identity. Para mais informações, consulte Autenticar aplicações de Java para Azure serviços durante o desenvolvimento local utilizando contas de programador.
- Use um princípio de serviço.
Este artigo explica como usar um principal de serviço de aplicação. Para mais informações sobre entidades de serviço, consulte objetos de aplicação e de entidade de serviço em Microsoft Entra ID. Neste artigo, vai aprender a:
- Como registar uma aplicação no Microsoft Entra para criar um principal de serviço.
- Como usar grupos Microsoft Entra para gerir permissões de forma eficiente.
- Como atribuir funções a permissões de escopo.
- Como autenticar-se usando um principal de serviço a partir do código da sua aplicação.
Utilizar princípios dedicados de serviços de aplicação permite-lhe seguir o princípio do menor privilégio ao aceder aos recursos do Azure. Pode limitar permissões aos requisitos específicos da aplicação durante o desenvolvimento para evitar o acesso acidental a recursos do Azure destinados a outras aplicações ou serviços. Esta abordagem também ajuda a evitar problemas ao transferir a aplicação para produção, garantindo que não é demasiado privilegiada no ambiente de desenvolvimento.
Quando regista a aplicação no Azure, é criado um service principal de aplicação. Para o desenvolvimento local, você deve:
- Crie um registo de aplicação separado para cada programador que trabalha na aplicação, para que cada um tenha o seu próprio principal de serviço de aplicação e não precise de partilhar credenciais.
- Crie um registro de aplicativo separado para cada aplicativo para limitar as permissões do aplicativo apenas ao necessário.
Durante o desenvolvimento local, defina variáveis de ambiente com a identidade do principal do serviço de aplicação. A biblioteca Azure Identity lê estas variáveis de ambiente para autenticar a aplicação aos recursos necessários do Azure.
Registe a aplicação no Azure
Os objetos principais de serviço de aplicação são criados através de um registo de aplicação no Azure, utilizando o portal do Azure ou o Azure CLI.
No portal Azure, use a barra de pesquisa para navegar até à página App registrations.
Na página App registrations, selecione + Nova inscrição.
Na página de Registar uma candidatura
- Para o campo Nome, insira um valor descritivo que inclua o nome do aplicativo e o ambiente de destino.
- Para o Tipos de conta suportados, selecione Contas apenas neste diretório organizacional (Somente Liderado pelo Cliente Microsoft - Locatário único)ou a opção que melhor atenda às suas necessidades.
Selecione Registrar para registar a sua aplicação e criar o principal de serviço.
Na página de registro do aplicativo para seu aplicativo, copie o ID do aplicativo (cliente) e ID do diretório (locatário) e cole-os em um local temporário para uso posterior nas configurações de código do aplicativo.
Selecione Adicionar um certificado ou secreto para configurar credenciais para seu aplicativo.
Na página Certificados & segredos, selecione + Novo segredo de cliente.
No Adicionar um segredo de cliente no painel suspenso que se abre:
- Para a Descrição, insira um valor de Current.
- Para o valor expira, deixe o valor padrão recomendado de 180 dias.
- Selecione Adicionar para adicionar o segredo.
Na página Certificados & segredos, copie a propriedade Value do segredo do cliente para uso em uma etapa futura.
Observação
O valor secreto do cliente só é exibido uma vez após a criação do registro do aplicativo. Você pode adicionar mais segredos de cliente sem invalidar esse segredo de cliente, mas não há como exibir esse valor novamente.
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.
Navegue até à página de visão geral Microsoft Entra ID no portal Azure.
Selecione Todos os grupos no menu à esquerda.
Na página Grupos , selecione Novo grupo.
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.
Selecione o link Sem membros selecionados em Membros para adicionar membros ao grupo.
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.
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.
No portal Azure, navegue até à página Overview do grupo de recursos que contém a sua aplicação.
Selecione Controle de acesso (IAM) na navegação à esquerda.
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.
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.
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.
No separador Rever + atribuir, selecione Rever + atribuir na parte de baixo da página.
Definir as variáveis de ambiente do aplicativo
Em tempo de execução, certas credenciais da biblioteca de identidade Azure, como DefaultAzureCredential, EnvironmentCredential e ClientSecretCredential, pesquisam informação do principal de serviço por convenção nas variáveis de ambiente. Ao trabalhar com Java, pode configurar variáveis de ambiente de diferentes formas, dependendo das suas ferramentas e ambiente.
Independentemente da abordagem escolhida, configure as seguintes variáveis de ambiente para um principal de serviço:
-
AZURE_CLIENT_ID: Usado para identificar a aplicação registada em Azure. -
AZURE_TENANT_ID: O ID do tenant da Microsoft Entra. -
AZURE_CLIENT_SECRET: A credencial secreta que foi gerada para o aplicativo.
Adicione as seguintes linhas ao seu arquivo ~/.bashrc ou ~/.zshrc. Substitua os valores provisórios pelos valores reais do registo da sua aplicação:
export AZURE_CLIENT_ID="<your-client-id>"
export AZURE_TENANT_ID="<your-tenant-id>"
export AZURE_CLIENT_SECRET="<your-client-secret>"
Depois de editar o ficheiro, execute source ~/.bashrc ou source ~/.zshrc aplique as alterações à sua sessão atual.
Autenticar os serviços do Azure a partir da sua aplicação
A biblioteca de Identidade do Azure fornece várias credenciais - implementações de TokenCredential que suportam diferentes cenários e fluxos de autenticação da Microsoft Entra. Os passos seguintes mostram-lhe como usar o ClientSecretCredential quando trabalha com responsáveis de serviço localmente e em produção.
Implementar o código
Adicione a azure-identity dependência ao seu pom.xml ficheiro:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
</dependency>
Acede aos serviços do Azure utilizando classes de cliente especializadas das várias bibliotecas de clientes do Azure SDK. Para qualquer código Java que crie um objeto cliente do Azure SDK na sua aplicação, siga estes passos:
- Importa a
ClientSecretCredentialBuilderclasse docom.azure.identitypacote. - Crie um
ClientSecretCredentialobjeto usandoClientSecretCredentialBuildercom ostenantId,clientId, eclientSecret. - Passa a instância
ClientSecretCredentialpara o métodocredentialdo construtor de objetos cliente Azure SDK.
Um exemplo desta abordagem é mostrado no seguinte segmento de código:
import com.azure.identity.ClientSecretCredential;
import com.azure.identity.ClientSecretCredentialBuilder;
import com.azure.storage.blob.BlobServiceClient;
import com.azure.storage.blob.BlobServiceClientBuilder;
String tenantId = System.getenv("AZURE_TENANT_ID");
String clientId = System.getenv("AZURE_CLIENT_ID");
String clientSecret = System.getenv("AZURE_CLIENT_SECRET");
ClientSecretCredential credential = new ClientSecretCredentialBuilder()
.tenantId(tenantId)
.clientId(clientId)
.clientSecret(clientSecret)
.build();
BlobServiceClient blobServiceClient = new BlobServiceClientBuilder()
.endpoint("https://<account-name>.blob.core.windows.net")
.credential(credential)
.buildClient();
Próximos passos
Este artigo abordou a autenticação através de uma entidade de serviço. Esta forma de autenticação é uma das muitas formas de autenticar no Azure SDK para Java. Os artigos seguintes descrevem outras formas de autenticação:
- Autenticar aplicações Java para Azure serviços durante o desenvolvimento local usando contas de programador
- Autenticar aplicações Java alojadas no Azure para recursos Azure utilizando uma identidade gerida atribuída pelo sistema
- Autenticar aplicações Java alojadas no Azure a recursos do Azure utilizando uma identidade gerida atribuída pelo utilizador
Se tiver problemas relacionados com a autenticação do principal de serviço, consulte Resolução de problemas com autenticação do principal de serviço.
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.