Bagikan melalui


Mengautentikasi aplikasi yang dihosting Azure ke sumber daya Azure dengan Azure SDK untuk .NET

Saat aplikasi dihosting di Azure menggunakan layanan seperti Azure App Service, Azure Virtual Machines, atau Azure Container Instances, pendekatan yang disarankan untuk mengautentikasi aplikasi ke sumber daya Azure adalah menggunakan identitas terkelola.

Identitas terkelola menyediakan identitas untuk aplikasi Anda sehingga dapat terhubung ke sumber daya Azure lainnya tanpa perlu menggunakan kunci rahasia atau rahasia aplikasi lainnya. Secara internal, Azure mengetahui identitas aplikasi Anda dan sumber daya apa yang diizinkan untuk disambungkan. Azure menggunakan informasi ini untuk secara otomatis mendapatkan token Microsoft Entra untuk aplikasi guna memungkinkannya terhubung ke sumber daya Azure lainnya, semua tanpa Anda harus mengelola rahasia aplikasi apa pun.

Tipe identitas terkelola

Ada dua jenis identitas terkelola:

  • Ditetapkan sistem - Jenis identitas terkelola ini disediakan oleh dan diikat langsung ke sumber daya Azure. Saat Mengaktifkan identitas terkelola pada sumber daya Azure, Anda mendapatkan identitas terkelola yang ditetapkan sistem untuk sumber daya tersebut. Identitas terkelola yang ditetapkan sistem terkait dengan siklus hidup sumber daya Azure yang terkait dengannya. Jadi, ketika sumber daya dihapus, Azure akan secara otomatis menghapus identitas untuk Anda. Karena yang harus Anda lakukan adalah mengaktifkan identitas terkelola untuk sumber daya Azure yang menghosting kode Anda, ini adalah jenis identitas terkelola term mudah untuk digunakan.
  • Ditetapkan pengguna - Anda juga dapat membuat identitas terkelola sebagai sumber daya Azure mandiri. Ini paling sering digunakan ketika solusi Anda memiliki beberapa beban kerja yang berjalan pada beberapa sumber daya Azure yang semuanya perlu berbagi identitas yang sama dan izin yang sama. Misalnya, jika solusi Anda memiliki komponen yang berjalan pada beberapa App Service dan instans komputer virtual yang semuanya memerlukan akses ke set sumber daya Azure yang sama, membuat dan menggunakan identitas terkelola yang ditetapkan pengguna di seluruh sumber daya tersebut akan masuk akal.

Artikel ini akan membahas langkah-langkah untuk mengaktifkan dan menggunakan identitas terkelola yang ditetapkan sistem untuk aplikasi. Jika Anda perlu menggunakan identitas terkelola yang ditetapkan pengguna, lihat artikel Mengelola identitas terkelola yang ditetapkan pengguna untuk melihat cara membuat identitas terkelola yang ditetapkan pengguna.

1 - Aktifkan identitas terkelola di sumber daya Azure yang menghosting aplikasi

Langkah pertama adalah mengaktifkan identitas terkelola di sumber daya Azure yang menghosting aplikasi Anda. Misalnya, jika Anda menghosting aplikasi .NET menggunakan Azure App Service, Anda perlu mengaktifkan identitas terkelola untuk aplikasi web App Service yang menghosting aplikasi Anda. Jika Anda menggunakan komputer virtual untuk menghosting aplikasi, Anda akan mengaktifkan VM untuk menggunakan identitas terkelola.

Anda dapat mengaktifkan identitas terkelola yang akan digunakan untuk sumber daya Azure menggunakan portal Microsoft Azure atau Azure CLI.

Petunjuk Cuplikan layar
Navigasikan ke sumber daya yang menghosting kode aplikasi Anda di portal Azure. Misalnya, Anda dapat mengetikkan nama sumber daya Anda di kotak pencarian di bagian atas halaman dan menavigasi ke dalamnya dengan memilihnya dalam kotak dialog. Cuplikan layar memperlihatkan cara menggunakan bilah pencarian teratas di portal Azure untuk menemukan dan menavigasi ke sumber daya Azure.
Pada halaman untuk sumber daya Anda, pilih item menu Identitas dari menu sebelah kiri. Semua sumber daya Azure yang mampu mendukung identitas terkelola akan memiliki item menu Identitas meskipun tata letak menu mungkin sedikit berbeda. Cuplikan layar memperlihatkan lokasi item menu Identitas di menu sebelah kiri untuk sumber daya Azure.
Pada halaman Identitas :
  1. Ubah penggeser Status menjadi Aktif.
  2. Pilih Simpan.
