Partager via


Bibliothèque d’administration Azure Key Vault pour Java

Azure Key Vault HSM managé est un service cloud entièrement managé, hautement disponible, monolocataire et conforme aux normes qui vous permet de protéger les clés de chiffrement pour vos applications cloud à l’aide de HSM validés FIPS 140-2 De niveau 3.

Les clients de la bibliothèque Azure Key Vault Administration prennent en charge les tâches d’administration telles que la sauvegarde/restauration complète et le contrôle d’accès en fonction du rôle (RBAC) au niveau des clés.

Code source | Documentation de référence de l’API | Documentation du produit | Exemples

Prise en main

Inclure le package

Inclure le fichier de nomenclature

Incluez le azure-sdk-bom dans votre projet pour qu’il soit dépendant de la version en disponibilité générale de la bibliothèque. Dans l’extrait de code suivant, remplacez l’espace réservé {bom_version_to_target} par le numéro de version. Pour en savoir plus sur la nomenclature, consultez le README BOM du KIT DE DÉVELOPPEMENT LOGICIEL AZURE.

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.azure</groupId>
            <artifactId>azure-sdk-bom</artifactId>
            <version>{bom_version_to_target}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

puis incluez la dépendance directe dans la section dépendances sans la balise de version, comme indiqué ci-dessous.

<dependencies>
    <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-security-keyvault-administration</artifactId>
    </dependency>
</dependencies>

Inclure une dépendance directe

Si vous souhaitez dépendre d’une version particulière de la bibliothèque qui n’est pas présente dans la nomenclature, ajoutez la dépendance directe à votre projet comme suit.

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-security-keyvault-administration</artifactId>
    <version>4.4.1</version>
</dependency>

Prérequis

Authentifier le client

Pour interagir avec le service Azure Key Vault, vous devez créer un instance de la classe ou de la KeyVaultAccessControlClientKeyVaultBackupClient classe, ainsi qu’une URL de coffre (que vous pouvez voir sous le nom DNS dans le portail Azure) et un objet d’informations d’identification. Les exemples présentés dans ce document utilisent un objet d’informations d’identification nommé DefaultAzureCredential, qui convient à la plupart des scénarios, notamment aux environnements de développement et de production locaux. En outre, nous vous recommandons d’utiliser une identité managée pour l’authentification dans les environnements de production.

Vous trouverez plus d’informations sur les différentes méthodes d’authentification et leurs types d’informations d’identification correspondants dans la documentation Azure Identity.

Créer un client de contrôle d’accès

Une fois que vous avez effectué la configuration d’authentification qui vous convient le mieux et que vous avez remplacé your-managed-hsm-url par l’URL de votre coffre de clés, vous pouvez créer le KeyVaultAccessControlClient:

KeyVaultAccessControlClient keyVaultAccessControlClient = new KeyVaultAccessControlClientBuilder()
    .vaultUrl("<your-managed-hsm-url>")
    .credential(new DefaultAzureCredentialBuilder().build())
    .buildClient();

REMARQUE : Pour utiliser un client asynchrone, utilisez KeyVaultAccessControlAsyncClient au lieu de KeyVaultAccessControlClient et appelez buildAsyncClient().

Créer un client de sauvegarde

Une fois que vous avez effectué la configuration d’authentification qui vous convient le mieux et que vous avez remplacé your-managed-hsm-url par l’URL de votre coffre de clés, vous pouvez créer le KeyVaultBackupClient:

KeyVaultBackupClient keyVaultBackupClient = new KeyVaultBackupClientBuilder()
    .vaultUrl("<your-managed-hsm-url>")
    .credential(new DefaultAzureCredentialBuilder().build())
    .buildClient();

REMARQUE : Pour utiliser un client asynchrone, utilisez KeyVaultBackupAsyncClient au lieu de KeyVaultBackupClient et appelez buildAsyncClient().

Créer un client de paramètres

Une fois que vous avez effectué la configuration d’authentification qui vous convient le mieux et que vous avez remplacé your-managed-hsm-url par l’URL de votre coffre de clés, vous pouvez créer le KeyVaultSettingsClient:

KeyVaultBackupClient keyVaultBackupClient = new KeyVaultBackupClientBuilder()
    .vaultUrl("<your-managed-hsm-url>")
    .credential(new DefaultAzureCredentialBuilder().build())
    .buildClient();

REMARQUE : Pour utiliser un client asynchrone, utilisez KeyVaultSettingsAsyncClient au lieu de KeyVaultSettingsClient et appelez buildAsyncClient().

Concepts clés

client Key Vault Access Control

Le client Key Vault Access Control effectue les interactions avec le service Azure Key Vault pour obtenir, définir, supprimer et répertorier les attributions de rôles, ainsi que pour répertorier les définitions de rôle. Les clients asynchrones (KeyVaultAccessControlAsyncClient) et synchrones (KeyVaultAccessControlClient) existent dans le Kit de développement logiciel (SDK) ce qui permet de sélectionner un client en fonction du cas d’usage d’une application. Une fois que vous avez initialisé une attribution de rôle, vous pouvez interagir avec les types de ressources principaux dans Key Vault.

Définition de rôle

Une définition de rôle est une collection d’autorisations. Il définit les opérations qui peuvent être effectuées, telles que la lecture, l’écriture et la suppression. Il peut également définir les opérations qui sont exclues des opérations autorisées.

Les définitions de rôle peuvent être répertoriées et spécifiées dans le cadre d’une attribution de rôle.

Attribution de rôle

Une attribution de rôle est l’association d’une définition de rôle à un principal de service. Ils peuvent être créés, listés, extraits individuellement et supprimés.

client de sauvegarde Key Vault

Le client de sauvegarde Key Vault fournit des opérations synchrones et asynchrones pour effectuer des sauvegardes de clés complètes, des restaurations de clés complètes et des restaurations de clés sélectives. Les clients asynchrones (KeyVaultBackupAsyncClient) et synchrones (KeyVaultBackupClient) existent dans le Kit de développement logiciel (SDK) ce qui permet de sélectionner un client en fonction du cas d’usage d’une application.

REMARQUE : Le magasin de stockage pour les sauvegardes de clés est un conteneur de stockage d’objets blob utilisant l’authentification par signature d’accès partagé. Pour plus d’informations sur la création d’un jeton SAS à l’aide de BlobServiceClient, consultez le fichier LISEZ-moi du client Blobs de stockage Azure. Vous pouvez également générer un jeton SAP dans Explorateur Stockage.

Opération de sauvegarde

Une opération de sauvegarde représente une opération de longue durée pour une sauvegarde de clé complète.

Opération de restauration

Une opération de restauration représente une opération de longue durée pour une restauration de clé complète et sélective.

client paramètres Key Vault

Le client Key Vault Access Control permet la manipulation des paramètres d’un compte Azure Key Vault, avec des opérations telles que : obtention, mise à jour et référencement. Les clients asynchrones (KeyVaultSettingsAsyncClient) et synchrones (KeyVaultSettingsClient) existent dans le Kit de développement logiciel (SDK) ce qui permet de sélectionner un client en fonction du cas d’usage d’une application.

Opérations de contrôle d’accès

Exemples

API synchrone

Les sections suivantes fournissent plusieurs extraits de code couvrant certaines des tâches de service Azure Key Vault Access Control les plus courantes, notamment :

Lister les définitions de rôles

Répertoriez les définitions de rôle dans le coffre de clés en appelant listRoleDefinitions().

PagedIterable<KeyVaultRoleDefinition> roleDefinitions =
    keyVaultAccessControlClient.listRoleDefinitions(KeyVaultRoleScope.GLOBAL);

roleDefinitions.forEach(roleDefinition ->
    System.out.printf("Retrieved role definition with name '%s'.%n", roleDefinition.getName()));
Créer ou mettre à jour une définition de rôle

Créer ou mettre à jour une définition de rôle dans le coffre de clés. L’exemple suivant montre comment créer une définition de rôle avec un nom généré de manière aléatoire.

KeyVaultRoleDefinition roleDefinition = keyVaultAccessControlClient.setRoleDefinition(KeyVaultRoleScope.GLOBAL);

System.out.printf("Created role definition with randomly generated name '%s' and role name '%s'.%n",
    roleDefinition.getName(), roleDefinition.getRoleName());
Récupérer une définition de rôle

Obtenir une définition de rôle existante. Pour ce faire, l’étendue et la propriété « name » d’une définition de rôle existante sont requises.

String roleDefinitionName = "<role-definition-name>";
KeyVaultRoleDefinition roleDefinition =
    keyVaultAccessControlClient.getRoleDefinition(KeyVaultRoleScope.GLOBAL, roleDefinitionName);

System.out.printf("Retrieved role definition with name '%s' and role name '%s'.%n", roleDefinition.getName(),
    roleDefinition.getRoleName());
Supprimer une définition de rôle

Supprimer une définition de rôle. Pour ce faire, l’étendue et la propriété « name » d’une définition de rôle existante sont requises.

String roleDefinitionName = "<role-definition-name>";

keyVaultAccessControlClient.deleteRoleDefinition(KeyVaultRoleScope.GLOBAL, roleDefinitionName);

System.out.printf("Deleted role definition with name '%s'.%n", roleDefinitionName);
Répertorier les attributions de rôles

Répertoriez les attributions de rôles dans le coffre de clés en appelant listRoleAssignments().

PagedIterable<KeyVaultRoleAssignment> roleAssignments =
    keyVaultAccessControlClient.listRoleAssignments(KeyVaultRoleScope.GLOBAL);

roleAssignments.forEach(roleAssignment ->
    System.out.printf("Retrieved role assignment with name '%s'.%n", roleAssignment.getName()));
Création d'une affectation de rôle

Créez une attribution de rôle dans le coffre de clés. Pour ce faire, un ID de définition de rôle et un ID d’objet de principal de service sont requis.

Un ID de définition de rôle peut être obtenu à partir de la propriété « id » de l’une des définitions de rôle retournées par listRoleDefinitions().

Consultez la section Créer/obtenir des informations d’identification pour obtenir des liens et des instructions sur la façon de générer un nouveau principal de service et d’obtenir son ID d’objet. Vous pouvez également obtenir l’ID d’objet de votre compte actuellement connecté en exécutant la commande Azure CLI suivante :

az ad signed-in-user show --query objectId
String roleDefinitionId = "<role-definition-id>";
String servicePrincipalId = "<service-principal-id>";
KeyVaultRoleAssignment roleAssignment =
    keyVaultAccessControlClient.createRoleAssignment(KeyVaultRoleScope.GLOBAL, roleDefinitionId,
        servicePrincipalId);

System.out.printf("Created role assignment with randomly generated name '%s' for principal with id '%s'.%n",
    roleAssignment.getName(), roleAssignment.getProperties().getPrincipalId());
Récupérer une attribution de rôle

Obtenir une attribution de rôle existante. Pour ce faire, la propriété « name » d’une attribution de rôle existante est requise.

String roleAssignmentName = "<role-assignment-name>";
KeyVaultRoleAssignment roleAssignment =
    keyVaultAccessControlClient.getRoleAssignment(KeyVaultRoleScope.GLOBAL, roleAssignmentName);

System.out.printf("Retrieved role assignment with name '%s'.%n", roleAssignment.getName());
Supprimer une attribution de rôle

Pour supprimer une attribution de rôle d’un principal de service, l’attribution de rôle doit être supprimée. Pour ce faire, la propriété « name » d’une attribution de rôle existante est requise.

String roleAssignmentName = "<role-assignment-name>";

keyVaultAccessControlClient.deleteRoleAssignment(KeyVaultRoleScope.GLOBAL, roleAssignmentName);

