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.
Aplikasi yang dihosting di luar Azure, seperti lokal atau di pusat data pihak ketiga, harus menggunakan perwakilan layanan aplikasi melalui ID Microsoft Entra untuk mengautentikasi ke layanan Azure. Di bagian depan, Anda mempelajari:
- Cara mendaftarkan aplikasi dengan Microsoft Entra untuk membuat perwakilan layanan
- Cara mengatur peran pada izin cakupan
- Cara melakukan autentikasi menggunakan perwakilan layanan atau service principal dari kode aplikasi Anda
Menggunakan prinsipap layanan aplikasi khusus memungkinkan Anda mematuhi prinsip hak akses minimal saat mengakses sumber daya Azure. Izin terbatas pada persyaratan khusus aplikasi selama pengembangan, mencegah akses yang tidak disengaja ke sumber daya Azure yang ditujukan untuk aplikasi atau layanan lain. Pendekatan ini juga membantu menghindari masalah saat aplikasi dipindahkan ke produksi dengan memastikannya tidak terlalu istimewa di lingkungan pengembangan.
Pendaftaran aplikasi yang berbeda harus dibuat untuk setiap lingkungan tempat aplikasi dihosting. Ini memungkinkan izin sumber daya khusus lingkungan dikonfigurasi untuk setiap perwakilan layanan dan memastikan aplikasi yang disebarkan ke satu lingkungan tidak berbicara dengan sumber daya Azure di lingkungan lain.
Mendaftarkan aplikasi di Azure
Objek principal layanan aplikasi dibuat melalui pendaftaran aplikasi di Azure dengan menggunakan portal Azure atau Azure CLI.
Di portal Microsoft Azure, gunakan bilah pencarian untuk menavigasi ke halaman Pendaftaran aplikasi.
Pada halaman Pendaftaran aplikasi, pilih + Pendaftaran baru.
Pada halaman Daftarkan aplikasi:
- Untuk bidang Nama, masukkan nilai deskriptif yang menyertakan nama aplikasi dan lingkungan target.
- Untuk Jenis akun yang didukung, pilih Akun di direktori organisasi ini saja (Hanya Microsoft Customer Led - Penyewa tunggal), atau opsi mana yang paling sesuai dengan kebutuhan Anda.
Pilih Daftarkan untuk mendaftarkan aplikasi Anda dan buat perwakilan layanan.
Pada halaman Pendaftaran aplikasi untuk aplikasi Anda, salin ID Aplikasi (klien) dan ID Direktori (penyewa) dan tempelkan di lokasi sementara untuk digunakan nanti dalam konfigurasi kode aplikasi Anda.
Pilih Tambahkan sertifikat atau rahasia untuk menyiapkan kredensial untuk aplikasi Anda.
Pada halaman Sertifikat & rahasia, pilih + Rahasia klien baru.
Pada panel pop-up Tambahkan rahasia klien yang terbuka:
- Untuk Deskripsi, masukkan nilai
Current. - Untuk nilai Kedaluwarsa, biarkan nilai default yang direkomendasikan
180 days. - Pilih Buat untuk menambahkan rahasia.
- Untuk Deskripsi, masukkan nilai
Pada halaman Sertifikat & rahasia, salin properti Nilai rahasia klien untuk digunakan dalam langkah selanjutnya.
Nota
Nilai rahasia klien hanya ditampilkan sekali setelah pendaftaran aplikasi dibuat. Anda dapat menambahkan lebih banyak rahasia klien tanpa membatalkan rahasia klien ini, tetapi tidak ada cara untuk menampilkan nilai ini lagi.
Menetapkan peran ke perwakilan layanan aplikasi
Selanjutnya, tentukan peran (izin) apa yang dibutuhkan aplikasi Anda pada sumber daya apa dan tetapkan peran tersebut ke perwakilan layanan yang Anda buat. Peran dapat ditetapkan di tingkat sumber daya, grup sumber daya, atau 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.
Di portal Microsoft Azure, buka halaman Gambaran Umum grup sumber daya yang berisi aplikasi Anda.
Pilih Kontrol akses (IAM) dari navigasi kiri.
Pada halaman Kontrol akses (IAM), pilih + Tambahkan lalu pilih Tambahkan penetapan peran dari menu drop-down. Halaman Tambahkan penetapan peran menyediakan beberapa tab untuk mengonfigurasi dan menetapkan peran.
Pada tab Peran , gunakan kotak pencarian untuk menemukan peran yang ingin Anda tetapkan. Pilih peran, lalu pilih Berikutnya.
Pada tab Anggota :
- Untuk Menetapkan akses ke nilai, pilih Pengguna, grup, atau perwakilan layanan .
- Untuk nilai Anggota , pilih + Pilih anggota untuk membuka panel flyout Pilih anggota .
- Cari prinsipal layanan yang Anda buat sebelumnya dan pilih dari hasil yang telah difilter. Pilih Pilih untuk memilih grup dan menutup panel flyout.
- Pilih Tinjau + tetapkan di bawah tab Anggota.
Di tab
Tinjau & Tetapkan , pilihTinjau & Tetapkan di bagian bawah halaman.
Mengatur variabel lingkungan aplikasi
Pada runtime, kredensial tertentu dari pustaka Azure Identity, seperti DefaultAzureCredential, EnvironmentCredential, dan ClientSecretCredential, mencari informasi perwakilan layanan berdasarkan konvensi dalam variabel lingkungan. Ada beberapa cara untuk mengonfigurasi variabel lingkungan saat bekerja dengan JavaScript, tergantung pada alat dan lingkungan Anda.
Terlepas dari pendekatan yang Anda pilih, konfigurasikan variabel lingkungan berikut untuk perwakilan layanan:
-
AZURE_CLIENT_ID: Digunakan untuk mengidentifikasi aplikasi terdaftar di Azure. -
AZURE_TENANT_ID: ID penyewa dari Microsoft Entra. -
AZURE_CLIENT_SECRET: Kredensial rahasia yang dihasilkan untuk aplikasi.
Di Visual Studio Code, variabel lingkungan dapat diatur dalam file launch.json proyek Anda. Nilai-nilai ini ditarik secara otomatis saat aplikasi dimulai. Namun, konfigurasi ini tidak bepergian dengan aplikasi Anda selama penyebaran, jadi Anda perlu menyiapkan variabel lingkungan pada lingkungan hosting target Anda.
"configurations": [
{
"env": {
"NODE_ENV": "development",
"AZURE_CLIENT_ID": "<your-client-id>",
"AZURE_TENANT_ID":"<your-tenant-id>",
"AZURE_CLIENT_SECRET": "<your-client-secret>"
}
}
Mengautentikasi ke layanan Azure dari aplikasi Anda
Pustaka Azure Identity menyediakan berbagai kredensial—implementasi TokenCredential yang disesuaikan untuk mendukung skenario yang berbeda dan alur autentikasi Microsoft Entra. Langkah-langkah di depan menunjukkan cara menggunakan ClientSecretCredential saat bekerja dengan perwakilan layanan secara lokal dan dalam produksi.
Menerapkan kode
Tambahkan paket @azure/identitas dalam proyek Node.js:
npm install @azure/identity
Layanan Azure diakses menggunakan kelas klien khusus dari berbagai pustaka klien Azure SDK. Untuk kode JavaScript apa pun yang membuat objek klien Azure SDK di aplikasi Anda, ikuti langkah-langkah berikut:
-
ClientSecretCredentialImpor kelas dari@azure/identitymodul. - Buat
ClientSecretCredentialobjek dengantenantId, ,clientIddanclientSecret. - Teruskan
ClientSecretCredentialinstans ke konstruktor objek klien Azure SDK.
Contoh pendekatan ini ditampilkan di segmen kode berikut:
import { BlobServiceClient } from '@azure/storage-blob';
import { ClientSecretCredential } from '@azure/identity';
// Authentication
const tenantId = process.env.AZURE_TENANT_ID;
const clientId = process.env.AZURE_CLIENT_ID;
const clientSecret = process.env.AZURE_CLIENT_SECRET;
// Azure Storage account name
const accountName = process.env.AZURE_STORAGE_ACCOUNT_NAME;
if (!tenantId || !clientId || !clientSecret || !accountName) {
throw Error('Required environment variables not found');
}
const credential = new ClientSecretCredential(tenantId, clientId, clientSecret);
const blobServiceClient = new BlobServiceClient(
`https://${accountName}.blob.core.windows.net`,
credential
);
Pendekatan alternatif adalah meneruskan ClientSecretCredential objek langsung ke konstruktor klien Azure SDK:
const blobServiceClient = new BlobServiceClient(
`https://${accountName}.blob.core.windows.net`,
new ClientSecretCredential(tenantId, clientId, clientSecret)
);