Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Добро пожаловать! Возможно, это не та страница, которую вы ожидали. Пока мы работаем над исправлением, воспользуйтесь этой ссылкой, чтобы перейти к нужной статье:
Быстрый старт: Получение токена и вызов Microsoft Graph из консольного приложения на Node.js
Приносим извинения за неудобства и благодарим за терпение! Мы работаем над устранением этой проблемы.
При работе с этим кратким руководством вы скачаете и выполните пример кода, который демонстрирует, как консольное приложение Node.js может получить токен доступа, используя удостоверение приложения, чтобы вызвать API Microsoft Graph и отобразить список пользователей в каталоге. Пример кода демонстрирует, как автоматическое задание или служба Windows могут выполняться с удостоверением приложения вместо удостоверения пользователя.
В этом квикстарте используется Библиотека Аутентификации Microsoft для Node.js (MSAL Node) с грантом клиентских учетных данных.
Предварительные условия
- Node.js
- Visual Studio Code или любой другой редактор кода.
Скачивание и настройка примера приложения
Шаг 1. Настройка приложения в портал Azure
Для того чтобы данный пример кода в этом кратком руководстве работал, необходимо создать секрет клиента и добавить разрешение для приложения Graph API User.Read.All.
Приложение настроено с помощью этих атрибутов.
Шаг 2. Скачивание примера проекта Node.js
Примечание.
Enter_the_Supported_Account_Info_Here
Шаг 3. Согласие администратора
Если попытаться запустить приложение на этом этапе, вы получите ошибку 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);
Где: Описание 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);
Где: Описание tokenRequestСодержит запрошенные области. Для конфиденциальных клиентов следует использовать формат, аналогичный {Application ID URI}/.default, который указывает, что запрашиваемые области — это те, которые статически определены в объекте приложения, заданном на портале Azure (для Microsoft Graph{Application ID URI}указывает наhttps://graph.microsoft.com). Для пользовательских веб-API{Application ID URI}определяется в разделе Предоставление API в разделе регистрации приложения на портале Azure.tokenResponseОтвет содержит маркер доступа для запрошенных областей.
Справка и поддержка
Если вам нужна помощь, хотите сообщить о проблеме или узнать о доступных вариантах поддержки, см. статью Помощь и поддержка для разработчиков.
Следующие шаги
Дополнительные сведения о разработке приложений управляющих и консольных программ с помощью MSAL Node см. в учебнике: