Démarrage rapide : Bibliothèque de client de secrets Azure Key Vault pour JavaQuickstart: Azure Key Vault Secret client library for Java

Bien démarrer avec la bibliothèque de client de secrets Azure Key Vault pour Java.Get started with the Azure Key Vault Secret client library for Java. Suivez les étapes ci-dessous pour installer le package et tester un exemple de code relatif à des tâches de base.Follow the steps below to install the package and try out example code for basic tasks.

Ressources supplémentaires :Additional resources:

PrérequisPrerequisites

Ce guide de démarrage rapide suppose que vous exécutez Azure CLI et Apache Maven dans une fenêtre de terminal Linux.This quickstart assumes you are running Azure CLI and Apache Maven in a Linux terminal window.

ConfigurationSetting up

Ce guide de démarrage rapide utilise la bibliothèque Azure Identity avec Azure CLI pour authentifier l’utilisateur auprès des services Azure.This quickstart is using the Azure Identity library with Azure CLI to authenticate user to Azure Services. Les développeurs peuvent également utiliser Visual Studio ou Visual Studio Code pour authentifier leurs appels. Pour plus d’informations, consultez Authentifier le client avec la bibliothèque de client 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.

Connexion à AzureSign in to Azure

  1. Exécutez la commande login.Run the login command.

    az login
    

    Si l’interface CLI peut ouvrir votre navigateur par défaut, elle le fait et charge une page de connexion Azure par la même occasion.If the CLI can open your default browser, it will do so and load an Azure sign-in page.

    Sinon, ouvrez une page de navigateur à l’adresse https://aka.ms/devicelogin et entrez le code d’autorisation affiché dans votre terminal.Otherwise, open a browser page at https://aka.ms/devicelogin and enter the authorization code displayed in your terminal.

  2. Dans le navigateur, connectez-vous avec les informations d’identification de votre compte.Sign in with your account credentials in the browser.

Créer une application console JavaCreate a new Java console app

Dans une fenêtre de console, utilisez la commande mvn pour créer une application console Java nommée akv-secrets-java.In a console window, use the mvn command to create a new Java console app with the name akv-secrets-java.

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

Le résultat de la génération du projet doit ressembler à ceci :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.secrets.quickstart
[INFO] Parameter: artifactId, Value: akv-secrets-java
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: package, Value: com.keyvault.secrets.quickstart
[INFO] Parameter: packageInPathFormat, Value: com/keyvault/quickstart
[INFO] Parameter: package, Value: com.keyvault.secrets.quickstart
[INFO] Parameter: groupId, Value: com.keyvault.secrets.quickstart
[INFO] Parameter: artifactId, Value: akv-secrets-java
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Project created from Archetype in dir: /home/user/quickstarts/akv-secrets-java
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  38.124 s
[INFO] Finished at: 2019-11-15T13:19:06-08:00
[INFO] ------------------------------------------------------------------------

Changez de répertoire pour le dossier akv-secrets-java/ créé.Change your directory to the newly created akv-secrets-java/ folder.

cd akv-secrets-java

Installer le packageInstall the package

Ouvrez le fichier pom.xml dans votre éditeur de texte.Open the pom.xml file in your text editor. Ajoutez les éléments de dépendance suivants au groupe de dépendances.Add the following dependency elements to the group of dependencies.

    <dependency>
      <groupId>com.azure</groupId>
      <artifactId>azure-security-keyvault-secrets</artifactId>
      <version>4.2.3</version>
    </dependency>

    <dependency>
      <groupId>com.azure</groupId>
      <artifactId>azure-identity</artifactId>
      <version>1.2.0</version>
    </dependency>

Créer un groupe de ressources et un coffre de clésCreate a resource group and key vault

Ce guide de démarrage rapide utilise un coffre de clés Azure créé au préalable.This quickstart uses a pre-created Azure key vault. Vous pouvez créer un coffre de clés en suivant les étapes décrites dans le guide de démarrage rapide d’Azure CLI, le guide de démarrage rapide d’Azure PowerShell ou le guide de démarrage rapide du portail Azure.You can create a key vault by following the steps in the Azure CLI quickstart, Azure PowerShell quickstart, or Azure portal quickstart.

Sinon, vous pouvez simplement exécuter les commandes Azure CLI ou Azure PowerShell ci-dessous.Alternatively, you can simply run the Azure CLI or Azure PowerShell commands below.

Importante

Chaque coffre de clés doit avoir un nom unique.Each key vault must have a unique name. Remplacez par le nom de votre coffre de clés dans les exemples suivants.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"

Accorder l’accès à votre coffre de clésGrant access to your key vault

Créez une stratégie d’accès pour votre coffre de clés, qui accorde des autorisations de secret à votre compte d’utilisateur.Create an access policy for your key vault that grants secret permissions to your user account.

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

Définir des variables d’environnementSet environment variables

Cette application utilise le nom de votre coffre de clés en tant que variable d’environnement appelée 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>

Modèle objetObject model

La bibliothèque de client de secrets Azure Key Vault pour Java vous permet de gérer des secrets.The Azure Key Vault Secret client library for Java allows you to manage secrets. La section Exemples de code montre comment créer un client, et définir, récupérer et supprimer un secret.The Code examples section shows how to create a client, set a secret, retrieve a secret, and delete a secret.

L’application console complète est ci-dessous.The entire console app is below.

Exemples de codeCode examples

Ajouter des directivesAdd directives

Ajoutez les directives suivantes en haut de votre code :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.secrets.SecretClient;
import com.azure.security.keyvault.secrets.SecretClientBuilder;
import com.azure.security.keyvault.secrets.models.DeletedSecret;
import com.azure.security.keyvault.secrets.models.KeyVaultSecret;

Authentifier et créer un clientAuthenticate and create a client

Dans ce guide de démarrage rapide, un utilisateur connecté est utilisé pour l’authentification auprès de Key Vault, qui est la méthode recommandée pour le développement local.In this quickstart, a logged in user is used to authenticate to Key Vault, which is preferred method for local development. Pour les applications déployées sur Azure, une identité managée doit être affectée à un service d’application ou à une machine virtuelle.For applications deployed to Azure, a Managed Identity should be assigned to an App Service or Virtual Machine. Pour plus d’informations, consultez Vue d’ensemble des identités managées.For more information, see Managed Identity Overview.

Dans l’exemple ci-dessous, le nom de votre coffre de clés est étendu à l’URI du coffre de clés, au format « 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". Cet exemple utilise la classe « DefaultAzureCredential() », qui permet d’utiliser le même code dans différents environnements avec des options différentes pour fournir une identité.This example is using the 'DefaultAzureCredential()' class, which allows to use the same code across different environments with different options to provide identity. Pour plus d’informations, consultez Authentification des informations d’identification Azure par défaut.For more information, see Default Azure Credential Authentication.

String keyVaultName = System.getenv("KEY_VAULT_NAME");
String keyVaultUri = "https://" + keyVaultName + ".vault.azure.net";

SecretClient secretClient = new SecretClientBuilder()
    .vaultUrl(keyVaultUri)
    .credential(new DefaultAzureCredentialBuilder().build())
    .buildClient();

Enregistrer un secretSave a secret

Maintenant que votre application est authentifiée, vous pouvez placer un secret dans votre coffre en utilisant la méthode secretClient.setSecret.Now that your application is authenticated, you can put a secret into your key vault using the secretClient.setSecret method. Ceci nécessite un nom pour la clé secrète : dans cet exemple, nous avons affecté la valeur « mySecret » à la variable secretName.This requires a name for the secret -- we've assigned the value "mySecret" to the secretName variable in this sample.

secretClient.setSecret(new KeyVaultSecret(secretName, secretValue));

Vous pouvez vérifier que le secret a été défini à l’aide de la commande az keyvault secret show :You can verify that the secret has been set with the az keyvault secret show command:

az keyvault secret show --vault-name <your-unique-key-vault-name> --name mySecret

Récupérer un secretRetrieve a secret

Vous pouvez maintenant récupérer le secret défini précédemment avec la méthode secretClient.getSecret.You can now retrieve the previously set secret with the secretClient.getSecret method.

KeyVaultSecret retrievedSecret = secretClient.getSecret(secretName);

Vous pouvez à présent accéder à la valeur du secret récupéré avec retrievedSecret.getValue().You can now access the value of the retrieved secret with retrievedSecret.getValue().

supprimer un secretDelete a secret

Enfin, nous allons supprimer le secret de votre coffre de clés avec la méthode secretClient.beginDeleteSecret.Finally, let's delete the secret from your key vault with the secretClient.beginDeleteSecret method.

La suppression d’un secret est une opération longue, dont vous pouvez interroger la progression ou attendre la fin.Secret deletion is a long running operation, for which you can poll its progress or wait for it to complete.

SyncPoller<DeletedSecret, Void> deletionPoller = secretClient.beginDeleteSecret(secretName);
deletionPoller.waitForCompletion();

Vous pouvez vérifier que le secret a été supprimé à l’aide de la commande az keyvault secret show :You can verify that the secret has been deleted with the az keyvault secret show command:

az keyvault secret show --vault-name <your-unique-key-vault-name> --name mySecret

Nettoyer les ressourcesClean up resources

Une fois que vous n’en avez plus besoin, vous pouvez supprimer votre coffre de clés et le groupe de ressources correspondant en utilisant Azure CLI ou Azure PowerShell.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"

Exemple de codeSample code

package com.keyvault.secrets.quickstart;

import java.io.Console;

import com.azure.core.util.polling.SyncPoller;
import com.azure.identity.DefaultAzureCredentialBuilder;

import com.azure.security.keyvault.secrets.SecretClient;
import com.azure.security.keyvault.secrets.SecretClientBuilder;
import com.azure.security.keyvault.secrets.models.DeletedSecret;
import com.azure.security.keyvault.secrets.models.KeyVaultSecret

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);

        SecretClient secretClient = new SecretClientBuilder()
            .vaultUrl(keyVaultUri)
            .credential(new DefaultAzureCredentialBuilder().build())
            .buildClient();

        Console con = System.console();  

        String secretName = "mySecret";

        System.out.println("Please provide the value of your secret > ");
        
        String secretValue = con.readLine();

        System.out.print("Creating a secret in " + keyVaultName + " called '" + secretName + "' with value '" + secretValue + "` ... ");

        secretClient.setSecret(new KeyVaultSecret(secretName, secretValue));

        System.out.println("done.");
        System.out.println("Forgetting your secret.");
        
        secretValue = "";
        System.out.println("Your secret's value is '" + secretValue + "'.");

        System.out.println("Retrieving your secret from " + keyVaultName + ".");

        KeyVaultSecret retrievedSecret = secretClient.getSecret(secretName);

        System.out.println("Your secret's value is '" + retrievedSecret.getValue() + "'.");
        System.out.print("Deleting your secret from " + keyVaultName + " ... ");

        SyncPoller<DeletedSecret, Void> deletionPoller = secretClient.beginDeleteSecret(secretName);
        deletionPoller.waitForCompletion();

        System.out.println("done.");
    }
}

Étapes suivantesNext steps

Dans ce guide de démarrage rapide, vous avez créé un coffre de clés et stocké, récupéré, puis supprimé un secret.In this quickstart you created a key vault, stored a secret, retrieved it, and then deleted it. Pour en savoir plus sur Key Vault et sur la manière de l’intégrer à vos applications, consultez les articles ci-dessous.To learn more about Key Vault and how to integrate it with your applications, continue on to the articles below.