Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Saat aplikasi perlu mengakses sumber daya Azure, seperti Storage, Key Vault, atau Cognitive Services, aplikasi harus diautentikasi ke Azure. Ini berlaku untuk semua aplikasi, baik yang disebarkan ke Azure, disebarkan secara lokal, atau sedang dalam pengembangan di stasiun kerja pengembang lokal. Artikel ini menjelaskan pendekatan yang direkomendasikan untuk mengautentikasi aplikasi ke Azure saat menggunakan Azure SDK untuk JavaScript.
Pendekatan autentikasi aplikasi yang direkomendasikan
Pendekatan yang disarankan adalah meminta aplikasi Anda menggunakan autentikasi berbasis token , bukan string koneksi atau kunci, saat mengautentikasi ke sumber daya Azure. Pustaka Azure Identity menyediakan autentikasi berbasis token dan memungkinkan aplikasi mengautentikasi ke sumber daya Azure dengan lancar baik aplikasi dalam pengembangan lokal, disebarkan ke Azure, atau disebarkan ke server lokal.
Jenis autentikasi berbasis token tertentu yang harus digunakan aplikasi untuk mengautentikasi ke sumber daya Azure bergantung pada tempat aplikasi berjalan dan ditampilkan dalam diagram berikut.
Lingkungan | Otentikasi |
---|---|
Lokal | Saat pengembang menjalankan aplikasi selama pengembangan lokal - Aplikasi dapat mengautentikasi ke Azure menggunakan perwakilan layanan aplikasi untuk pengembangan lokal atau dengan menggunakan kredensial Azure pengembang. Masing-masing opsi ini dibahas secara lebih rinci di bagian autentikasi selama pengembangan lokal. |
Azure | Saat aplikasi dihosting di Azure - Aplikasi harus mengautentikasi ke sumber daya Azure menggunakan identitas terkelola. Opsi ini dibahas secara lebih rinci di bawah ini di bagian autentikasi di lingkungan server. |
Lokal | Saat aplikasi dihosting dan disebarkan secara lokal - Aplikasi harus mengautentikasi ke sumber daya Azure menggunakan perwakilan layanan aplikasi. Opsi ini dibahas secara lebih rinci di bawah ini di bagian autentikasi di lingkungan server. |
Keuntungan autentikasi berbasis token
Saat membangun aplikasi untuk Azure, autentikasi berbasis token sangat direkomendasikan daripada rahasia (string koneksi atau kunci). Autentikasi berbasis token disediakan dengan DefaultAzureCredential.
Autentikasi berbasis token | Rahasia (string koneksi dan kunci) |
---|---|
Prinsip hak istimewa paling sedikit, menetapkan izin khusus yang diperlukan oleh aplikasi pada sumber daya Azure. | String koneksi atau kunci memberikan hak penuh ke sumber daya Azure. |
Tidak ada informasi rahasia aplikasi yang perlu disimpan. | Harus menyimpan dan mengganti rahasia dalam pengaturan aplikasi atau variabel lingkungan. |
Pustaka Azure Identity mengelola token untuk Anda di belakang layar. Ini membuat penggunaan autentikasi berbasis token mudah digunakan sebagai string koneksi. | Rahasia tidak dikelola. |
Penggunaan string koneksi harus terbatas pada bukti awal aplikasi konsep atau prototipe pengembangan yang tidak mengakses produksi atau data sensitif. Jika tidak, kelas autentikasi berbasis token yang tersedia di pustaka Azure Identity harus selalu disukai saat mengautentikasi ke sumber daya Azure.
Gunakan pustaka berikut:
- @azure/ identitas
DefaultAzureCredential
Kelas DefaultAzureCredential
akan secara otomatis mendeteksi dan menggunakan metode autentikasi tersebut. Penggunaan DefaultAzureCredential
harus lebih disukai daripada logika kondisional pengkodean manual atau bendera fitur untuk menggunakan metode autentikasi yang berbeda di lingkungan yang berbeda.
Detail tentang menggunakan DefaultAzureCredential
tercakup dalam Gunakan DefaultAzureCredential
dalam aplikasi.
Autentikasi di lingkungan server
Saat menghosting di lingkungan server, setiap aplikasi harus diberi identitas aplikasi unik per lingkungan. Di Azure, identitas aplikasi diwakili olehperwakilan layanan
Autentikasi selama pengembangan lokal
Saat aplikasi dijalankan di stasiun kerja pengembang selama pengembangan lokal, lingkungan lokal harus tetap mengautentikasi ke layanan Azure apa pun yang digunakan oleh aplikasi.
Menggunakan DefaultAzureCredential dalam aplikasi
DefaultAzureCredential adalah urutan mekanisme yang terstruktur dan teratur untuk mengautentikasi ke Microsoft Entra ID. Setiap mekanisme autentikasi adalah kelas yang berasal dari kelas TokenCredential dan dikenal sebagai kredensial . Saat runtime, DefaultAzureCredential
mencoba 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.
Untuk menggunakan DefaultAzureCredential, tambahkan paket @azure/identity ke aplikasi Anda.
npm install @azure/identity
Kemudian, sampel kode berikut menunjukkan cara membuat instans objek DefaultAzureCredential
dan menggunakannya dengan kelas klien layanan Azure SDK—dalam hal ini, BlobServiceClient
digunakan untuk mengakses Azure Blob Storage.
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()
);
DefaultAzureCredential
akan secara otomatis mendeteksi mekanisme autentikasi yang dikonfigurasi untuk aplikasi dan mendapatkan token yang diperlukan untuk mengautentikasi aplikasi ke Azure. Jika aplikasi menggunakan lebih dari satu klien SDK, objek kredensial yang sama dapat digunakan dengan setiap objek klien SDK.