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.
Introdução à biblioteca de cliente do Azure Key Vault Key para Java. Siga estas etapas para instalar o pacote e experimentar o código de exemplo para tarefas básicas.
Recursos adicionais:
- Código fonte
- Documentação de referência da API
- Documentação do produto
- Samples
Prerequisites
- Uma assinatura do Azure - crie uma gratuitamente.
- Java Development Kit (JDK) versão 8 ou superior
- Apache Maven
- da CLI do Azure
Este início rápido pressupõe que tu estejas a executar a CLI do Azure e o Apache Maven num terminal Linux.
Preparação
Este guia de início rápido está usando a biblioteca de Identidade do Azure com a CLI do Azure para autenticar o usuário nos Serviços do Azure. Os desenvolvedores também podem usar o Visual Studio ou o Visual Studio Code para autenticar as suas chamadas; para obter mais informações, consulte Autenticar o cliente com a biblioteca de cliente do Azure Identity.
Iniciar sessão no Azure
Execute o comando
login.az loginSe a CLI puder abrir seu navegador padrão, ela fará isso e carregará uma página de entrada do Azure.
Caso contrário, abra uma página do navegador em https://aka.ms/devicelogin e insira o código de autorização exibido no seu terminal.
Inicie sessão com as credenciais da sua conta no browser.
Criar um novo aplicativo de console Java
Em uma janela do console, use o comando mvn para criar uma nova aplicação de consola Java chamada akv-keys-java.
mvn archetype:generate -DgroupId=com.keyvault.keys.quickstart
-DartifactId=akv-keys-java
-DarchetypeArtifactId=maven-archetype-quickstart
-DarchetypeVersion=1.4
-DinteractiveMode=false
O resultado da geração do projeto será algo parecido com isto:
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Archetype: maven-archetype-quickstart:1.4
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: com.keyvault.keys.quickstart
[INFO] Parameter: artifactId, Value: akv-keys-java
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: package, Value: com.keyvault.keys.quickstart
[INFO] Parameter: packageInPathFormat, Value: com/keyvault/quickstart
[INFO] Parameter: package, Value: com.keyvault.keys.quickstart
[INFO] Parameter: groupId, Value: com.keyvault.keys.quickstart
[INFO] Parameter: artifactId, Value: akv-keys-java
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Project created from Archetype in dir: /home/user/quickstarts/akv-keys-java
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 38.124 s
[INFO] Finished at: 2019-11-15T13:19:06-08:00
[INFO] ------------------------------------------------------------------------
Altere o seu diretório para a pasta recém-criada akv-keys-java/.
cd akv-keys-java
Instalar o pacote
** Abra o ficheiro pom.xml no editor de texto. Adicione os seguintes elementos de dependência ao grupo de dependências.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-security-keyvault-keys</artifactId>
<version>4.2.3</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.2.0</version>
</dependency>
Criar um grupo de recursos e um cofre de chaves
Este quickstart usa um cofre de chaves do Azure pré-configurado. Você pode criar um cofre de chaves seguindo as etapas nestes guias rápidos:
- Início rápido da CLI do Azure
- Início rápido do Azure PowerShell
- Guia de início rápido do portal do Azure
Como alternativa, você pode executar esses comandos da CLI do Azure.
Important
Cada cofre de chaves deve ter um nome exclusivo. Substitua <vault-name> pelo nome do seu cofre de chaves nos exemplos seguintes.
az group create --name "myResourceGroup" -l "EastUS"
az keyvault create --name "<vault-name>" -g "myResourceGroup" --enable-rbac-authorization true
Conceder acesso ao seu cofre de chaves
Para obter permissões para o seu cofre de chaves através do RBAC (Controle de Acesso Baseado em Função), atribua uma função ao seu "Nome Principal do Utilizador" (UPN) usando o comando da Azure CLI az role assignment create.
az role assignment create --role "Key Vault Crypto Officer" --assignee "<upn>" --scope "/subscriptions/<subscription-id>/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/<vault-name>"
Substitua <upn>, <subscription-id>, e <vault-name> pelos seus valores reais. Se usaste um nome diferente de grupo de recursos, substitui também "myResourceGroup". O seu UPN normalmente estará no formato de um endereço de e-mail (por exemplo, username@domain.com).
Definir variáveis de ambiente
Este aplicação está a usar o nome do seu cofre de chaves como uma variável de ambiente chamada KEY_VAULT_NAME.
Windows
set KEY_VAULT_NAME=<vault-name>
Windows PowerShell
$Env:KEY_VAULT_NAME="<vault-name>"
macOS ou Linux
export KEY_VAULT_NAME=<vault-name>
Modelo de objeto
A biblioteca de cliente do Azure Key Vault Key para Java permite gerenciar chaves. A seção Exemplos de Código mostra como criar um cliente, criar uma chave, recuperar uma chave e excluir uma chave.
Toda a aplicação de console é fornecida em Código de exemplo.
Exemplos de código
Adicionar diretivas
Adicione as seguintes diretivas à parte superior do seu código:
import com.azure.core.util.polling.SyncPoller;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.security.keyvault.keys.KeyClient;
import com.azure.security.keyvault.keys.KeyClientBuilder;
import com.azure.security.keyvault.keys.models.DeletedKey;
import com.azure.security.keyvault.keys.models.KeyType;
import com.azure.security.keyvault.keys.models.KeyVaultKey;
Autenticar e criar um cliente
As solicitações de aplicativo para a maioria dos serviços do Azure devem ser autorizadas. Usar a classe DefaultAzureCredential é a abordagem recomendada para implementar conexões sem senha aos serviços do Azure no seu código.
DefaultAzureCredential suporta vários métodos de autenticação e determina qual método deve ser usado em tempo de execução. Essa abordagem permite que seu aplicativo use métodos de autenticação diferentes em ambientes diferentes (local versus produção) sem implementar código específico do ambiente.
Neste início rápido, DefaultAzureCredential autentica-se no Key Vault usando as credenciais do utilizador de desenvolvimento local conectado à CLI do Azure. Quando a aplicação é implantada no Azure, o mesmo código DefaultAzureCredential pode descobrir e usar automaticamente uma identidade gerida atribuída a um App Service, Virtual Machine ou outros serviços. Para obter mais informações, consulte Visão Geral de Identidade Gerida.
Neste exemplo, o nome do cofre de chaves é expandido para o URI do cofre de chaves, no formato https://<vault-name>.vault.azure.net. Para obter mais informações sobre como autenticar para o cofre de chaves, consulte o Guia do Programador.
String keyVaultName = System.getenv("KEY_VAULT_NAME");
String keyVaultUri = "https://" + keyVaultName + ".vault.azure.net";
KeyClient keyClient = new KeyClientBuilder()
.vaultUrl(keyVaultUri)
.credential(new DefaultAzureCredentialBuilder().build())
.buildClient();
Criar uma chave
Agora que a sua aplicação está autenticada, pode criar uma chave no seu banco de chaves usando o método keyClient.createKey. Isso requer um nome para a chave e um tipo de chave. Atribuímos o valor "myKey" à keyName variável e usamos um RSA KeyType neste exemplo.
keyClient.createKey(keyName, KeyType.RSA);
Você pode verificar se a chave foi definida com o comando az keyvault key show:
az keyvault key show --vault-name <vault-name> --name myKey
Recuperar uma chave
Agora pode recuperar a chave criada anteriormente com o método keyClient.getKey.
KeyVaultKey retrievedKey = keyClient.getKey(keyName);
Agora é possível acessar os detalhes da chave recuperada com operações como retrievedKey.getProperties, retrievedKey.getKeyOperations, etc.
Eliminar uma chave
Finalmente, vamos excluir a chave do seu cofre de chaves com o método keyClient.beginDeleteKey.
A exclusão de chave é uma operação de longa duração, para a qual pode verificar o seu progresso ou esperar pela sua conclusão.
SyncPoller<DeletedKey, Void> deletionPoller = keyClient.beginDeleteKey(keyName);
deletionPoller.waitForCompletion();
Você pode verificar se a chave foi eliminada com o comando az keyvault key show:
az keyvault key show --vault-name <vault-name> --name myKey
Limpar recursos
Quando não for mais necessário, você poderá usar a CLI do Azure ou o Azure PowerShell para remover seu cofre de chaves e o grupo de recursos correspondente.
az group delete -g "myResourceGroup"
Remove-AzResourceGroup -Name "myResourceGroup"
Código de exemplo
package com.keyvault.keys.quickstart;
import com.azure.core.util.polling.SyncPoller;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.security.keyvault.keys.KeyClient;
import com.azure.security.keyvault.keys.KeyClientBuilder;
import com.azure.security.keyvault.keys.models.DeletedKey;
import com.azure.security.keyvault.keys.models.KeyType;
import com.azure.security.keyvault.keys.models.KeyVaultKey;
public class App {
public static void main(String[] args) throws InterruptedException, IllegalArgumentException {
String keyVaultName = System.getenv("KEY_VAULT_NAME");
String keyVaultUri = "https://" + keyVaultName + ".vault.azure.net";
System.out.printf("key vault name = %s and key vault URI = %s \n", keyVaultName, keyVaultUri);
KeyClient keyClient = new KeyClientBuilder()
.vaultUrl(keyVaultUri)
.credential(new DefaultAzureCredentialBuilder().build())
.buildClient();
String keyName = "myKey";
System.out.print("Creating a key in " + keyVaultName + " called '" + keyName + " ... ");
keyClient.createKey(keyName, KeyType.RSA);
System.out.print("done.");
System.out.println("Retrieving key from " + keyVaultName + ".");
KeyVaultKey retrievedKey = keyClient.getKey(keyName);
System.out.println("Your key's ID is '" + retrievedKey.getId() + "'.");
System.out.println("Deleting your key from " + keyVaultName + " ... ");
SyncPoller<DeletedKey, Void> deletionPoller = keyClient.beginDeleteKey(keyName);
deletionPoller.waitForCompletion();
System.out.print("done.");
}
}
Próximos passos
Neste início rápido, criou um cofre de chaves, criou uma chave, recuperou-a e, em seguida, eliminou-a. Para saber mais sobre o Key Vault e como integrá-lo com seus aplicativos, continue nestes artigos.
- Leia uma visão geral do Azure Key Vault
- Leia a visão geral da segurança do Key Vault
- Revise as melhores práticas de segurança específicas de chaves
- Consulte o guia do desenvolvedor do Azure Key Vault
- Como proteger o acesso a um cofre de chaves