Mengautentikasi aplikasi .NET ke layanan Azure selama pengembangan lokal menggunakan akun pengembang

Saat membuat aplikasi cloud, pengembang perlu men-debug dan menguji aplikasi di stasiun kerja lokal mereka. Saat aplikasi dijalankan di stasiun kerja pengembang selama pengembangan lokal, aplikasi masih harus mengautentikasi ke setiap layanan Azure yang digunakan oleh aplikasi. Artikel ini membahas cara menggunakan kredensial Azure pengembang untuk mengautentikasi aplikasi ke Azure selama pengembangan lokal.

A diagram showing how an app running in local developer will obtain the application service principal from a .env file and then use that identity to connect to Azure resources.

Agar aplikasi dapat mengautentikasi ke Azure selama pengembangan lokal menggunakan kredensial Azure pengembang, pengembang harus masuk ke Azure dari ekstensi Alat Azure Visual Studio Code, Azure CLI, atau Azure PowerShell. Azure SDK untuk .NET dapat mendeteksi bahwa pengembang masuk dari salah satu alat ini lalu mendapatkan kredensial yang diperlukan dari cache kredensial untuk mengautentikasi aplikasi ke Azure sebagai pengguna yang masuk.

Pendekatan ini paling mudah disiapkan untuk tim pengembangan karena memanfaatkan akun Azure pengembang yang ada. Namun, akun pengembang kemungkinan akan memiliki lebih banyak izin daripada yang diperlukan oleh aplikasi, oleh karena itu melebihi izin yang akan dijalankan aplikasi dalam produksi. Sebagai alternatif, Anda dapat membuat perwakilan layanan aplikasi untuk digunakan selama pengembangan lokal yang dapat dilingkup agar hanya memiliki akses yang diperlukan oleh aplikasi.

1 - Membuat grup Microsoft Azure AD untuk pengembangan lokal

Karena hampir selalu ada beberapa pengembang yang mengerjakan aplikasi, disarankan untuk terlebih dahulu membuat grup Microsoft Azure AD untuk merangkum peran (izin) yang dibutuhkan aplikasi dalam pengembangan lokal. Ini menawarkan keuntungan berikut.

  • Setiap pengembang diyakinkan untuk memiliki peran yang sama yang ditetapkan karena peran ditetapkan di tingkat grup.
  • Jika peran baru diperlukan untuk aplikasi, peran tersebut hanya perlu ditambahkan ke grup Azure AD untuk aplikasi.
  • Jika pengembang baru bergabung dengan tim, mereka hanya harus ditambahkan ke grup Azure AD yang benar untuk mendapatkan izin yang benar untuk bekerja di aplikasi.

Jika Anda memiliki grup Azure AD yang sudah ada untuk tim pengembangan, Anda bisa menggunakan grup tersebut. Jika tidak, selesaikan langkah-langkah berikut untuk membuat grup Azure AD.

Petunjuk Cuplikan layar
Navigasi ke halaman Azure Active Directory di portal Microsoft Azure dengan mengetik Azure Active Directory ke dalam kotak pencarian di bagian atas halaman lalu pilih Azure Active Directory dari bawah layanan. A screenshot showing how to use the top search bar in the Azure portal to search for and navigate to the Azure Active Directory page.
Pada halaman Azure Active Directory, pilih Grup dari menu sebelah kiri. A screenshot showing the location of the Groups menu item in the left-hand menu of the Azure Active Directory Default Directory page.
Pada halaman Semua grup, pilih Grup baru. A screenshot showing the location of the New Group button in the All groups page.
Pada halaman Grup Baru:
  1. Jenis grupKeaman
  2. Nama grup → Nama untuk grup keamanan, biasanya dibuat dari nama aplikasi. Akan sangat membantu untuk menyertakan string seperti local-dev dalam nama grup untuk menunjukkan tujuan grup.
  3. Deskripsi grup → Deskripsi tujuan grup.
  4. Pilih link Tidak ada anggota yang dipilih di bawah Anggota untuk menambahkan anggota ke grup.
A screenshot showing how to fill out the form to create a new Azure Active Directory group for the application. This screenshot also shows the location of the link to select to add members to this group
Pada kotak dialog Tambahkan anggota :
  1. Gunakan kotak pencarian untuk memfilter daftar nama pengguna dalam daftar.
  2. Pilih pengguna untuk pengembangan lokal untuk aplikasi ini. Saat objek dipilih, objek akan berpindah ke daftar Item terpilih di bagian bawah dialog.
  3. Ketika selesai, pilih tombol Pilih.
A screenshot of the Add members dialog box showing how to select developer accounts to be included in the group.
Pada halaman Grup baru, pilih Buat untuk membuat grup.

Grup akan dibuat dan Anda akan dibawa kembali ke halaman Semua grup. Mungkin perlu waktu hingga 30 detik agar grup muncul dan Anda mungkin perlu me-refresh halaman karena penembolokan di portal Microsoft Azure.
A screenshot of the New Group page showing how to complete the process by selecting the Create button.

2 - Menetapkan peran ke grup Azure AD

Selanjutnya, Anda perlu menentukan peran (izin) apa yang dibutuhkan aplikasi Anda pada sumber daya apa dan menetapkan peran tersebut ke aplikasi Anda. Dalam contoh ini, peran akan ditetapkan ke grup Azure Active Directory yang dibuat di langkah 1. Peran dapat diberi 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 Microsoft Azure.

Navigasi ke grup sumber daya Anda dengan memilih nama grup sumber daya di bawah judul Grup Sumber Daya dalam kotak dialog.
A screenshot showing how to use the top search box in the Azure portal to locate and navigate to the resource group you want to assign roles (permissions) to.
Pada halaman untuk grup sumber daya, pilih Kontrol akses (IAM) dari menu sebelah kiri. A screenshot of the resource group page showing the location of the Access control (IAM) menu item.
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.
A screenshot showing how to navigate to the role assignments tab and the location of the button used to add role assignments to a resource group.
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.
A screenshot showing how to filter and select role assignments to be added to the resource group.
Halaman Tambahkan penetapan peran berikutnya memungkinkan Anda menentukan pengguna yang akan ditetapkan perannya.
  1. Pilih Pengguna, grup, atau perwakilan layanan di bawah Tetapkan akses ke.
  2. Pilih + Pilih anggota di bawah Anggota
Kotak dialog akan terbuka di sisi kanan portal Microsoft Azure.
A screenshot showing the radio button to select to assign a role to an Azure AD group and the link used to select the group to assign the role to.
Dalam dialog Pilih anggota:
  1. Kotak teks Pilih dapat digunakan untuk memfilter daftar pengguna dan grup di langganan Anda. Jika diperlukan, ketik beberapa karakter pertama grup Azure AD pengembangan lokal yang Anda buat untuk aplikasi.
  2. Pilih grup Azure AD pengembangan lokal yang terkait dengan aplikasi Anda.
Pilih Pilih di bagian bawah dialog untuk melanjutkan.
A screenshot showing how to filter for and select the Azure AD group for the application in the Select members dialog box.
Grup Azure AD 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.
A screenshot showing the completed Add role assignment page and the location of the Review + assign button used to complete the process.

3 - Masuk ke Azure menggunakan .NET Tooling

Selanjutnya Anda perlu masuk ke Azure menggunakan salah satu dari beberapa opsi alat .NET. Akun yang Anda masuki juga harus ada di grup Azure Active Directory yang Anda buat dan konfigurasi sebelumnya.

Di menu atas Visual Studio, navigasi ke Alat>Opsi untuk membuka dialog opsi. Di bilah pencarian di kiri atas, ketik Azure untuk memfilter opsi. Di bawah Autentikasi Layanan Azure, pilih Pilihan Akun.

Pilih menu drop-down di bawah Pilih akun dan pilih untuk menambahkan Akun Microsoft. Jendela akan terbuka yang meminta Anda untuk memilih akun. Masukkan kredensial untuk akun Azure yang Anda inginkan, lalu pilih konfirmasi.

A screenshot showing how to sign in to Azure using Visual Studio.

4 - Menerapkan DefaultAzureCredential di aplikasi Anda

DefaultAzureCredential mendukung beberapa metode autentikasi dan menentukan metode autentikasi yang digunakan saat runtime bahasa umum. Dengan cara ini, aplikasi Anda dapat menggunakan metode autentikasi yang berbeda di lingkungan yang berbeda tanpa menerapkan kode khusus lingkungan.

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

Untuk mengimplementasikan DefaultAzureCredential, pertama-tama tambahkan Azure.Identity dan paket Microsoft.Extensions.Azure secara opsional ke aplikasi Anda. Anda dapat melakukan ini menggunakan baris perintah atau Manajer Paket NuGet.

Buka lingkungan terminal pilihan Anda di direktori proyek aplikasi dan masukkan perintah di bawah ini.

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

Layanan Azure umumnya diakses menggunakan kelas klien yang sesuai dari SDK. Kelas dan layanan kustom Anda sendiri harus terdaftar dalam file Program.cs sehingga dapat diakses melalui injeksi dependensi di seluruh aplikasi Anda. Di dalam Program.cs, ikuti langkah-langkah di bawah ini untuk menyiapkan dengan benar layanan Anda dan DefaultAzureCredential.

  1. Sertakan namespace layanan Azure.Identity dan Microsoft.Extensions.Azure dengan pernyataan penggunaan.
  2. Daftarkan layanan Azure menggunakan metode pembantu yang relevan.
  3. Teruskan instans DefaultAzureCredential objek ke UseCredential metode .

Contoh ini ditampilkan di segmen kode berikut.

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

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

Atau, Anda juga dapat menggunakan DefaultAzureCredential layanan Anda secara lebih langsung tanpa bantuan metode pendaftaran Azure tambahan, seperti yang terlihat di bawah ini.

using Azure.Identity;

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

Ketika kode di atas dijalankan di stasiun kerja lokal Anda selama pengembangan lokal, kode tersebut akan melihat variabel lingkungan untuk perwakilan layanan aplikasi atau di Visual Studio, VS Code, Azure CLI, atau Azure PowerShell untuk serangkaian kredensial pengembang, yang salah satunya 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.