Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O MSAL Angular v5 requer uma versão mínima do Angular 19 e descarta o suporte para Angular 15, 16, 17 e 18.
Consulte o guia de migração do MSAL Browser v4 para v5 para obter suporte ao navegador e outras alterações importantes na biblioteca subjacente @azure/msal-browser .
Alterações interruptivas em @azure/msal-angular@5
Correspondência estrita para protectedResourceMap
No msal-angular v5, a correspondência de padrões de URL para protectedResourceMap entradas usa semântica de correspondência estrita por padrão. A correspondência estrita trata os metacaracteres de padrão como literais, restringe as correspondências ao componente completo da URL e aplica regras de curinga para host que não abrangem separadores por ponto. Se a sua configuração v4 dependia de um comportamento de correspondência mais flexível, atualize seus padrões protectedResourceMap para se alinharem com a correspondência estrita ou defina strictMatching como false para manter temporariamente o comportamento legado. Consulte os documentos do Interceptador MSAL para obter mais detalhes.
Warning
Essa alteração também pode afetar atualizações secundárias v5. Se a correspondência estrita ainda não era o padrão na versão menor da v5 que você adotou originalmente (por exemplo, 5.0.x), a atualização para uma versão menor posterior da v5 (por exemplo, 5.1.x), em que a correspondência estrita é o padrão, pode quebrar silenciosamente a associação do token. O sintoma primário é idêntico: erros 401 — um aviso em tempo de execução agora é emitido quando strictMatching não está explicitamente configurado, mas a falha de correspondência em si permanece silenciosa e o cabeçalho Authorization não é mais anexado.
Lista de verificação rápida
- Examine suas
protectedResourceMapchaves. As chaves que são URLs base simples (por exemplo,https://api.example.com), sem curingas nem subcaminhos, não corresponderão mais a solicitações para subcaminhos dessa URL. Veja padrões comuns de falha. - Atualize as chaves para usar caminhos exatos ou curingas. Cada chave deve corresponder exatamente ao URL solicitado pelo seu aplicativo ou usar o sufixo curinga
/*para corresponder a subcaminhos. Consulte as opções de correção. -
Se suas chaves forem carregadas dinamicamente em tempo de execução, defina
strictMatching: falsecomo um valor temporário seguro. Consulte as diretrizes para configurações controladas pelo ambiente.
Orientado pelo ambiente protectedResourceMap
Se suas protectedResourceMap chaves forem provenientes de arquivos Angular environment , APP_INITIALIZERconfiguração JSON ou platformBrowserDynamic, defina strictMatching: false como um padrão seguro 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 que todas as chaves forem migradas para caminhos exatos ou curingas, remova strictMatching: false (ou defina-a como true) para aproveitar um comportamento de correspondência mais rigoroso e seguro. Consulte as diretrizes para configurações controladas pelo ambiente para obter mais detalhes.
logout() removido
logout() foi removido. Em vez disso, use logoutRedirect() ou logoutPopup().
// BEFORE (v4)
this.authService.logout();
// AFTER (v5)
this.authService.logoutRedirect();
// or
this.authService.logoutPopup();
Outras alterações em @azure/msal-angular@5
Sintaxe de inject(TOKEN)
MSAL_INSTANCE, MSAL_GUARD_CONFIG, MSAL_INTERCEPTOR_CONFIG e MSAL_BROADCAST_CONFIG agora são resolvidos como tipos em vez de strings para dar suporte à sintaxe inject(TOKEN). Essa alteração pode causar erros de TypeScript em aplicativos sem digitação explícita.
handleRedirectObservable() opções
handleRedirectObservable() agora aceita um objeto opcional HandleRedirectPromiseOptions , que inclui a opção navigateToLoginRequestUrl que foi movida da configuração em @azure/msal-browser@5. Consulte a documentação de redirecionamentos para obter 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 string de hash diretamente para handleRedirectObservable(hash) está obsoleto. Em vez disso, use o objeto options: handleRedirectObservable({ hash: "#..." }).
Exemplos
Os seguintes exemplos de desenvolvedor agora estão disponíveis:
Veja aqui uma lista dos exemplos atuais do MSAL Angular e os recursos demonstrados.