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:
- Cree su arrendatario de Azure AD. Nota la
yourtenant.onmicrosoft.com
name, y copie este valor. - Registre una aplicación a través del global
Azure Active Directory
de hojaApp Registrations
sección, no directamente dentro de las propiedades del arrendatario. Copia elApplication ID
; lo necesitaremos más tarde. - 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.
- También actualice los permisos de registro a lo que necesita, haga clic en
Save
y luego también golpeó elGrant Permissions
botón. - Realice una solicitud HTTP al
login.microsoftonline.com
dominio para obtener un token de acceso. - 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.