Inicio rápido: Adquisición de un token de acceso y llamada a Microsoft Graph API desde una aplicación de escritorio de Electron

¡Bienvenido! Probablemente esta no sea la página que esperaba. Mientras trabajamos en una corrección, este vínculo debería llevarle al artículo correcto:

Inicio rápido: Iniciar sesión de usuarios y llamar a Microsoft Graph desde una aplicación de escritorio Node.js

Lamentamos las molestias y agradecemos su paciencia mientras trabajamos para resolverlo.

En este inicio rápido descargará y ejecutará un código de ejemplo que muestra cómo una aplicación de escritorio de Electron puede realizar el inicio de sesión de usuarios y adquirir tokens de acceso para llamar a Microsoft Graph API.

En este inicio rápido se usa la biblioteca de autenticación de Microsoft para Node.js (MSAL Node) con el flujo del código de autorización con PKCE.

Prerrequisitos

Paso 1: Configuración de la aplicación en Azure Portal

Para que el código de ejemplo de este inicio rápido funcione, es preciso agregar una dirección URL de respuesta como msal://redirect.

Already configured La aplicación está configurada con estos atributos.

Paso 2: Descarga del proyecto de ejemplo Electron

Nota:

Enter_the_Supported_Account_Info_Here

Paso 4: Ejecución de la aplicación

Deberá instalar las dependencias de este ejemplo una vez:

npm install

A continuación, ejecute la aplicación a través del símbolo del sistema o la consola:

npm start

Debería ver la interfaz de usuario de la aplicación con el botón Inicio de sesión.

Sobre el código

A continuación, se describen algunos de los aspectos importantes de la aplicación de ejemplo.

MSAL Node

MSAL Node es la biblioteca que se usa para iniciar la sesión de los usuarios y solicitar los tokens que se usan para acceder a una API protegida por la plataforma de identidad de Microsoft. Para más información sobre cómo usar MSAL Node con aplicaciones de escritorio, consulte este artículo.

Para instalar MSAL Node, ejecute el siguiente comando npm.

npm install @azure/msal-node --save

Inicialización de MSAL

La referencia de MSAL se puede agregar mediante la incorporación del código siguiente:

const { PublicClientApplication } = require('@azure/msal-node');

A continuación, realice la inicialización de MSAL con el siguiente código:

const MSAL_CONFIG = {
    auth: {
        clientId: "Enter_the_Application_Id_Here",
        authority: "https://login.microsoftonline.com/Enter_the_Tenant_Id_Here",
    },
};

const pca = new PublicClientApplication(MSAL_CONFIG);
Donde: Descripción
clientId Es el Identificador de aplicación (cliente) de la aplicación registrada en Azure Portal. Puede encontrar este valor en la página Información general de la aplicación en Azure Portal.
authority El punto de conexión STS para el usuario que se autenticará. Normalmente https://login.microsoftonline.com/{tenant} en la nube pública, donde {tenant} es el nombre o el identificador del inquilino.

Solicitud de tokens

Puede usar la API pública acquireTokenInteractive de Node de MSAL para adquirir tokens a través de un agente de usuario externo, como el explorador del sistema predeterminado.

const { shell } = require('electron');

try {
   const openBrowser = async (url) => {
       await shell.openExternal(url);
   };

   const authResponse = await pca.acquireTokenInteractive({
       scopes: ["User.Read"],
       openBrowser,
       successTemplate: '<h1>Successfully signed in!</h1> <p>You can close this window now.</p>',
       failureTemplate: '<h1>Oops! Something went wrong</h1> <p>Check the console for more information.</p>',
   });

   return authResponse;
} catch (error) {
   throw error;
}

Pasos siguientes

Para más información sobre el desarrollo de aplicaciones de escritorio de Electron con MSAL Node, consulte el tutorial: