Öğretici: ASP.NET Core uygulamasında Key Vault başvurularını kullanma

Bu öğreticide Azure Uygulaması Yapılandırma 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'ta 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ğerlerinin URI'lerini depolar.

Uygulamanız, Uygulama Yapılandırması'de depolanan diğer anahtarlarda olduğu gibi Key Vault başvurularını 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'taki değerlere başvuran URI'lerdir. Bunlar Key Vault değerleri veya kimlik bilgileri değildir. İstemci sağlayıcısı anahtarları Key Vault başvurusu olarak tanıdığından, değerlerini almak için Key Vault'ı kullanır.

Uygulamanız hem Uygulama Yapılandırması hem de Key Vault'ta doğru 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 sunulan web uygulamasını temel alır. Devam etmeden önce Uygulama Yapılandırması ile ASP.NET Core uygulaması oluşturma işlemini tamamlayın.

Bu öğreticideki adımları gerçekleştirmek 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 aşağıdakilerin nasıl yapılacağını öğreneceksiniz:

  • Key Vault'ta depolanan bir değere başvuran bir Uygulama Yapılandırması anahtarı oluşturun.
  • ASP.NET Core web uygulamasından bu anahtarın değerine erişin.

Önkoşullar

Bu öğreticiye başlamadan önce .NET SDK 6.0 veya üstünü yükleyin.

Azure aboneliğiniz yoksa başlamadan önce birücretsiz Azure hesabı oluşturun.

Kasa oluşturma

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

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

  2. Arama kutusuna Key Vault yazın ve açılan listeden Key Vault'ı seçin.

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

  4. Anahtar kasaları'nda Ekle'yi seçin.

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

    • Abonelik'i seçerek bir abonelik seçin.
    • Kaynak Grubu'nda var olan bir kaynak grubu adı girin veya Yeni oluştur'u seçin ve bir kaynak grubu adı girin.
    • Anahtar kasası adı bölümünde benzersiz bir ad gereklidir.
    • 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. Gözden Geçir ve Oluştur’a tıklayın.

  8. Sistem girdiğiniz verileri doğrular ve görüntüler. Oluştur’a tıklayın.

Bu noktada, azure hesabınız bu yeni kasaya erişme yetkisi olan tek hesaptır.

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 alımını test etmek için kullanabileceğiniz bir ileti ekleyin. İletiye İleti adı verilir ve içinde "Key Vault'tan Merhaba" değerini 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'tan Merhaba yazın.
  4. Diğer Gizli dizi özellikleri oluştur'u varsayılan değerleriyle bırakın.
  5. Oluştur'u belirleyin.

Uygulama Yapılandırması key vault başvurusu ekleme

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

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

  3. + Anahtar kasası başvurusu oluştur'u>seçin ve aşağıdaki değerleri belirtin:

    • Anahtar: TestApp:Ayarlar: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ına karşılık gelen değerleri girin.
    • Gizli dizi: Önceki bölümde oluşturduğunuz İleti adlı gizli diziyi seçin.

Yeni bir Key Vault başvuru formu oluşturma işleminin ekran görüntüsü

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

  1. Aşağıdaki komutu çalıştırarak gerekli NuGet paketlerine bir başvuru ekleyin:

    dotnet add package Azure.Identity
    
  2. Program.cs açın ve aşağıdaki gerekli paketlere başvurular ekleyin:

    using Azure.Identity;
    
  3. yöntemini çağırarak AddAzureAppConfiguration Uygulama Yapılandırması kullanın. ConfigureKeyVault seçeneğini ekleyin ve yöntemini kullanarak SetCredential Key Vault'unuza doğru kimlik bilgilerini geçirin.

    var builder = WebApplication.CreateBuilder(args);
    
    // Retrieve the connection string
    string connectionString = builder.Configuration.GetConnectionString("AppConfig");
    
    // Load configuration from Azure App Configuration
    builder.Configuration.AddAzureAppConfiguration(options =>
    {
        options.Connect(connectionString);
    
        options.ConfigureKeyVault(keyVaultOptions =>
        {
            keyVaultOptions.SetCredential(new DefaultAzureCredential());
        });
    });
    

    İpucu

    Birden çok Anahtar Kasanız varsa, hepsi için aynı kimlik bilgileri kullanılır. Key Vault'larınız farklı kimlik bilgileri gerektiriyorsa, veya sınıfından AzureAppConfigurationKeyVaultOptions yöntemler kullanarak RegisterSetSecretResolver bunları ayarlayabilirsiniz.

  4. Uygulama Yapılandırması bağlantısını başlatırken yöntemini çağırarak ConfigureKeyVault Key Vault bağlantısını ayarlarsınız. Başlatma işleminden sonra, Key Vault başvurularının değerlerine normal Uygulama Yapılandırması anahtarlarının değerlerine erişdiğiniz gibi erişebilirsiniz.

    Bu işlemi uygulamada görmek için, Görünümler>Giriş klasöründe Index.cshtml dosyasını açın. Dosyanın içeriğini aşağıdaki kod ile değiştirin:

    @page
    @using Microsoft.Extensions.Configuration
    @inject IConfiguration Configuration
    
    <style>
        body {
            background-color: @Configuration["TestApp:Settings:BackgroundColor"]
        }
        h1 {
            color: @Configuration["TestApp:Settings:FontColor"];
            font-size: @Configuration["TestApp:Settings:FontSize"]px;
        }
    </style>
    
    <h1>@Configuration["TestApp:Settings:Message"]
        and @Configuration["TestApp:Settings:KeyVaultMessage"]</h1>
    

    TestApp:Ayarlar:KeyVaultMessage anahtar kasası başvurusunun değerine TestApp:Ayarlar:Message yapılandırma değeriyle aynı şekilde erişebilirsiniz.