System.out.printf("Deleted role assignment with name '%s'.%n", roleAssignmentName);

API asynchrone

Les sections suivantes fournissent plusieurs extraits de code couvrant certaines des tâches de service asynchrones Azure Key Vault Access Control les plus courantes, notamment :

Remarque : Vous devez ajouter System.in.read() ou Thread.sleep() après les appels de fonction dans le main classe/thread pour permettre aux fonctions/opérations asynchrones de s’exécuter et de se terminer avant que le main’application/thread se termine.

Répertorier les définitions de rôle de manière asynchrone

Répertoriez les définitions de rôle dans le coffre de clés en appelant listRoleDefinitions().

keyVaultAccessControlAsyncClient.listRoleDefinitions(KeyVaultRoleScope.GLOBAL)
    .subscribe(roleDefinition ->
        System.out.printf("Retrieved role definition with name '%s'.%n", roleDefinition.getName()));
Créer ou mettre à jour une définition de rôle de manière asynchrone

Créez ou mettez à jour une définition de rôle dans le coffre de clés. L’exemple suivant montre comment créer une définition de rôle avec un nom généré de manière aléatoire.

keyVaultAccessControlAsyncClient.setRoleDefinition(KeyVaultRoleScope.GLOBAL)
    .subscribe(roleDefinition ->
        System.out.printf("Created role definition with randomly generated name '%s' and role name '%s'.%n",
            roleDefinition.getName(), roleDefinition.getRoleName()));
Récupérer une définition de rôle de manière asynchrone

Obtenir une définition de rôle existante. Pour ce faire, la propriété « name » d’une définition de rôle existante est requise.

String roleDefinitionName = "<role-definition-name>";

keyVaultAccessControlAsyncClient.getRoleDefinition(KeyVaultRoleScope.GLOBAL, roleDefinitionName)
    .subscribe(roleDefinition ->
        System.out.printf("Retrieved role definition with name '%s' and role name '%s'.%n",
            roleDefinition.getName(), roleDefinition.getRoleName()));
Supprimer une définition de rôle de manière asynchrone

Supprimer une définition de rôle. Pour ce faire, la propriété « name » d’une définition de rôle existante est requise.

String roleDefinitionName = "<role-definition-name>";

keyVaultAccessControlAsyncClient.deleteRoleDefinition(KeyVaultRoleScope.GLOBAL, roleDefinitionName)
    .subscribe(unused -> System.out.printf("Deleted role definition with name '%s'.%n", roleDefinitionName));
Répertorier les attributions de rôles de manière asynchrone

Répertoriez les attributions de rôles dans le coffre de clés en appelant listRoleAssignments().

keyVaultAccessControlAsyncClient.listRoleAssignments(KeyVaultRoleScope.GLOBAL)
    .subscribe(roleAssignment ->
        System.out.printf("Retrieved role assignment with name '%s'.%n", roleAssignment.getName()));
Créer une attribution de rôle de manière asynchrone

Créez une attribution de rôle dans le coffre de clés. Pour ce faire, un ID de définition de rôle et un ID d’objet principal de service sont requis.

Un ID de définition de rôle peut être obtenu à partir de la propriété « id » de l’une des définitions de rôle retournées à partir de listRoleDefinitions().

Consultez la section Créer/obtenir des informations d’identification pour obtenir des liens et des instructions sur la façon de générer un nouveau principal de service et d’obtenir son ID d’objet. Vous pouvez également obtenir l’ID d’objet de votre compte actuellement connecté en exécutant la commande Azure CLI suivante :

az ad signed-in-user show --query objectId
String roleDefinitionId = "<role-definition-id>";
String servicePrincipalId = "<service-principal-id>";

keyVaultAccessControlAsyncClient.createRoleAssignment(KeyVaultRoleScope.GLOBAL, roleDefinitionId,
    servicePrincipalId).subscribe(roleAssignment ->
        System.out.printf("Created role assignment with randomly generated name '%s' for principal with id"
            + "'%s'.%n", roleAssignment.getName(), roleAssignment.getProperties().getPrincipalId()));
