Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Začínáme s klientskou knihovnou Azure Key Vault Certificate pro Java Podle následujících kroků nainstalujte balíček a vyzkoušejte ukázkový kód pro základní úlohy.
Tip
Pokud pracujete s prostředky Azure Key Vault Certifikáty v aplikaci Spring, doporučujeme zvážit Spring Cloud Azure jako alternativu. Spring Cloud Azure je opensourcový projekt, který poskytuje bezproblémovou integraci Spring se službami Azure. Další informace o Azure Spring Cloudu a příklad použití certifikátů Key Vault najdete v tématu Enable HTTPS ve Spring Bootu s certifikáty Azure Key Vault.
Další prostředky:
- Zdrojový kód
- Referenční dokumentace k rozhraní API
- Dokumentace produktu
- Samples
Prerequisites
- 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 Linuxu.
Instalace
Tento rychlý start používá knihovnu identit Azure s Azure CLI k ověření uživatele ve službě Azure Services. Vývojáři také můžou k ověření volání použít Visual Studio nebo Visual Studio Code. Další informace najdete v tématu Authenticate klienta pomocí klientské knihovny Azure Identita.
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č, provede to a načte Azure přihlašovací stránku.
V opačném případě otevřete stránku prohlížeče na 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 Java
V okně konzoly pomocí příkazu mvn vytvořte novou konzolovou aplikaci Java s názvem akv-certificates-java.
mvn archetype:generate -DgroupId=com.keyvault.certificates.quickstart
-DartifactId=akv-certificates-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.certificates.quickstart
[INFO] Parameter: artifactId, Value: akv-certificates-java
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: package, Value: com.keyvault.certificates.quickstart
[INFO] Parameter: packageInPathFormat, Value: com/keyvault/quickstart
[INFO] Parameter: package, Value: com.keyvault.certificates.quickstart
[INFO] Parameter: groupId, Value: com.keyvault.certificates.quickstart
[INFO] Parameter: artifactId, Value: akv-certificates-java
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Project created from Archetype in dir: /home/user/quickstarts/akv-certificates-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-certificates-java/ složku.
cd akv-certificates-java
Nainstalujte balíček .
Otevřete soubor pom.xml v textovém editoru. Do skupiny závislostí přidejte následující prvky závislostí.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-security-keyvault-certificates</artifactId>
<version>4.8.6</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.18.2</version>
</dependency>
Vytvořte skupinu prostředků a trezor klíčů
V tomto rychlém startu se používá předem vytvořený trezor klíčů Azure. Pro vytvoření úložiště klíčů postupujte podle kroků uvedených v těchto rychlých úvodech.
- rychlý start Azure CLI
- Azure PowerShell průvodce rychlým startem
- rychlý průvodce portálem Azure
Případně můžete tyto příkazy Azure CLI spustit.
Important
Každý trezor klíčů musí mít jedinečný název. Nahraďte <vault-name> názvem trezoru klíčů v následujících příkladech.
az group create --name "myResourceGroup" -l "EastUS"
az keyvault create --name "<vault-name>" -g "myResourceGroup" --enable-rbac-authorization true
Udělení přístupu k trezoru klíčů
Pokud chcete získat oprávnění k trezoru klíčů prostřednictvím Role-Based Access Control (RBAC), přiřaďte roli k "User Principal Name" (UPN) pomocí příkazu Azure CLI az role assignment create.
az role assignment create --role "Key Vault Certificates Officer" --assignee "<upn>" --scope "/subscriptions/<subscription-id>/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/<vault-name>"
Nahraďte hodnoty <upn>, <subscription-id> a <vault-name> skutečnými hodnotami. Pokud jste použili jiný název skupiny prostředků, nahraďte také myResourceGroup. Název uživatele (UPN) bude obvykle ve formátu e-mailové adresy (např. username@domain.com).
Nastavení proměnných prostředí
Tato aplikace používá název trezoru klíčů jako proměnnou prostředí nazvanou KEY_VAULT_NAME.
Windows
set KEY_VAULT_NAME=<vault-name>
Windows PowerShell
$Env:KEY_VAULT_NAME="<vault-name>"
macOS nebo Linux
export KEY_VAULT_NAME=<vault-name>
Objektový model
Klientská knihovna Azure Key Vault Certificate pro Java umožňuje spravovat certifikáty. Sekce Ukázky kódu ukazuje, jak vytvořit klienta, vytvořit certifikát, certifikát načíst a certifikát odstranit.
Celá konzolová aplikace je níže.
Příklady kódu
Přidání direktiv
Na začátek 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.certificates.CertificateClient;
import com.azure.security.keyvault.certificates.CertificateClientBuilder;
import com.azure.security.keyvault.certificates.models.CertificateOperation;
import com.azure.security.keyvault.certificates.models.CertificatePolicy;
import com.azure.security.keyvault.certificates.models.DeletedCertificate;
import com.azure.security.keyvault.certificates.models.KeyVaultCertificate;
import com.azure.security.keyvault.certificates.models.KeyVaultCertificateWithPolicy;
Ověření a vytvoření klienta
Žádosti aplikací na většinu Azure služeb musí být autorizované. Použití DefaultAzureCredential je doporučený postup pro implementaci připojení bez hesel do Azure služeb v kódu.
DefaultAzureCredential podporuje více metod ověřování a určuje, která metoda se má použít za běhu. Tento přístup umožňuje vaší aplikaci používat různé metody ověřování v různých prostředích (místní a produkční) bez implementace kódu specifického pro prostředí.
V tomto rychlém startu se DefaultAzureCredential ověřuje v trezoru klíčů pomocí přihlašovacích údajů místního vývojového uživatele přihlášeného k Azure CLI. Když je aplikace nasazená do Azure, může stejný kód DefaultAzureCredential automaticky zjišťovat a používat spravovanou identitu přiřazenou ke službě App Service, virtuálnímu počítači nebo jiným službám. Podrobnosti naleznete v Přehled spravované identity.
V tomto příkladu se název trezoru klíčů převede na URI trezoru klíčů ve formátu https://<your-key-vault-name>.vault.azure.net. Další informace o ověřování do služby Key Vault najdete v Příručce pro vývojáře.
String keyVaultName = System.getenv("KEY_VAULT_NAME");
String keyVaultUri = "https://" + keyVaultName + ".vault.azure.net";
CertificateClient certificateClient = new CertificateClientBuilder()
.vaultUrl(keyVaultUri)
.credential(new DefaultAzureCredentialBuilder().build())
.buildClient();
Uložení certifikátu
Teď, když je vaše aplikace ověřená, můžete v trezoru klíčů vytvořit certifikát pomocí této certificateClient.beginCreateCertificate metody. To vyžaduje název certifikátu a zásady certifikátu – hodnota myCertificate je přiřazena proměnné certificateName v této ukázce a použije se výchozí zásada.
Vytvoření certifikátu je dlouhotrvající operace, pro kterou můžete sledovat jeho průběh nebo počkat, až se dokončí.
Poznámka:
Tento rychlý start vytvoří certifikát podepsaný svým držitelem pro demonstrační účely. V případě produkčních úloh integrujte Key Vault s důvěryhodnou certifikační autoritou. Viz Bezpečte si certifikáty Azure Key Vault.
SyncPoller<CertificateOperation, KeyVaultCertificateWithPolicy> certificatePoller =
certificateClient.beginCreateCertificate(certificateName, CertificatePolicy.getDefault());
certificatePoller.waitForCompletion();
Jakmile se vytvoření dokončí, můžete certifikát získat pomocí následujícího volání:
KeyVaultCertificate createdCertificate = certificatePoller.getFinalResult();
Načtení certifikátu
Teď můžete načíst dříve vytvořený certifikát pomocí metody certificateClient.getCertificate.
KeyVaultCertificate retrievedCertificate = certificateClient.getCertificate(certificateName);
Teď můžete přistupovat k podrobnostem načteného certifikátu pomocí operací, jako je retrievedCertificate.getName, retrievedCertificate.getProperties, atd., stejně jako k jeho obsahu retrievedCertificate.getCer.
Odstranění certifikátu
Nakonec smažme certifikát z trezoru klíčů pomocí certificateClient.beginDeleteCertificate metody, což je také dlouhotrvající operace.
SyncPoller<DeletedCertificate, Void> deletionPoller = certificateClient.beginDeleteCertificate(certificateName);
deletionPoller.waitForCompletion();
Vyčištění prostředků
Pokud už nepotřebujete, můžete pomocí Azure CLI nebo Azure PowerShell odebrat trezor klíčů a odpovídající skupinu prostředků.
az group delete -g "myResourceGroup"
Remove-AzResourceGroup -Name "myResourceGroup"
Ukázkový kód
package com.keyvault.certificates.quickstart;
import com.azure.core.util.polling.SyncPoller;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.security.keyvault.certificates.CertificateClient;
import com.azure.security.keyvault.certificates.CertificateClientBuilder;
import com.azure.security.keyvault.certificates.models.CertificateOperation;
import com.azure.security.keyvault.certificates.models.CertificatePolicy;
import com.azure.security.keyvault.certificates.models.DeletedCertificate;
import com.azure.security.keyvault.certificates.models.KeyVaultCertificate;
import com.azure.security.keyvault.certificates.models.KeyVaultCertificateWithPolicy;
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 kv uri = %s \n", keyVaultName, keyVaultUri);
CertificateClient certificateClient = new CertificateClientBuilder()
.vaultUrl(keyVaultUri)
.credential(new DefaultAzureCredentialBuilder().build())
.buildClient();
String certificateName = "myCertificate";
System.out.print("Creating a certificate in " + keyVaultName + " called '" + certificateName + " ... ");
SyncPoller<CertificateOperation, KeyVaultCertificateWithPolicy> certificatePoller =
certificateClient.beginCreateCertificate(certificateName, CertificatePolicy.getDefault());
certificatePoller.waitForCompletion();
System.out.print("done.");
System.out.println("Retrieving certificate from " + keyVaultName + ".");
KeyVaultCertificate retrievedCertificate = certificateClient.getCertificate(certificateName);
System.out.println("Your certificate's ID is '" + retrievedCertificate.getId() + "'.");
System.out.println("Deleting your certificate from " + keyVaultName + " ... ");
SyncPoller<DeletedCertificate, Void> deletionPoller = certificateClient.beginDeleteCertificate(certificateName);
deletionPoller.waitForCompletion();
System.out.print("done.");
}
}
Další kroky
V tomto rychlém startu jste vytvořili trezor klíčů, vytvořili certifikát, načetli ho a pak ho odstranili. Další informace o Key Vault a o tom, jak ho integrovat s vašimi aplikacemi, najdete v následujících článcích.
- Přečtěte si Přehled Azure Key Vault
- Přečtěte si příručku pro vývojáře Azure Key Vault
- Jak zabezpečit přístup k trezoru klíčů
- Kontrola osvědčených postupů zabezpečení specifických pro certifikáty