Gunakan referensi Key Vault di aplikasi ASP.NET Core

Dalam tutorial ini, Anda mempelajari cara menggunakan layanan Azure App Configuration bersama dengan Azure Key Vault. App Configuration dan Key Vault adalah layanan pelengkap yang digunakan berdampingan di sebagian besar penyebaran aplikasi.

Azure App Configuration membantu Anda menggunakan layanan bersama-sama dengan membuat kunci yang mereferensikan nilai yang disimpan di Key Vault. Saat Azure App Configuration membuat kunci tersebut, Azure App Configuration menyimpan URI nilai Key Vault daripada nilai itu sendiri.

Aplikasi Anda menggunakan penyedia klien Azure App Configuration untuk mengambil referensi Key Vault, seperti halnya kunci lain yang disimpan di Azure App Configuration. Dalam kasus ini, nilai yang disimpan di Azure App Configuration adalah URI yang mereferensikan nilai dalam Key Vault. Nilai ini bukan nilai Key Vault atau info masuk. Karena penyedia klien mengenali kunci sebagai referensi Key Vault, penyedia klien menggunakan Key Vault untuk mengambil nilai Key Vault.

Aplikasi Anda bertanggung jawab untuk mengautentikasi Azure App Configuration dan Key Vault dengan benar. Dua layanan tersebut tidak berkomunikasi secara langsung.

Tutorial ini menunjukkan kepada Anda cara menerapkan referensi Key Vault dalam kode Anda. Tutorial dibangun pada aplikasi web yang diperkenalkan di panduan mulai cepat. Sebelum melanjutkan, selesaikan Membuat aplikasi ASP.NET Core dengan App Configuration terlebih dahulu.

Anda dapat menggunakan penyunting kode apa pun untuk melakukan langkah-langkah dalam tutorial ini. Misalnya, Visual Studio Code adalah penyunting kode lintas platform yang tersedia untuk sistem operasi Windows, macOS, dan Linux.

Dalam tutorial ini, Anda akan mempelajari cara:

  • Membuat kunci Azure App Configuration yang mereferensikan nilai yang disimpan di Key Vault.
  • Akses nilai kunci ini dari aplikasi web ASP.NET Core.

Prasyarat

Sebelum Anda memulai tutorial ini, instal .NET SDK 6.0 atau yang lebih baru.

Jika Anda tidak memiliki Langganan Azure, buat Akun gratis Azure sebelum memulai.

Buat vault

  1. Pilih opsi Buat sumber daya di pojok kiri atas portal Microsoft Azure:

    Cuplikan layar menunjukkan opsi Buat sumber daya di portal Microsoft Azure.

  2. Dalam kotak pencarian, ketik Key Vault dan pilih Key Vault dari menu drop-down.

  3. Dari daftar hasil, pilih Brankas kunci di sebelah kiri.

  4. Di Brankas kunci, pilih Tambahkan.

  5. Pada bagian kanan Buat brankas kunci, berikan informasi berikut:

    • Pilih Langganan untuk memilih langganan.
    • PadaGrup Sumber Daya, masukkan grup sumber daya atau pilih Buat baru dan masukkan nama grup sumber daya.
    • Di Nama brankas kunci, nama unik diperlukan.
    • Di daftar menurun Wilayah, pilih lokasi.
  6. Tinggalkan opsi Buat brankas kunci lainnya dengan nilai defaultnya.

  7. Klik Tinjau + Buat.

  8. Sistem akan memvalidasi dan menampilkan data yang Anda masukkan. Klik Buat.

Saat ini, akun Azure Anda adalah satu-satunya akun yang berwenang untuk mengakses brankas baru ini.

Menambahkan rahasia ke Key Vault

