Поделиться через


Краткое руководство. Получение маркера и вызов API Microsoft Graph из консольного приложения Node.js с помощью удостоверения приложения

Добро пожаловать! Возможно, это не та страница, которую вы ожидали. Пока мы работаем над исправлением, воспользуйтесь этой ссылкой, чтобы перейти к нужной статье:

Краткое руководство. Получение маркера и вызов Microsoft Graph из консольного приложения Node.js

Приносим извинения за неудобства и благодарим за терпение! Мы работаем над устранением этой проблемы.

При работе с этим кратким руководством вы скачаете и выполните пример кода, который демонстрирует получение маркера доступа с помощью удостоверения приложения из консольного приложения Node.js для вызова API Microsoft Graph и отображения списка пользователей в каталоге. а также как автоматическое задание или служба Windows могут выполняться с удостоверением приложения, а не пользователя.

В рамках этого краткого руководства используется библиотека проверки подлинности Майкрософт для Node.js (MSAL Node) с предоставлением учетных данных клиента.

Необходимые компоненты

Скачивание и настройка примера приложения

Шаг 1. Настройка приложения в портал Azure

Для работы примера кода в этом кратком руководстве необходимо создать секрет клиента и добавить разрешение приложения API Graph User.Read.All.

Уже настроено Приложение настроено с помощью этих атрибутов.

Шаг 2. Скачивание примера проекта Node.js

Примечание.

Enter_the_Supported_Account_Info_Here

Если попытаться запустить приложение на этом этапе, вы получите ошибку HTTP 403 — Forbidden (запрещено): Insufficient privileges to complete the operation. Эта ошибка возникает из-за того, что для любого разрешения только для приложений требуется согласие администратора: администратор каталога должен предоставить согласие приложению. Выберите один из следующих вариантов с учетом своей роли:

Администратор клиента

Если вы являетесь администратором, перейдите на страницу "Разрешения API" выберите "Предоставить согласие администратора" для > Enter_the_Tenant_Name_Here

Обычный пользователь

Если вы являетесь стандартным пользователем вашего клиента, вам нужно попросить по крайней мере администратора облачных приложений предоставить согласие администратора для вашего приложения. Чтобы сделать это, предоставьте следующий URL-адрес администратору:

https://login.microsoftonline.com/Enter_the_Tenant_Id_Here/adminconsent?client_id=Enter_the_Application_Id_Here

Шаг 4. Запуск приложения

Найдите корневую папку примера (где располагается файл package.json) в командной строке или консоли. Зависимости этого примера необходимо установить один раз:

npm install

Затем запустите приложение с помощью командной строки или консоли:

node . --op getUsers

На консоли вы увидите фрагмент JSON, представляющий список пользователей в каталоге Microsoft Entra.

Примечания о коде

Ниже рассмотрены некоторые важные аспекты примера приложения.

MSAL Node

Библиотека MSAL Node нужна для обработки входа пользователей и запросов маркеров, которые используются для доступа к API, защищенному платформой удостоверений Майкрософт. Как описано выше, в рамках этого краткого руководства маркеры запрашиваются по разрешениям приложения (с использованием собственного удостоверения приложения), а не по делегированным разрешениям. Поток аутентификации, используемый в данном случае, называется потоком учетных данных клиента OAuth 2.0. Дополнительные сведения об использовании MSAL Node с приложениями управляющей программы см. в статье "Сценарий: приложение управляющей программы".

Вы можете установить MSAL Node, выполнив следующую команду npm.

npm install @azure/msal-node --save

Инициализация MSAL

Добавив следующий код, вы можете добавить ссылку на MSAL.

const msal = require('@azure/msal-node');

Затем выполните инициализацию MSAL с помощью следующего кода.

const msalConfig = {
    auth: {
        clientId: "Enter_the_Application_Id_Here",
        authority: "https://login.microsoftonline.com/Enter_the_Tenant_Id_Here",
        clientSecret: "Enter_the_Client_Secret_Here",
   }
};
const cca = new msal.ConfidentialClientApplication(msalConfig);
Где: Description
clientId Идентификатор приложения (клиента), зарегистрированного на портале Azure. Это значение можно найти на странице приложения Обзор на портале Azure.
authority Конечная точка STS для проверки подлинности пользователей. Обычно https://login.microsoftonline.com/{tenant} для общедоступного облака, где {tenant} — имя или идентификатор вашего клиента.
clientSecret Секрет клиента, созданный для приложения на портале Azure.

Дополнительные сведения см. в справочной документации по ConfidentialClientApplication.

Запрос маркеров

Чтобы запросить маркер с помощью удостоверение приложения, используйте метод acquireTokenByClientCredential.

const tokenRequest = {
    scopes: [ 'https://graph.microsoft.com/.default' ],
};

const tokenResponse = await cca.acquireTokenByClientCredential(tokenRequest);
Где: Description
tokenRequest Содержит запрошенные области. Для конфиденциальных клиентов следует использовать формат, аналогичный {Application ID URI}/.default, который указывает, что запрашиваемые области — это те, которые статически определены в объекте приложения, заданном на портале Azure (для Microsoft Graph {Application ID URI} указывает на https://graph.microsoft.com). Для пользовательских веб-API {Application ID URI} определяется в разделе Предоставление API в разделе регистрации приложения на портале Azure.
tokenResponse Ответ содержит маркер доступа для запрошенных областей.

Справка и поддержка

Если вам нужна помощь, если вы хотите сообщить о проблеме или узнать о доступных вариантах поддержки, воспользуйтесь статьей Возможности получения поддержки и справки для разработчиков.

Следующие шаги

Дополнительные сведения о разработке приложений управляющих и консольных программ с помощью MSAL Node см. в учебнике: