Rövid útmutató: Azure Key Vault key client library for Java
Ismerkedés a Java-hoz készült Azure Key Vault key ügyfélkódtárával. Az alábbi lépések végrehajtásával telepítheti a csomagot, és kipróbálhatja az alapműveletek példakódját.
További források:
Előfeltételek
- Azure-előfizetés – hozzon létre egyet ingyenesen.
- Java Development Kit (JDK) 8- vagy újabb verzió
- Apache Maven
- Azure CLI
Ez a rövid útmutató feltételezi, hogy Az Azure CLI és az Apache Maven linuxos terminálablakban fut.
Beállítás
Ez a rövid útmutató az Azure Identity Library és az Azure CLI használatával hitelesíti a felhasználót az Azure Servicesben. A fejlesztők a Visual Studio vagy a Visual Studio Code használatával is hitelesíthetik a hívásaikat. További információ : Az ügyfél hitelesítése az Azure Identity ügyfélkódtárával.
Bejelentkezés az Azure-ba
Futtassa a következő parancsot:
login
.az login
Ha 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, 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 a névvel akv-keys-java
.
mvn archetype:generate -DgroupId=com.keyvault.keys.quickstart
-DartifactId=akv-keys-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.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] ------------------------------------------------------------------------
Módosítsa a könyvtárat az újonnan létrehozott akv-keys-java/
mappára.
cd akv-keys-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-keys</artifactId>
<version>4.2.3</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.2.0</version>
</dependency>
Erőforráscsoport és kulcstartó létrehozása
Ez a rövid útmutató egy előre létrehozott Azure Key Vaultot használ. Kulcstartót az Azure CLI rövid útmutatójában, az Azure PowerShell gyorsútmutatójában vagy az Azure Portal rövid útmutatójában ismertetett lépések követésével hozhat létre.
Másik lehetőségként futtathatja ezeket az Azure CLI- vagy Azure PowerShell-parancsokat.
Fontos
Minden kulcstartónak egyedi névvel kell rendelkeznie. Cserélje le <az egyedi-keyvault-nevét> a kulcstartó nevére az alábbi példákban.
az group create --name "myResourceGroup" -l "EastUS"
az keyvault create --name "<your-unique-keyvault-name>" -g "myResourceGroup" --enable-rbac-authorization
Hozzáférés biztosítása a kulcstartóhoz
Ha szerepköralapú hozzáférés-vezérléssel (RBAC) szeretne engedélyeket szerezni a kulcstartóhoz, rendeljen hozzá egy szerepkört a "Felhasználónév" (UPN) szolgáltatáshoz az Az role Assignment Create Azure CLI-paranccsal.
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>"
Cserélje le <a upn>, <subscription-id>, <resource-group-name> és <your-unique-keyvault-name> értékét a tényleges értékekre. Az UPN általában egy e-mail-cím (pl. username@domain.com) formátumban lesz.
Környezeti változók beállítása
Ez az alkalmazás a key vault nevét használja egy úgynevezett KEY_VAULT_NAME
környezeti változóként.
Windows
set KEY_VAULT_NAME=<your-key-vault-name>
Windows PowerShell
$Env:KEY_VAULT_NAME="<your-key-vault-name>"
macOS vagy Linux
export KEY_VAULT_NAME=<your-key-vault-name>
Objektummodell
A Java-hoz készült Azure Key Vault-kulcs ügyfélkódtár lehetővé teszi a kulcsok kezelését. A Példakód szakasz bemutatja, hogyan hozhat létre ügyfelet, hozhat létre kulcsot, hogyan kérdezhet le és törölhet egy kulcsot.
A teljes konzolalkalmazás mintakódban van megadva.
Kódpéldák
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.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;
Ü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 osztály használata ajánlott módszer az Azure-szolgáltatások jelszó nélküli kapcsolatainak implementálásához a kódban. DefaultAzureCredential
több hitelesítési módszert támogat, és meghatározza, hogy melyik metódust 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 DefaultAzureCredential
az Azure CLI-be bejelentkezett helyi fejlesztő felhasználó hitelesítő adataival hitelesíti a Key Vaultot. Az alkalmazás Azure-ban való üzembe helyezésekor ugyanaz DefaultAzureCredential
a kód automatikusan felderítheti és használhat egy App Service-hez, virtuális géphez vagy más szolgáltatáshoz hozzárendelt felügyelt identitást. További információ: Felügyelt identitás áttekintése.
Ebben a példában a kulcstartó neve ki van bontva a key vault URI formátumára https://<your-key-vault-name>.vault.azure.net
. A Key Vaultba való hitelesítésről további információt a fejlesztői útmutatóban talál.
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();
Kulcs létrehozása
Az alkalmazás hitelesítése után a metódussal létrehozhat egy kulcsot a keyClient.createKey
kulcstartóban. Ehhez a kulcsnak nevet és kulcstípust kell megadnia. Hozzárendeltük a "myKey" értéket a változóhoz, és ebben a keyName
mintában egy RSA-t KeyType
használunk.
keyClient.createKey(keyName, KeyType.RSA);
Az az keyvault key show paranccsal ellenőrizheti, hogy a kulcs be van-e állítva:
az keyvault key show --vault-name <your-unique-key-vault-name> --name myKey
Kulcs lekérése
Most már lekérheti a korábban létrehozott kulcsot a keyClient.getKey
metódussal.
KeyVaultKey retrievedKey = keyClient.getKey(keyName);
Mostantól hozzáférhet a lekért kulcs részleteihez olyan műveletekkel, mint a retrievedKey.getProperties
, retrievedKey.getKeyOperations
stb.
Kulcs törlése
Végül töröljük a kulcsot a kulcstartóból a keyClient.beginDeleteKey
metódussal.
A kulcstörlés egy hosszú ideig futó művelet, amelynek során lekérdezheti annak állapotát, vagy megvárhatja, amíg befejeződik.
SyncPoller<DeletedKey, Void> deletionPoller = keyClient.beginDeleteKey(keyName);
deletionPoller.waitForCompletion();
Az az keyvault key show paranccsal ellenőrizheti, hogy a kulcs törölve lett-e:
az keyvault key show --vault-name <your-unique-key-vault-name> --name myKey
Az erőforrások eltávolítása
Ha már nincs rá szükség, az Azure CLI vagy az 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"
Mintakód
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.");
}
}
Következő lépések
Ebben a rövid útmutatóban létrehozott egy kulcstartót, létrehozott egy kulcsot, lekérte, majd törölte. Ha többet szeretne megtudni a Key Vaultról és az alkalmazásokkal való integrálásáról, folytassa az alábbi cikkekkel.