Rychlý Start: Azure Key Vaulta tajná Klientská knihovna pro Java
Začínáme s klientskou knihovnou Azure Key Vault tajných klíčů pro Java Postupujte podle následujících kroků a nainstalujte balíček a vyzkoušejte ukázkový kód pro základní úlohy.
Další prostředky:
Požadavky
- Předplatné Azure – Vytvořte si ho zdarma.
- Java Development Kit (JDK) verze 8 nebo vyšší
- Apache Maven
- Azure CLI
V tomto rychlém startu se předpokládá, že používáte Azure CLI a Apache Maven v okně terminálu pro Linux.
Nastavení
V tomto rychlém startu se k ověření uživatele do služeb Azure používá knihovna Azure identity s rozhraním příkazového řádku Azure. vývojáři můžou k ověřování hovorů použít taky Visual Studio nebo Visual Studio Code, další informace najdete v tématu ověření klienta pomocí klientské knihovny Azure Identity.
Přihlášení k Azure
Spusťte příkaz
login.az loginPokud rozhraní příkazového řádku může otevřít výchozí prohlížeč, bude to mít za následek a načíst přihlašovací stránku Azure.
V opačném případě otevřete stránku prohlížeče na adrese https://aka.ms/devicelogin a zadejte autorizační kód zobrazený v terminálu.
Přihlaste se pomocí přihlašovacích údajů vašeho účtu v prohlížeči.
Vytvoření nové konzolové aplikace v jazyce Java
V okně konzoly pomocí mvn příkazu vytvořte novou konzolovou aplikaci v jazyce Java s názvem akv-secrets-java .
mvn archetype:generate -DgroupId=com.keyvault.secrets.quickstart
-DartifactId=akv-secrets-java
-DarchetypeArtifactId=maven-archetype-quickstart
-DarchetypeVersion=1.4
-DinteractiveMode=false
Výstup z generování projektu bude vypadat přibližně takto:
[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] ------------------------------------------------------------------------
Změňte adresář na nově vytvořenou akv-secrets-java/ složku.
cd akv-secrets-java
Instalace balíčku
Otevřete pom.xml soubor v textovém editoru. Přidejte následující prvky závislosti do skupiny závislostí.
<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>
Vytvoření skupiny prostředků a trezoru klíčů
V tomto rychlém startu se používá předem vytvořený trezor klíčů Azure. Trezor klíčů můžete vytvořit podle postupu v rychlém startu k Azure CLI,Azure PowerShell rychlém startunebo Azure Portal rychlého startu.
Alternativně můžete jednoduše spustit Azure CLI nebo Azure PowerShell příkazy níže.
Důležité
Každý trezor klíčů musí mít jedinečný název. V <your-unique-keyvault-name> následujících příkladech nahraďte názvem vašeho trezoru klíčů.
az group create --name "myResourceGroup" -l "EastUS"
az keyvault create --name "<your-unique-keyvault-name>" -g "myResourceGroup"
Udělení přístupu k trezoru klíčů
Vytvořte zásady přístupu pro váš Trezor klíčů, který uděluje oprávnění tajnosti k vašemu uživatelskému účtu.
az keyvault set-policy --name <your-key-vault-name> --upn user@domain.com --secret-permissions delete get list set purge
Nastavení proměnných prostředí
Tato aplikace používá název trezoru klíčů jako proměnnou prostředí s názvem KEY_VAULT_NAME .
Windows
set KEY_VAULT_NAME=<your-key-vault-name>
Windows PowerShell
$Env:KEY_VAULT_NAME="<your-key-vault-name>"
macOS nebo Linux
export KEY_VAULT_NAME=<your-key-vault-name>
Objektový model
Klientská knihovna Azure Key Vault tajných klíčů pro Java umožňuje správu tajných kódů. V části Příklady kódu se dozvíte, jak vytvořit klienta, nastavit tajný klíč, načíst tajný klíč a odstranit tajný klíč.
Celá Konzolová aplikace je níže.
Příklady kódu
Přidat direktivy
Do horní části kódu přidejte následující direktivy:
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;
Ověření a vytvoření klienta
V tomto rychlém startu se přihlášený uživatel používá k ověření Key Vault, což je upřednostňovaná metoda pro místní vývoj. Pro aplikace nasazené do Azure by se měla App Service nebo virtuální počítač přiřadit spravovaná identita. Další informace najdete v tématu Přehled spravované identity.
V následujícím příkladu se název trezoru klíčů rozšíří do identifikátoru URI trezoru klíčů ve formátu https://\<your-key-vault-name\>.vault.azure.net . Tento příklad používá třídu ' DefaultAzureCredential () ' , která umožňuje použít stejný kód v různých prostředích s různými možnostmi k poskytnutí identity. Další informace najdete v tématu výchozí ověřování pověření Azure.
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();
Uložení tajného klíče
Teď, když je vaše aplikace ověřená, můžete do trezoru klíčů vložit tajný klíč pomocí secretClient.setSecret metody. To vyžaduje název tajného kódu – k secretName proměnné v této ukázce přiřadíme hodnotu "mySecret".
secretClient.setSecret(new KeyVaultSecret(secretName, secretValue));
Můžete ověřit, jestli je tajný kód nastavený pomocí příkazu AZ klíčů trezor tajného zobrazení :
az keyvault secret show --vault-name <your-unique-key-vault-name> --name mySecret
Načtení tajného kódu
Nyní můžete načíst dříve nastavený tajný klíč pomocí secretClient.getSecret metody.
KeyVaultSecret retrievedSecret = secretClient.getSecret(secretName);
Přístup k hodnotě načteného tajného kódu teď můžete získat pomocí retrievedSecret.getValue() .
Odstranění tajného klíče
Nakonec klíč odstraníme z vašeho trezoru klíčů pomocí secretClient.beginDeleteSecret metody.
Odstranění tajného klíče je dlouhodobá operace, pro kterou můžete dotazovat svůj průběh nebo počkat na jeho dokončení.
SyncPoller<DeletedSecret, Void> deletionPoller = secretClient.beginDeleteSecret(secretName);
deletionPoller.waitForCompletion();
Můžete ověřit, zda byl tajný klíč odstraněn pomocí příkazu AZ klíčů trezor tajné zobrazení :
az keyvault secret show --vault-name <your-unique-key-vault-name> --name mySecret
Vyčištění prostředků
pokud už je nepotřebujete, můžete k odebrání trezoru klíčů a odpovídající skupiny prostředků použít Azure CLI nebo Azure PowerShell.
az group delete -g "myResourceGroup"
Remove-AzResourceGroup -Name "myResourceGroup"
Ukázka kódu
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.");
}
}
Další kroky
V tomto rychlém startu jste vytvořili Trezor klíčů, uložili tajný klíč, načetli ho a pak ho odstranili. Další informace o Key Vault a o tom, jak je integrovat s vašimi aplikacemi, najdete dál v článcích níže.
- Přečtěte si přehled Azure Key Vault
- Další informace najdete v příručce pro vývojáře Azure Key Vault .
- Jak zabezpečit přístup k trezoru klíčů