Récupérer une attribution de rôle de manière asynchrone

Obtenir une attribution de rôle existante. Pour ce faire, la propriété « name » d’une attribution de rôle existante est requise.

String roleAssignmentName = "<role-assignment-name>";

keyVaultAccessControlAsyncClient.getRoleAssignment(KeyVaultRoleScope.GLOBAL, roleAssignmentName)
    .subscribe(roleAssignment ->
        System.out.printf("Retrieved role assignment with name '%s'.%n", roleAssignment.getName()));
Supprimer une attribution de rôle de manière asynchrone

Pour supprimer une attribution de rôle d’un principal de service, l’attribution de rôle doit être supprimée. Pour ce faire, la propriété « name » d’une attribution de rôle existante est requise.

String roleAssignmentName = "<role-assignment-name>";

keyVaultAccessControlAsyncClient.deleteRoleAssignment(KeyVaultRoleScope.GLOBAL, roleAssignmentName)
    .subscribe(unused ->
        System.out.printf("Deleted role assignment with name '%s'.%n", roleAssignmentName));

Opérations de sauvegarde et de restauration

Exemples

API synchrone

Les sections suivantes fournissent plusieurs extraits de code couvrant certaines des tâches clientes Azure Key Vault Backup les plus courantes, notamment :

Sauvegarder une collection de clés

Sauvegardez une collection entière de clés à l’aide beginBackup()de .

String blobStorageUrl = "https://myaccount.blob.core.windows.net/myContainer";
String sasToken = "sv=2020-02-10&ss=b&srt=o&sp=rwdlactfx&se=2021-06-17T07:13:07Z&st=2021-06-16T23:13:07Z&spr=https&sig=n5V6fnlkViEF9b7ij%2FttTHNwO2BdFIHKHppRxGAyJdc%3D";

SyncPoller<KeyVaultBackupOperation, String> backupPoller =
    keyVaultBackupClient.beginBackup(blobStorageUrl, sasToken);

PollResponse<KeyVaultBackupOperation> pollResponse = backupPoller.poll();

System.out.printf("The current status of the operation is: %s.%n", pollResponse.getStatus());

PollResponse<KeyVaultBackupOperation> finalPollResponse = backupPoller.waitForCompletion();

if (finalPollResponse.getStatus() == LongRunningOperationStatus.SUCCESSFULLY_COMPLETED) {
    String folderUrl = backupPoller.getFinalResult();

    System.out.printf("Backup completed. The storage location of this backup is: %s.%n", folderUrl);
} else {
    KeyVaultBackupOperation operation = backupPoller.poll().getValue();

    System.out.printf("Backup failed with error: %s.%n", operation.getError().getMessage());
}
Restaurer une collection de clés

Restaurez une collection entière de clés à partir d’une sauvegarde à l’aide beginRestore()de .

String folderUrl = "https://myaccount.blob.core.windows.net/myContainer/mhsm-myaccount-2020090117323313";
String sasToken = "sv=2020-02-10&ss=b&srt=o&sp=rwdlactfx&se=2021-06-17T07:13:07Z&st=2021-06-16T23:13:07Z&spr=https&sig=n5V6fnlkViEF9b7ij%2FttTHNwO2BdFIHKHppRxGAyJdc%3D";

SyncPoller<KeyVaultRestoreOperation, KeyVaultRestoreResult> backupPoller =
    keyVaultBackupClient.beginRestore(folderUrl, sasToken);

PollResponse<KeyVaultRestoreOperation> pollResponse = backupPoller.poll();

System.out.printf("The current status of the operation is: %s.%n", pollResponse.getStatus());

PollResponse<KeyVaultRestoreOperation> finalPollResponse = backupPoller.waitForCompletion();