Untuk menambahkan rahasia ke vault, Anda perlu mengambil hanya beberapa langkah tambahan. Dalam kasus ini, tambahkan pesan yang dapat Anda gunakan untuk menguji pengambilan Key Vault. Pesan bernama Pesan, dan Anda menyimpan nilai "Halo dari Key Vault" di dalamnya.

  1. Dari halaman properti Key Vault, pilih Rahasia.
  2. Pilih Buat/impor.
  3. Di panel Buat rahasia , masukkan nilai berikut ini:
    • Opsi unggah: Masukkan Manual.
    • Nama: Masukkan Pesan.
    • Nilai: Masukkan Halo dari Key Vault.
  4. Biarkan properti Buat rahasia yang lain dengan nilai defaultnya.
  5. Pilih Buat.

Menambahkan referensi Key Vault ke Azure App Configuration

  1. Masuk ke portal Azure. Pilih Semua sumber daya, lalu pilih instans penyimpanan Azure App Configuration yang Anda buat di mulai cepat.

  2. Pilih Penjelajah Konfigurasi.

  3. Pilih + Buat>Referensi brankas kunci, lalu tentukan nilai berikut:

    • Kunci:Pilih TestApp:Settings:KeyVaultMessage.
    • Label: Biarkan nilai ini kosong.
    • Langganan, Grup sumber daya, dan Brankas kunci: Masukkan nilai yang terkait dengan yang ada di brankas kunci yang Anda buat di bagian sebelumnya.
    • Rahasia: Pilih rahasia bernama Pesan yang Anda buat di bagian sebelumnya.

Cuplikan layar dari formulir referensi buat Azure Key Vault baru

Perbarui kode Anda untuk menggunakan referensi Key Vault

  1. Tambahkan referensi ke paket NuGet yang diperlukan dengan menjalankan perintah berikut:

    dotnet add package Azure.Identity
    
  2. Buka Program.cs, dan tambahkan referensi ke paket yang diperlukan berikut ini:

    using Azure.Identity;
    
  3. Gunakan App Configuration dengan memanggil AddAzureAppConfiguration metode . Sertakan opsi ConfigureKeyVault, dan berikan informasi masuk yang benar ke Key Vault Anda menggunakan metode SetCredential.

    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());
        });
    });
    

    Tip

    Jika Anda memiliki beberapa Key Vault, informasi masuk yang sama akan digunakan untuk semuanya. Jika Key Vault Anda memerlukan mandat yang berbeda, Anda dapat mengaturnya menggunakan metode Register atau SetSecretResolver dari kelas AzureAppConfigurationKeyVaultOptions.

  4. Saat menginisialisasi koneksi ke App Configuration, Anda mengatur koneksi ke Key Vault dengan menyebutkan ConfigureKeyVault metodenya. Setelah inisialisasi, Anda dapat mengakses nilai referensi Vault Utama dengan cara yang sama seperti Anda mengakses nilai kunci App Configuration reguler.

    Untuk melihat langkah-langkah dalam proses ini, buka Index.cshtml di folder Tampilan>Beranda. Ganti kontennya dengan kode berikut:

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

    Anda mengakses nilai referensi Key Vault TestApp:Settings:KeyVaultMessage dengan cara yang sama seperti untuk nilai konfigurasi TestApp:Settings:Message.

Berikan akses aplikasi Anda ke Key Vault

Azure App Configuration tidak akan mengakses key vault Anda. Aplikasi Anda akan membaca dari Key Vault secara langsung, jadi Anda perlu memberikan akses aplikasi ke rahasia di brankas kunci Anda. Dengan cara ini, rahasia tersebut selalu terjaga dalam aplikasi Anda. Akses dapat diberikan menggunakan kebijakan akses Azure Key Vault atau kontrol akses berbasis peran Azure.

Anda menggunakan DefaultAzureCredential dalam kode Anda di atas. Ini adalah informasi masuk token agregat yang secara otomatis mencoba sejumlah jenis kredensial, seperti, EnvironmentCredential, ManagedIdentityCredential, SharedTokenCacheCredential, dan VisualStudioCredential. Untuk informasi selengkapnya, lihat Kelas DefaultAzureCredential. Anda dapat mengganti DefaultAzureCredential dengan jenis informasi masuk apa pun secara eksplisit. Namun, menggunakan DefaultAzureCredential memungkinkan Anda memiliki kode sama yang berjalan di lingkungan lokal dan Azure. Misalnya, Anda memberikan akses informasi masuk Anda sendiri ke key vault Anda. DefaultAzureCredential secara otomatis kembali ke SharedTokenCacheCredential atau VisualStudioCredential ketika Anda menggunakan Visual Studio untuk pengembangan lokal.

Atau, Anda dapat mengatur variabel lingkungan AZURE_TENANT_ID, AZURE_CLIENT_ID, dan AZURE_CLIENT_SECRET, serta DefaultAzureCredential akan menggunakan rahasia klien yang Anda miliki melalui EnvironmentCredential untuk mengautentikasi dengan key vault Anda. Setelah aplikasi Anda disebarkan ke layanan Azure dengan identitas terkelola diaktifkan, seperti Azure App Service, Azure Kubernetes Service, atau Azure Container Instance, Anda memberikan identitas terkelola dari izin layanan Azure untuk mengakses key vault Anda. DefaultAzureCredential secara otomatis digunakan ManagedIdentityCredential saat aplikasi Anda berjalan di Azure. Anda dapat menggunakan identitas terkelola yang sama untuk mengautentikasi dengan App Configuration dan Azure Key Vault. Untuk informasi selengkapnya, lihat Cara menggunakan identitas terkelola untuk mengakses App Configuration.

Membangun dan menjalankan aplikasi secara lokal

  1. Untuk membangun aplikasi dengan menggunakan .NET CLI, jalankan perintah berikut di shell perintah:

    dotnet build
    
  2. Setelah build selesai, gunakan perintah berikut untuk menjalankan aplikasi web secara lokal:

    dotnet run
    
  3. Buka jendela browser, dan buka http://localhost:5000, yang merupakan URL default bagi aplikasi web yang dihosting secara lokal.

    Mulai cepat peluncuran aplikasi lokal

Membersihkan sumber daya

Jika Anda tidak ingin terus menggunakan sumber daya yang dibuat dalam artikel ini, hapus grup sumber daya yang Anda buat di sini untuk menghindari biaya.

Penting

Penghapusan grup sumber daya tidak bisa dipulihkan. Grup sumber daya dan semua sumber daya yang ada di dalamnya akan dihapus secara permanen. Pastikan Anda tidak menghapus grup atau sumber daya yang salah secara tidak sengaja. Jika Anda membuat sumber daya untuk artikel ini dalam grup sumber daya yang ada yang berisi sumber daya lain yang ingin disimpan, hapus setiap sumber daya satu per satu dari panelnya masing-masing, bukan menghapus grup sumber daya.

  1. Masuk ke portal Azure, lalu pilih Grup sumber daya.
  2. Dalam kotak Filter menurut nama, masukkan nama grup sumber daya Anda.
  3. Dalam daftar hasil, pilih nama grup sumber daya untuk melihat gambaran umum.
  4. Pilih Hapus grup sumber daya.
  5. Anda akan diminta untuk mengonfirmasi penghapusan grup sumber daya. Masukkan nama grup sumber daya Anda untuk mengonfirmasi, dan pilih Hapus.

Setelah beberapa saat, grup sumber daya dan semua sumber dayanya akan dihapus.

Langkah berikutnya

Dalam tutorial ini, Anda membuat kunci Azure App Configuration yang mereferensikan rahasia yang tersimpan di Azure Key Vault. Untuk mempelajari cara memuat ulang rahasia dan sertifikat secara otomatis dari Azure Key Vault, lanjutkan ke tutorial berikutnya:

Untuk mempelajari cara menggunakan Identitas Terkelola untuk mempersingkat akses ke App Configuration dan Azure Key Vault, lihat tutorial berikut: