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


Краткое руководство: Вход пользователей в образец веб-приложения

В этом кратком руководстве вы используете пример веб-приложения, чтобы показать, как войти в учетные записи пользователей и вызвать API Microsoft Graph в подписке вашей организации. Пример приложения использует библиотеку проверки подлинности Майкрософт для обработки проверки подлинности.

Прежде чем начать, воспользуйтесь селектором Выберите тип арендатора в верхней части этой страницы, чтобы выбрать тип арендатора. Идентификатор Microsoft Entra предоставляет две конфигурации арендатора: рабочие и внешние. Конфигурация тенанта рабочей среды предназначена для ваших сотрудников, внутренних приложений и других организационных ресурсов. Внешний клиент предназначен для ваших клиентских приложений.

Необходимые условия

  • Учетная запись Azure с активной подпиской. Если у вас еще нет учетной записи, пожалуйста, зарегистрируйтесь бесплатно.
  • Эта учетная запись Azure должна иметь разрешения на управление приложениями. Любые из следующих ролей Microsoft Entra включают необходимые разрешения:
    • Администратор приложений
    • Разработчик приложений
    • Администратор облачных приложений
  • Арендатор рабочей силы. Вы можете использовать каталог по умолчанию или настроить новый клиент.
  • Visual Studio Code или другой редактор кода.
  • Зарегистрируйте новое приложение в центре администрирования Microsoft Entra с помощью следующей конфигурации. Дополнительные сведения см. в разделе Регистрация приложения.
    • имя: identity-client-web-app
    • Поддерживаемые типы учетных записей: учетные записи в этом каталоге организации (только один клиент)
    • конфигурация платформы: Web
    • URI перенаправления: http://localhost:3000/auth/redirect
    • URL-адрес выхода фронтального канала: https://localhost:5001/signout-callback-oidc
  • Node.js

Добавление секрета клиента приложения или сертификата

Создайте секрет клиента для зарегистрированного приложения. Приложение использует секрет клиента для подтверждения своей личности, когда запрашивает токены.

  1. На странице регистрации приложений выберите созданное приложение (например, секрет клиента веб-приложения), чтобы открыть страницу обзора.
  2. В разделе Управлениевыберите Сертификаты & секреты>секреты клиента>новый секрет клиента.
  3. Введите в поле описания описание ключа клиента (например, ключ клиента веб-приложения).
  4. В разделе "Срок действия истекает"выберите продолжительность действия секрета в соответствии с правилами безопасности вашей организации, а затем нажмите "Добавить".
  5. Запишите значение секрета. Это значение используется для настройки на следующем шаге. Значение секрета не будет отображаться снова и не может быть извлечено ни одним способом после выхода из раздела Сертификаты и секреты. Обязательно запишите его.

При создании учетных данных для конфиденциального клиентского приложения:

  • Корпорация Майкрософт рекомендует использовать сертификат вместо секрета клиента перед перемещением приложения в рабочую среду. Дополнительные сведения об использовании сертификата см. в инструкциях учетные данные сертификата аутентификации приложения платформы идентификации Майкрософт.

  • В целях тестирования можно создать самозаверяющий сертификат и настроить приложения для проверки подлинности с его помощью. Однако в рабочейнеобходимо приобрести сертификат, подписанный известным центром сертификации, а затем использовать Azure Key Vault для управления доступом к сертификатам и сроком их действия.

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

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

  • Скачайте файл .zip, затем распакуйте его в папку с именем, содержащим менее 260 символов, или клонируйте репозиторий:

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

    git clone https://github.com/Azure-Samples/ms-identity-node.git
    

Настройка примера веб-приложения

Для входа пользователей в демонстрационном приложении, необходимо обновить его, добавив сведения о вашем приложении и арендаторе.

В папке ms-identity-node откройте файл App/.env и замените следующие заполнители:

Переменная Описание Примеры
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

Запуск и тестирование примера веб-приложения

Вы настроили тестовое приложение. Вы можете запустить это и протестировать.

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

    cd App
    npm install
    npm start
    
  2. Перейдите к http://localhost:3000/.

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

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

Как работает приложение

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

В этом кратком руководстве вы используете пример веб-приложения для отображения способа входа пользователей во внешний клиент. Пример приложения использует библиотеку проверки подлинности Майкрософт для обработки проверки подлинности.

Прежде чем начать, воспользуйтесь селектором Выберите тип арендатора в верхней части этой страницы, чтобы выбрать тип арендатора. Идентификатор Microsoft Entra предоставляет две конфигурации арендатора: рабочие и внешние. Конфигурация клиента для сотрудников, внутренних приложений и других организационных ресурсов. Внешний клиент предназначен для ваших клиентских приложений.

Необходимые условия

Добавление секрета клиента приложения

Создайте секрет клиента для зарегистрированного приложения. Приложение использует секрет клиента для подтверждения своей личности, когда запрашивает токены.

  1. На странице регистрации приложений выберите созданное приложение (например, секрет клиента веб-приложения), чтобы открыть страницу обзора.
  2. В разделе Управлениевыберите Сертификаты & секреты>секреты клиента>новый секрет клиента.
  3. Введите в поле описания описание ключа клиента (например, ключ клиента веб-приложения).
  4. В разделе "Срок действия истекает"выберите продолжительность действия секрета в соответствии с правилами безопасности вашей организации, а затем нажмите "Добавить".
  5. Запишите значение секрета. Это значение используется для настройки на следующем шаге. Значение секрета не будет отображаться снова и не может быть извлечено ни одним способом после выхода из раздела Сертификаты и секреты. Обязательно запишите его.

При создании учетных данных для конфиденциального клиентского приложения:

  • Корпорация Майкрософт рекомендует использовать сертификат вместо секрета клиента перед перемещением приложения в рабочую среду. Дополнительные сведения об использовании сертификата см. в инструкциях учетные данные сертификата аутентификации приложения платформы идентификации Майкрософт.

  • В целях тестирования можно создать самозаверяющий сертификат и настроить приложения для проверки подлинности с его помощью. Однако в рабочейнеобходимо приобрести сертификат, подписанный известным центром сертификации, а затем использовать Azure Key Vault для управления доступом к сертификатам и сроком их действия.

После регистрации приложение получает разрешение User.Read. Однако, поскольку клиент является внешним клиентом, сами пользователи клиента не могут согласиться с этим разрешением. Вы, как администратор клиента, должны предоставить это разрешение от имени всех пользователей в клиенте:

  1. На странице регистрации приложений выберите созданное приложение (например, ciam-client-app), чтобы открыть страницу обзора .

  2. В разделе Управлениевыберите разрешения API.

    1. Выберите предоставить согласие администратора для <вашего арендатора>, затем выберите Да.
    2. Выберите Обновить, а затем убедитесь, что предоставлено для <вашего имени клиента> отображается в разделе Состояние разрешения.

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

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

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

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

Установка зависимостей проекта

  1. Откройте окно консоли и перейдите в каталог, содержащий пример приложения Node.js:

    cd 1-Authentication\5-sign-in-express\App
    
  2. Выполните следующие команды, чтобы установить зависимости приложений:

    npm install
    

Настройка примера веб-приложения

Для входа пользователей в демонстрационном приложении, необходимо обновить его, добавив сведения о вашем приложении и арендаторе.

  1. В редакторе кода откройте файл приложения\authConfig.js.

  2. Найдите плейсхолдер:

    • Enter_the_Application_Id_Here и замените его идентификатором приложения (клиента), зарегистрированного ранее.
    • Enter_the_Tenant_Subdomain_Here и замените его на поддомен каталога (домен клиента). Например, если основной домен клиента contoso.onmicrosoft.com, используйте contoso. Если у вас нет имени арендатора, узнайте, как можно узнать сведения об арендаторе.
    • Enter_the_Client_Secret_Here и замените его значением секрета приложения, скопированным ранее.

Запуск и тестирование примера веб-приложения

Теперь можно протестировать пример веб-приложения Node.js. Необходимо запустить сервер Node.js и получить доступ к нему через браузер в http://localhost:3000.

  1. В терминале выполните следующую команду:

    npm start 
    
  2. Откройте браузер, а затем перейдите к http://localhost:3000. Вы увидите страницу, аналогичную следующему снимку экрана:

    снимок экрана входа в веб-приложение узла.

  3. После завершения загрузки страницы выберите Войти при появлении запроса.

  4. На странице входа в систему введите адрес электронной почты, выберите Далее, введите пароль, а затем выберите Войти. Если у вас нет учетной записи, выберите Нет учетной записи? Создайте одну ссылку, которая запускает поток регистрации.

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

    снимок экрана утверждений маркера идентификатора представления.

  6. Выберите Выйти, чтобы выйти пользователя из веб-приложения, или выберите Просмотреть утверждения токена идентификатора, чтобы увидеть утверждения, возвращаемые Microsoft Entra.

Принцип работы

Когда пользователи выбирают ссылку Войти, приложение инициирует запрос проверки подлинности и перенаправляет пользователей на Microsoft Entra External ID. На появившейся странице входа или регистрации после успешного входа пользователя или создания учетной записи Microsoft Entra External ID возвращает маркер идентификатора приложению. Приложение проверяет маркер идентификатора, считывает утверждения и возвращает безопасную страницу пользователям.

Когда пользователи выбирают ссылку "Выйти из аккаунта", приложение очищает сеанс, а затем перенаправляет пользователя на конечную точку выхода Microsoft Entra External ID, чтобы уведомить, что пользователь вышел из системы.

Если вы хотите создать приложение, аналогичное примеру, выполните шаги, описанные в статье Авторизация пользователей в вашем веб-приложении Node.js.