Dialog konfirmasi akan memverifikasi bahwa Anda ingin mengaktifkan identitas terkelola untuk layanan Anda. Jawaban Ya dan identitas terkelola akan diaktifkan untuk sumber daya Azure.
Cuplikan layar memperlihatkan cara mengaktifkan identitas terkelola untuk sumber daya Azure di halaman Identitas sumber daya.

2 - Menetapkan peran ke identitas terkelola

Selanjutnya, tentukan peran (izin) mana yang dibutuhkan aplikasi Anda dan tetapkan identitas terkelola ke peran tersebut di Azure. Identitas terkelola dapat ditetapkan peran di sumber daya, grup sumber daya, atau cakupan langganan. Contoh ini akan menunjukkan cara menetapkan peran di cakupan grup sumber daya karena sebagian besar aplikasi mengelompokkan semua sumber daya Azure mereka ke dalam satu grup sumber daya.

Petunjuk Cuplikan layar
Temukan grup sumber daya untuk aplikasi Anda dengan mencari nama grup sumber daya menggunakan kotak pencarian di bagian atas portal Azure.

Navigasi ke grup sumber daya Anda dengan memilih nama grup sumber daya di bawah judul Grup Sumber Daya dalam kotak dialog.
Cuplikan layar memperlihatkan cara menggunakan bilah pencarian teratas di portal Azure untuk menemukan dan menavigasi ke grup sumber daya di Azure. Ini adalah grup sumber daya yang akan Anda tetapkan perannya (izin) .
Pada halaman untuk grup sumber daya, pilih Kontrol akses (IAM) dari menu sebelah kiri. Cuplikan layar memperlihatkan lokasi item menu Kontrol akses (IAM) di menu sebelah kiri grup sumber daya Azure.
Pada halaman Kontrol akses (IAM):
  1. Pilih tab Penetapan peran.
  2. Pilih + Tambahkan dari menu atas lalu Tambahkan penetapan peran dari menu drop-down yang dihasilkan.
Cuplikan layar memperlihatkan cara menavigasi ke tab penetapan peran dan lokasi tombol yang digunakan untuk menambahkan penetapan peran ke grup sumber daya.
Halaman Tambahkan penetapan peran mencantumkan semua peran yang dapat ditetapkan untuk grup sumber daya.
  1. Gunakan kotak pencarian untuk memfilter daftar ke ukuran yang lebih mudah dikelola. Contoh ini menunjukkan cara memfilter peran Blob Penyimpanan.
  2. Pilih peran yang ingin ditetapkan.
Pilih Berikutnya untuk masuk ke layar berikutnya.
Cuplikan layar memperlihatkan cara memfilter dan memilih penetapan peran yang akan ditambahkan ke grup sumber daya.
Halaman Tambahkan penetapan peran berikutnya memungkinkan Anda menentukan pengguna yang akan ditetapkan perannya.
  1. Pilih Identitas terkelola di bagian Tetapkan akses ke.
  2. Pilih + Pilih anggota di bawah Anggota.
Kotak dialog akan terbuka di sisi kanan portal Microsoft Azure.
Cuplikan layar memperlihatkan cara memilih identitas terkelola sebagai jenis pengguna yang ingin Anda tetapkan peran (izin) pada halaman tambahkan penetapan peran.
Dalam dialog Pilih identitas terkelola:
  1. Dropdown Identitas terkelola dan kotak teks Pilih dapat digunakan untuk memfilter daftar identitas terkelola dalam langganan Anda. Dalam contoh ini, dengan memilih App Service, hanya identitas terkelola yang terkait dengan App Service yang ditampilkan.
  2. Pilih identitas terkelola untuk sumber daya Azure yang menghosting aplikasi Anda.
