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 v2 atualiza nosso wrapper para Angular com a versão mais recente do MSAL Common e oferece suporte imediato a versões modernas do Angular (9 a 12) e rxjs (6).
Este guia demonstrará as alterações necessárias para migrar um aplicativo existente da @azure/msal-angular v1 para a v2.
A documentação especificamente para MSAL Angular v2 pode ser encontrada aqui.
Installation
A primeira alteração fundamental para o MSAL Angular v2 é que não usa mais o pacote principal msal , mas encapsula o @azure/msal-browser pacote como uma dependência de par.
Primeiro, desinstale todas as versões anteriores da MSAL que estão sendo usadas no momento.
Para instalar @azure/msal-browser e @azure/msal-angular:
npm install @azure/msal-browser @azure/msal-angular@latest
Alterações interruptivas em @azure/msal-browser@2
@azure/msal-browser@2 inclui várias alterações interruptivas de msal@1.x. Muitos deles devem ser abstraídos do seu aplicativo, mas há alguns que exigirão alterações de código.
MsalModule.forRoot agora usa três argumentos
Anteriormente, @azure/msal-angular aceitava dois objetos de configuração por meio MsalModule.forRoot()de um para a biblioteca principal e outro para @azure/msal-angular. Isso foi alterado para usar uma instância da MSAL, bem como dois objetos de configuração específicos do Angular.
- O primeiro argumento é a instância do MSAL. Isso pode ser fornecido como uma função de fábrica que instancia a MSAL ou passando a instância da MSAL juntamente com as configurações.
- O segundo argumento é um
MsalGuardConfigurationobjeto, que especifica ointeractionTypebem como um opcionalauthRequeste um opcionalloginFailedRoute. - O terceiro argumento é um
MsalInterceptorConfigurationobjeto, que contém os valores parainteractionType, aprotectedResourceMape um opcionalauthRequest.unprotectedResourceMapfoi preterida.
Consulte nosso documento de configuração e documentos específicos para MsalInterceptor e MsalGuard para obter mais informações. Você também pode ver nossos exemplos atualizados para obter exemplos de como passar esses objetos de configuração.
Logger
- O
loggeragora é definido por configurações para a instância do MSAL, sobsystem.loggerOptions, que incluem umloggerCallback,piiLoggingEnabledelogLevel, em vez de uma instância de umlogger. Ologgertambém pode ser definido dinamicamente usandoMsalService.setLogger(). Confira maislogger documentationinformações e exemplos de uso.
Alterações de API
- Os
acquireTokenmétodos eloginagora tomam objetos de solicitação diferentes como parâmetros. Consulte o msal.service.ts para obter detalhes. - Eventos de difusão agora emitem um
EventMessageobjeto, em vez de apenas cadeias de caracteres. Consulte o exemplo em Angular para ver como implementar. - Aplicativos que usam métodos
Redirectdevem importarMsalRedirectComponente bootstrap, junto comAppComponent, no arquivo app.component.ts, que cuidará de todos os redirecionamentos. Os aplicativos que não conseguem fazer isso devem implementar o métodohandleRedirectObservable(e executá-lo a cada carregamento de página), que capturará o resultado das operações de redirecionamento. Consulte a documentação de redirecionamento para obter mais detalhes.
Interceptador MSAL
- Consulte nossa documentação do MsalInterceptor para obter mais detalhes sobre como configurar o
MsalInterceptoratual e as diferenças entre v1 e v2.
MSAL Guard
- Por favor, consulte nossa documentação do MsalGuard para mais detalhes sobre como configurar o
MsalGuardatual e sobre as diferenças entre v1 e v2.
Accounts
- Recomendamos inscrever-se no
inProgress$observável e filtrar porInteractionStatus.Noneantes de recuperar as informações da conta. Isso garante que todas as interações tenham sido concluídas antes de obter informações da conta. Consulte nosso exemplo para obter um exemplo desse uso. - Ao obter contas, é recomendável usar
getAccountByHomeId()egetAccountByLocalId(), disponível na instância da MSAL.getAccount()é agoragetAccountByUsername(), mas deve ser uma escolha secundária, pois pode ser menos confiável e é apenas para conveniência. -
getAllAccounts()também está disponível na instância da MSAL. Consulte os documentos para@azure/msal-browserobter mais detalhes sobre métodos de conta. - Além disso, agora você pode obter e definir acccounts ativos usando
getActiveAccount()esetActiveAccount(). Consulte nossas perguntas frequentes para obter mais informações.
Angular 9+ e rxjs@6
O MSAL Angular agora espera que seu aplicativo seja criado com @angular/core@>=9, @angular/common@>=9, rxjs@6. Assim como acontece com o MSAL Angular v1, rxjs-compat não é necessário.
Steps:
- Instale versões mais recentes do Angular e rxjs:
npm install @angular/core @angular/common rxjs - Desinstalar
rxjs-compat(supondo que não seja necessário para outras bibliotecas):npm uninstall rxjs-compat
Exemplos
Reunimos aplicativos de exemplo básicos para Angular 9, 10, 11 e 12. Esses exemplos demonstram a configuração e o uso básicos e serão aprimorados e adicionados de forma incremental.
Veja aqui uma lista dos exemplos do MSAL Angular v2 e os recursos demonstrados.