Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
MSAL Angular v5 vyžaduje minimálně Angular 19 a ukončuje podporu pro Angular 15, 16, 17 a 18.
Informace o podpoře prohlížeče a dalších klíčových změnách v podkladové knihovně najdete v @azure/msal-browser.
Zásadní změny v @azure/msal-angular@5
Přesná shoda pro protectedResourceMap
V msal-angular v5 používá porovnávání vzorů adres URL pro položky protectedResourceMap ve výchozím nastavení striktní sémantiku porovnávání. Přísná shoda považuje metaznaky vzoru za literály, ukotvuje shody na celou komponentu URL a používá pravidla pro zástupné znaky v hostiteli, která nepřekračují oddělovače teček. Pokud vaše konfigurace v4 spoléhala na volnější způsob porovnávání, aktualizujte vzory protectedResourceMap, aby odpovídaly striktnímu porovnávání, nebo nastavte strictMatching na false, aby se dočasně zachovalo starší chování. Podrobnosti naleznete v dokumentaci k interceptoru MSAL.
Warning
Tato změna může mít vliv také na dílčí upgrady verze 5. Pokud přísné párování ještě nebylo výchozí v dílčí verzi v5, kterou jste původně nasadili (např. 5.0.x), upgrade na novější dílčí verzi v5 (např. 5.1.x), ve které je přísné párování výchozí, může bez zjevného upozornění narušit připojení tokenu. Primární příznak je stejný: chyby 401 — nyní je vyvoláno varování za běhu, když strictMatching není explicitně nakonfigurováno, ale samotná neúspěšná shoda zůstává tichá a hlavička Authorization se již nepřipojuje.
Rychlý kontrolní seznam
- Zkontrolujte své
protectedResourceMapklíče. Klíče, které jsou samotnými základními adresami URL (např.https://api.example.com) bez zástupných znaků nebo podcest, už nebudou odpovídat požadavkům na podcesty této adresy URL. Podívejte se na běžné vzory selhání. - Aktualizujte klíče tak, aby používaly buď přesné cesty, nebo zástupné znaky. Každý klíč by měl buď odpovídat přesné adrese URL, kterou vaše aplikace požaduje, nebo používat příponu se zástupným znakem
/*, aby odpovídal podcestám. Viz možnosti opravy. -
Pokud se klíče načítají dynamicky za běhu, nastavte
strictMatching: falsejako dočasnou bezpečnou výchozí hodnotu. Přečtěte si pokyny pro konfigurace řízené prostředím.
Závislé na prostředí protectedResourceMap
Pokud klíče protectedResourceMap pocházejí ze souborů Angular environment, APP_INITIALIZER, konfigurace JSON nebo platformBrowserDynamic, nastavte během migrace strictMatching: false jako bezpečnou výchozí hodnotu:
export function MSALInterceptorConfigFactory(): MsalInterceptorConfiguration {
const protectedResourceMap = new Map<string, Array<string>>();
protectedResourceMap.set(environment.apiConfig.uri, environment.apiConfig.scopes);
return {
interactionType: InteractionType.Redirect,
protectedResourceMap,
// TODO: Remove once protectedResourceMap keys are updated to use
// exact paths or wildcard patterns (e.g. "https://api.example.com/*").
strictMatching: false,
};
}
Jakmile budou všechny klíče migrovány na přesné cesty nebo zástupné znaky, odeberte strictMatching: false (nebo ji nastavte na true), abyste mohli využít přísnější a bezpečnější chování při porovnávání. Další podrobnosti najdete v doprovodných materiálech k konfiguracím řízeným prostředím .
logout() odstraněný
logout() bylo odstraněno. Použijte logoutRedirect() nebo logoutPopup() místo toho.
// BEFORE (v4)
this.authService.logout();
// AFTER (v5)
this.authService.logoutRedirect();
// or
this.authService.logoutPopup();
Další změny v @azure/msal-angular@5
Syntaxe inject(TOKEN)
MSAL_INSTANCE, MSAL_GUARD_CONFIG, MSAL_INTERCEPTOR_CONFIG a MSAL_BROADCAST_CONFIG se nyní vyhodnocují na typy místo řetězců, aby podporovaly syntaxi inject(TOKEN). Tato změna může způsobit chyby TypeScriptu v aplikacích bez explicitního psaní.
handleRedirectObservable() možnosti
handleRedirectObservable() nyní přijímá volitelný HandleRedirectPromiseOptions objekt, který zahrnuje navigateToLoginRequestUrl možnost přesunutou z konfigurace v @azure/msal-browser@5. Další podrobnosti najdete v dokumentaci k přesměrování .
// BEFORE (msal-browser v4 configuration)
const msalConfig = {
auth: {
clientId: 'your-client-id',
navigateToLoginRequestUrl: false // This option has moved
}
};
// AFTER (msal-angular v5)
this.authService.handleRedirectObservable({
navigateToLoginRequestUrl: false
}).subscribe();
Note
Přímé předávání řetězce hashe do handleRedirectObservable(hash) je zastaralé. Místo toho použijte objekt možností: handleRedirectObservable({ hash: "#..." }).
Ukázky
Nyní jsou k dispozici následující ukázky pro vývojáře:
Seznam aktuálních ukázek MSAL Angular a předváděných funkcí najdete zde.