Adquisición de tokens enlazados a dispositivos mediante WAM en Windows

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, cacheLookupPolicy o storeInCache. 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.).