if (finalPollResponse.getStatus() == LongRunningOperationStatus.SUCCESSFULLY_COMPLETED) {
    System.out.printf("Backup restored successfully.%n");
} else {
    KeyVaultRestoreOperation operation = backupPoller.poll().getValue();

    System.out.printf("Restore failed with error: %s.%n", operation.getError().getMessage());
}
Restaurer de manière sélective une clé

Restaurez une clé spécifique à partir d’une sauvegarde à l’aide de beginSelectiveRestore().

String folderUrl = "https://myaccount.blob.core.windows.net/myContainer/mhsm-myaccount-2020090117323313";
String sasToken = "sv=2020-02-10&ss=b&srt=o&sp=rwdlactfx&se=2021-06-17T07:13:07Z&st=2021-06-16T23:13:07Z&spr=https&sig=n5V6fnlkViEF9b7ij%2FttTHNwO2BdFIHKHppRxGAyJdc%3D";
String keyName = "myKey";

SyncPoller<KeyVaultSelectiveKeyRestoreOperation, KeyVaultSelectiveKeyRestoreResult> backupPoller =
    keyVaultBackupClient.beginSelectiveKeyRestore(folderUrl, sasToken, keyName);

PollResponse<KeyVaultSelectiveKeyRestoreOperation> pollResponse = backupPoller.poll();

System.out.printf("The current status of the operation is: %s.%n", pollResponse.getStatus());

PollResponse<KeyVaultSelectiveKeyRestoreOperation> finalPollResponse = backupPoller.waitForCompletion();

if (finalPollResponse.getStatus() == LongRunningOperationStatus.SUCCESSFULLY_COMPLETED) {
    System.out.printf("Key restored successfully.%n");
} else {
    KeyVaultSelectiveKeyRestoreOperation operation = backupPoller.poll().getValue();

    System.out.printf("Key restore failed with error: %s.%n", operation.getError().getMessage());
}

API asynchrone

Les sections suivantes fournissent plusieurs extraits de code couvrant certaines des tâches clientes asynchrones Azure Key Vault Backup les plus courantes, notamment :

Remarque : Vous devez ajouter System.in.read() ou Thread.sleep() après les appels de fonction dans le main classe/thread pour permettre aux fonctions/opérations asynchrones de s’exécuter et de se terminer avant que le main’application/thread se termine.

Sauvegarder une collection de clés de manière asynchrone

Sauvegardez une collection entière de clés à l’aide beginBackup()de .

String blobStorageUrl = "https://myaccount.blob.core.windows.net/myContainer";
String sasToken = "sv=2020-02-10&ss=b&srt=o&sp=rwdlactfx&se=2021-06-17T07:13:07Z&st=2021-06-16T23:13:07Z&spr=https&sig=n5V6fnlkViEF9b7ij%2FttTHNwO2BdFIHKHppRxGAyJdc%3D";

keyVaultBackupAsyncClient.beginBackup(blobStorageUrl, sasToken)
    .setPollInterval(Duration.ofSeconds(1)) // You can set a custom polling interval.
    .doOnError(e -> System.out.printf("Backup failed with error: %s.%n", e.getMessage()))
    .doOnNext(pollResponse ->
        System.out.printf("The current status of the operation is: %s.%n", pollResponse.getStatus()))
    .filter(pollResponse -> pollResponse.getStatus() == LongRunningOperationStatus.SUCCESSFULLY_COMPLETED)
    .flatMap(AsyncPollResponse::getFinalResult)
    .subscribe(folderUrl ->
        System.out.printf("Backup completed. The storage location of this backup is: %s.%n", folderUrl));
Restaurer une collection de clés de manière asynchrone

Restaurez une collection entière de clés à partir d’une sauvegarde à l’aide beginRestore()de .

String folderUrl = "https://myaccount.blob.core.windows.net/myContainer/mhsm-myaccount-2020090117323313";
String sasToken = "sv=2020-02-10&ss=b&srt=o&sp=rwdlactfx&se=2021-06-17T07:13:07Z&st=2021-06-16T23:13:07Z&spr=https&sig=n5V6fnlkViEF9b7ij%2FttTHNwO2BdFIHKHppRxGAyJdc%3D";

