Mengautentikasi aplikasi .NET ke layanan Azure selama pengembangan lokal menggunakan akun pengembang
Pengembang perlu men-debug dan menguji aplikasi cloud di stasiun kerja lokal mereka. Saat aplikasi berjalan di stasiun kerja pengembang selama pengembangan lokal, aplikasi harus tetap mengautentikasi ke layanan Azure apa pun yang digunakan oleh aplikasi. Artikel ini membahas cara menggunakan kredensial Azure pengembang untuk mengautentikasi aplikasi ke Azure selama pengembangan lokal.
Agar aplikasi dapat mengautentikasi ke Azure selama pengembangan lokal menggunakan kredensial Azure pengembang, pengembang harus masuk ke Azure dari salah satu alat pengembang berikut:
- Visual Studio
- Azure CLI
- Azure Developer CLI
- Azure PowerShell
Pustaka Azure Identity dapat mendeteksi bahwa pengembang masuk dari salah satu alat ini. Pustaka kemudian dapat memperoleh token akses Microsoft Entra melalui alat 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 memiliki lebih banyak izin daripada yang diperlukan oleh aplikasi, oleh karena itu melebihi izin yang dijalankan aplikasi dalam produksi. Sebagai alternatif, Anda dapat membuat perwakilan layanan aplikasi untuk digunakan selama pengembangan lokal, yang dapat dilingkupkan agar hanya memiliki akses yang diperlukan oleh aplikasi.
1 - Membuat grup Microsoft Entra untuk pengembangan lokal
Karena hampir selalu ada beberapa pengembang yang mengerjakan aplikasi, grup Microsoft Entra disarankan untuk merangkum peran (izin) yang dibutuhkan aplikasi dalam pengembangan lokal. Pendekatan 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 untuk aplikasi.
- Jika pengembang baru bergabung dengan tim, mereka mendapatkan izin yang diperlukan untuk mengerjakan aplikasi setelah ditambahkan ke grup.
Jika Anda memiliki grup Microsoft Entra yang sudah ada untuk tim pengembangan, Anda dapat menggunakan grup tersebut. Jika tidak, selesaikan langkah-langkah berikut untuk membuat grup Microsoft Entra.
Catatan
Secara default, pembuatan grup Microsoft Entra terbatas pada peran istimewa tertentu dalam direktori. Jika Anda tidak dapat membuat grup, hubungi administrator untuk direktori Anda. Jika Anda tidak dapat menambahkan anggota ke grup yang sudah ada, hubungi pemilik grup atau administrator direktori. Untuk mempelajari selengkapnya, lihat Mengelola grup Microsoft Entra dan keanggotaan grup.
2 - Menetapkan peran ke grup Microsoft Entra
Selanjutnya, tentukan peran (izin) apa yang dibutuhkan aplikasi Anda pada sumber daya apa dan tetapkan peran tersebut ke aplikasi Anda. Dalam contoh ini, peran ditetapkan ke grup Microsoft Entra yang dibuat di langkah 1. Grup dapat diberi peran di sumber daya, grup sumber daya, atau cakupan langganan. Contoh ini menunjukkan cara menetapkan peran di grup sumber daya, cakupan karena sebagian besar aplikasi mengelompokkan semua sumber daya Azure mereka ke dalam satu grup sumber daya.
3 - Masuk ke Azure menggunakan alat pengembang
Selanjutnya, masuk ke Azure menggunakan salah satu dari beberapa alat pengembang. Akun yang Anda autentikasi juga harus ada di grup Microsoft Entra yang Anda buat dan konfigurasikan sebelumnya.
Navigasi ke Opsi Alat>untuk membuka dialog opsi.
Dalam kotak Opsi Pencarian di bagian atas, ketik Azure untuk memfilter opsi yang tersedia.
Di bawah Autentikasi Layanan Azure, pilih Pilihan Akun.
Pilih menu drop-down di bawah Pilih akun dan pilih untuk menambahkan Akun Microsoft. Jendela terbuka, meminta Anda untuk memilih akun. Masukkan kredensial untuk akun Azure yang Anda inginkan, lalu pilih konfirmasi.
Pilih OK untuk menutup dialog opsi.
4 - 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
:
- Sertakan
Azure.Identity
namespace layanan danMicrosoft.Extensions.Azure
melaluiusing
arahan. - Daftarkan klien layanan Azure menggunakan metode ekstensi -awalan
Add
yang sesuai. - Teruskan instans
DefaultAzureCredential
keUseCredential
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.