Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O MSAL Angular v5 requer uma versão mínima do Angular 19 e elimina o suporte para Angular 15, 16, 17 e 18.
Por favor, consulte o guia de migração do MSAL Browser v4 para v5 para suporte ao navegador e outras alterações importantes na biblioteca subjacente @azure/msal-browser .
Mudanças significativas na @azure/msal-angular@5
Correspondência exata para protectedResourceMap
No msal-angular v5, a correspondência de padrões de URL para as entradas protectedResourceMap utiliza, por defeito, semântica de correspondência estrita. A correspondência estrita trata os metacaracteres do padrão como literais, ancora a correspondência ao componente completo do URL e aplica regras de curinga do host que não atravessam separadores por ponto. Se a sua configuração v4 dependia de um comportamento de correspondência mais flexível, atualize os padrões protectedResourceMap para se alinharem com a correspondência estrita, ou defina strictMatching como false para manter temporariamente o comportamento legado. Consulte a documentação do MSAL Interceptor para mais detalhes.
Warning
Esta alteração também pode afetar melhorias menores da v5. Se a correspondência estrita ainda não era o padrão na versão menor v5 que adotaste originalmente (ex.: 5.0.x), atualizar para uma versão menor v5 posterior (ex.: 5.1.x), onde a correspondência estrita é a predefinição, pode quebrar silenciosamente a ligação ao token. O sintoma principal é idêntico: erros 401 — é agora emitido um aviso em tempo de execução quando strictMatching não estiver explicitamente configurado, mas a falha de correspondência em si permanece silenciosa e o cabeçalho Authorization deixa de ser anexado.
Lista de verificação rápida
- Revê as tuas
protectedResourceMapchaves. Chaves que sejam apenas URLs base (por exemplo,https://api.example.com), sem curingas nem subcaminhos, deixarão de corresponder a pedidos para subcaminhos desse URL. Ver padrões comuns de falha. - Atualize as chaves para usar caminhos exatos ou caracteres universais. Cada chave deve corresponder exatamente ao URL que a sua aplicação solicita, ou usar o sufixo curinga
/*para corresponder aos subcaminhos. Veja as opções de correção. -
Se as suas chaves forem carregadas dinamicamente em tempo de execução, defina
strictMatching: falsecomo um valor predefinido seguro temporário. Consulte as orientações para configurações orientadas pelo ambiente.
Orientado pelo ambiente protectedResourceMap
Se as chaves protectedResourceMap vierem de ficheiros Angular environment, APP_INITIALIZER, configuração JSON ou platformBrowserDynamic, defina strictMatching: false como predefinição segura durante a migração:
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,
};
}
Depois de todas as chaves serem migradas para caminhos exatos ou curingas, remova strictMatching: false (ou defina para true) para beneficiar do comportamento de correspondência mais rigoroso e seguro. Consulte as orientações para configurações orientadas pelo ambiente para mais detalhes.
logout() removido
logout() foi removido. Use logoutRedirect() ou logoutPopup() em vez disso.
// BEFORE (v4)
this.authService.logout();
// AFTER (v5)
this.authService.logoutRedirect();
// or
this.authService.logoutPopup();
Outras alterações em @azure/msal-angular@5
inject(TOKEN) sintaxe
MSAL_INSTANCE, MSAL_GUARD_CONFIG, MSAL_INTERCEPTOR_CONFIG e MSAL_BROADCAST_CONFIG passam agora a ser resolvidos como tipos em vez de cadeias de caracteres, para suportar a sintaxe inject(TOKEN). Esta alteração pode causar erros de TypeScript em aplicações sem tipagem explícita.
handleRedirectObservable() Opções
handleRedirectObservable() agora aceita um objeto opcional HandleRedirectPromiseOptions , que inclui a navigateToLoginRequestUrl opção que foi movida da configuração em @azure/msal-browser@5. Consulte a documentação dos redirecionamentos para mais detalhes.
// 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
Passar uma cadeia de hash diretamente para handleRedirectObservable(hash) está obsoleto. Use o objeto options em vez disso: handleRedirectObservable({ hash: "#..." }).
Samples
Os seguintes exemplos de programadores estão agora disponíveis:
Veja aqui uma lista das amostras atuais do MSAL Angular e das funcionalidades demonstradas.