Migrasi dari MSAL v2.x ke MSAL v3.x

Jika Anda baru menggunakan MSAL, Anda harus mulai di sini.

Jika Anda berasal dari MSAL v1.x, Anda harus memeriksa panduan ini terlebih dahulu untuk bermigrasi ke MSAL v2.x lalu ikuti langkah berikutnya.

Jika Anda berasal dari MSAL v2.x, Anda dapat mengikuti panduan ini untuk memperbarui kode Anda untuk menggunakan MSAL v3.x.

Perubahan mendasar

Instansiasi aplikasi

Di MSAL v2.x, Anda membuat instans aplikasi seperti di bawah ini:

import { PublicClientApplication } from "@azure/msal-browser";

const msalConfig = {
    auth: {
        clientId: 'your_client_id'
    }
};

const msalInstance = new PublicClientApplication(msalConfig);

Di MSAL v3.x, Anda juga harus menginisialisasi objek aplikasi. Ada beberapa pilihan yang tersedia untuk Anda:

Opsi 1

Instansiasi objek PublicClientApplication dan inisialisasi setelahnya. Fungsi initialize ini asinkron dan harus diselesaikan sebelum memanggil API MSAL.js lainnya.

import { PublicClientApplication } from "@azure/msal-browser";

const msalConfig = {
    auth: {
        clientId: 'your_client_id'
    }
};

const msalInstance = new PublicClientApplication(msalConfig);
await msalInstance.initialize();

Opsi 2

Panggil createPublicClientApplication metode statis yang mengembalikan objek yang diinisialisasi PublicClientApplication . Perhatikan bahwa fungsi ini asinkron.

import { PublicClientApplication } from "@azure/msal-browser";

const msalConfig = {
    auth: {
        clientId: 'your_client_id'
    }
};

const msalInstance = await PublicClientApplication.createPublicClientApplication(msalConfig);

Tembolok berbasis klaim

Di MSAL v2.x, menambahkan klaim ke permintaan akan mengakibatkan hash string klaim yang diminta ditambahkan ke kunci cache token secara default. Ini berarti bahwa MSAL 2.x secara default menyimpan token dalam cache dan mencocokkannya berdasarkan klaim. Di MSAL v3.x, perilaku ini bukan lagi default. Perilaku default MSAL v3.x adalah membuka jaringan untuk menyegarkan token setiap kali klaim diminta, terlepas dari apakah token telah di-cache sebelumnya dan masih valid. Kemudian, setelah permintaan dikirim ke jaringan, token yang diterima menimpa token yang tersimpan di cache jika nantinya permintaan senyap tanpa klaim dijalankan. Untuk mengaktifkan cache berbasis klaim di MSAL v3.x agar mempertahankan perilaku yang sama seperti di MSAL v2.x, pengembang harus menggunakan flag konfigurasi cacheOptions.claimsBasedCachingEnabled yang diatur ke true dalam objek konfigurasi aplikasi klien:

const msalConfig = {
    auth: {
        ...
    },
    ...
    cache: {
        claimsBasedCachingEnabled: true
    }
}

const msalInstance = new msal.PublicClientApplication(msalConfig);
await msalInstance.initialize();

Semua API lainnya kompatibel dengan MSAL v2.x. Disarankan untuk melihat sampel default untuk melihat contoh MSAL v3.0 yang berfungsi.

Kripto

MSAL v3.x menghentikan dukungan untuk kriptografi native IE11 window.msCrypto dan Microsoft Research JavaScript Cryptography Library (kriptografi MSR) window.msrCrypto dan beralih ke API kriptografi browser native window.crypto. Opsi config.system.cryptoOptions kripto yang digunakan untuk kripto MSR juga tidak lagi didukung.

Perubahan kunci

Dukungan peramban

MSAL.js tidak lagi mendukung browser berikut:

  • IE 11
  • Edge (versi lama)

Dependensi paket

Versi TypeScript ditingkatkan dari 3.8.3 menjadi 4.9.5.

Opsi pengompilasi

Versi modul/target masing-masing dinaikkan dari es6/es5 ke es2020/es2020.

CDN

MSAL.js tidak lagi dihosting pada CDN. Periksa dokumen ini untuk detail selengkapnya.