Aracılığıyla paylaş


Öğretici: Java Spring uygulamasında Key Vault başvuruları kullanma

Bu öğreticide, Azure Uygulama Yapılandırması hizmetini Azure Key Vault ile birlikte kullanmayı öğreneceksiniz. Uygulama Yapılandırması ve Key Vault, çoğu uygulama dağıtımında yan yana kullanılan tamamlayıcı hizmetlerdir.

Uygulama Yapılandırması, Key Vault depolanan değerlere başvuran anahtarlar oluşturarak hizmetleri birlikte kullanmanıza yardımcı olur. Uygulama Yapılandırması bu tür anahtarlar oluşturduğunda, değerlerin kendileri yerine Key Vault değerlerin URI'lerini depolar.

Uygulamanız, Uygulama Yapılandırması depolanan diğer anahtarlarda olduğu gibi Key Vault başvuruları almak için Uygulama Yapılandırması istemci sağlayıcısını kullanır. Bu durumda, Uygulama Yapılandırması depolanan değerler Key Vault değerlere başvuran URI'lerdir. Bunlar Key Vault değerler veya kimlik bilgileri değildir. İstemci sağlayıcısı anahtarları Key Vault başvuruları olarak tanıdığından, değerlerini almak için Key Vault kullanır.

Uygulamanız hem Uygulama Yapılandırması hem de Key Vault doğru şekilde kimlik doğrulaması yapmakla sorumludur. İki hizmet doğrudan iletişim kurmaz.

Bu öğreticide kodunuzda Key Vault başvurularını nasıl uygulayabileceğiniz gösterilmektedir. Hızlı başlangıçlarda tanıtılan web uygulamasını temel alır. Devam etmeden önce önce Uygulama Yapılandırması ile Java Spring uygulaması oluşturma bölümünü tamamlayın.

Bu öğreticideki adımları uygulamak için herhangi bir kod düzenleyicisini kullanabilirsiniz. Örneğin Visual Studio Code, Windows, macOS ve Linux işletim sistemlerinde kullanılabilen platformlar arası bir kod düzenleyicisidir.

Bu öğreticide şunların nasıl yapıldığını öğreneceksiniz:

  • Key Vault depolanan bir değere başvuran bir Uygulama Yapılandırması anahtarı oluşturun.
  • Bir Java Spring uygulamasından bu anahtarın değerine erişin.

Ön koşullar

Kasa oluşturma

  1. Azure portal sol üst köşesindeki Kaynak oluştur seçeneğini belirleyin:

    Azure portal Kaynak oluştur seçeneğini gösteren ekran görüntüsü.

  2. Arama kutusuna Key Vault yazın.

  3. Sonuç listesinden soldaki Anahtar kasaları'nı seçin.

  4. Anahtar kasaları'ndaEkle'yi seçin.

  5. Anahtar kasası oluşturma bölümünde sağ tarafta aşağıdaki bilgileri sağlayın:

    • Abonelik seçmek için Abonelik'i seçin.
    • Kaynak Grubu'ndaYeni oluştur'u seçin ve bir kaynak grubu adı girin.
    • Anahtar kasası adı bölümünde benzersiz bir ad gereklidir. Bu öğretici için Contoso-vault2 girin.
    • Bölge açılan listesinde bir konum seçin.
  6. Diğer Anahtar kasası oluştur seçeneklerini varsayılan değerleriyle bırakın.

  7. Oluştur’u seçin.

Bu noktada, bu yeni kasaya erişme yetkisi olan tek kişi Azure hesabınızdır.

Anahtar kasanızı gösteren ekran görüntüsü.

Key Vault’a gizli dizi ekleme

Kasaya gizli dizi eklemek için yalnızca birkaç ek adım uygulamanız gerekir. Bu durumda, Key Vault almayı test etmek için kullanabileceğiniz bir ileti ekleyin. İletiye İleti adı verilir ve "hello from Key Vault" değerini içinde depolarsınız.

  1. Key Vault özellikleri sayfalarında Gizli Diziler'i seçin.
  2. Oluştur/İçeri Aktar'ı seçin.
  3. Gizli dizi oluştur bölmesinde aşağıdaki değerleri girin:
    • Karşıya yükleme seçenekleri: El ile girin.
    • Ad: İleti girin.
    • Değer: Key Vault Hello girin.
  4. Diğer Gizli dizi oluşturma özelliklerini varsayılan değerleriyle bırakın.
  5. Oluştur’u seçin.

Uygulama Yapılandırması Key Vault başvurusu ekleme

  1. Azure Portal oturum açın. Tüm kaynaklar'ı ve ardından hızlı başlangıçta oluşturduğunuz Uygulama Yapılandırması deposu örneğini seçin.

  2. Yapılandırma Gezgini'ne tıklayın.

  3. +Anahtar kasası başvurusuoluştur'u> seçin ve 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 dizi: Önceki bölümde oluşturduğunuz İleti adlı gizli diziyi seçin.

Key Vault bağlanma

  1. Bu öğreticide, Key Vault için kimlik doğrulaması için bir hizmet sorumlusu kullanacaksınız. Bu hizmet sorumlusunu 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 --scopes /subscriptions/{subscription-id} --sdk-auth
    

    Bu işlem bir dizi anahtar/değer çifti döndürür:

    {
    "clientId": "00000000-0000-0000-0000-000000000000",
    "clientSecret": "00000000-0000-0000-0000-000000000000",
    "subscriptionId": "00000000-0000-0000-0000-000000000000",
    "tenantId": "00000000-0000-0000-0000-000000000000",
    "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/"
    }
    
  2. Hizmet sorumlusunun anahtar kasanıza erişmesine izin vermek 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 get
    
  3. Object-id'nizi almak için aşağıdaki komutu çalıştırın ve Uygulama Yapılandırması ekleyin.

    az ad sp show --id <clientId-of-your-service-principal>
    az role assignment create --role "App Configuration Data Reader" --scope /subscriptions/<subscriptionId>/resourceGroups/<group-name> --assignee-principal-type --assignee-object-id <objectId-of-your-service-principal> --resource-group <your-resource-group>
    
  4. AZURE_CLIENT_ID, AZURE_CLIENT_SECRET ve AZURE_TENANT_ID ortam değişkenlerini oluşturun. Önceki adımlarda görüntülenen hizmet sorumlusu değerlerini kullanın. Komut satırında aşağıdaki komutları çalıştırın ve değişikliğin etkili olması için komut istemini yeniden başlatın:

    setx AZURE_CLIENT_ID "clientId"
    setx AZURE_CLIENT_SECRET "clientSecret"
    setx AZURE_TENANT_ID "tenantId"
    

    Windows PowerShell kullanıyorsanız aşağıdaki komutu ç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 uygulamanız içinde kullanılır. Uygulamanız, Uygulama Yapılandırması hizmetini dahil etmeden bu kimlik bilgilerini kullanarak doğrudan Key Vault kimlik doğrulaması yapar. Key Vault, anahtarları paylaşmadan veya kullanıma sunmadan hem uygulamanız hem de Uygulama Yapılandırması hizmetiniz için kimlik doğrulaması sağlar.

kodunuzu Key Vault başvurusu kullanacak şekilde güncelleştirme

  1. APP_CONFIGURATION_ENDPOINT adlı bir ortam değişkeni oluşturun. Değerini Uygulama Yapılandırması deponuzun uç noktasına ayarlayın. Uç noktayı Azure portal Erişim Anahtarları dikey penceresinde bulabilirsiniz. Değişikliğin etkili olması için komut istemini yeniden başlatın.

  2. Yapılandırma dosyanızı resources klasöründe açın. bu dosyayı APP_CONFIGURATION_ENDPOINT değerini kullanacak şekilde güncelleştirin. Bu dosyadaki bir bağlantı dizesine yapılan başvuruları kaldırın.

spring:
    cloud:
        azure:
            appconfiguration:
                stores:
                    - endpoint: ${APP_CONFIGURATION_ENDPOINT}

Not

Key Vault bağlanmak için Spring Cloud Azure genel yapılandırmalarını da kullanabilirsiniz.

  1. MessageProperties.java dosyasını 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;
    }
    
  2. HelloController.java dosyasını açın. getMessage yöntemini Key Vault alınan iletiyi içerecek şekilde güncelleştirin.

    @GetMapping
    public String getMessage() {
        return "Message: " + properties.getMessage() + "\nKey Vault message: " + properties.getKeyVaultMessage();
    }
    
  3. Spring Boot uygulamanızı Maven ile derleyin ve çalıştırın, örneğin:

    mvn clean package
    mvn spring-boot:run
    
  4. Uygulamanız çalıştırıldıktan sonra curl kullanarak uygulamanızı test edin, örneğin:

    curl -X GET http://localhost:8080/
    

    Uygulama Yapılandırması mağazasına girdiğiniz iletiyi görürsünüz. Key Vault girdiğiniz iletiyi de görürsünüz.

Kaynakları temizleme

Bu makalede oluşturulan kaynakları kullanmaya devam etmek istemiyorsanız ücret ödememek 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 makalenin kaynaklarını tutmak istediğiniz diğer kaynakları içeren bir kaynak grubu içinde oluşturduysanız, kaynak grubunu silmek yerine her kaynağı kendi bölmesinden tek tek silin.

  1. Azure portal oturum açın ve Kaynak grupları'nı seçin.
  2. Ada göre filtrele kutusuna kaynak grubunuzun adını girin.
  3. Sonuç listesinde, bir genel bakış görmek için kaynak grubu adını seçin.
  4. Kaynak grubunu sil'i seçin.
  5. 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 depolanan bir değere başvuran bir Uygulama Yapılandırması anahtarı oluşturdunuz. Daha fazla soru için, Spring Cloud Azure Uygulama Yapılandırması kitaplığının nasıl çalıştığına ilişkin tüm ayrıntıları içeren başvuru belgelerine bakın. Java Spring uygulamanızda özellik bayraklarını kullanmayı öğrenmek için sonraki öğreticiye geçin.