keyVaultBackupAsyncClient.beginRestore(folderUrl, sasToken)
    .setPollInterval(Duration.ofSeconds(1)) // You can set a custom polling interval.
    .doOnError(e -> System.out.printf("Restore failed with error: %s.%n", e.getMessage()))
    .doOnNext(pollResponse ->
        System.out.printf("The current status of the operation is: %s.%n", pollResponse.getStatus()))
    .filter(pollResponse -> pollResponse.getStatus() == LongRunningOperationStatus.SUCCESSFULLY_COMPLETED)
    .flatMap(AsyncPollResponse::getFinalResult)
    .subscribe(unused -> System.out.printf("Backup restored successfully.%n"));
Restaurer de manière sélective une clé de manière asynchrone

Restaurez une collection entière de clés à partir d’une sauvegarde à l’aide beginSelectiveRestore()de .

String folderUrl = "https://myaccount.blob.core.windows.net/myContainer/mhsm-myaccount-2020090117323313";
String sasToken = "sv=2020-02-10&ss=b&srt=o&sp=rwdlactfx&se=2021-06-17T07:13:07Z&st=2021-06-16T23:13:07Z&spr=https&sig=n5V6fnlkViEF9b7ij%2FttTHNwO2BdFIHKHppRxGAyJdc%3D";
String keyName = "myKey";

keyVaultBackupAsyncClient.beginSelectiveKeyRestore(folderUrl, sasToken, keyName)
    .setPollInterval(Duration.ofSeconds(1)) // You can set a custom polling interval.
    .doOnError(e -> System.out.printf("Key restoration failed with error: %s.%n", e.getMessage()))
    .doOnNext(pollResponse ->
        System.out.printf("The current status of the operation is: %s.%n", pollResponse.getStatus()))
    .filter(pollResponse -> pollResponse.getStatus() == LongRunningOperationStatus.SUCCESSFULLY_COMPLETED)
    .flatMap(AsyncPollResponse::getFinalResult)
    .subscribe(unused -> System.out.printf("Key restored successfully.%n"));

Opérations de paramètres

Exemples

API synchrone

Les sections suivantes fournissent plusieurs extraits de code couvrant certaines des tâches clientes Azure Key Vault Settings les plus courantes, notamment :

Obtenir tous les paramètres

Répertoriez tous les paramètres d’un compte Key Vault.

KeyVaultGetSettingsResult getSettingsResult = keyVaultSettingsClient.getSettings();

for (KeyVaultSetting setting : getSettingsResult.getSettings()) {
    System.out.printf("Retrieved setting '%s' with value '%s'.%n", setting.getName(), setting.asBoolean());
}
Récupérer un paramètre spécifique

Récupérer un paramètre spécifique.

String settingName = "<setting-to-get>";
KeyVaultSetting setting = keyVaultSettingsClient.getSetting(settingName);

System.out.printf("Retrieved setting '%s' with value '%s'.%n", setting.getName(),
    setting.asBoolean());
Mettre à jour un paramètre spécifique

Mettez à jour un paramètre spécifique.

String settingName = "<setting-to-update>";
KeyVaultSetting settingToUpdate = new KeyVaultSetting(settingName, true);
KeyVaultSetting updatedSetting = keyVaultSettingsClient.updateSetting(settingToUpdate);

System.out.printf("Updated setting '%s' to '%s'.%n", updatedSetting.getName(), updatedSetting.asBoolean());

API asynchrone

Les sections suivantes fournissent plusieurs extraits de code couvrant certaines des tâches clientes asynchrones azure Key Vault paramètres les plus courantes, notamment :

Obtenir tous les paramètres de manière asynchrone

Répertoriez tous les paramètres d’un compte Key Vault.

keyVaultSettingsAsyncClient.getSettings()
    .subscribe(settingsResult ->
        settingsResult.getSettings().forEach(setting ->
            System.out.printf("Retrieved setting with name '%s' and value '%s'.%n", setting.getName(),
                setting.asBoolean())));
Récupérer un paramètre spécifique de manière asynchrone

Récupérer un paramètre spécifique.

String settingName = "<setting-to-get>";

keyVaultSettingsAsyncClient.getSetting(settingName)
    .subscribe(setting ->
        System.out.printf("Retrieved setting with name '%s' and value '%s'.%n", setting.getName(),
            setting.asBoolean()));
Mettre à jour un paramètre spécifique de manière asynchrone

Mettez à jour un paramètre spécifique.

String settingName = "<setting-to-update>";
KeyVaultSetting settingToUpdate = new KeyVaultSetting(settingName, true);

keyVaultSettingsAsyncClient.updateSetting(settingToUpdate)
    .subscribe(updatedSetting ->
        System.out.printf("Updated setting with name '%s' and value '%s'.%n", updatedSetting.getName(),
            updatedSetting.asBoolean()));

Dépannage

Consultez notre guide de résolution des problèmes pour plus d’informations sur la façon de diagnostiquer différents scénarios d’échec.

Général

Les clients Azure Key Vault Access Control lèvent des exceptions. Par exemple, si vous essayez de récupérer une attribution de rôle après sa suppression, une 404 erreur est retournée, indiquant que la ressource est introuvable. Dans l’extrait suivant, l’erreur est prise en charge correctement via l’interception de l’exception et l’affichage d’informations supplémentaires sur l’erreur en question.

try {
    keyVaultAccessControlClient.getRoleAssignment(KeyVaultRoleScope.GLOBAL, "<role-assginment-name>");
} catch (HttpResponseException e) {
    System.out.println(e.getMessage());
}

Client HTTP par défaut

Toutes les bibliothèques de client utilisent par défaut le client HTTP Netty. L’ajout de la dépendance ci-dessus configure automatiquement la bibliothèque de client pour utiliser le client HTTP Netty. La configuration ou la modification du client HTTP sont détaillées dans le wiki pour clients HTTP.

Bibliothèque SSL par défaut

Toutes les bibliothèques de client utilisent par défaut la bibliothèque BoringSSL Tomcat native pour permettre des performances de niveau natif pour les opérations SSL. La bibliothèque SSL Boring est un fichier JAR Uber contenant des bibliothèques natives pour Linux / macOS / Windows, et offre de meilleures performances par rapport à l’implémentation SSL par défaut dans le JDK. Pour plus d’informations, notamment sur la réduction de la taille des dépendances, consultez la section du wiki consacrée à l’optimisation des performances.

Étapes suivantes

Plusieurs exemples Key Vault sdk Java sont disponibles dans le référentiel GitHub du SDK. Ces exemples fournissent un exemple de code pour d’autres scénarios couramment rencontrés lors de l’utilisation d’Azure Key Vault.

Documentation complémentaire

Pour obtenir une documentation plus complète sur Azure Key Vault, consultez la documentation de référence sur l’API.

Contribution

Ce projet accepte les contributions et les suggestions. La plupart des contributions vous demandent d’accepter un contrat de licence de contribution (CLA) déclarant que vous avez le droit de nous accorder, et que vous nous accordez réellement, les droits d’utilisation de votre contribution. Pour plus d’informations, visitez https://cla.microsoft.com.

Quand vous envoyez une demande de tirage (pull request), un bot CLA détermine automatiquement si vous devez fournir un contrat CLA et agrémenter la demande de tirage de façon appropriée (par exemple, avec une étiquette ou un commentaire). Suivez simplement les instructions fournies par le bot. Vous ne devez effectuer cette opération qu’une seule fois sur tous les dépôts utilisant notre contrat CLA.

Ce projet a adopté le Code de conduite Open Source de Microsoft. Pour plus d’informations, consultez les Questions fréquentes (FAQ) sur le code de conduite ou envoyez vos questions ou vos commentaires à opencode@microsoft.com.

Impressions