Uygulamanıza Key Vault erişimi verme

Azure Uygulaması Yapılandırması anahtar kasanıza erişemez. Uygulamanız doğrudan Key Vault'tan okur, bu nedenle uygulamanıza anahtar kasanızdaki gizli dizilere erişim vermeniz gerekir. Bu şekilde gizli dizi her zaman uygulamanızla kalır. Erişim, Key Vault erişim ilkesi veya Azure rol tabanlı erişim denetimi kullanılarak verilebilir.

Yukarıdaki kodunuzda kullanırsınız DefaultAzureCredential . Bu, , ManagedIdentityCredential, SharedTokenCacheCredentialve VisualStudioCredentialgibi EnvironmentCredentialbir dizi kimlik bilgisi türünü otomatik olarak deneyen toplu bir belirteç kimlik bilgisidir. Daha fazla bilgi için bkz . DefaultAzureCredential Sınıfı. öğesini açıkça herhangi bir kimlik bilgisi türüyle değiştirebilirsiniz DefaultAzureCredential . Ancak, kullanmak DefaultAzureCredential hem yerel hem de Azure ortamlarında çalışan aynı koda sahip olmanıza olanak tanır. Örneğin, anahtar kasanıza kendi kimlik bilgileri erişiminizi verirsiniz. DefaultAzureCredential yerel geliştirme için Visual Studio'yu SharedTokenCacheCredentialVisualStudioCredential kullandığınızda otomatik olarak geri döner.

Alternatif olarak, AZURE_TENANT_ID, AZURE_CLIENT_ID ve AZURE_CLIENT_SECRET ortam değişkenlerini ayarlayabilirsiniz ve DefaultAzureCredential anahtar kasanızla kimlik doğrulaması yapmak için aracılığıyla sahip olduğunuz istemci gizli dizisini EnvironmentCredential kullanırsınız. Uygulamanız Azure Uygulaması Hizmeti, Azure Kubernetes Service veya Azure Container Instance gibi yönetilen kimliğin etkinleştirildiği bir Azure hizmetine dağıtıldıktan sonra Azure hizmetinin yönetilen kimliğine anahtar kasanıza erişme izni verirsiniz. DefaultAzureCredential , uygulamanız Azure'da çalışırken otomatik olarak kullanır ManagedIdentityCredential . Hem Uygulama Yapılandırması hem de Key Vault ile kimlik doğrulaması yapmak için aynı yönetilen kimliği kullanabilirsiniz. Daha fazla bilgi için bkz. Uygulama Yapılandırması erişmek için yönetilen kimlikleri kullanma.

Uygulamayı yerel olarak derleme ve çalıştırma

  1. .NET CLI kullanarak uygulamayı derlemek için komut kabuğunda aşağıdaki komutu çalıştırın:

    dotnet build
    
  2. Derleme tamamlandıktan sonra web uygulamasını yerel olarak çalıştırmak için aşağıdaki komutu kullanın:

    dotnet run
    
  3. Bir tarayıcı penceresi açın ve yerel olarak barındırılan web uygulamasının varsayılan URL'si olan öğesine gidin http://localhost:5000.

    Hızlı başlangıç yerel uygulama başlatma

Kaynakları temizleme

Bu makalede oluşturulan kaynakları kullanmaya devam etmek istemiyorsanız ücretlerden kaçınmak 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ı, saklamak istediğiniz diğer kaynakları içeren bir kaynak grubu içinde oluşturduysanız, kaynak grubunu silmek yerine her kaynağı ilgili bölmeden tek tek silin.

  1. Azure portalında oturum açın ve Kaynak grupları'nı seçin.
  2. Ada göre filtrele kutusuna kaynak grubunuzun adını girin.
  3. Genel bir bakış görmek için sonuç listesinde 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, Uygulama Yapılandırması'da Key Vault'ta depolanan bir gizli diziye başvuran bir anahtar oluşturdunuz. Gizli dizileri ve sertifikaları Key Vault'tan otomatik olarak yeniden yüklemeyi öğrenmek için sonraki öğreticiye geçin:

yönetilen kimliği kullanarak Uygulama Yapılandırması ve Key Vault'a erişimi kolaylaştırmayı öğrenmek için aşağıdaki öğreticiye bakın: