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.

Petunjuk Cuplikan layar
Navigasikan ke sumber daya yang menghosting kode aplikasi Anda di portal Microsoft Azure.

Misalnya, Anda dapat mengetikkan nama sumber daya Anda di kotak pencarian di bagian atas halaman dan menavigasinya dengan memilihnya dalam kotak dialog.
Cuplikan layar memperlihatkan cara menggunakan bilah pencarian teratas di portal Azure untuk menemukan dan menavigasi ke sumber daya di 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 memverifikasi bahwa Anda ingin mengaktifkan identitas terkelola untuk layanan Anda. Jawab Ya untuk mengaktifkan identitas terkelola 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, 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.

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.
Cuplikan layar memperlihatkan cara menggunakan bilah pencarian teratas di portal Azure untuk menemukan dan menavigasi ke grup sumber daya di Azure.
Pada halaman untuk grup sumber daya, pilih Kontrol akses (IAM) dari menu sebelah kiri. Cuplikan layar memperlihatkan lokasi item menu Kontrol akses (I A M) 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 terbuka di sisi kanan portal 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 ditampilkan seperti yang dipilih pada 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

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:

  1. DefaultAzureCredential Impor kelas dari @azure/identity modul.
  2. Buat objek DefaultAzureCredential.
  3. 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.