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


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

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

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

Регистрация идентификаторов приложения и записей

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

  1. Войдите в центр администрирования Microsoft Entra.

  2. Если у вас есть доступ к нескольким клиентам, используйте значок "Параметры" в верхнем меню, чтобы переключиться на клиент, в котором вы хотите зарегистрировать приложение из меню каталогов и подписок.

  3. Перейдите к приложениям> удостоверений>Регистрация приложений выберите "Создать регистрацию".

  4. Введите имя приложения, например identity-client-web-app.

  5. Для параметра Поддерживаемые типы учетных записей выберите Учетные записи только в этом каталоге организации. Для получения сведений о различных типах учетных записей выберите параметр "Справка ".

  6. Выберите Зарегистрировать.

    Снимок экрана: ввод имени и выбор типа учетной записи в Центре администрирования Microsoft Entra.

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

    Снимок экрана: значения идентификатора на странице обзора в Центре администрирования Microsoft Entra.

    Примечание.

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

Добавление URI перенаправления платформы и создание секрета клиента

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

  1. В разделе Управление выберите Проверка подлинности.
  2. На странице конфигураций платформы выберите "Добавить платформу" и выберите "Веб-параметр".
  3. Введите http://localhost:3000/auth/redirectURI перенаправления.
  4. В разделе URL-адрес выхода front-channel введите https://localhost:5001/signout-callback-oidc для выхода.
  5. Нажмите кнопку "Настроить", чтобы сохранить изменения.
  6. В разделе Управление выберите Сертификаты и секреты>Секреты клиента>Создать секрет клиента. Выберите описание и нажмите кнопку "Добавить".
  7. Запишите значение параметра Секрет клиента для последующего использования. Это значение отображается только один раз.

Клонирование или скачивание примера приложения

Чтобы получить пример приложения, можно клонировать его из GitHub или скачать его в виде файла .zip .

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

    git clone https://github.com/Azure-Samples/ms-identity-node.git
    
  • Скачайте файл .zip. Извлеките его в путь к файлу, где длина имени меньше 260 символов.

Настройка проекта

Извлеките проект, откройте папку 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

Запуск приложения и вход

Запустите проект с помощью 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, которое входит в систему пользователей в следующей серии учебников с несколькими частью: