Quickstart: Azure Key Vault Key Key Biblioteca de clientes para JavaQuickstart: Azure Key Vault Key client library for Java

Começa com a biblioteca de clientes Azure Key Vault Key para a Java.Get started with the Azure Key Vault Key client library for Java. Siga os passos abaixo para instalar a embalagem e experimente o código de exemplo para tarefas básicas.Follow the steps below to install the package and try out example code for basic tasks.

Recursos adicionais:Additional resources:

Pré-requisitosPrerequisites

Este quickstart assume que você está correndo Azure CLI e Apache Maven em uma janela terminal Linux.This quickstart assumes you are running Azure CLI and Apache Maven in a Linux terminal window.

ConfiguraçãoSetting up

Este quickstart está a utilizar a biblioteca Azure Identity com o Azure CLI para autenticar o utilizador nos Serviços Azure.This quickstart is using the Azure Identity library with Azure CLI to authenticate user to Azure Services. Os desenvolvedores também podem usar o Visual Studio ou Visual Studio Code para autenticar as suas chamadas, para obter mais informações, ver Autenticar o cliente com a biblioteca de clientes da Azure Identity.Developers can also use Visual Studio or Visual Studio Code to authenticate their calls, for more information, see Authenticate the client with Azure Identity client library.

Iniciar sessão no AzureSign in to Azure

  1. Execute o comando login.Run the login command.

    az login
    

    Se o CLI conseguir abrir o seu navegador predefinido, fá-lo-á e carregará uma página de inscrição do Azure.If the CLI can open your default browser, it will do so and load an Azure sign-in page.

    Caso contrário, abra uma página do navegador https://aka.ms/devicelogin e introduza o código de autorização exibido no seu terminal.Otherwise, open a browser page at https://aka.ms/devicelogin and enter the authorization code displayed in your terminal.

  2. Inicie sessão com as credenciais da sua conta no browser.Sign in with your account credentials in the browser.

Criar uma nova aplicação de consola JavaCreate a new Java console app

Numa janela de consola, utilize o mvn comando para criar uma nova aplicação de consola Java com o nome akv-keys-java .In a console window, use the mvn command to create a new Java console app with the name akv-keys-java.

mvn archetype:generate -DgroupId=com.keyvault.keys.quickstart
                       -DartifactId=akv-keys-java
                       -DarchetypeArtifactId=maven-archetype-quickstart
                       -DarchetypeVersion=1.4
                       -DinteractiveMode=false

A saída da geração do projeto será algo parecido com isto:The output from generating the project will look something like this:

[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] ------------------------------------------------------------------------

Mude o seu diretório para a akv-keys-java/ pasta recém-criada.Change your directory to the newly created akv-keys-java/ folder.

cd akv-keys-java

Instale o pacoteInstall the package

Abra o ficheiro pom.xml no seu editor de texto.Open the pom.xml file in your text editor. Adicione os seguintes elementos de dependência ao grupo de dependências.Add the following dependency elements to the group of dependencies.

    <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 cofre chaveCreate a resource group and key vault

Este quickstart usa um cofre de chave Azure pré-criado.This quickstart uses a pre-created Azure key vault. Pode criar um cofre-chave seguindo os passos no quickstart Azure CLI, Azure PowerShell quickstart, ou Azure portal quickstart.You can create a key vault by following the steps in the Azure CLI quickstart, Azure PowerShell quickstart, or Azure portal quickstart.

Em alternativa, pode simplesmente executar os comandos Azure CLI ou Azure PowerShell abaixo.Alternatively, you can simply run the Azure CLI or Azure PowerShell commands below.

Importante

Cada cofre deve ter um nome único.Each key vault must have a unique name. Substitua <o seu nome único de teclado> pelo nome do seu cofre-chave nos seguintes exemplos.Replace with the name of your key vault in the following examples.

az group create --name "myResourceGroup" -l "EastUS"

az keyvault create --name "<your-unique-keyvault-name>" -g "myResourceGroup"
New-AzResourceGroup -Name myResourceGroup -Location EastUS

New-AzKeyVault -Name "<your-unique-keyvault-name>" -ResourceGroupName "myResourceGroup" -Location "EastUS"

Conceder acesso ao seu cofre chaveGrant access to your key vault

Crie uma política de acesso para o seu cofre-chave que concede permissões chave à sua conta de utilizador.Create an access policy for your key vault that grants key permissions to your user account.

az keyvault set-policy --name <your-key-vault-name> --upn user@domain.com --key-permissions delete get list create purge

Definir variáveis de ambienteSet environment variables

Esta aplicação está a usar o nome do cofre como uma variável ambiental chamada KEY_VAULT_NAME .This application is using your key vault name as an environment variable called KEY_VAULT_NAME.

WindowsWindows

set KEY_VAULT_NAME=<your-key-vault-name>

Windows PowerShellWindows PowerShell

$Env:KEY_VAULT_NAME="<your-key-vault-name>"

