Sdílet prostřednictvím


Migrace jednostránkové aplikace JavaScriptu z implicitního udělení do toku ověřovacího kódu

Microsoft Authentication Library pro JavaScript (MSAL.js) v2.0 přináší podporu toku autorizačního kódu s PKCE a CORS pro jednostránkové aplikace na platformě Microsoft Identity Platform. Pokud chcete migrovat aplikaci MSAL.js 1.x s využitím implicitního udělení na MSAL.js 2.0+ (dále jen 2.x) a tok ověřovacího kódu, postupujte podle kroků v následujících částech.

MSAL.js 2.x zlepšuje MSAL.js 1.x tím, že podporuje tok autorizačního kódu v prohlížeči místo implicitního toku udělení. MSAL.js 2.x nepodporuje implicitní tok.

Kroky migrace

Pokud chcete aplikaci aktualizovat na MSAL.js 2.x a tok ověřovacího kódu, existují tři primární kroky:

  1. Přepněte identifikátory URI přesměrování registrace aplikace z platformy web na platformu jednostránkovou aplikaci.
  2. Aktualizujte kód z MSAL.js 1.x na 2.x.
  3. Pokud byly všechny aplikace sdílející registraci aktualizovány na MSAL.js 2.x a tok ověřovacího kódu, zakažte implicitní udělení v registraci aplikace.

Následující části popisují jednotlivé kroky podrobněji.

Přepněte přesměrovací URI na platformu SPA

Pokud chcete i nadále používat stávající registraci aplikace pro své aplikace, v Centru pro správu Microsoft Entra aktualizujte přesměrovací URI registrace na platformu SPA. To umožňuje tok autorizačního kódu s podporou PKCE a CORS pro aplikace, které používají registraci (stále potřebujete aktualizovat kód aplikace na MSAL.js v2.x).

Pro registrace aplikací, které jsou aktuálně nakonfigurované s identifikátory URI přesměrování webové platformy, postupujte takto:

  1. Přihlaste se do Centra pro správu Microsoft Entra.

  2. Přejděte na Identity>Applications> Registrace aplikací, vyberte aplikaci a pak ověřování.

  3. Na dlaždici platformy Web v části URI přesměrování vyberte pruh s varováním, že byste měli migrovat vaše URI.

    Banner s upozorněním na implicitní tok na dlaždici webové aplikace na webu Azure Portal

  4. Vyberte pouze identifikátory URI pro přesměrování, jejichž aplikace budou používat MSAL.js 2.x, a pak vyberte Konfigurovat.

    Vyberte podokno přesměrování URI v podokně SPA v portálu Azure

Tyto identifikátory URI přesměrování by se teď měly zobrazit na platformě jednostránkové aplikace, což ukazuje, že podpora CORS s tokem autorizačního kódu a PKCE je pro tyto URI povolená.

Dlaždice jednostránkové aplikace v registraci aplikace v portálu Azure

Můžete také vytvořit novou registraci aplikace místo aktualizace identifikátorů URI přesměrování ve vaší stávající registraci.

Aktualizace kódu na MSAL.js 2.x

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

// MSAL 1.x
import * as msal from "msal";

const msalInstance = new msal.UserAgentApplication(config);

V MSAL 2.x inicializovat místo toho [PublicClientApplication][msal-js-publicclientapplication]:

// MSAL 2.x
import * as msal from "@azure/msal-browser";

const msalInstance = new msal.PublicClientApplication(config);

Další změny, které možná budete muset udělat v kódu, najdete v průvodci migrací na GitHubu.

Zakázat implicitní nastavení povolení

Po aktualizaci všech produkčních aplikací, které používají tuto registraci aplikace a její ID klienta na MSAL 2.x a tok autorizačního kódu, byste měli zrušit zaškrtnutí nastavení implicitního udělení oprávnění v nabídce Ověřování registrace aplikace.

Když zrušíte zaškrtnutí implicitního nastavení udělení v registraci aplikace, implicitní tok se zakáže pro všechny aplikace používající registraci a ID klienta.

Nezakažujte implicitní tok udělení před aktualizací všech vašich aplikací na MSAL.js 2.x a [PublicClientApplication][msal-js-publicclientapplication].

Další kroky

  • Další informace o toku autorizačního kódu, včetně rozdílů mezi toky implicitního a ověřovacího kódu, najdete na platformě Microsoft Identity Platform a toku autorizačního kódu OAuth 2.0.

  • Přečtěte si další informace o vytvoření jednostránkové aplikace React (SPA), která přihlašuje uživatele v následující vícedílné sérii kurzů.