Mulai cepat: Mendapatkan token dan memanggil Microsoft Graph API dari Node.js aplikasi konsol menggunakan identitas aplikasi

Selamat Datang! Ini mungkin bukan halaman yang Anda inginkan. Sementara kami memperbaikinya, tautan ini akan mengarahkan Anda ke artikel yang tepat:

Mulai cepat: Aplikasi konsol Node.js yang memanggil API

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. Contoh kode 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.

Telah dikonfigurasi 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 kesalahan HTTP 403 - Terlarang: Insufficient privileges to complete the operation. Kesalahan ini terjadi karena izin khusus aplikasi yang 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 Beri 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 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 saja:

npm install

Kemudian, jalankan aplikasi melalui permintaah perintah atau konsol:

node . --op getUsers

Anda akan melihat pada output konsol beberapa fragmen JSON yang mewakili daftar pengguna di direktori Azure AD Anda.

Tentang kode

Di bawah ini, beberapa aspek penting dari aplikasi sampel yang dibahas.

MSAL Node

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);
Di 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, di mana {tenant} adalah nama penyewa atau Id penyewa Anda.
clientSecret Adalah rahasia klien yang dibuat untuk aplikasi di Azure Portal.

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);
Di mana: Deskripsi
tokenRequest Berisi cakupan yang diminta. Untuk klien rahasia, ini harus menggunakan format yang mirip {Application ID URI}/.default dengan menunjukkan bahwa cakupan yang diminta adalah yang didefinisikan secara statis dalam objek aplikasi yang diatur di Portal Azure (untuk Microsoft Graph, {Application ID URI} menunjuk ke https://graph.microsoft.com). Untuk API web kustom, {Application ID URI} didefinisikan di bagian Mengekspos API di Pendaftaran Aplikasi Portal 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: