Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Ga aan de slag met de Azure Key Vault-clientbibliotheek voor sleutels voor Java. Volg deze stappen om het pakket te installeren en voorbeeldcode voor basistaken uit te proberen.
Aanvullende bronnen:
Prerequisites
- Een Azure-abonnement - maak er gratis een aan.
- Java Development Kit (JDK) versie 8 of hoger
- Apache Maven
- Azure-CLI
In deze quickstart wordt aangenomen dat u de Azure CLI en Apache Maven uitvoert in een Linux-terminalvenster.
Installeren
Deze quickstart maakt gebruik van de Azure Identity-bibliotheek met Azure CLI om de gebruiker te verifiëren bij Azure-services. Ontwikkelaars kunnen ook Visual Studio of Visual Studio Code gebruiken om hun oproepen te authenticeren. Voor meer informatie, raadpleeg De client authenticeren met de Azure Identity-clientbibliotheek (Engelstalig).
Aanmelden bij Azure
Voer de
loginopdracht uit.az loginAls de CLI uw standaardbrowser kan openen, gebeurt dat ook en wordt er een Azure-aanmeldingspagina geladen.
Anders opent u een browserpagina op https://aka.ms/devicelogin en voert u de autorisatiecode in die wordt weergegeven in uw terminal.
Meldt u zich in de browser aan met uw accountreferenties.
Nieuwe Java-console-app maken
Gebruik in een consolewindow de mvn opdracht om een nieuwe Java-console-app te maken met de naam akv-keys-java.
mvn archetype:generate -DgroupId=com.keyvault.keys.quickstart
-DartifactId=akv-keys-java
-DarchetypeArtifactId=maven-archetype-quickstart
-DarchetypeVersion=1.4
-DinteractiveMode=false
De uitvoer van het project ziet er ongeveer als volgt uit:
[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] ------------------------------------------------------------------------
Verander naar de zojuist aangemaakte akv-keys-java/ map.
cd akv-keys-java
Het pakket installeren
Open het bestand pom.xml in uw teksteditor. Voeg de volgende afhankelijkheidselementen toe aan de groep met afhankelijkheden.
<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>
Maak een resourcegroep en een sleutelkluis aan
In deze quickstart wordt een vooraf gemaakte Azure-sleutelkluis gebruikt. U kunt een sleutelkluis maken door de stappen in deze quickstarts te volgen:
U kunt deze Azure CLI-opdrachten ook uitvoeren.
Important
Elke sleutelkluis moet een unieke naam hebben. Vervang <uw unieke sleutelkluisnaam> door de naam van uw sleutelkluis in de volgende voorbeelden.
az group create --name "myResourceGroup" -l "EastUS"
az keyvault create --name "<your-unique-keyvault-name>" -g "myResourceGroup" --enable-rbac-authorization true
Toegang verlenen tot uw sleutelkluis
Om machtigingen te verkrijgen voor uw sleutelkluis via Role-Based Access Control (RBAC), wijst u een rol toe aan uw "User Principal Name" (UPN) met behulp van de Azure CLI-opdracht az role assignment create.
az role assignment create --role "Key Vault Crypto Officer" --assignee "<upn>" --scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.KeyVault/vaults/<your-unique-keyvault-name>"
Vervang <upn>, <subscription-id>, <resource-group-name> en <your-unique-keyvault-name> door uw werkelijke waarden. Uw UPN heeft doorgaans de indeling van een e-mailadres (bijvoorbeeld username@domain.com).
Omgevingsvariabelen instellen
In deze applicatie wordt de naam van uw sleutelkluis gebruikt als een omgevingsvariabele KEY_VAULT_NAME.
Windows
set KEY_VAULT_NAME=<vault-name>
Windows PowerShell
$Env:KEY_VAULT_NAME="<vault-name>"
macOS of Linux
export KEY_VAULT_NAME=<vault-name>
Objectmodel
Met de Azure Key Vault-clientbibliotheek voor sleutels voor Java kunt u sleutels beheren. In de sectie "Codevoorbeelden" ziet u hoe u een client maakt, een sleutel maakt, een sleutel ophaalt en een sleutel verwijdert.
De volledige console-app wordt geleverd in Voorbeeldcode.
Codevoorbeelden
Instructies toevoegen
Voeg de volgende instructies toe aan het begin van de 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;
Een client verifiëren en maken
Toepassingsaanvragen voor de meeste Azure-services moeten worden geautoriseerd. Het gebruik van de DefaultAzureCredential klasse wordt aanbevolen voor het implementeren van wachtwoordloze verbindingen met Azure-services in uw code.
DefaultAzureCredential ondersteunt meerdere verificatiemethoden en bepaalt welke methode tijdens runtime moet worden gebruikt. Met deze aanpak kan uw app verschillende verificatiemethoden gebruiken in verschillende omgevingen (lokaal versus productie) zonder omgevingsspecifieke code te implementeren.
In deze quickstart authenticeert DefaultAzureCredential zich bij de sleutelkluis met behulp van de referenties van de lokale ontwikkelgebruiker die is aangemeld bij de Azure CLI. Wanneer de toepassing naar Azure wordt uitgerold, kan dezelfde code automatisch een beheerde identiteit detecteren en gebruiken die is toegewezen aan een App Service, een virtuele machine, of andere diensten. Voor meer informatie, zie Overzicht van beheerde identiteiten.
In dit voorbeeld wordt de naam van uw sleutelkluis uitgebreid naar de sleutelkluis-URI, in de indeling https://. Zie Gids voor ontwikkelaars voor meer informatie over het authenticeren bij een sleutelkluis.
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();
Een sleutel maken
Nu uw toepassing is geverifieerd, kunt u een sleutel in uw sleutelkluis maken met behulp van de keyClient.createKey methode. Hiervoor is een naam voor de sleutel en een sleuteltype vereist. We hebben de waarde 'myKey' aan de keyName variabele toegewezen en in dit voorbeeld een RSA KeyType gebruikt.
keyClient.createKey(keyName, KeyType.RSA);
U kunt verifiëren dat de sleutel is ingesteld met het commando az keyvault key show:
az keyvault key show --vault-name <vault-name> --name myKey
Een sleutel ophalen
U kunt nu de eerder gemaakte sleutel ophalen met de keyClient.getKey methode.
KeyVaultKey retrievedKey = keyClient.getKey(keyName);
U hebt nu toegang tot de details van de opgehaalde sleutel met bewerkingen als retrievedKey.getProperties, retrievedKey.getKeyOperations, enzovoort.
Een sleutel verwijderen
Ten slotte verwijderen we de sleutel uit uw sleutelkluis met de keyClient.beginDeleteKey-methode.
Het verwijderen van een sleutel is een langdurige bewerking, waarvan u de voortgang kunt controleren of wachten totdat deze is voltooid.
SyncPoller<DeletedKey, Void> deletionPoller = keyClient.beginDeleteKey(keyName);
deletionPoller.waitForCompletion();
U kunt controleren of de sleutel is verwijderd met de az keyvault key show-opdracht.
az keyvault key show --vault-name <vault-name> --name myKey
Resources opschonen
Wanneer u de sleutelkluis en de bijbehorende resourcegroep niet meer nodig hebt, kunt u Azure CLI of Azure PowerShell gebruiken om ze te verwijderen.
az group delete -g "<resource-group>"
Remove-AzResourceGroup -Name "<resource-group>"
Voorbeeldcode
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.");
}
}
Volgende stappen
In deze quickstart hebt u een sleutelkluis gemaakt, een sleutel gemaakt, deze opgehaald en vervolgens verwijderd. Ga verder met deze artikelen voor meer informatie over Key Vault en hoe u deze integreert met uw toepassingen.
- Lees een overzicht van Azure Key Vault
- Lees de Key Vault-beveiligingsoverzicht
- Beveiligingsspecifieke best practices voor sleutels bekijken
- Zie de Azure Key Vault-ontwikkelaarsgids
- Hoe toegang tot een sleutelkluis beveiligen