Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ismerkedés a Java Azure Key Vault Tanúsítvány ügyfélkódtárával. Az alábbi lépéseket követve telepítse a csomagot, és próbálja ki az alapműveletek példakódját.
Tip
Ha egy Spring-alkalmazásban Azure Key Vault Tanúsítványokkal kapcsolatos erőforrásokkal dolgozik, javasoljuk, hogy alternatívaként fontolja meg a Spring Cloud Azure használatát. A Spring Cloud Azure egy nyílt forráskódú projekt, amely zökkenőmentes Spring-integrációt biztosít Azure szolgáltatásokkal. A Spring Cloud-Azure és a Key Vault-tanúsítványok használatával történő példa megtekintéséhez tekintse meg a Enable HTTPS-t a Spring Bootban Azure Key Vault tanúsítványokkal.
További források:
- Forráskód
- API-referenciadokumentáció
- termékdokumentáció
- Samples
Prerequisites
- Egy Azure előfizetés – ingyenes előfizetés.
- Java Fejlesztői készlet (JDK) 8- vagy újabb verzió
- Apache Maven
- Azure CLI
Ez a rövid útmutató feltételezi, hogy Azure CLI és Apache Maven linuxos terminálablakban fut.
Előkészítés
Ez a gyorsútmutató az Azure Identity könyvtárat használja az Azure CLI-vel, hogy hitelesítse a felhasználót az Azure szolgáltatások között. A fejlesztők Visual Studio vagy Visual Studio Code is használhatják hívásaik hitelesítéséhez. További információ: A Azure Identity-ügyfélkódtár használatával történő hitelesítése.
Bejelentkezés a Azure
Futtassa a
loginparancsot.az loginHa a parancssori felület meg tudja nyitni az alapértelmezett böngészőt, az meg fogja tenni, és betölt egy Azure bejelentkezési lapot.
Ellenkező esetben nyisson meg egy böngészőlapot a következő címen: https://aka.ms/devicelogin, és adja meg a terminálban megjelenő engedélyezési kódot.
A böngészőben jelentkezzen be fiókja hitelesítő adataival.
Új Java konzolalkalmazás létrehozása
A konzolablakban a mvn paranccsal hozzon létre egy új Java konzolalkalmazást akv-certificates-java néven.
mvn archetype:generate -DgroupId=com.keyvault.certificates.quickstart
-DartifactId=akv-certificates-java
-DarchetypeArtifactId=maven-archetype-quickstart
-DarchetypeVersion=1.4
-DinteractiveMode=false
A projekt generálásának kimenete a következőhöz hasonlóan fog kinézni:
[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] ------------------------------------------------------------------------
Váltson az újonnan létrehozott akv-certificates-java/ mappára.
cd akv-certificates-java
Telepítse a(z) csomagot
Nyissa meg a pom.xml fájlt a szövegszerkesztőben. Adja hozzá a következő függőségi elemeket a függőségek csoportjához.
<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>
Erőforráscsoport és kulcstár létrehozása
Ez a gyorsútmutató egy előre létrehozott Azure kulcstárat használ. Kulcstárt az alábbi gyors útmutatók lépéseinek követésével hozhat létre:
Másik lehetőségként futtathatja ezeket a Azure CLI parancsokat.
Important
Minden kulcstartónak egyedi névvel kell rendelkeznie. Cserélje le <vault-name> a kulcstartó tároló nevét az alábbi példákban.
az group create --name "myResourceGroup" -l "EastUS"
az keyvault create --name "<vault-name>" -g "myResourceGroup" --enable-rbac-authorization true
Hozzáférés biztosítása a kulcstárolóhoz
Ha szerepkör alapú hozzáférés-vezérlés (RBAC) segítségével szeretne engedélyeket szerezni a kulcstartóhoz, rendelje hozzá a szerepkört az "User Principal Name" (UPN) használatával az Azure CLI parancs az role assignment create segítségével.
az role assignment create --role "Key Vault Certificates Officer" --assignee "<upn>" --scope "/subscriptions/<subscription-id>/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/<vault-name>"
Cserélje le <upn>-t, <subscription-id>-t és <vault-name>-t a tényleges értékekre. Ha más erőforráscsoportnevet használt, cserélje le a "myResourceGroup" nevet is. Az ön UPN-je általában e-mail-cím formátumban van, például username@domain.com.
Környezeti változók beállítása
Ez az alkalmazás a kulcstartó nevét használja egy környezeti változóként, amelyet KEY_VAULT_NAME -nek neveznek.
Windows
set KEY_VAULT_NAME=<vault-name>
Windows PowerShell
$Env:KEY_VAULT_NAME="<vault-name>"
macOS vagy Linux
export KEY_VAULT_NAME=<vault-name>
Objektummodell
A Java Azure Key Vault tanúsítványügyfél-kódtára lehetővé teszi a tanúsítványok kezelését. A Példakódok szakasz bemutatja, hogyan hozhat létre klienst, tanúsítványt, hogyan kérdezhet le egy tanúsítványt, és hogyan törölhet egy tanúsítványt.
A teljes konzolalkalmazás alább látható.
Példakódok
Irányelvek hozzáadása
Adja hozzá a következő irányelveket a kód elejéhez:
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;
Ügyfél hitelesítése és létrehozása
A legtöbb Azure szolgáltatáshoz irányuló alkalmazáskéréseket engedélyezni kell. A DefaultAzureCredential használata ajánlott módszer a kódban szereplő Azure szolgáltatások jelszó nélküli kapcsolatainak implementálásához.
DefaultAzureCredential több autentikációs módszert támogat, és meghatározza, hogy melyik módszert kell használni futásidőben. Ez a megközelítés lehetővé teszi, hogy az alkalmazás különböző hitelesítési módszereket használjon különböző környezetekben (helyi és éles környezetben) környezetspecifikus kód implementálása nélkül.
Ebben a rövid útmutatóban a DefaultAzureCredential az Azure CLI-be bejelentkezett helyi fejlesztő felhasználó által használt hitelesítő adatokkal hitelesíti a Key Vaultot. Az alkalmazás Azure való üzembe helyezésekor ugyanaz a DefaultAzureCredential kód automatikusan felderítheti és használhat egy App Service-hez, virtuális géphez vagy más szolgáltatáshoz rendelt felügyelt identitást. További információkért lásd: Felügyelt identitás áttekintése.
Ebben a példában a kulcstár neve ki van bontva a kulcstár URI formátumára,
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();
Tanúsítvány mentése
Az alkalmazás hitelesítése után létrehozhat egy tanúsítványt a kulcstartóban a certificateClient.beginCreateCertificate módszerrel. Ehhez nevet kell adnia a tanúsítványnak és egy tanúsítványházirendnek – a "myCertificate" érték hozzá van rendelve a certificateName mintában szereplő változóhoz, és egy alapértelmezett házirendet használ.
A tanúsítványlétrehozás egy hosszú ideig futó művelet, amelynek során lekérdezheti annak állapotát, vagy megvárhatja, amíg befejeződik.
SyncPoller<CertificateOperation, KeyVaultCertificateWithPolicy> certificatePoller =
certificateClient.beginCreateCertificate(certificateName, CertificatePolicy.getDefault());
certificatePoller.waitForCompletion();
A tanúsítványt a létrehozás befejezése után az alábbi hívással szerezheti be:
KeyVaultCertificate createdCertificate = certificatePoller.getFinalResult();
Tanúsítvány lekérése
Most már lekérheti a korábban létrehozott tanúsítványt a certificateClient.getCertificate módszerrel.
KeyVaultCertificate retrievedCertificate = certificateClient.getCertificate(certificateName);
Mostantól hozzáférhet a lekért tanúsítvány részleteihez, például a retrievedCertificate.getName, retrievedCertificate.getProperties stb. műveletekkel, valamint annak tartalmához a retrievedCertificate.getCer segítségével.
Tanúsítvány törlése
Végül töröljük a tanúsítványt a kulcstárból a certificateClient.beginDeleteCertificate metódussal, ami szintén egy hosszú ideig futó művelet.
SyncPoller<DeletedCertificate, Void> deletionPoller = certificateClient.beginDeleteCertificate(certificateName);
deletionPoller.waitForCompletion();
Az erőforrások megtisztítása
Ha már nincs rá szükség, a Azure CLI vagy a Azure PowerShell használatával eltávolíthatja a kulcstartót és a megfelelő erőforráscsoportot.
az group delete -g "myResourceGroup"
Remove-AzResourceGroup -Name "myResourceGroup"
példakó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.");
}
}
Következő lépések
Ebben a rövid útmutatóban létrehozott egy kulcstárat, majd egy tanúsítványt, lekérte azt, és végül törölte. Ha többet szeretne megtudni a Key Vault és az alkalmazásokkal való integrálásáról, folytassa az alábbi cikkekkel.
- Az Azure Key Vault áttekintése
- Tekintse meg a Azure Key Vault fejlesztői útmutatóját
- Kulcstárhoz való hozzáférés biztosítása
- A tanúsítványokra vonatkozó ajánlott biztonsági eljárások áttekintése