Как получить пользователей из azure активного каталога в функцию azure - PullRequest
0 голосов
/ 07 февраля 2020

Я разрабатываю приложение без сервера, используя функции azure, используя Node js. Функция аутентификации приложения через azure активный каталог. Мой сценарий заключается в том, что я хочу получить конкретные данные пользователя ex (электронная почта, имя пользователя и т. Д. c), используя его адрес электронной почты или имя пользователя во время выполнения одной из триггерных функций http. Есть несколько опций, которые я уже проверил (библиотеки ad и activedirectory . Эта библиотека, кажется, не обновлена, и я хочу знать, есть ли способ сделать это с помощью azure Node Js SDK?

Я ищу решение без JWT, потому что, когда для 'function' необходимо получить некоторую информацию о пользователе, функция не имеет никакого токена. Здесь пользовательские данные, запрашиваемые приложением-функцией, а не user.Hence Пользовательские данные используют приложение-функцию только те данные, которые не предоставляются пользователю.

Например: мы можем получить пользовательские данные, «запросив» пользовательскую таблицу, когда нам нужно получить пользовательские данные внутри некоторого запущенного приложения MySQL. Если мы указываем адрес электронной почты, мы можем запросить.

Я спрашиваю то же самое, используя azure активный каталог.

1 Ответ

2 голосов
/ 07 февраля 2020

Вы можете получить токен доступа, используя поток учетных данных клиента (не связанный с указанным c пользователем) в вашей функции.

const APP_ID = '[COPIED_APP_ID]';
const APP_SECERET = '[COPIED_APP_SECRET]';
const TOKEN_ENDPOINT ='https://login.microsoftonline.com/[COPIED_TENANT_ID]/oauth2/v2.0/token';
const MS_GRAPH_SCOPE = 'https://graph.microsoft.com/.default';

const axios = require('axios');
const qs = require('qs');

const postData = {
  client_id: APP_ID,
  scope: MS_GRAPH_SCOPE,
  client_secret: APP_SECERET,
  grant_type: 'client_credentials'
};

axios.defaults.headers.post['Content-Type'] =
  'application/x-www-form-urlencoded';

let token = '';

axios
  .post(TOKEN_ENDPOINT, qs.stringify(postData))
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.log(error);
  });

Ссылка:

КАК - Получить токен доступа для Microsoft Graph API, используя Node.JS

Затем вы можете использовать этот токен для вызова Microsoft Graph API.

enter image description here

...