Inicio rápido: Inicio de sesión de usuarios y llamada a Microsoft Graph API desde una aplicación web de Node.js
En este inicio rápido se usa un ejemplo Node.js aplicación web para mostrar cómo iniciar sesión los usuarios mediante el flujo de código de autorización y llamar a Microsoft Graph API. En el ejemplo se usa el nodo MSAL para controlar la autenticación.
Requisitos previos
- Suscripción a Azure. Creación de una suscripción de Azure gratis.
- Node.js
- Visual Studio Code u otro editor de código
Registrar la aplicación y los identificadores de registro
Para completar el registro, proporcione un nombre a la aplicación y especifique los tipos de cuenta admitidos. Una vez registrada, el panel Información general de la aplicación muestra los identificadores necesarios en el código fuente de la aplicación.
Inicie sesión en el centro de administración de Microsoft Entra.
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.
Vaya a Identity>Aplicaciones>Registros de aplicaciones, seleccione Nuevo registro.
Escriba un nombre para la aplicación, como identity-client-web-app.
Para la opción Tipos de cuenta admitidos, seleccione Solo las cuentas de este directorio organizativo. Para obtener información sobre los distintos tipos de cuenta, selecciona la opción Ayudarme a elegir.
Seleccione Registrar.
El panel Información general de la aplicación se muestra cuando se completa el registro. Registrar el id. de directorio (inquilino) y el id. de aplicación (cliente) que se usará en el código fuente de la aplicación.
Nota:
Los tipos de cuenta admitidos pueden modificarse consultando Modificar las cuentas que admite una aplicación.
Adición de un URI de redirección de plataforma y creación de un secreto de cliente
Para especificar el tipo de aplicación en el registro de la aplicación, siga estos pasos:
- En Administrar, seleccione Autenticación.
- En la página Configuraciones de plataforma, seleccione Agregar una plataforma y, a continuación, seleccione la opción Web.
- Para URI de redireccionamiento, escriba
http://localhost:3000/auth/redirect
. - En Dirección URL de cierre de sesión del canal frontal, escriba
https://localhost:5001/signout-callback-oidc
para cerrar sesión. - Selecciona Configurar para guardar los cambios.
- En Administrar, seleccione Certificados y secretos>Secretos de los clientes>Nuevo secreto de cliente. Elija una descripción y, a continuación, seleccione Agregar.
- Anote el valor de Secreto de cliente para usarlo posteriormente. Este valor solo se muestra una vez.
Clone o descargue la aplicación de ejemplo
Para obtener la aplicación de ejemplo, puede clonarla desde GitHub o descargarla como archivo .zip.
Para clonar la muestra, abra un símbolo del sistema y navegue hasta donde desea crear el proyecto, e introduzca el siguiente comando:
git clone https://github.com/Azure-Samples/ms-identity-node.git
Descargue el archivo .zip. Extráigalo en una ruta de acceso de archivo donde la longitud del nombre sea inferior a 260 caracteres.
Configuración del proyecto
Extraiga el proyecto, abra la carpeta ms-identity-node-main y, después, abra el archivo .env en la carpeta App. Sustituya los valores anteriores como se indica a continuación:
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_Info_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_Client_Secret_Here |
Secreto de cliente de la aplicación que ha registrado | A1b-C2d_E3f.H4i,J5k?L6m!N7o-P8q_R9s.T0u |
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) |
Enter_the_Express_Session_Secret_Here |
Cadena de caracteres aleatoria que se usa para firmar la cookie de sesión rápida | A1b-C2d_E3f.H4... |
El archivo debe ser similar al siguiente:
CLOUD_INSTANCE=https://login.microsoftonline.com/
TENANT_ID=aaaabbbb-0000-cccc-1111-dddd2222eeee
CLIENT_ID=00001111-aaaa-2222-bbbb-3333cccc4444
CLIENT_SECRET=A1b-C2d_E3f.H4...
REDIRECT_URI=http://localhost:3000/auth/redirect
POST_LOGOUT_REDIRECT_URI=http://localhost:3000
GRAPH_API_ENDPOINT=https://graph.microsoft.com/
EXPRESS_SESSION_SECRET=6DP6v09eLiW7f1E65B8k
Ejecute la aplicación e inicie sesión
Ejecute el proyecto mediante Node.js.
Para iniciar el servidor, ejecute los siguientes comandos desde el directorio del proyecto:
cd App npm install npm start
Vaya a
http://localhost:3000/
.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 página principal de la aplicación.
Más información
Funcionamiento del ejemplo
El ejemplo hospeda un servidor web en localhost, puerto 3000. Si un explorador web accede a esta dirección, la aplicación representa la página principal. Una vez que el usuario selecciona Iniciar sesión, la aplicación redirige el explorador a la pantalla de inicio de sesión de Microsoft Entra, para lo que se usa la dirección URL generada por la biblioteca MSAL Node. Una vez que el usuario da su consentimiento, el explorador lo redirige a la página principal de la aplicación, junto con un identificador y un token de acceso.
MSAL Node
La biblioteca MSAL Node inicia la sesión de los usuarios y solicita los tokens que se usan para acceder a una API protegida por la plataforma de identidad de Microsoft. Puede descargar la versión más reciente mediante el administrador de paquetes de Node.js (npm):
npm install @azure/msal-node
Paso siguiente
Para más información, cree una aplicación web de ASP.NET Core que inicie la sesión de los usuarios con la siguiente serie de tutoriales de varias partes: