Aracılığıyla paylaş


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

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

Uygulamanız, Uygulama Yapılandırması'nda 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ı kullanabilir. Uygulama Yapılandırması'na bir Key Vault başvurusu eklediğinizde, Uygulama Yapılandırması Key Vault'ta depolanan değere başvuran bir anahtar oluşturur. Uygulama Yapılandırması'nın depoladığı değer bir Key Vault değeri veya kimlik bilgisi değildir. Bunun yerine, Key Vault'taki değere başvuran bir URI'dir. İstemci hizmet sağlayıcısı anahtarı bir Key Vault referansı olarak tanıdığında, değerini almak için Key Vault'u 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. Önkoşullarda listelenen ASP.NET Core hızlı başlangıcında sunulan web uygulamasını temel alır. Devam etmeden önce bu hızlı başlangıcı 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 eğitimde, siz:

  • 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

Uygulama Yapılandırması ile ASP.NET Core uygulaması oluşturma hızlı başlangıç kılavuzunu tamamlayın.

Anahtar kasası oluştur

  1. Azure portalına gidin ve kaynak oluştur'u seçin.

    Azure portalının ekran görüntüsü. Azure hizmetleri altında Kaynak oluştur vurgulanır ve çeşitli kaynak türlerinin simgeleri gösterilir.

  2. Arama kutusuna Key Vault yazın. Sonuç listesinde Key Vault'ı seçin.

  3. Key Vault sayfasında Oluştur'u seçin.

  4. Anahtar kasası oluştur sayfasında aşağıdaki bilgileri girin:

    • Abonelik için: Bir abonelik seçin.
    • Kaynak grubu için: Var olan bir kaynak grubunun adını girin veya Yeni oluştur'u seçin ve bir kaynak grubu adı girin.
    • Anahtar kasası adı için benzersiz bir ad girin.
    • Bölge: Bir konum seçin.
  5. Diğer seçenekler için varsayılan değerleri kullanın.

  6. Seçin, gözden geçir ve oluştur.

  7. Sistem girişlerinizi doğrulayıp görüntüledikten sonra Oluştur'u seçin.

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

Key Vault’a gizli dizi ekleme

Uygulamanızda Key Vault alma işlemini test etmek için önce aşağıdaki adımları uygulayarak kasaya bir gizli dizi ekleyin. Eklediğiniz gizli İleti olarak adlandırılır ve değeri "Key Vault'tan Merhaba"dır.

  1. Key Vault kaynak menüsünde Nesneler>Gizli Diziler'i seçin.

  2. Oluştur/İçeri Aktar'ı seçin.

  3. Gizli dizi oluştur iletişim kutusunda aşağıdaki değerleri girin:

    • Karşıya yükleme seçenekleri için: El ile yazın.
    • Ad için: İleti girin.
    • Gizli değer için: Key Vault'tan Merhaba yazın.
  4. Diğer seçenekler için varsayılan değerleri kullanı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'ı seçin ve ardından hızlı başlangıçta oluşturduğunuz Uygulama Yapılandırma deposu'na tıklayın.

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

  3. Oluştur>Key Vault başvurusu'nu seçin ve aşağıdaki değerleri girin:

    • Anahtar için: TestApp:Settings:KeyVaultMessage değerini girin.
    • Etiket için: Değeri boş bırakın.
    • Abonelik, Kaynak grubu ve Key Vault için: Bu öğreticinin önceki bölümlerinde anahtar kasasını oluştururken kullandığınız değerleri girin.
    • Gizli için: Önceki bölümde oluşturduğunuz İleti adını taşıyan gizliyi seçin.

    Key Vault referansı oluşturmaya yönelik iletişim kutusunun ekran görüntüsü. Anahtar, Abonelik, Kaynak grubu, Key Vault ve Gizli alanları doldurulmuştur.

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

  1. Hızlı başlangıçta oluşturduğunuz ASP.NET Core web uygulaması projesini içeren klasöre gidin.

  2. Komut isteminde aşağıdaki komutu çalıştırın. Bu komut, proje dosyanıza NuGet paket başvurusunu ekler Azure.Identity veya güncelleştirir.

    dotnet add package Azure.Identity
    
  3. Program.cs dosyasını açın. using yönergesi bölümünde, Azure.Identity ad alanından türleri içeri aktarmak için aşağıdaki satırı ekleyin:

    using Azure.Identity;
    
  4. Program.cs yöntemine çağrısını AddAzureAppConfiguration aşağıdaki koddaki çağrıyla değiştirin. Güncellenmiş olan çağrı ConfigureKeyVault seçeneğini içerir. Bu seçenek, kimlik doğrulaması yapmak için gereken kimlik bilgilerini anahtar kasanıza iletmek üzere SetCredential yöntemini kullanır.

    var builder = WebApplication.CreateBuilder(args);
    
    // Retrieve the App Configuration endpoint.
    string endpoint = builder.Configuration.GetValue<string>("Endpoints:AppConfiguration")
    
    // Load the configuration from App Configuration.
    builder.Configuration.AddAzureAppConfiguration(options =>
    {
        options.Connect(new Uri(endpoint), new DefaultAzureCredential());
    
        options.ConfigureKeyVault(keyVaultOptions =>
        {
            keyVaultOptions.SetCredential(new DefaultAzureCredential());
        });
    });
    

    İpucu

    Birden çok anahtar kasanız varsa, sistem tümü için aynı kimlik bilgilerini kullanır. Anahtar kasalarınız farklı kimlik bilgileri gerektiriyorsa, sınıfın Register veya SetSecretResolver yöntemlerini AzureAppConfigurationKeyVaultOptions kullanarak bunları ayarlayabilirsiniz.

  5. Kodunuzdaki Key Vault başvurularının değerlerine erişmek için projenizdeki Sayfalar klasörüne gidin. Index.cshtml dosyasını açın ve içeriğini aşağıdaki kodla değiştirin. Önceki bloktaki kod, Uygulama Yapılandırması bağlantısını başlatır ve Key Vault bağlantısını ayarlar. Sonuç olarak, Index.cshtml dosyasında Key Vault başvurularının değerlerine normal Uygulama Yapılandırma anahtarlarının değerlerine erişdiğiniz gibi erişebilirsiniz.

    @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>
    

    Bu kod, Key Vault başvurusunun TestApp:Settings:KeyVaultMessage değerine, yapılandırma değerine eriştiği şekilde erişir TestApp:Settings:Message.

