Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Rozpocznij pracę z biblioteką klienta kluczy usługi Azure Key Vault dla języka Java. Wykonaj następujące kroki, aby zainstalować pakiet i wypróbować przykładowy kod dla podstawowych zadań.
Dodatkowe zasoby:
- Kod źródłowy
- Dokumentacja referencyjna interfejsu API
- dokumentacja produktu
- Samples
Prerequisites
- Subskrypcja platformy Azure — utwórz bezpłatnie.
- Zestaw Java Development Kit (JDK) w wersji 8 lub nowszej
- Apache Maven
- "Azure CLI"
W tym przewodniku Szybki start założono, że używasz interfejsu wiersza polecenia platformy Azure i narzędzia Apache Maven w oknie terminalu systemu Linux.
Konfigurowanie
Ten przewodnik Szybki start używa biblioteki tożsamości platformy Azure z interfejsem wiersza polecenia platformy Azure do uwierzytelniania użytkownika w usługach platformy Azure. Deweloperzy mogą również używać programu Visual Studio lub Visual Studio Code do uwierzytelniania wywołań. Aby uzyskać więcej informacji, zobacz Uwierzytelnianie klienta za pomocą biblioteki klienta tożsamości platformy Azure.
Logowanie się do platformy Azure
Uruchom polecenie
login.az loginJeśli interfejs wiersza polecenia może otworzyć domyślną przeglądarkę, zrobi to i załaduje stronę logowania platformy Azure.
W przeciwnym razie otwórz stronę przeglądarki pod https://aka.ms/devicelogin adresem i wprowadź kod autoryzacji wyświetlany w terminalu.
Zaloguj się w przeglądarce przy użyciu poświadczeń swojego konta.
Tworzenie nowej aplikacji konsolowej Java
W oknie konsoli użyj mvn polecenia , aby utworzyć nową aplikację konsolową Java o nazwie akv-keys-java.
mvn archetype:generate -DgroupId=com.keyvault.keys.quickstart
-DartifactId=akv-keys-java
-DarchetypeArtifactId=maven-archetype-quickstart
-DarchetypeVersion=1.4
-DinteractiveMode=false
Dane wyjściowe generowania projektu będą wyglądać mniej więcej tak:
[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] ------------------------------------------------------------------------
Zmień katalog na nowo utworzony akv-keys-java/ folder.
cd akv-keys-java
Instalowanie pakietu
Otwórz plik pom.xml w edytorze tekstów. Dodaj następujące elementy zależności do grupy zależności.
<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>
Tworzenie grupy zasobów i magazynu kluczy
W tym przewodniku Szybki start jest używany wstępnie utworzony magazyn kluczy platformy Azure. Można utworzyć magazyn kluczy, wykonując kroki opisane w tych szybkich przewodnikach startowych:
- Szybki start korzystania z interfejsu wiersza polecenia platformy Azure
- Szybki start Azure PowerShell
- Szybki start w usłudze Portal Azure
Alternatywnie możesz uruchomić te polecenia Azure CLI.
Important
Każdy magazyn kluczy musi mieć unikatową nazwę. Zastąp <ciąg your-unique-keyvault-name> nazwą magazynu kluczy w poniższych przykładach.
az group create --name "myResourceGroup" -l "EastUS"
az keyvault create --name "<your-unique-keyvault-name>" -g "myResourceGroup" --enable-rbac-authorization
Udzielanie dostępu do magazynu kluczy
Aby uzyskać uprawnienia do magazynu kluczy za pomocą kontroli dostępu opartej na rolach (RBAC), przypisz rolę do głównej nazwy użytkownika (UPN) przy użyciu polecenia az role assignment create interfejsu wiersza polecenia platformy Azure.
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>"
Zastąp <wartości upn>, <subscription-id>, <resource-group-name> i <your-unique-keyvault-name> rzeczywistymi wartościami. Nazwa UPN będzie zwykle mieć format adresu e-mail (np. username@domain.com).
Ustawianie zmiennych środowiskowych
Ta aplikacja używa nazwy magazynu kluczy jako zmiennej środowiskowej o nazwie KEY_VAULT_NAME.
Windows
set KEY_VAULT_NAME=<your-key-vault-name>
Windows PowerShell
$Env:KEY_VAULT_NAME="<your-key-vault-name>"
macOS lub Linux
export KEY_VAULT_NAME=<your-key-vault-name>
Model obiektów
Biblioteka klienta usługi Azure Key Vault dla języka Java umożliwia zarządzanie kluczami. W sekcji Przykłady kodu pokazano, jak utworzyć klienta, utworzyć klucz, pobrać klucz i usunąć klucz.
Cała aplikacja konsolowa jest dostarczana w przykładowym kodzie.
Przykłady kodu
Dodawanie dyrektyw
Dodaj następujące dyrektywy na początku kodu:
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;
Uwierzytelnianie i tworzenie klienta
Żądania aplikacji do większości usług platformy Azure muszą być autoryzowane. Użycie klasy DefaultAzureCredential jest zalecaną metodą implementowania połączeń bez hasła z usługami platformy Azure w kodzie. DefaultAzureCredential obsługuje wiele metod uwierzytelniania i określa, która metoda powinna być używana w czasie wykonywania. Takie podejście umożliwia aplikacji używanie różnych metod uwierzytelniania w różnych środowiskach (lokalnych i produkcyjnych) bez implementowania kodu specyficznego dla środowiska.
W tym przewodniku Szybki start DefaultAzureCredential uwierzytelnia się w magazynie kluczy przy użyciu poświadczeń lokalnego użytkownika dewelopera zalogowanego do interfejsu wiersza polecenia platformy Azure. Po wdrożeniu aplikacji na platformie Azure ten sam DefaultAzureCredential kod może automatycznie odnajdywać i używać tożsamości zarządzanej przypisanej do usługi App Service, maszyny wirtualnej lub innych usług. Aby uzyskać więcej informacji, zobacz Omówienie tożsamości zarządzanej.
W tym przykładzie nazwa magazynu kluczy jest rozszerzana na identyfikator URI magazynu kluczy w formacie https://<your-key-vault-name>.vault.azure.net. Aby uzyskać więcej informacji na temat uwierzytelniania w magazynie kluczy, zobacz Przewodnik dewelopera.
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();
Utwórz klucz
Po uwierzytelnieniu aplikacji możesz utworzyć klucz w magazynie kluczy przy użyciu keyClient.createKey metody . Wymaga to nazwy klucza i typu klucza. Do zmiennej przypisano wartość "myKey" keyName i użyto funkcji RSA KeyType w tym przykładzie.
keyClient.createKey(keyName, KeyType.RSA);
Możesz sprawdzić, czy klucz został ustawiony za pomocą polecenia az keyvault key show :
az keyvault key show --vault-name <your-unique-key-vault-name> --name myKey
Pobieranie klucza
Teraz możesz pobrać utworzony wcześniej klucz za pomocą keyClient.getKey metody .
KeyVaultKey retrievedKey = keyClient.getKey(keyName);
Teraz możesz uzyskać dostęp do szczegółów pobranego klucza za pomocą operacji, takich jak retrievedKey.getProperties, retrievedKey.getKeyOperationsitp.
Usuń klucz
Na koniec usuńmy klucz z magazynu kluczy za pomocą keyClient.beginDeleteKey metody .
Usuwanie klucza to długotrwała operacja, dla której można sondować jego postęp lub czekać na jego zakończenie.
SyncPoller<DeletedKey, Void> deletionPoller = keyClient.beginDeleteKey(keyName);
deletionPoller.waitForCompletion();
Możesz sprawdzić, czy klucz został usunięty za pomocą polecenia az keyvault key show :
az keyvault key show --vault-name <your-unique-key-vault-name> --name myKey
Czyszczenie zasobów
Gdy magazyn kluczy i odpowiednia grupa zasobów nie będą już potrzebne, możesz użyć interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell.
az group delete -g "myResourceGroup"
Remove-AzResourceGroup -Name "myResourceGroup"
Przykładowy kod
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.");
}
}
Dalsze kroki
W tym przewodniku Szybki start utworzono magazyn kluczy, utworzono klucz, pobrano go, a następnie usunięto go. Aby dowiedzieć się więcej o usłudze Key Vault i sposobie jej integracji z aplikacjami, przejdź do tych artykułów.
- Przeczytaj omówienie usługi Azure Key Vault
- Przeczytaj omówienie zabezpieczeń usługi Key Vault
- Zobacz przewodnik dewelopera usługi Azure Key Vault
- Jak zabezpieczyć dostęp do magazynu kluczy