Hızlı Başlangıç: java Azure Key Vault gizli dizi istemci kitaplığını oluşturma
Kullanmaya başlayın Java için Azure Key Vault Gizli Dizi istemci kitaplığıyla birlikte kullanın. Paketi yüklemek ve temel görevler için örnek kodu denemek için aşağıdaki adımları izleyin.
Ek kaynaklar:
Önkoşullar
- Azure aboneliği - ücretsiz bir abonelik oluşturun.
- Java Development Kit (JDK) sürüm 8 veya üzeri
- Apache Maven
- Azure CLI
Bu hızlı başlangıçta, Linux terminal penceresinde Azure CLI ve Apache Maven'ı çalıştırmış olduğunuz varsay gelir.
Ayarlama
Bu hızlı başlangıç, Azure Hizmetlerde kullanıcının kimliğini doğrulamak için Azure CLI ile Azure Kimlik kitaplığını kullanmaktır. Geliştiriciler çağrılarının kimliğini doğrulamak Visual Studio veya Visual Studio Code da kullanabilir. Daha fazla bilgi için bkz. Azure Identity istemci kitaplığı ile istemcinin kimliğini doğrulama.
Azure'da oturum açma
loginkomutunu çalıştırın.az loginCLI varsayılan tarayıcınızı açabilirse bunu yapar ve bir Azure oturum açma sayfası yüklemez.
Aksi takdirde, sayfasında bir tarayıcı sayfası https://aka.ms/devicelogin açın ve terminalde görüntülenen yetkilendirme kodunu girin.
Tarayıcıda hesabınızın kimlik bilgileriyle oturum açın.
Yeni bir Java konsol uygulaması oluşturma
Konsol penceresinde komutunu kullanarak mvn adıyla yeni bir Java konsol uygulaması akv-secrets-java oluşturun.
mvn archetype:generate -DgroupId=com.keyvault.secrets.quickstart
-DartifactId=akv-secrets-java
-DarchetypeArtifactId=maven-archetype-quickstart
-DarchetypeVersion=1.4
-DinteractiveMode=false
Projeyi oluşturmanın çıktısı şuna benzer:
[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] ------------------------------------------------------------------------
Dizininizi yeni oluşturulan klasörle akv-secrets-java/ değiştirme.
cd akv-secrets-java
Paketi yükleme
Metin pom.xml dosyasını açın. Aşağıdaki bağımlılık öğelerini bağımlılıklar grubuna ekleyin.
<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>
Kaynak grubu ve anahtar kasası oluşturma
Bu hızlı başlangıçta önceden oluşturulmuş bir Azure Anahtar Kasası kullanılmaktadır. Azure clı hızlı başlangıç, Azure PowerShell hızlıbaşlangıç veya Azure portal hızlı başlangıçadımlarını izleyerek bir anahtar kasası oluşturabilirsiniz.
alternatif olarak, yalnızca Azure clı veya Azure PowerShell komutlarını çalıştırabilirsiniz.
Önemli
Her Anahtar Kasası benzersiz bir ada sahip olmalıdır. <your-unique-keyvault-name>Aşağıdaki örneklerde anahtar kasanızın adıyla değiştirin.
az group create --name "myResourceGroup" -l "EastUS"
az keyvault create --name "<your-unique-keyvault-name>" -g "myResourceGroup"
Anahtar kasanıza erişim izni ver
Anahtar kasanız için kullanıcı hesabınıza gizli izinler alan bir erişim ilkesi oluşturun.
az keyvault set-policy --name <your-key-vault-name> --upn user@domain.com --secret-permissions delete get list set purge
Ortam değişkenlerini belirleme
Bu uygulama, anahtar kasası adını adlı bir ortam değişkeni olarak KEY_VAULT_NAME kullanıyor.
Windows
set KEY_VAULT_NAME=<your-key-vault-name>
Windows PowerShell
$Env:KEY_VAULT_NAME="<your-key-vault-name>"
macOS veya Linux
export KEY_VAULT_NAME=<your-key-vault-name>
Nesne modeli
Java Azure Key Vault gizli dizi istemci kitaplığı gizli dizileri yönetmenize olanak sağlar. Kod örnekleri bölümünde istemci oluşturma, gizli dizi ayarlama, gizli dizi alma ve gizli dizi silme hakkında bilgi verilmiştir.
Konsol uygulamasının tamamı aşağıda verilmiştir.
Kod örnekleri
Yönergeler ekleme
Kodunuzun en üstüne aşağıdaki yönergeleri ekleyin:
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;
İstemcinin kimliğini doğrulama ve oluşturma
Bu hızlı başlangıçta, yerel geliştirme için tercih edilen yöntem olan Key Vault için oturum açmış bir kullanıcı kullanılır. Azure'a dağıtılan uygulamalar için Yönetilen Kimlik bir sanal makineye veya App Service makineye atanabilir. Daha fazla bilgi için bkz. Yönetilen Kimliğe Genel Bakış.
Aşağıdaki örnekte, anahtar kasanızı adı biçiminde anahtar kasası URI'sı olarak https://\<your-key-vault-name\>.vault.azure.net genişletilir. Bu örnek, kimlik sağlamak için farklı seçeneklere sahip farklı ortamlarda aynı kodun kullanılmasına olanak sağlayan 'DefaultAzureCredential()' sınıfını kullanmaktır. Daha fazla bilgi için bkz. Varsayılan Azure Kimlik Bilgileri Kimlik Doğrulaması.
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();
Gizli bir gizli dosyayı kaydetme
Artık uygulama kimliği doğrulandığına göre, yöntemini kullanarak anahtar kasanıza bir gizli anahtar secretClient.setSecret koyabilirsiniz. Bu, gizli kod için bir ad gerektirir. Bu örnekteki değişkene "mySecret" secretName değerini atadık.
secretClient.setSecret(new KeyVaultSecret(secretName, secretValue));
az keyvault secret show komutuyla gizli dizinin ayar olduğunu doğruabilirsiniz:
az keyvault secret show --vault-name <your-unique-key-vault-name> --name mySecret
Gizli bilgi alma
Artık yöntemiyle önceden ayarlanmış gizli diziyi secretClient.getSecret de alın.
KeyVaultSecret retrievedSecret = secretClient.getSecret(secretName);
Artık ile alınan gizli kodun değerine retrievedSecret.getValue() erişin.
Gizli anahtarı silme
Son olarak, yöntemiyle anahtar kasanıza gizli anahtarı secretClient.beginDeleteSecret silebilirsiniz.
Gizli silme işlemi uzun süre çalışan ve ilerlemesini yoklamanız veya tamamlandıktan sonra beklemeniz gereken bir işlemdir.
SyncPoller<DeletedSecret, Void> deletionPoller = secretClient.beginDeleteSecret(secretName);
deletionPoller.waitForCompletion();
az keyvault secret show komutuyla gizli dizinin silinmiş olduğunu doğruabilirsiniz:
az keyvault secret show --vault-name <your-unique-key-vault-name> --name mySecret
Kaynakları temizleme
Artık gerekli değilken Azure CLI veya Azure PowerShell kullanarak anahtar kasanızı ve ilgili kaynak grubunu kaldırabilirsiniz.
az group delete -g "myResourceGroup"
Remove-AzResourceGroup -Name "myResourceGroup"
Örnek kod
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.");
}
}
Sonraki adımlar
Bu hızlı başlangıçta bir anahtar kasası oluşturdu, bir gizli anahtar depoladı, bunu kullandı ve sildi. Uygulamalarınızı nasıl Key Vault ve uygulamalarınız ile nasıl tümleştirebilirsiniz hakkında daha fazla bilgi edinmek için aşağıdaki makalelere geçin.
- Genel Bakış makalelerini Azure Key Vault
- Azure Key Vault geliştirici kılavuzuna bakın
- Anahtar kasasına erişimin güvenliğini sağlama