Uygulamanıza Key Vault erişimi verme

Uygulama Yapılandırması anahtar kasanıza erişmez. Bunun yerine, uygulamanız doğrudan Key Vault'tan okur; bu nedenle, uygulamanıza Key Vault'taki sırlara erişim vermeniz gerekir. Bu şekilde, sırlar her zaman uygulamanızla kalır. Erişim vermek için Key Vault erişim ilkesi veya Azure rol tabanlı erişim denetimi kullanabilirsiniz.

Bu öğreticideki kod, kimlik doğrulaması için sınıfını DefaultAzureCredential kullanır. Bu toplanan belirteç kimlik bilgisi, EnvironmentCredential, ManagedIdentityCredential, SharedTokenCacheCredential ve VisualStudioCredential gibi çeşitli kimlik bilgisi türlerini otomatik olarak dener. Daha fazla bilgi için bkz . DefaultAzureCredential Sınıfı.

DefaultAzureCredential öğesini herhangi bir açık kimlik bilgisi türüyle değiştirebilirsiniz. Ancak kullandığınızda DefaultAzureCredentialkodunuz yerel ve Azure ortamlarında çalıştırılabilir. Örneğin, uygulamanız Azure'da çalıştırıldığında DefaultAzureCredential, ManagedIdentityCredential kullanır. Ancak yerel geliştirme için Visual Studio kullandığınızda, DefaultAzureCredential otomatik olarak SharedTokenCacheCredential veya VisualStudioCredential öğesine geri döner.

Alternatif olarak, , AZURE_TENANT_IDve AZURE_CLIENT_ID ortam değişkenlerini ayarlayabilirsinizAZURE_CLIENT_SECRET. Bunu yaptığınızda, DefaultAzureCredential bu değişkenleri kullanır ve EnvironmentCredential anahtar kasanızla kimlik doğrulaması yapar.

Uygulamanızı Azure App Service, Azure Kubernetes Service veya Azure Container Instance gibi yönetilen kimliği etkinleştirilmiş bir Azure hizmetine dağıttığınızda, 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ına 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 isteminde 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. Komutun dotnet run çıktısında, web uygulamasının dinlediği URL'yi bulun, örneğin http://localhost:5292. Bir tarayıcı açın ve bu URL'ye gidin.

    localhost:5292'ye açık bir tarayıcının ekran görüntüsü. Sayfadaki metinde Azure Uygulama Yapılandırmasının Verileri ve Key Vault'tan Merhaba gösterilir.

    Web sayfasındaki metin aşağıdaki bileşenleri içerir:

    • Uygulama Yapılandırma deponuzdaki TestApp:Settings:Message anahtarla ilişkili değer
    • Anahtar kasanızda depolanan İleti sırrının değeri

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