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.
Artikel ini memperlihatkan kepada Anda cara menginisialisasi ConfidentialClientApplication objek di MSAL Node. Anda akan mempelajari cara menggunakan rahasia dan sertifikat dengan aman, dan cara mengonfigurasi otoritas.
Prasyarat
Sebelum menginisialisasi aplikasi, Anda harus terlebih dahulu mendaftarkannya di pusat admin Microsoft Entra, membangun hubungan kepercayaan antara aplikasi Anda dan platform identitas Microsoft.
Setelah mendaftarkan aplikasi, Anda memerlukan beberapa atau semua nilai berikut yang dapat ditemukan di pusat admin Microsoft Entra.
| Nilai | Wajib diisi | Deskripsi |
|---|---|---|
| ID aplikasi (klien) | Wajib diisi | GUID yang secara unik mengidentifikasi aplikasi Anda dalam platform identitas Microsoft. |
| Kewenangan | Optional | URL penyedia identitas (instans) dan audiens masuk aplikasi untuk aplikasi Anda. Instans dan audiens masuk, saat digabungkan, membentuk otoritas. |
| ID direktori (penyewa) | Optional | Tentukan ID Direktori (penyewa) jika Anda membangun aplikasi lini bisnis hanya untuk organisasi Anda, sering disebut sebagai aplikasi penyewa tunggal. |
| Pengalihan URI | Optional | Jika Anda membangun aplikasi web, redirectUri menentukan tempat penyedia identitas (platform identitas Microsoft) harus mengembalikan token keamanan yang telah dikeluarkannya. |
Menginisialisasi ConfidentialClientApplication objek
Untuk menggunakan MSAL Node, Anda perlu membuat instans objek ConfidentialClient .
Menggunakan rahasia dan sertifikat dengan aman
Rahasia tidak boleh dikodekan secara permanen. Paket npm dotenv dapat digunakan untuk menyimpan rahasia atau sertifikat dalam file .env (terletak di direktori akar proyek) yang harus disertakan dalam .gitignore untuk mencegah unggahan rahasia yang tidak disengaja.
Sertifikat juga dapat dibaca dari file melalui modul fs NodeJS. Namun, mereka tidak boleh disimpan di direktori proyek. Aplikasi produksi harus mengambil sertifikat dari Azure KeyVault, atau brankas kunci aman lainnya.
Silakan lihat sertifikat dan rahasia untuk informasi lebih lanjut.
Lihat sampel MSAL: auth-code-with-certs
import * as msal from "@azure/msal-node";
import "dotenv/config"; // process.env now has the values defined in a .env file
const clientAssertionCallback = async (config) => {
// network request that uses config.clientId and (optionally) config.tokenEndpoint
const result = await Promise.resolve(
"network request which gets assertion"
);
return result;
};
const clientConfig = {
auth: {
clientId: "your_client_id",
authority: "your_authority",
clientSecret: process.env.clientSecret, // OR
clientCertificate: {
thumbprintSha256: process.env.thumbprint,
privateKey: process.env.privateKey,
}, // OR
clientAssertion: clientAssertionCallback, // or a predetermined clientAssertion string
},
};
const cca = new msal.ConfidentialClientApplication(clientConfig);
Silakan lihat Masalah umum saat mengimpor sertifikat.
Dasar-Dasar Konfigurasi
Konfigurasi opsi untuk node memiliki parameter common dan specific parameter per setiap alur autentikasi.
-
clientIdwajib menginisialisasi aplikasi klien publik -
authoritysecara default menjadihttps://login.microsoftonline.com/common/jika pengguna tidak mengaturnya saat konfigurasi - Kredensial Klien wajib untuk klien rahasia. Kredensial klien dapat berupa:
-
clientSecretadalah string rahasia yang dihasilkan yang ditetapkan pada pendaftaran aplikasi. -
clientCertificateadalah sertifikat yang ditetapkan pada pendaftaran aplikasi.thumbprintSha256adalah thumbprint sertifikat X.509 SHA-256, danprivateKeyadalah kunci privat yang dikodekan PEM.x5cadalah rantai sertifikat X.509 opsional yang digunakan dalam skenario autentikasi nama subjek/penerbit. -
clientAssertionadalah objek ClientAssertion yang berisi string pernyataan atau fungsi panggilan balik yang mengembalikan string pernyataan yang digunakan aplikasi saat meminta token, serta jenis pernyataan (urn:ietf:params:oauth:client-assertion-type:jwt-bearer). Fungsi callback dipanggil setiap kali MSAL perlu mendapatkan token dari penerbit token. Pengembang aplikasi umumnya harus menggunakan panggilan balik karena pernyataan kedaluwarsa dan pernyataan baru perlu dibuat. Pengembang aplikasi bertanggung jawab atas masa pakai pernyataan. Gunakan mekanisme ini untuk mendapatkan token untuk API hilir menggunakan Kredensial Identitas Federasi.
-
Untuk opsi lebih lanjut tentang Konfigurasi , lihat Konfigurasi di MSAL Node.
Konfigurasi Otoritas
Secara bawaan, MSAL dikonfigurasi dengan tenant common, yang digunakan untuk aplikasi multitenant dan aplikasi yang mengizinkan akun pribadi (bukan B2C).
authority: 'https://login.microsoftonline.com/common/'
Jika audiens aplikasi Anda adalah penyewa tunggal, Anda harus memberikan otoritas dengan ID penyewa Anda seperti di bawah ini:
authority: 'https://login.microsoftonline.com/{your_tenant_id}'