Краткое руководство. Вход пользователей и вызов API Microsoft Graph из веб-приложения Node.js
В этом кратком руководстве используется пример веб-приложения Node.js для отображения способа входа пользователей с помощью потока кода авторизации и вызова API Microsoft Graph. В этом примере для обработки проверки подлинности используется узел MSAL.
Необходимые компоненты
- Подписка Azure. Зарегистрируйте подписку Azure бесплатно.
- Node.js
- Visual Studio Code или любой другой редактор кода.
Регистрация идентификаторов приложения и записей
Чтобы завершить регистрацию, укажите имя приложения и укажите поддерживаемые типы учетных записей. После регистрации в области обзора приложения отображаются идентификаторы, необходимые в исходном коде приложения.
Войдите в центр администрирования Microsoft Entra.
Если у вас есть доступ к нескольким клиентам, используйте значок "Параметры" в верхнем меню, чтобы переключиться на клиент, в котором вы хотите зарегистрировать приложение из меню каталогов и подписок.
Перейдите к приложениям> удостоверений>Регистрация приложений выберите "Создать регистрацию".
Введите имя приложения, например identity-client-web-app.
Для параметра Поддерживаемые типы учетных записей выберите Учетные записи только в этом каталоге организации. Для получения сведений о различных типах учетных записей выберите параметр "Справка ".
Выберите Зарегистрировать.
Панель обзора приложения отображается при завершении регистрации. Запишите идентификатор каталога (клиента) и идентификатор приложения (клиента), которые будут использоваться в исходном коде приложения.
Примечание.
Поддерживаемые типы учетных записей можно изменить, ссылаясь на изменение учетных записей, поддерживаемых приложением.
Добавление URI перенаправления платформы и создание секрета клиента
Чтобы указать тип приложения для регистрации приложения, выполните следующие действия.
- В разделе Управление выберите Проверка подлинности.
- На странице конфигураций платформы выберите "Добавить платформу" и выберите "Веб-параметр".
- Введите
http://localhost:3000/auth/redirect
URI перенаправления. - В разделе URL-адрес выхода front-channel введите
https://localhost:5001/signout-callback-oidc
для выхода. - Нажмите кнопку "Настроить", чтобы сохранить изменения.
- В разделе Управление выберите Сертификаты и секреты>Секреты клиента>Создать секрет клиента. Выберите описание и нажмите кнопку "Добавить".
- Запишите значение параметра Секрет клиента для последующего использования. Это значение отображается только один раз.
Клонирование или скачивание примера приложения
Чтобы получить пример приложения, можно клонировать его из 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, выполнив приведенные ниже действия.
Чтобы запустить сервер, выполните в каталоге проекта следующую команду.
cd App npm install npm start
Переход к
http://localhost:3000/
.Выберите Войти, чтобы начать процесс входа.
При первом входе вам будет предложено предоставить согласие на то, чтобы приложение могло выполнить вход и получить доступ к вашему профилю. После успешного входа вы будете перенаправлены обратно на домашнюю страницу приложения.
Дополнительные сведения
Как работает этот пример
В этом примере веб-сервер размещается по адресу localhost (порт 3000). Когда веб-браузер получает доступ к этому адресу, приложение отображает домашнюю страницу. Когда пользователь выберет вход, приложение перенаправляет браузер на экран входа Microsoft Entra с помощью URL-адреса, созданного библиотекой узлов MSAL. После согласия пользователя браузер перенаправляет пользователя обратно на домашнюю страницу приложения вместе с идентификатором и маркером доступа.
MSAL Node
Библиотека MSAL Node — это библиотека, используемая для выполнения входа пользователей и запросов маркеров, которые нужны для доступа к API, защищенному платформой удостоверений Майкрософт. Последнюю версию можно скачать с помощью диспетчера пакетов Node.js (NPM):
npm install @azure/msal-node
Следующий шаг
Узнайте больше, создав веб-приложение ASP.NET Core, которое входит в систему пользователей в следующей серии учебников с несколькими частью: