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.
Paket ini menyediakan plugin ke pustaka Azure Identity untuk JavaScript (@azure/identity
) yang memungkinkan penggunaan broker autentikasi seperti WAM.
Broker autentikasi adalah aplikasi yang berjalan pada komputer pengguna yang mengelola jabat tangan autentikasi dan pemeliharaan token untuk akun yang terhubung. Saat ini, hanya broker autentikasi Windows, Web Account Manager (WAM), yang didukung.
| Sampel Sumber | dokumentasi referensi API | [Dokumentasi ID Microsoft Entra] (https://learn.microsoft.com/entra/identity/)
Persiapan
import { useIdentityPlugin } from "@azure/identity";
import { nativeBrokerPlugin } from "@azure/identity-broker";
useIdentityPlugin(nativeBrokerPlugin);
Prasyarat
Menginstal paket
Paket ini dirancang untuk digunakan dengan Azure Identity for JavaScript. Instal @azure/identity
dan paket ini menggunakan npm
:
npm install --save @azure/identity
npm install --save @azure/identity-broker
Lingkungan yang didukung
Plugin Azure Identity untuk JavaScript mendukung versi Node.js stabil (bahkan bernomor) mulai dari v18. Meskipun plugin dapat berjalan dalam versi Node.js lainnya, tidak ada dukungan yang dijamin.
@azure/identity-broker
tidak mendukung lingkungan browser.
Konsep utama
Jika ini pertama kalinya Anda menggunakan @azure/identity
atau ID Microsoft Entra, kami sarankan Anda membaca Menggunakan @azure/identity
dengan ID Microsoft Entra terlebih dahulu. Dokumen ini akan memberi Anda pemahaman yang lebih mendalam tentang platform dan cara mengonfigurasi akun Azure Anda dengan benar.
Handel jendela induk
Saat mengautentikasi dengan broker melalui InteractiveBrowserCredential
, handel jendela induk diperlukan untuk memastikan bahwa dialog autentikasi ditampilkan dengan benar di atas jendela permintaan. Dalam konteks antarmuka pengguna grafis pada perangkat, handel jendela adalah pengidentifikasi unik yang ditetapkan sistem operasi ke setiap jendela. Untuk sistem operasi Windows, handel ini adalah nilai bilangan bulat yang berfungsi sebagai referensi ke jendela tertentu.
Passthrough akun Microsoft (MSA)
Akun Microsoft (MSA) adalah akun pribadi yang dibuat oleh pengguna untuk mengakses layanan Microsoft. Passthrough MSA adalah konfigurasi warisan yang memungkinkan pengguna untuk mendapatkan token ke sumber daya yang biasanya tidak menerima login MSA. Fitur ini hanya tersedia untuk aplikasi pihak pertama. Pengguna yang mengautentikasi dengan aplikasi yang dikonfigurasi untuk menggunakan passthrough MSA dapat mengatur legacyEnableMsaPassthrough
ke true
di dalam InteractiveBrowserCredentialNodeOptions.brokerOptions
untuk memungkinkan akun pribadi ini dicantumkan oleh WAM.
URI Pengalihan
Aplikasi Microsoft Entra mengandalkan URI pengalihan untuk menentukan tempat mengirim respons autentikasi setelah pengguna masuk. Untuk mengaktifkan autentikasi broker melalui WAM, URI pengalihan yang cocok dengan pola berikut harus didaftarkan ke aplikasi:
ms-appx-web://Microsoft.AAD.BrokerPlugin/{client_id}
Plugin Azure Identity
Pada @azure/identity
versi 2.0.0, pustaka klien Identitas untuk JavaScript menyertakan API plugin. Paket ini (@azure/identity-broker
) mengekspor objek plugin yang harus Anda teruskan sebagai argumen ke fungsi useIdentityPlugin
tingkat atas dari paket @azure/identity
. Aktifkan broker asli dalam program Anda sebagai berikut:
import { useIdentityPlugin, InteractiveBrowserCredential } from "@azure/identity";
import { nativeBrokerPlugin } from "@azure/identity-broker";
useIdentityPlugin(nativeBrokerPlugin);
const credential = new InteractiveBrowserCredential({
brokerOptions: {
enabled: true,
parentWindowHandle: new Uint8Array(0), // This should be a handle to the parent window
},
});
Setelah memanggil useIdentityPlugin
, plugin broker asli terdaftar ke paket @azure/identity
dan akan tersedia di InteractiveBrowserCredential
yang mendukung autentikasi broker WAM. Kredensial ini memiliki brokerOptions
dalam opsi konstruktor.
Contoh
Setelah plugin terdaftar, Anda dapat mengaktifkan autentikasi broker WAM dengan meneruskan brokerOptions
dengan properti enabled
diatur ke true
ke konstruktor kredensial. Dalam contoh berikut, kita menggunakan InteractiveBrowserCredential
.
import { useIdentityPlugin, InteractiveBrowserCredential } from "@azure/identity";
import { nativeBrokerPlugin } from "@azure/identity-broker";
useIdentityPlugin(nativeBrokerPlugin);
const credential = new InteractiveBrowserCredential({
brokerOptions: {
enabled: true,
parentWindowHandle: new Uint8Array(0), // This should be a handle to the parent window
},
});
// We'll use the Microsoft Graph scope as an example
const scope = "https://graph.microsoft.com/.default";
// Print out part of the access token
console.log((await credential.getToken(scope)).token.substring(0, 10), "...");
Untuk contoh lengkap penggunaan aplikasi Electron untuk mengambil handel jendela, lihat sampel ini.
Menggunakan akun default untuk masuk
Ketika opsi useDefaultBrokerAccount
diatur ke true
, kredensial akan mencoba menggunakan akun broker default secara diam-diam. Jika menggunakan akun default gagal, kredensial akan kembali ke autentikasi interaktif.
import { useIdentityPlugin, InteractiveBrowserCredential } from "@azure/identity";
import { nativeBrokerPlugin } from "@azure/identity-broker";
useIdentityPlugin(nativeBrokerPlugin);
const credential = new InteractiveBrowserCredential({
brokerOptions: {
enabled: true,
useDefaultBrokerAccount: true,
parentWindowHandle: new Uint8Array(0), // This should be a handle to the parent window
},
});
// We'll use the Microsoft Graph scope as an example
const scope = "https://graph.microsoft.com/.default";
// Print out part of the access token
console.log((await credential.getToken(scope)).token.substr(0, 10), "...");
Pemecahan masalah
Lihat Azure Identity [panduan pemecahan masalah][https://github.com/Azure/azure-sdk-for-js/blob/@azure/identity-broker_1.1.0/sdk/identity/identity/TROUBLESHOOTING.md] untuk detail tentang cara mendiagnosis berbagai skenario kegagalan.
Penebangan
Mengaktifkan pengelogan dapat membantu mengungkap informasi yang berguna tentang kegagalan. Untuk melihat log permintaan dan respons HTTP, atur variabel lingkungan AZURE_LOG_LEVEL
ke info
. Atau, pengelogan dapat diaktifkan saat runtime dengan memanggil setLogLevel
di @azure/logger
:
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
Langkah berikutnya
Berikan umpan balik
Jika Anda mengalami bug atau memiliki saran, silakan membuka masalah.
Berkontribusi
Jika Anda ingin berkontribusi pada pustaka ini, lihat panduan berkontribusi untuk mempelajari selengkapnya tentang cara membuat dan menguji kode.
Tayangan
Azure SDK for JavaScript