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


Настройка проверки подлинности в примере веб-приложения с помощью Azure AD B2C

Это важно

Начиная с 1 мая 2025 г. Azure AD B2C больше не будет доступен для приобретения для новых клиентов. Дополнительные сведения см. в разделе "Вопросы и ответы".

В этой статье используется пример веб-приложения ASP.NET для иллюстрации добавления проверки подлинности Azure Active Directory B2C (Azure AD B2C) в веб-приложения.

Это важно

Пример веб-приложения ASP.NET, на которое ссылается в этой статье, нельзя использовать для вызова REST API, так как он возвращает маркер идентификатора, а не маркер доступа. Веб-приложение, которое может вызывать REST API, см. в статье "Защита веб-API, созданного с помощью ASP.NET Core с помощью Azure AD B2C".

Обзор

OpenID Connect (OIDC) представляет собой протокол проверки подлинности, основанный на OAuth 2.0. Вы можете использовать OIDC для безопасного входа пользователей в приложение. В этом примере веб-приложения используется Веб-сайт удостоверений Майкрософт. Microsoft Identity Web — это набор библиотек ASP.NET Core, упрощающих добавление проверки подлинности и авторизации в веб-приложения.

Поток входа включает следующие шаги:

  1. Пользователи переходят к веб-приложению и выбирают Вход.
  2. Приложение инициирует запрос на проверку подлинности и перенаправляет пользователей в Azure AD B2C.
  3. Пользователи регистрируются или входят в систему и сбрасывают пароль. Либо они могут использовать для входа учетную запись социальной сети.
  4. После успешного входа Azure AD B2C возвращает в приложение маркер идентификатора.
  5. Приложение проверяет маркер идентификатора, считывает утверждения и возвращает безопасную страницу пользователям.

Если срок действия маркера идентификатора истек или сеанс приложения недействителен, приложение инициирует новый запрос проверки подлинности и перенаправляет пользователей в Azure AD B2C. Если сеанс единого входа Azure AD B2C активен, Azure AD B2C выдает маркер доступа, не предлагая пользователю снова выполнить вход. Если же сеанс Azure AD B2C становится недействительным или срок его действия истекает, пользователям предлагается выполнить вход еще раз.

Выйти

Процесс выхода из системы включает следующие шаги:

  1. Пользователи выходят из приложения.
  2. Приложение очищает объекты сеанса, а библиотека проверки подлинности очищает свой кэш маркеров.
  3. Приложение перенаправляет пользователя в конечную точку выхода Azure AD B2C, чтобы завершить сеанс Azure AD B2C.
  4. Пользователи перенаправляются обратно в приложение.

Предпосылки

Компьютер, на котором работает любой из следующих элементов:

Шаг 1. Настройка потока пользователя

Если пользователи пытаются войти в приложение, оно инициирует запрос проверки подлинности к конечной точке авторизации через поток пользователя. Соответствующий поток пользователя определяет и контролирует взаимодействие с пользователем. Когда пользователи завершают пользовательский поток, Azure AD B2C создает токен и перенаправляет пользователей обратно в ваше приложение.

Создайте поток пользователя или пользовательскую политику, если вы еще не сделали этого. Повторите эти шаги, чтобы создать три отдельных пользовательских потока:

  • Объединенный пользовательский поток входа и регистрации, например susi. Этот пользовательский поток также поддерживает функцию Забыли пароль?.
  • Последовательность действий пользователя для редактирования профиля, например edit_profile.
  • Процесс сброса пароля, например reset_password.

Azure AD B2C добавляет B2C_1_ в начало имени пользовательского потока. Например, susi преобразуется в B2C_1_susi.

Шаг 2. Регистрация веб-приложения

Чтобы приложение можно было использовать для входа с Azure AD B2C, зарегистрируйте его в каталоге Azure AD B2C. Регистрация приложения устанавливает отношение доверия между приложением и Azure AD B2C.

