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.js suporta a obtenção de tokens através do Web Account Manager (WAM) no Windows. Estes tokens estão ligados ao dispositivo onde foram adquiridos e não estão armazenados em cache no localStorage ou sessionStorage do navegador.
Ambientes suportados
Esta funcionalidade é atualmente suportada apenas no seguinte ambiente:
- Uma máquina a correr uma versão do Windows que suporta a funcionalidade (mais informações sobre isto)
- Os navegadores Chrome e Edge ou o Teams
- A extensão Windows Accounts (versão 1.0.5 ou superior) está instalada se estiver a usar Chrome ou Edge
- A aplicação deve estar alojada em
https
Além disso, esta funcionalidade é atualmente suportada apenas para Contas de Trabalho e Escola
Ative a funcionalidade em MSAL.js
Para ativar esta funcionalidade em MSAL.js defina a allowPlatformBroker flag para true no seu objeto de configuração assim:
const msalConfig = {
auth: {
clientId: "insert-clientId"
},
system: {
allowPlatformBroker: true
}
};
Além disso, terá de chamar e aguardar a nova API initialize antes de invocar qualquer outra API do MSAL.js.
const pca = new PublicClientApplication(msalConfig);
// Initialize will establish a connection with the browser extension, if present
await pca.initialize();
// Call handleRedirectPromise, after initialization is complete
await pca.handleRedirectPromise();
// After initialize and handleRedirectPromise have completed, you may call any of the other APIs as you would without this feature
pca.acquireTokenSilent();
Não são necessárias outras alterações para suportar esta nova funcionalidade. Qualquer utilizador que aceda à sua aplicação a partir de um ambiente suportado poderá agora adquirir tokens vinculados ao dispositivo. Os utilizadores em ambientes não suportados continuarão a adquirir tokens através dos fluxos tradicionais baseados na web.
Um exemplo funcional pode ser encontrado aqui
Diferenças ao usar WAM para adquirir tokens
Existem algumas coisas que podem comportar-se de forma um pouco diferente ao adquirir tokens através do WAM.
- Todas as configurações relacionadas com cache aplicam-se apenas à cache local do MSAL. O broker nativo controla a sua própria cache, mais segura, que é usada em vez do armazenamento do navegador e não suporta a configuração do seu comportamento na cache. Isto significa que pode receber um token em cache independentemente do valor dos parâmetros de pedido como:
forceRefresh,cacheLookupPolicyoustoreInCache. Além disso, os tokens recebidos do broker nativo não são armazenados no armazenamento local nem no armazenamento de sessão, independentemente do que tenha configurado em PublicClientApplication. - Se o WAM precisar de pedir ao utilizador uma interação, será aberto um prompt do sistema. Este prompt parece um pouco diferente das janelas pop-up do navegador a que pode estar habituado.
- Mudar a sua conta no prompt WAM não é suportado e MSAL.js dará um erro (Código de Erro: user_switch) se isso acontecer. É responsabilidade da tua app detetar este erro e tratá-lo de uma forma que faça sentido para os teus cenários (por exemplo, mostrar uma página de erro, tentar novamente com a nova conta, tentar novamente com a conta original, etc.)