macOS ou LinuxmacOS or Linux

export KEY_VAULT_NAME=<your-key-vault-name>

Modelo de objetoObject model

A biblioteca de clientes Azure Key Vault Key para Java permite-lhe gerir as chaves.The Azure Key Vault Key client library for Java allows you to manage keys. A secção de exemplos de Código mostra como criar um cliente, criar uma chave, recuperar uma chave e eliminar uma chave.The Code examples section shows how to create a client, create a key, retrieve a key, and delete a key.

Toda a aplicação da consola está abaixo.The entire console app is below.

Exemplos de códigoCode examples

Adicionar diretivasAdd directives

Adicione as seguintes diretivas ao topo do seu código:Add the following directives to the top of your code:

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 clienteAuthenticate and create a client

Neste arranque rápido, um utilizador registado é utilizado para autenticar o Key Vault, que é o método preferido para o desenvolvimento local.In this quickstart, a logged in user is used to authenticate to Key Vault, which is preferred method for local development. Para aplicações implantadas no Azure, uma Identidade Gerida deve ser atribuída a um Serviço de Aplicações ou Máquina Virtual.For applications deployed to Azure, a Managed Identity should be assigned to an App Service or Virtual Machine. Para mais informações, consulte a Visão Geral da Identidade Gerida.For more information, see Managed Identity Overview.

No exemplo abaixo, o nome do seu cofre-chave é expandido para o cofre-chave URI, no formato "https:// <your-key-vault-name> .vault.azure.net".In the example below, the name of your key vault is expanded to the key vault URI, in the format "https://<your-key-vault-name>.vault.azure.net". Este exemplo está a usar a classe 'DefaultAzureCredential()' que permite usar o mesmo código em diferentes ambientes com diferentes opções para fornecer identidade.This example is using the 'DefaultAzureCredential()' class, which allows to use the same code across different environments with different options to provide identity. Para mais informações, consulte a Autenticação Credencial Azure Padrão.For more information, see Default Azure Credential Authentication.

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 chaveCreate a key

Agora que a sua aplicação é autenticada, pode criar uma chave no cofre da chave utilizando o keyClient.createKey método.Now that your application is authenticated, you can create a key in your key vault using the keyClient.createKey method. Isto requer um nome para a chave e um tipo chave- atribuímos o valor "myKey" à keyName variável e usamos um RSA KeyType nesta amostra.This requires a name for the key and a key type -- we've assigned the value "myKey" to the keyName variable and use a an RSA KeyType in this sample.

keyClient.createKey(keyName, KeyType.RSA);

Pode verificar se a chave foi definida com o comando de teclado az keyvault:You can verify that the key has been set with the az keyvault key show command:

az keyvault key show --vault-name <your-unique-key-vault-name> --name myKey

Recuperar uma chaveRetrieve a key

Agora pode recuperar a chave previamente criada com o keyClient.getKey método.You can now retrieve the previously created key with the keyClient.getKey method.

KeyVaultKey retrievedKey = keyClient.getKey(keyName);

Pode agora aceder aos detalhes da chave recuperada com operações retrievedKey.getProperties retrievedKey.getKeyOperations como, etc.You can now access the details of the retrieved key with operations like retrievedKey.getProperties, retrievedKey.getKeyOperations, etc.

Eliminar uma chaveDelete a key

Finalmente, vamos apagar a chave do cofre com o keyClient.beginDeleteKey método.Finally, let's delete the key from your key vault with the keyClient.beginDeleteKey method.

A eliminação chave é uma operação de longa duração, para a qual pode sondar o seu progresso ou esperar que esteja concluída.Key deletion is a long running operation, for which you can poll its progress or wait for it to complete.

SyncPoller<DeletedKey, Void> deletionPoller = keyClient.beginDeleteKey(keyName);
deletionPoller.waitForCompletion();

Pode verificar se a chave foi eliminada com o comando de teclado az keyvault:You can verify that the key has been deleted with the az keyvault key show command:

az keyvault key show --vault-name <your-unique-key-vault-name> --name myKey

Limpar os recursosClean up resources

Quando já não for necessário, pode utilizar o Azure CLI ou o Azure PowerShell para remover o cofre da chave e o grupo de recursos correspondente.When no longer needed, you can use the Azure CLI or Azure PowerShell to remove your key vault and the corresponding resource group.

az group delete -g "myResourceGroup"
Remove-AzResourceGroup -Name "myResourceGroup"

Código de exemploSample code

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.");
    }
}

Passos seguintesNext steps

Neste quickstart criaste um cofre chave, criaste uma chave, recuperaste-a e depois apagaste-a.In this quickstart you created a key vault, created a key, retrieved it, and then deleted it. Para saber mais sobre o Key Vault e como integrá-lo com as suas aplicações, continue para os artigos abaixo.To learn more about Key Vault and how to integrate it with your applications, continue on to the articles below.