Во время регистрации приложения укажите адрес перенаправления. URI перенаправления — это конечная точка, в которую пользователей перенаправляет служба Azure AD B2C после того, как они прошли проверку с ее помощью. В процессе регистрации приложения создается идентификатор приложения (или идентификатор клиента), который однозначно идентифицирует ваше приложение. После регистрации приложения Azure AD B2C использует идентификатор приложения и URI перенаправления для создания запросов на проверку подлинности.

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

  1. Войдите на портал Azure.

  2. Если у вас есть доступ к нескольким клиентам, щелкните значок Настройки в верхнем меню, чтобы переключиться на клиент Azure AD B2C из меню Каталоги и подписки.

  3. В портале Azure найдите и выберите Azure AD B2C.

  4. Выберите регистрации приложений и нажмите кнопку "Создать регистрацию".

  5. В разделе "Имя" введите имя приложения (например, webapp1).

  6. В разделе "Поддерживаемые типы учетных записей" выберите "Учетные записи" в любом поставщике удостоверений или каталоге организации (для проверки подлинности пользователей с помощью потоков пользователей).

  7. В поле URI перенаправления выберите Интернет и введите https://localhost:44316/signin-oidc в поле URL-адреса.

  8. В разделе "Управление" выберите проверку подлинности, перейдите к неявным потокам предоставления и гибридным потокам, установите флажок "Маркеры идентификатора" (используется для неявных и гибридных потоков).

  9. В разделе Разрешения установите флажок Предоставьте согласие администратора для разрешений openid и offline_access.

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

  11. Выберите Обзор.

  12. Запишите значение параметра Идентификатор приложения (клиента) для использования на более позднем этапе при настройке веб-приложения.

    Снимок экрана: страница обзора веб-приложения для записи идентификатора веб-приложения.

Шаг 3. Получение примера веб-приложения

Скачайте ZIP-файл или клонируйте пример веб-приложения из GitHub.

git clone https://github.com/Azure-Samples/active-directory-aspnetcore-webapp-openidconnect-v2

Извлеките предоставленный для примера файл в папку, где общая длина пути не превышает 260 символов.

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

В примере папки в папке 1-WebApp-OIDC/1-5-B2C/ откройте проект WebApp-OpenIDConnect-DotNet.csproj с помощью Visual Studio или Visual Studio Code.

В корневой папке проекта откройте файл appsettings.json. Этот файл содержит сведения о поставщике удостоверений Azure AD B2C. Обновите следующие свойства параметров приложения:

Секция Ключ Ценность
AzureAdB2C Пример Первая часть имени арендатора в Azure AD B2C tenant name (например, https://contoso.b2clogin.com).
AzureAdB2C Домен Полное имя клиента Azure AD B2C (например, contoso.onmicrosoft.com).
AzureAdB2C ClientId Идентификатор приложения веб-приложения (клиента) из шага 2.
AzureAdB2C ИдентификаторПолитикиРегистрацииИВхода Потоки пользователя или настраиваемая политика, созданная на шаге 1.

Окончательный файл конфигурации должен выглядеть следующим образом в формате JSON:

"AzureAdB2C": {
  "Instance": "https://contoso.b2clogin.com",
  "Domain": "contoso.onmicrosoft.com",
  "ClientId": "<web-app-application-id>",
  "SignedOutCallbackPath": "/signout/<your-sign-up-in-policy>",
  "SignUpSignInPolicyId": "<your-sign-up-in-policy>"
}

Шаг 5. Запуск примера веб-приложения

  1. Соберите проект и запустите его.

  2. Перейти к https://localhost:44316.

  3. Нажмите кнопку "Регистрация и вход".

    Снимок экрана: кнопка входа и регистрации на странице приветствия проекта.

  4. Завершите процесс регистрации или входа в систему.

После успешной проверки подлинности вы увидите отображаемое имя на панели навигации. Чтобы просмотреть утверждения, возвращаемые маркером Azure AD B2C, выберите "Утверждения".

Снимок экрана: утверждения маркера веб-приложения.

Развертывание приложения

В рабочем приложении URI перенаправления регистрации приложения — это обычно общедоступная конечная точка, где выполняется приложение, например https://contoso.com/signin-oidc.

URI перенаправления в зарегистрированных приложениях можно добавлять и изменять в любое время. На URI перенаправления налагаются следующие ограничения.

  • URL-адрес ответа должен начинаться со схемы https.
  • В URL-адресе ответа учитывается регистр. Его регистр должен соответствовать регистру URL-пути запущенного приложения.

Дальнейшие шаги