Краткое руководство. Вход пользователей и вызов API Microsoft Graph из веб-приложения Node.js с помощью MSAL Node

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

Иллюстрацию см. в разделе Как работает этот пример.

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

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

Регистрация и скачивание приложения, используемого в этом кратком руководстве

Шаг 1. Регистрация приложения

Совет

Действия, описанные в этой статье, могут немного отличаться на портале, с который вы начинаете работу.

  1. Войдите в Центр администрирования Microsoft Entra как минимум облачные приложения Администратор istrator.
  2. Если у вас есть доступ к нескольким клиентам, используйте значок Параметры в верхнем меню, чтобы переключиться на клиент, в котором вы хотите зарегистрировать приложение из меню каталогов и подписок.
  3. Перейдите к приложениям> удостоверений>Регистрация приложений и выберите "Создать регистрацию".
  4. Введите значение Name (Имя) для приложения. Пользователи приложения могут видеть это имя. Вы можете изменить его позже.
  5. В разделе Поддерживаемые типы учетных записей выберите Учетные записи только в этом каталоге организации.
  6. В качестве типа URI перенаправления выберите Интернет и задайте значение http://localhost:3000/auth/redirect.
  7. Выберите Зарегистрировать.
  8. На странице приложения Обзор запишите идентификатор приложения (клиента) для использования в будущем.
  9. В разделе Управление выберите Сертификаты и секреты>Секреты клиента>Создать секрет клиента. Оставьте поле для описания пустым, а параметр срока действия — по умолчанию. Затем выберите Добавить.
  10. Запишите значение параметра Секрет клиента для последующего использования.

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

Скачайте основные файлы проекта, чтобы запустить проект с помощью веб-сервера, используя Node.js.

Шаг 3. Настройка приложения Node

Извлеките проект, откройте папку ms-identity-node-main, а затем — файл .env в папке App. Замените значения, как показано ниже:

«Переменная» Description Пример(ы)
Enter_the_Cloud_Instance_Id_Here Облачный экземпляр Azure, в котором зарегистрировано приложение https://login.microsoftonline.com/ (включая завершающую косую черту)
Enter_the_Tenant_Info_here Идентификатор арендатора или основной домен contoso.microsoft.com или aaaabbbb-0000-cccc-1111-dddd2222eeee
Enter_the_Application_Id_Here Идентификатор клиента зарегистрированного приложения 00001111-aaaa-2222-bbbb-3333cccc4444
Enter_the_Client_Secret_Here Секрет клиента зарегистрированного приложения A1b-C2d_E3f.H4i,J5k?L6m!N7o-P8q_R9s.T0u
Enter_the_Graph_Endpoint_Here Облачный экземпляр API Microsoft Graph, который будет вызывать ваше приложение https://graph.microsoft.com/ (включая завершающую косую черту)
Enter_the_Express_Session_Secret_Here Случайная строка символов, используемая для подписывания файла cookie сеанса Express A1b-C2d_E3f.H4...

Файл должен выглядеть примерно так:

CLOUD_INSTANCE=https://login.microsoftonline.com/
TENANT_ID=aaaabbbb-0000-cccc-1111-dddd2222eeee
CLIENT_ID=00001111-aaaa-2222-bbbb-3333cccc4444
CLIENT_SECRET=A1b-C2d_E3f.H4...

REDIRECT_URI=http://localhost:3000/auth/redirect
POST_LOGOUT_REDIRECT_URI=http://localhost:3000

GRAPH_API_ENDPOINT=https://graph.microsoft.com/

EXPRESS_SESSION_SECRET=6DP6v09eLiW7f1E65B8k

Шаг 4. Запуск проекта

Запустите проект с помощью Node.js, выполнив приведенные ниже действия.

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

    cd App
    npm install
    npm start
    
  2. Переход к http://localhost:3000/.

  3. Выберите Войти, чтобы начать процесс входа.

    При первом входе вам будет предложено предоставить согласие на то, чтобы приложение могло выполнить вход и получить доступ к вашему профилю. После успешного входа вы будете перенаправлены обратно на домашнюю страницу приложения.

Дополнительные сведения

Как работает этот пример

В этом примере веб-сервер размещается по адресу localhost (порт 3000). Когда веб-браузер получает доступ к этому адресу, приложение отображает домашнюю страницу. Когда пользователь выберет вход, приложение перенаправляет браузер на экран входа Microsoft Entra с помощью URL-адреса, созданного библиотекой узлов MSAL. После согласия пользователя браузер перенаправляет пользователя обратно на домашнюю страницу приложения вместе с идентификатором и маркером доступа.

MSAL Node

Библиотека MSAL Node — это библиотека, используемая для выполнения входа пользователей и запросов маркеров, которые нужны для доступа к API, защищенному платформой удостоверений Майкрософт. Последнюю версию можно скачать с помощью диспетчера пакетов Node.js (NPM):

npm install @azure/msal-node

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

Узнайте больше, создав веб-приложение ASP.NET Core, которое входит в систему пользователей в следующей серии учебников с несколькими частью: