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

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

Registro y descarga de la aplicación de ejemplo

Para comenzar, siga estos pasos.

Paso 1: Registro de la aplicación

Sugerencia

Los pasos de este artículo pueden variar ligeramente en función del portal desde donde comienza.

Para registrar la aplicación y agregar la información de registro de la aplicación a la solución de forma manual, siga estos pasos:

  1. Inicie sesión en el Centro de administración de Microsoft Entra como Administrador de aplicaciones en la nube.
  2. Si tiene acceso a varios inquilinos, use el icono Configuración del menú superior para cambiar al inquilino en el que desea registrar la aplicación desde el menú Directorios y suscripciones.
  3. Vaya a Identidad>Aplicaciones>Registros de aplicaciones y seleccione Nuevo registro.
  4. Escriba el Nombre de la aplicación, por ejemplo msal-node-desktop. Los usuarios de la aplicación pueden ver este nombre, el cual se puede cambiar más tarde.
  5. Seleccione Registrar para crear la aplicación.
  6. En Administrar, seleccione Autenticación.
  7. Selecciones Agregar una plataforma>Aplicaciones móviles y de escritorio.
  8. En la sección URI de redirección, escriba http://localhost.
  9. Seleccione Configurar.

Paso 2: Descarga del proyecto de ejemplo Electron

Descargar el código de ejemplo

Paso 3: Configuración del proyecto de ejemplo Electron

*Extraiga el proyecto, abra la carpeta ms-identity-JavaScript-nodejs-desktop-main y abra el archivo .authConfig.js. Reemplace el valor de la siguiente manera:

Variable Descripción Por ejemplo
Enter_the_Cloud_Instance_Id_Here Instancia en la nube de Azure en la que se registra la aplicación https://login.microsoftonline.com/ (incluya la barra diagonal final)
Enter_the_Tenant_Id_Here Id. de inquilino o dominio principal contoso.microsoft.com o aaaabbbb-0000-cccc-1111-dddd2222eeee
Enter_the_Application_Id_Here Id. de cliente de la aplicación que ha registrado 00001111-aaaa-2222-bbbb-3333cccc4444
Enter_the_Redirect_Uri_Here URI de redirección de la aplicación que ha registrado msal00001111-aaaa-2222-bbbb-3333cccc4444://auth
Enter_the_Graph_Endpoint_Here Instancia de nube de Microsoft Graph API a la que llama la aplicación https://graph.microsoft.com/ (incluya la barra diagonal final)

El archivo debe ser similar al siguiente:

const AAD_ENDPOINT_HOST = "https://login.microsoftonline.com/"; // include the trailing slash

const msalConfig = {
    auth: {
        clientId: "00001111-aaaa-2222-bbbb-3333cccc4444",
        authority: `${AAD_ENDPOINT_HOST}/aaaabbbb-0000-cccc-1111-dddd2222eeee`,
    },
    system: {
        loggerOptions: {
            loggerCallback(loglevel, message, containsPii) {
                 console.log(message);
             },
             piiLoggingEnabled: false,
             logLevel: LogLevel.Verbose,
        }
    }
}

const GRAPH_ENDPOINT_HOST = "https://graph.microsoft.com/"; // include the trailing slash

const protectedResources = {
     graphMe: {
         endpoint: `${GRAPH_ENDPOINT_HOST}v1.0/me`,
         scopes: ["User.Read"],
     }
};

module.exports = {
     msalConfig: msalConfig,
     protectedResources: protectedResources,
 };

Paso 4: Ejecución de la aplicación

  1. Deberá instalar las dependencias de este ejemplo una vez:

    cd ms-identity-javascript-nodejs-desktop-main
    npm install
    
  2. A continuación, ejecute la aplicación a través del símbolo del sistema o la consola:

    npm start
    
  3. Seleccione Iniciar sesión para comenzar el proceso de inicio de sesión.

    La primera vez que inicie sesión, se le pedirá que dé su consentimiento para permitir que la aplicación inicie sesión y acceda a su perfil. Una vez que haya iniciado sesión correctamente, se le redirigirá a la aplicación.

Más información

Funcionamiento del ejemplo

Cuando un usuario selecciona el botón Iniciar sesión por primera vez, se llama al método acquireTokenInteractive de Nodo de MSAL. Este método redirige al usuario para que inicie sesión con el punto de conexión de Plataforma de identidad de Microsoft, obtiene un código de autorización y, a continuación, lo intercambia por un token de acceso.

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

Pasos siguientes

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