Saltar al contenido

¿Cómo obtener el token de acceso a la API de Microsoft Graph de Node Script?

Jesús, miembro de este equipo de trabajo, nos ha hecho el favor de redactar esta crónica porque controla muy bien el tema.

Solución:

La respuesta de BU0 no funcionó correctamente para mí porque Microsoft cambió su forma de usar la API gráfica, por lo que no pude obtener todos los datos que necesitaba. Así es como lo hice usando la respuesta BU0 y este tutorial:

const request = require("request");

const endpoint = "https://login.microsoftonline.com/[Tenant]/oauth2/v2.0/token";
const requestParams = 
    grant_type: "client_credentials",
    client_id: "[ApplicationID]",
    client_secret: "[Key]",
    scope: "https://graph.microsoft.com/.default"
;

request.post( url: endpoint, form: requestParams , function (err, response, body) 
    if (err) 
        console.log("error");
    
    else 
        console.log("Body=" + body);
        let parsedBody = JSON.parse(body);
        if (parsedBody.error_description) 
            console.log("Error=" + parsedBody.error_description);
        
        else 
            console.log("Access Token=" + parsedBody.access_token);
        
    
);

function testGraphAPI(accessToken) 
    request.get(
        url:"https://graph.microsoft.com/v1.0/users",
        headers: 
          "Authorization": "Bearer " + accessToken
        
    , function(err, response, body) 
        console.log(body);
    );

Para ejecutar un demonio back-end no autenticado por el usuario conectado a Graph API, debe usar el flujo de autenticación solo de la aplicación. Aquí hay un breve resumen de los pasos oficiales:

  1. Cree su arrendatario de Azure AD. Nota la yourtenant.onmicrosoft.com name, y copie este valor.
  2. Registre una aplicación a través del global Azure Active Directory de hoja App Registrations sección, no directamente dentro de las propiedades del arrendatario. Copia el Application ID; lo necesitaremos más tarde.
  3. Crear un key atado al registro y recuerde copiarlo. Una vez que hace clic fuera, no puede obtener el key recuperar el valor, así que asegúrese de copiarlo.
  4. También actualice los permisos de registro a lo que necesita, haga clic en Savey luego también golpeó el Grant Permissions botón.
  5. Realice una solicitud HTTP al login.microsoftonline.com dominio para obtener un token de acceso.
  6. Use el token de acceso para realizar solicitudes de Graph API.

Aquí hay un enlace al ejemplo de Node.js de Microsoft, y aquí hay un enlace a la documentación directa sobre la llamada HTTP para recuperar un token de acceso. Y aquí hay un ejemplo súper simplificado que generará el token de acceso recuperado. Reemplace la [Tenant], [ApplicationID]y [Key] valores:

const request = require("request");

const endpoint = "https://login.microsoftonline.com/[Tenant].onmicrosoft.com/oauth2/token";
const requestParams = 
    grant_type: "client_credentials",
    client_id: "[ApplicationID]",
    client_secret: "[Key]",
    resource: "https://graph.windows.net"
;

request.post( url:endpoint, form: requestParams , function (err, response, body) 
    if (err) 
        console.log("error");
    
    else 
        console.log("Body=" + body);
        let parsedBody = JSON.parse(body);         
        if (parsedBody.error_description) 
            console.log("Error=" + parsedBody.error_description);
        
        else 
            console.log("Access Token=" + parsedBody.access_token);
        
    
);

Una vez que tengamos access_token, podemos llamar a Graph API. Suponiendo que los permisos de las aplicaciones se configuraron correctamente y se aplicaron desde el paso n.º 4, podemos comenzar a realizar solicitudes de Graph API:

function testGraphAPI(accessToken) 
    request.get(
        url:"https://graph.windows.net/[Tenant]/users?api-version=1.6",
        headers: 
          "Authorization": accessToken
        
    , function(err, response, body) 
        console.log(body);
    );

Sección de Reseñas y Valoraciones

Si conservas algún reparo o forma de acrecentar nuestro enunciado te mencionamos escribir una nota y con deseo lo leeremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *