Öğretici: Java Spring Key Vault başvurularını kullanma
Bu öğreticide, Azure Uygulama Yapılandırması hizmetini Azure Key Vault. Uygulama Yapılandırması Key Vault, çoğu uygulama dağıtımında yan yana kullanılan tamamlayıcı hizmetlerdir.
Uygulama Yapılandırması, hizmetlerde depolanan değerlere başvurulan anahtarlar oluşturarak hizmetleri birlikte Key Vault. Uygulama Yapılandırması bu tür anahtarlar oluşturduğunda, değerlerin kendileri Key Vault değerlerin URL'lerini depolar.
Uygulama Yapılandırma'da depolanan diğer anahtarlar için olduğu Key Vault uygulama yapılandırma başvurularını almak için uygulama yapılandırma istemci sağlayıcısını kullanır. Bu durumda, Uygulama Yapılandırması'da depolanan değerler, uygulama yapılandırmasında yer alan değerlere Key Vault. Bu değerler Key Vault kimlik bilgileri değildir. İstemci sağlayıcısı anahtarları başvurular olarak Key Vault, değerlerini almak için Key Vault kullanır.
Hem Uygulama Yapılandırması hem de uygulama yapılandırması için doğru kimlik doğrulama Key Vault. İki hizmet doğrudan iletişim kurmaz.
Bu öğreticide, kodunuzda Key Vault nasıl uygulanıyor? Hızlı başlangıçlarda tanıtan web uygulaması üzerinde derlemeler hazırlar. Devam etmek için önce Uygulama Yapılandırması ile Java Spring uygulaması oluşturma işlemini tamamlar.
Bu öğreticide yer alan adımları yapmak için herhangi bir kod düzenleyicisini kullanabilirsiniz. Örneğin Visual Studio Code, macOS ve Linux işletim sistemleri için kullanılabilen platformlar arası Windows düzenleyicidir.
Bu öğreticide şunların nasıl yapıldığını öğreneceksiniz:
- Key Vault'da depolanan bir değere başvuran bir Uygulama Yapılandırma anahtarı Key Vault.
- Java Spring uygulamasından bu anahtarın değerine erişin.
Önkoşullar
- Azure aboneliği - ücretsiz bir abonelik oluşturun
- Sürüm 8'e sahip desteklenen bir Java Development Kit (JDK).
- Apache Maven sürüm 3.0 veya üzeri.
Kasa oluşturma
Uygulamanın sol üst köşesindeki Kaynak oluştur seçeneğini Azure portal:

Arama kutusuna Key Vault yazın.
Sonuçlar listesinden sol tarafta Anahtar kasaları'ı seçin.
Anahtar kasaları'da Ekle'yi seçin.
Anahtar kasası oluşturma'nın sağ tarafından aşağıdaki bilgileri sağlar:
- Abonelik seçmek için Abonelik'i seçin.
- Kaynak Grubu'nda Yeni oluştur'ı seçin ve bir kaynak grubu adı girin.
- Anahtar kasası adı içinde benzersiz bir ad gereklidir. Bu öğretici için Contoso-vault2 girin.
- Bölge açılan listesinde bir konum seçin.
Diğer Anahtar kasası oluştur seçeneklerini varsayılan değerleriyle bırakın.
Oluştur’u seçin.
Bu noktada, azure hesabınız bu yeni kasaya erişme yetkisine sahip olan tek hesaptır.

Key Vault’a gizli dizi ekleme
Kasaya gizli anahtar eklemek için yalnızca birkaç ek adıma ihtiyacınız vardır. Bu durumda, veri alımını test etmek için kullanabileceğiniz Key Vault ekleyin. İleti İleti olarak adlandırılan iletide"Hello from Key Vault" değerini depolarsınız.
- Yeni özellikler Key Vault Gizli Diziler'i seçin.
- Oluştur/İçeri Aktar'ı seçin.
- Gizli liste oluştur bölmesine aşağıdaki değerleri girin:
- Upload seçenekleri: El ile girin.
- Ad: İleti girin.
- Değer: girişten Hello Key Vault.
- Diğer Gizli bilgi oluşturma özelliklerini varsayılan değerleriyle bırakın.
- Oluştur’u seçin.
Uygulama Yapılandırmasına Key Vault başvuru ekleme
Azure Portal oturum açın. Tüm kaynaklar'ı seçin ve ardından hızlı başlangıçta oluşturduğunuz Uygulama Yapılandırma mağazası örneğini seçin.
Yapılandırma Gezgini'ni seçin.
+ Anahtar kasası başvurusu > oluştur'ı seçin ve ardından aşağıdaki değerleri belirtin:
- Anahtar: /application/config.keyvaultmessage öğesini seçin
- Etiket: Bu değeri boş bırakın.
- Abonelik, Kaynak grubu ve Anahtar kasası: Önceki bölümde oluşturduğunuz anahtar kasasındaki değerlere karşılık gelen değerleri girin.
- Gizli: Önceki bölümde oluşturduğunuz İleti adlı gizli adı seçin.
Bağlan Key Vault
Bu öğreticide, kimlik doğrulaması için bir hizmet sorumlusu kullanarak Key Vault. Bu hizmet sorumlularını oluşturmak için Azure CLI az ad sp create-for-rbac komutunu kullanın:
az ad sp create-for-rbac -n "http://mySP" --role Contributor --sdk-authBu işlem bir dizi anahtar/değer çifti döndürür:
{ "clientId": "7da18cae-779c-41fc-992e-0527854c6583", "clientSecret": "b421b443-1669-4cd7-b5b1-394d5c945002", "subscriptionId": "443e30da-feca-47c4-b68f-1636b75e16b3", "tenantId": "35ad10f1-7799-4766-9acf-f2d946161b77", "activeDirectoryEndpointUrl": "https://login.microsoftonline.com", "resourceManagerEndpointUrl": "https://management.azure.com/", "sqlManagementEndpointUrl": "https://management.core.windows.net:8443/", "galleryEndpointUrl": "https://gallery.azure.com/", "managementEndpointUrl": "https://management.core.windows.net/" }Hizmet sorumlusuna anahtar kasanıza erişme izni için aşağıdaki komutu çalıştırın:
az keyvault set-policy -n <your-unique-keyvault-name> --spn <clientId-of-your-service-principal> --secret-permissions delete getObject-id'nizi almak için aşağıdaki komutu çalıştırın ve uygulama yapılandırmasına ekleyin.
az ad sp show --id <clientId-of-your-service-principal> az role assignment create --role "App Configuration Data Reader" --assignee-object-id <objectId-of-your-service-principal> --resource-group <your-resource-group>, AZURE_CLIENT_SECRET ve AZURE_CLIENT_ID ortam değişkenlerini AZURE_TENANT_ID. Önceki adımlarda görüntülenen hizmet sorumlusu değerlerini kullanın. Komut satırına aşağıdaki komutları çalıştırın ve değişikliğin etkili olmasına izin vermek için komut istemini yeniden başlatın:
setx AZURE_CLIENT_ID "clientId" setx AZURE_CLIENT_SECRET "clientSecret" setx AZURE_TENANT_ID "tenantId"Aşağıdaki komutu Windows PowerShell çalıştırın:
$Env:AZURE_CLIENT_ID = "clientId" $Env:AZURE_CLIENT_SECRET = "clientSecret" $Env:AZURE_TENANT_ID = "tenantId"macOS veya Linux kullanıyorsanız aşağıdaki komutu çalıştırın:
export AZURE_CLIENT_ID ='clientId' export AZURE_CLIENT_SECRET ='clientSecret' export AZURE_TENANT_ID ='tenantId'
Not
Bu Key Vault kimlik bilgileri yalnızca uygulama içinde kullanılır. Uygulama yapılandırma hizmetine gerek kalmadan Key Vault kimlik bilgilerini kullanarak doğrudan kimlik doğrulaması. Bu Key Vault, anahtarları paylaşmadan veya açığa çıkarmadan hem uygulamanız hem de Uygulama Yapılandırma hizmetiniz için kimlik doğrulaması sağlar.
Kodlarınızı bir Key Vault güncelleştirin
APP_CONFIGURATION_ENDPOINT adlı bir ortam değişkeni oluşturun. Değerini Uygulama Yapılandırma mağazanız uç noktası olarak ayarlayın. Uç noktayı, erişim anahtarları dikey penceresindeki Azure portal. Değişikliğin etkili olmasına izin vermek için komut istemini yeniden başlatın.
resources klasöründe bootstrap.properties'i açın. Dosya değerini kullanmak için bu APP_CONFIGURATION_ENDPOINT güncelleştirin. Bu dosyada bir bağlantı dizesine yapılan tüm başvuruları kaldırın.
spring.cloud.azure.appconfiguration.stores[0].endpoint= ${APP_CONFIGURATION_ENDPOINT}MessageProperties.java'ya açın. keyVaultMessage adlı yeni bir değişken ekleyin:
private String keyVaultMessage; public String getKeyVaultMessage() { return keyVaultMessage; } public void setKeyVaultMessage(String keyVaultMessage) { this.keyVaultMessage = keyVaultMessage; }HelloController.java'ya açın. getMessage yöntemini, dosyadan alınan iletiyi içerecek Key Vault.
@GetMapping public String getMessage() { return "Message: " + properties.getMessage() + "\nKey Vault message: " + properties.getKeyVaultMessage(); }AzureCredentials.java adlı yeni bir dosya oluşturun ve aşağıdaki kodu ekleyin.
package com.example.demo; import com.azure.core.credential.TokenCredential; import com.azure.identity.EnvironmentCredentialBuilder; import com.azure.spring.cloud.config.AppConfigurationCredentialProvider; import com.azure.spring.cloud.config.KeyVaultCredentialProvider; public class AzureCredentials implements AppConfigurationCredentialProvider, KeyVaultCredentialProvider{ @Override public TokenCredential getKeyVaultCredential(String uri) { return getCredential(); } @Override public TokenCredential getAppConfigCredential(String uri) { return getCredential(); } private TokenCredential getCredential() { return new EnvironmentCredentialBuilder().build(); } }AppConfiguration.java adlı yeni bir dosya oluşturun. Ve aşağıdaki kodu ekleyin.
package com.example.demo; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class AppConfiguration { @Bean public AzureCredentials azureCredentials() { return new AzureCredentials(); } }Kaynak meta-INF dizininize spring.factories adlı yeni bir dosya oluşturun ve aşağıdaki kodu ekleyin.
org.springframework.cloud.bootstrap.BootstrapConfiguration=\ com.example.demo.AppConfigurationMaven Spring Boot uygulamanızı derleme ve çalıştırma, örneğin:
mvn clean package mvn spring-boot:runUygulamanız çalıştır başladıktan sonra curl kullanarak uygulamanızı test sınayın, örneğin:
curl -X GET http://localhost:8080/Uygulama Yapılandırma deposuna girdiğiniz iletiyi görüyorsunuz. Ayrıca, girişte girdiğiniz iletiyi Key Vault.
Kaynakları temizleme
Bu makalede oluşturulan kaynakları kullanmaya devam etmek istemiyorsanız, ücretlendirmemek için burada oluşturduğunuz kaynak grubunu silin.
Önemli
Silinen kaynak grupları geri alınamaz. Kaynak grubu ve içindeki tüm kaynaklar kalıcı olarak silinir. Yanlış kaynak grubunu veya kaynakları yanlışlıkla silmediğinizden emin olun. Bu makaleye ait kaynakları tutmak istediğiniz diğer kaynakları içeren bir kaynak grubu içinde oluşturduysanız, kaynak grubunu silmek yerine her kaynağı ilgili bölmeden ayrı ayrı silin.
- Azure Portaloturum açın ve kaynak grupları' nı seçin.
- Ada göre filtrele kutusuna kaynak grubunuzun adını girin.
- Sonuç listesinde, bir genel bakışı görmek için kaynak grubu adını seçin.
- Kaynak grubunu sil'i seçin.
- Kaynak grubunun silinmesini onaylamanız istenir. Onaylamak için kaynak grubunuzun adını girin ve Sil' i seçin.
Birkaç dakika sonra kaynak grubu ve tüm kaynakları silinir.
Sonraki adımlar
Bu öğreticide, Key Vault'de depolanan bir değere başvuran bir Uygulama Yapılandırma anahtarı Key Vault. Java Spring uygulamanıza özellik bayraklarını kullanmayı öğrenmek için sonraki öğreticiye devam edin.