Pilih Pilih di bagian bawah dialog untuk melanjutkan.
Cuplikan layar memperlihatkan cara menggunakan dialog pilih identitas terkelola untuk memfilter dan memilih identitas terkelola untuk menetapkan peran.
Identitas terkelola sekarang akan ditampilkan seperti yang dipilih di layar Tambahkan penetapan peran.

Pilih Tinjau + tetapkan untuk masuk ke halaman akhir lalu Tinjau + tetapkan lagi untuk menyelesaikan proses.
Cuplikan layar akhir tambahkan penetapan peran di mana pengguna perlu memilih tombol Tinjau + Tetapkan untuk menyelesaikan penetapan peran.

3 - Menerapkan DefaultAzureCredential di aplikasi Anda

DefaultAzureCredential adalah urutan mekanisme yang diurutkan dan diurutkan untuk mengautentikasi ke Microsoft Entra. Setiap mekanisme autentikasi adalah kelas yang berasal dari kelas TokenCredential dan dikenal sebagai kredensial. Pada runtime, DefaultAzureCredential upaya untuk mengautentikasi menggunakan kredensial pertama. Jika kredensial tersebut gagal memperoleh token akses, kredensial berikutnya dalam urutan dicoba, dan sebagainya, hingga token akses berhasil diperoleh. Dengan cara ini, aplikasi Anda dapat menggunakan kredensial yang berbeda di lingkungan yang berbeda tanpa menulis kode khusus lingkungan.

Urutan dan lokasi di mana DefaultAzureCredential mencari kredensial ditemukan di DefaultAzureCredential.

Untuk menggunakan DefaultAzureCredential, tambahkan Azure.Identity dan secara opsional paket Microsoft.Extensions.Azure ke aplikasi Anda:

Di terminal pilihan Anda, navigasikan ke direktori proyek aplikasi dan jalankan perintah berikut:

dotnet add package Azure.Identity
dotnet add package Microsoft.Extensions.Azure

Layanan Azure diakses menggunakan kelas klien khusus dari berbagai pustaka klien Azure SDK. Kelas-kelas ini dan layanan kustom Anda sendiri harus didaftarkan sehingga dapat diakses melalui injeksi dependensi di seluruh aplikasi Anda. Di Program.cs, selesaikan langkah-langkah berikut untuk mendaftarkan kelas klien dan DefaultAzureCredential:

  1. Sertakan Azure.Identity namespace layanan dan Microsoft.Extensions.Azure melalui using arahan.
  2. Daftarkan klien layanan Azure menggunakan metode ekstensi -awalan Addyang sesuai.
  3. Teruskan instans DefaultAzureCredential ke UseCredential metode .

Contohnya:

using Microsoft.Extensions.Azure;
using Azure.Identity;

builder.Services.AddAzureClients(clientBuilder =>
{
    clientBuilder.AddBlobServiceClient(
        new Uri("https://<account-name>.blob.core.windows.net"));
    clientBuilder.UseCredential(new DefaultAzureCredential());
});

Alternatifnya UseCredential adalah membuat instans DefaultAzureCredential secara langsung:

using Azure.Identity;

builder.Services.AddSingleton<BlobServiceClient>(_ =>
    new BlobServiceClient(
        new Uri("https://<account-name>.blob.core.windows.net"),
        new DefaultAzureCredential()));

Saat kode sebelumnya berjalan di stasiun kerja pengembangan lokal Anda, kode tersebut akan melihat variabel lingkungan untuk perwakilan layanan aplikasi atau di alat pengembang yang diinstal secara lokal, seperti Visual Studio, untuk serangkaian kredensial pengembang. Salah satu pendekatan dapat digunakan untuk mengautentikasi aplikasi ke sumber daya Azure selama pengembangan lokal.

Saat disebarkan ke Azure, kode yang sama ini juga dapat mengautentikasi aplikasi Anda ke sumber daya Azure lainnya. DefaultAzureCredential dapat mengambil pengaturan lingkungan dan konfigurasi identitas terkelola untuk mengautentikasi ke layanan lain secara otomatis.