Migrace z MSAL v2.x na MSAL v3.x

Pokud s MSAL začínáte, měli byste začít tady.

Pokud pocházíte z MSAL verze 1.x, měli byste nejprve zkontrolovat tuto příručku , abyste migrovali na MSAL v2.x a pak postupujte podle dalších kroků.

Pokud pocházíte z MSAL v2.x, můžete podle tohoto průvodce aktualizovat kód tak, aby používal MSAL v3.x.

Zásadní změny

Vytvoření instance aplikace

V MSAL v2.x jste vytvořili instanci aplikace následujícím způsobem:

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

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

const msalInstance = new PublicClientApplication(msalConfig);

V MSAL v3.x musíte inicializovat objekt aplikace také. K dispozici je několik možností:

Možnost 1

Vytvořte instanci objektu PublicClientApplication a potom ho inicializujete. Funkce initialize je asynchronní a musí se vyřešit před vyvoláním jiných rozhraní API MSAL.js.

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

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

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

Možnost 2

Vyvolá statickou metodu createPublicClientApplication , která vrátí inicializovaný PublicClientApplication objekt. Všimněte si, že tato funkce je asynchronní.

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

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

const msalInstance = await PublicClientApplication.createPublicClientApplication(msalConfig);

Ukládání do mezipaměti založené na deklaracích

V MSAL v2.x přidání claimů do požadavku ve výchozím nastavení způsobí, že se do klíče mezipaměti tokenů přidá hash řetězce požadovaných claimů. To znamená, že MSAL 2.x ve výchozím nastavení ukládá tokeny do mezipaměti a porovnává je na základě claimů. V msAL v3.x toto chování již není výchozí. Výchozí chování MSAL v3.x je přejít do sítě a aktualizovat token při každém vyžádání deklarací identity bez ohledu na to, jestli byl token dříve uložen do mezipaměti a je stále platný. Potom po přechodu do sítě token přijatý přepíše token uložený v mezipaměti v případě, že se později spustí bezobslužný požadavek bez deklarací identity. Aby vývojáři mohli povolit ukládání do mezipaměti založené na deklaracích v MSAL v3.x, aby zachovali stejné chování jako v MSAL v2.x, musí vývojáři použít cacheOptions.claimsBasedCachingEnabled příznak konfigurace nastavený na hodnotu true v objektu konfigurace klientské aplikace:

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

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

Všechna ostatní rozhraní API jsou zpětně kompatibilní s MSAL v2.x. Doporučujeme se podívat na výchozí ukázku a podívat se na funkční příklad knihovny MSAL v3.0.

Crypto

MSAL v3.x ukončuje podporu nativní kryptografie v IE11 window.msCrypto a knihovny Microsoft Research JavaScript Cryptography Library (MSR crypto) window.msrCrypto ve prospěch nativního kryptografického API prohlížeče window.crypto. Kryptografické možnosti config.system.cryptoOptions , které se používaly pro šifrování MSR, se už nepodporují.

Klíčové změny

Podpora prohlížečů

MSAL.js už nepodporuje následující prohlížeče:

  • IE 11
  • Edge (původní verze)

Závislosti balíčků

Verze TypeScriptu byla zvýšena z 3.8.3 na 4.9.5.

Možnosti kompilátoru

Verze modulu/cíle byly zvýšeny z es6/es5 na es2020/es2020 v uvedeném pořadí.

CDN

MSAL.js už není hostovaný v CDN. Další podrobnosti najdete v tomto dokumentu .