Mulai cepat: Mendapatkan token dan memanggil API Microsoft Graph dari aplikasi konsol Node.js menggunakan identitas aplikasi
Selamat Datang! Ini mungkin bukan halaman yang Anda inginkan. Sementara kami bekerja memperbaikinya, tautan ini akan membawa Anda ke artikel yang tepat:
Mulai cepat: Memperoleh token dan memanggil Microsoft Graph dari aplikasi konsol Node.js
Kami mohon maaf atas ketidaknyamanan ini dan menghargai kesabaran Anda selama kami menyelesaikan masalah ini.
Dalam mulai cepat ini, Anda mengunduh dan menjalankan sampel kode yang menunjukkan bagaimana aplikasi konsol Node.js bisa mendapatkan token akses menggunakan identitas aplikasi untuk memanggil Microsoft Graph API dan menampilkan daftar pengguna di direktori. Sampel kode juga menunjukkan bagaimana pekerjaan tanpa pengawasan atau layanan Windows dapat berjalan dengan identitas aplikasi, bukan identitas pengguna.
Mulai cepat ini menggunakan Microsoft Authentication Library for Node.js (MSAL Node) dengan pemberian kredensial klien.
Prasyarat
- Node.js
- Visual Studio Code atau editor kode lainnya
Mengunduh dan mengonfigurasi contoh aplikasi
Langkah 1: Konfigurasikan aplikasi di portal Microsoft Azure
Agar contoh kode untuk mulai cepat ini berfungsi, Anda perlu membuat rahasia klien, dan menambahkan izin aplikasi User.Read.All dari Graph API.
Aplikasi Anda dikonfigurasi dengan atribut ini.
Langkah 2: Unduh proyek contoh Node.js
Catatan
Enter_the_Supported_Account_Info_Here
Langkah 3: Persetujuan admin
Jika Anda mencoba menjalankan aplikasi pada saat ini, Anda akan menerima HTTP 403 - Kesalahan terlarang: Insufficient privileges to complete the operation
. Kesalahan ini terjadi karena izin khusus aplikasi memerlukan persetujuan admin: Administrator Global direktori Anda harus memberikan persetujuan untuk aplikasi Anda. Memilih salah satu opsi di bawah ini bergantung pada peran Anda:
Administrator penyewa global
Jika Anda adalah Administrator Global, buka halaman Izin API pilih Berikan persetujuan admin untuk > Enter_the_Tenant_Name_Here
Pengguna standar
Jika Anda adalah pengguna standar penyewa Anda, maka Anda perlu meminta Administrator Global untuk memberikan persetujuan admin untuk aplikasi Anda. Untuk melakukannya, berikan URL berikut kepada administrator:
https://login.microsoftonline.com/Enter_the_Tenant_Id_Here/adminconsent?client_id=Enter_the_Application_Id_Here
Langkah 4: Jalankan aplikasi
Temukan folder root sampel (jika package.json
berada) di prompt perintah atau konsol. Anda harus menginstal dependensi sampel ini sekali:
npm install
Kemudian, jalankan aplikasi melalui prompt perintah atau konsol:
node . --op getUsers
Anda akan melihat pada output konsol beberapa fragmen JSON yang mewakili daftar pengguna di direktori Microsoft Entra Anda.
Tentang kode
Di bawah ini, beberapa aspek penting dari aplikasi sampel yang dibahas.
Simpul MSAL
MSAL Node adalah lpustaka yang digunakan untuk memasukkan pengguna dan meminta token yang digunakan untuk mengakses API yang dilindungi oleh platform identitas Microsoft. Seperti yang dijelaskan, mulai cepat ini meminta token berdasarkan izin aplikasi (menggunakan identitas aplikasi sendiri) alih-alih izin yang didelegasikan. Alur otentikasi yang digunakan dalam kasus ini dikenal sebagai aliran kredensial klien OAuth 2.0. Untuk informasi selengkapnya tentang cara menggunakan MSAL Node dengan aplikasi daemon, lihat Skenario: Aplikasi Daemon.
Anda dapat menginstal Node MSAL dengan menjalankan perintah npm berikut.
npm install @azure/msal-node --save
Inisialisasi MSAL
Anda bisa menambahkan referensi untuk MSAL dengan menambahkan kode berikut:
const msal = require('@azure/msal-node');
Lalu, inisialisasi MSAL menggunakan kode berikut:
const msalConfig = {
auth: {
clientId: "Enter_the_Application_Id_Here",
authority: "https://login.microsoftonline.com/Enter_the_Tenant_Id_Here",
clientSecret: "Enter_the_Client_Secret_Here",
}
};
const cca = new msal.ConfidentialClientApplication(msalConfig);
Mana: Deskripsi clientId
ID Aplikasi (klien) untuk aplikasi yang terdaftar di portal Microsoft Azure. Anda dapat menemukan nilai ini di halaman Gambaran Umum aplikasi di portal Microsoft Azure. authority
Titik akhir STS untuk diautentikasi oleh pengguna. Biasanya https://login.microsoftonline.com/{tenant}
untuk cloud publik, yang mana {tenant} adalah nama penyewa atau ID penyewa.clientSecret
Adalah rahasia klien yang dibuat untuk aplikasi di portal Microsoft Azure.
Untuk informasi lebih lanjut, silakan lihat dokumentasi referensi untuk ConfidentialClientApplication
Meminta token
Untuk meminta token menggunakan identitas aplikasi, gunakan metode acquireTokenByClientCredential
:
const tokenRequest = {
scopes: [ 'https://graph.microsoft.com/.default' ],
};
const tokenResponse = await cca.acquireTokenByClientCredential(tokenRequest);
Mana: Deskripsi tokenRequest
Berisi cakupan yang diminta. Untuk klien rahasia, ini harus menggunakan format yang mirip dengan {Application ID URI}/.default
untuk menunjukkan bahwa cakupan yang diminta adalah yang didefinisikan secara statis dalam objek aplikasi yang diatur di portal Microsoft Azure (untuk Microsoft Graph,{Application ID URI}
mengarah kehttps://graph.microsoft.com
). Untuk API web kustom,{Application ID URI}
ditentukan pada bagian Mengekspos API di Pendaftaran Aplikasi portal Microsoft Azure.tokenResponse
Respons berisi token akses untuk cakupan yang diminta.
Bantuan dan dukungan
Jika Anda memerlukan bantuan, ingin melaporkan masalah, atau ingin mempelajari opsi dukungan, lihat Bantuan dan dukungan bagi pengembang.
Langkah berikutnya
Untuk mempelajari lebih lanjut tentang pengembangan aplikasi daemon/konsol dengan MSAL Node, lihat tutorial: