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

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.

Already configured Aplikasi Anda dikonfigurasi dengan atribut ini.

Langkah 2: Unduh proyek contoh Node.js

Catatan

Enter_the_Supported_Account_Info_Here

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 ke https://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: