На самом деле пакет adal-node не поддерживает поток от имени. Чтобы реализовать это, мы должны сделать новый HTTP-вызов и передать утверждение в запросе. Я бы посоветовал вам прочитать входящий токен в вашем сервисе и сделать новый вызов http для конечной точки (https://login.microsoftonline.com/b2bc09c8-9386-47b1-8aexxxxxxxxxx/oauth2/token)) с утверждением, чтобы получить токен для MS Graph API.
Ниже приведен скриншот для получения токена от имени пользователя в потоке.
Ниже приведен код для получения токена доступа с использованием потока от имени в файле node.js
var qs = require ("querystring");
var http = require ("https");
var options = {"method": "POST", "hostname": ["login", "microsoftonline", "com"], "path": ["b2bc09c8-9386-47xxxxxxxx", "oauth2", "token"], "headers": {"Content-Type": "application / x-www-form-urlencoded", "cache-control": "no-cache", "Postman-Token": "739540c9-1e3d -4d74-bxxxxxxx "}};
var req = http.request (параметры, функция (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function () {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
* * 1 022});
req.write (qs.stringify ({
grant_type: 'urn: ietf: params: oauth: grant-type: jwt-bearer',
client_id: 'd1538209-a56f-4301-863dxxxxxxxxxxxxx',
ресурс: 'https://graph.microsoft.com/',
client_secret: 'NITLQThsHDlPb0FR + 8oXxxxxxxxxxxxxxxxxxxx',
область действия: 'openid',
утверждение: «токен входящего доступа из нативного приложения»,
required_token_use: 'on_behalf_of',
не определено: не определено
}));
req.end (); * +1027 *
Вы можете извлечь токен доступа и использовать его против ресурса в запросе на предъявителя.
Я надеюсь, что это решит вашу проблему.