Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
MSAL.js admite la adquisición de tokens del Administrador de cuentas web (WAM) en Windows. Estos tokens están enlazados al dispositivo en el que se adquirieron y no se almacenan en caché en el localStorage o sessionStorage del explorador.
Entorno compatible
Esta característica solo se admite actualmente en el entorno siguiente:
- Una máquina que ejecuta una compilación de Windows que admite la característica (más información sobre esto)
- Navegadores Chrome y Edge o Teams
- La extensión Cuentas de Windows (versión 1.0.5 o superior) está instalada si se usa Chrome o Edge.
- La aplicación debe hospedarse en
https
Además, esta característica solo se admite actualmente para las cuentas profesionales y educativas.
Habilitación de la característica en MSAL.js
Para habilitar esta función en MSAL.js, establezca la marca allowPlatformBroker en true en su objeto de configuración, de la siguiente manera:
const msalConfig = {
auth: {
clientId: "insert-clientId"
},
system: {
allowPlatformBroker: true
}
};
Además, deberá llamar a la nueva initialize API y esperarla antes de invocar cualquier otra API de 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();
No se necesitan otros cambios para admitir esta nueva característica. Cualquier usuario que acceda a la aplicación desde un entorno compatible ahora podrá adquirir tokens enlazados al dispositivo. Los usuarios de entornos no compatibles seguirán obteniendo tokens a través de los flujos web tradicionales.
Aquí puede encontrar un ejemplo de trabajo .
Diferencias al usar WAM para adquirir tokens
Hay algunas cosas que pueden comportarse un poco de forma diferente al adquirir tokens a través de WAM.
- Toda la configuración relacionada con la caché se aplica solo a la caché local de MSAL. El agente nativo controla su propia caché, más segura, que se usa en lugar del almacenamiento del explorador y no admite la configuración de su comportamiento de caché. Esto significa que puede recibir un token almacenado en caché independientemente del valor de los parámetros de solicitud, como:
forceRefresh,cacheLookupPolicyostoreInCache. Además, los tokens recibidos del intermediario nativo no se almacenan ni en el almacenamiento local ni en el de sesión, independientemente de lo que haya configurado en PublicClientApplication. - Si WAM necesita solicitar al usuario la interacción, se abrirá un mensaje del sistema. Este aviso parece un poco diferente de las ventanas emergentes del navegador a las que quizá estés acostumbrado.
- No se admite cambiar de cuenta en la solicitud de WAM y MSAL.js generará un error (código de error: user_switch) si esto sucede. Es responsabilidad de la aplicación detectar este error y controlarlo de forma que tenga sentido para los escenarios (por ejemplo, Mostrar una página de error, reintentar con la nueva cuenta, reintentar con la cuenta original, etc.).