Mengautentikasi aplikasi yang dihosting Azure ke sumber daya Azure dengan Azure SDK for JavaScript
Saat aplikasi dihosting di Azure (menggunakan layanan seperti Azure App Service, Azure Virtual Machines, atau Azure Container Instances), pendekatan yang direkomendasikan untuk mengautentikasi aplikasi ke sumber daya Azure adalah dengan menggunakan identitas terkelola.
Identitas terkelola menyediakan identitas untuk aplikasi Anda sehingga aplikasi Anda terhubung ke sumber daya Azure lainnya tanpa perlu menggunakan rahasia (seperti string koneksi kunci). Secara internal, Azure mengetahui identitas aplikasi Anda dan sumber daya apa yang diizinkan untuk disambungkan. Azure menggunakan informasi ini untuk mendapatkan token Microsoft Entra secara otomatis untuk aplikasi agar dapat terhubung ke sumber daya Azure lainnya, semuanya tanpa harus mengelola (membuat atau memutar) rahasia autentikasi.
Tipe identitas terkelola
Ada dua jenis identitas terkelola:
- Identitas terkelola yang ditetapkan sistem - sumber daya Azure tunggal
- Identitas terkelola yang ditetapkan pengguna - beberapa sumber daya Azure
Artikel ini 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.
Identitas terkelola yang ditetapkan sistem untuk sumber daya tunggal
Identitas terkelola yang ditetapkan sistem 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. Ini terkait dengan siklus hidup sumber daya Azure. 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.
Identitas terkelola yang ditetapkan pengguna untuk beberapa sumber daya
Secara konseptual identitas ini adalah 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 dan 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.
1 - Ditetapkan sistem: Aktifkan di aplikasi yang dihosting
Langkah pertama adalah mengaktifkan identitas terkelola pada sumber daya Azure yang menghosting aplikasi Anda. Misalnya, jika Anda menghosting aplikasi Django menggunakan Azure App Service, Anda perlu mengaktifkan identitas terkelola untuk aplikasi web App Service tersebut. 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.
2 - Menetapkan peran ke identitas terkelola
Selanjutnya, Anda perlu menentukan peran (izin) apa yang dibutuhkan aplikasi Anda dan menetapkan identitas terkelola ke peran tersebut di Azure. Identitas terkelola dapat ditetapkan peran di sumber daya, grup sumber daya, atau cakupan langganan. Contoh ini 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.
3 - Menerapkan DefaultAzureCredential di aplikasi Anda
Kelas DefaultAzureCredential
akan secara otomatis mendeteksi bahwa identitas terkelola sedang digunakan dan menggunakan identitas terkelola untuk mengautentikasi ke sumber daya Azure lainnya. Seperti yang dibahas dalam artikel gambaran umum autentikasi Azure SDK for JavaScript, DefaultAzureCredential
mendukung beberapa metode autentikasi dan menentukan metode autentikasi yang digunakan saat runtime. Dengan cara ini, aplikasi Anda dapat menggunakan metode autentikasi yang berbeda di lingkungan yang berbeda tanpa menerapkan kode khusus lingkungan.
Pertama, tambahkan paket @azure/identitas ke aplikasi Anda.
npm install @azure/identity
Selanjutnya, untuk kode JavaScript apa pun yang membuat objek klien Azure SDK di aplikasi, Anda ingin:
DefaultAzureCredential
Impor kelas dari@azure/identity
modul.- Buat objek
DefaultAzureCredential
. - Teruskan
DefaultAzureCredential
objek ke konstruktor objek klien Azure SDK.
Contoh ini ditampilkan di segmen kode berikut.
// connect-with-default-azure-credential.js
import { BlobServiceClient } from '@azure/storage-blob';
import { DefaultAzureCredential } from '@azure/identity';
import 'dotenv/config'
const accountName = process.env.AZURE_STORAGE_ACCOUNT_NAME;
if (!accountName) throw Error('Azure Storage accountName not found');
const blobServiceClient = new BlobServiceClient(
`https://${accountName}.blob.core.windows.net`,
new DefaultAzureCredential()
);
Ketika kode di atas dijalankan di stasiun kerja lokal Anda selama pengembangan lokal, metode SDK, DefaultAzureCredential(), lihat variabel lingkungan untuk perwakilan layanan aplikasi atau di VISUAL 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. Dengan cara ini, kode yang sama ini dapat digunakan untuk mengautentikasi aplikasi Anda ke sumber daya Azure selama pengembangan lokal dan saat disebarkan ke Azure.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk