Учебник. Создание потоков пользователей и пользовательских политик в Azure Active Directory B2C
Для начала с помощью селектора Choose a policy type (Выбрать тип политики) выберите тип пользовательской политики. Azure Active Directory B2C предлагает два метода определения способа взаимодействия пользователей с вашими приложениями: с помощью предопределенных потоков пользователей или полностью настраиваемых пользовательских политик. Действия, которые необходимо выполнить, отличаются для каждого метода.
В приложения можно включить потоки пользователей, которые позволяют пользователям регистрироваться, выполнять вход и управлять профилем. В своем арендаторе Azure Active Directory B2C (Azure AD B2C) вы можете создать несколько потоков пользователей разных типов и при необходимости использовать их в приложениях. Потоки пользователей могут повторно использоваться в разных приложениях.
Поток пользователя позволяет определить, как пользователи взаимодействуют с приложением при выполнении разных действий: вход, регистрация, изменение профиля или сброс пароля. Вы узнаете, как выполнять следующие задачи:
Настраиваемые политики — это файлы конфигурации, определяющие поведение вашего клиента Azure Active Directory B2C (Azure AD B2C). Вы узнаете, как выполнять следующие задачи:
- Создайте поток пользователя для регистрации и входа в систему
- Включить самостоятельный сброс паролей
- Создание потока пользователя изменения профиля
Важно!
Мы изменили способ обращения к версиям потока пользователей. Ранее мы предлагали версию 1 (готовая к выпуску) и версии 1.1 и 2 (предварительная версия). Теперь мы объединили потоки пользователя в две версии: рекомендуемые потоки пользователя с последними функциями и стандартные (устаревшие) потоки пользователя. Поддержка всех устаревших предварительных версий потоков пользователя (версии 1.1 и 2) прекращена. См. статью Версии потоков пользователей в Azure Active Directory B2C. Эти изменения относятся только к общедоступному облаку Azure. В других средах будет, как и раньше, использоваться прежняя система управления версиями потоков пользователя.
Необходимые компоненты
- Если у вас еще нет клиента Azure AD B2C, создайте его. Он должен быть связан с вашей подпиской Azure.
- Зарегистрируйте веб-приложение и включите неявное предоставление разрешения для маркера идентификации.
- Если у вас еще нет клиента Azure AD B2C, создайте его. Он должен быть связан с вашей подпиской Azure.
- Зарегистрируйте веб-приложение и включите неявное предоставление разрешения для маркера идентификации.
Создайте поток пользователя для регистрации и входа в систему
Потоки пользователей регистрации и входа регулируют процедуры регистрации и входа в систему в рамках одной конфигурации. Пользователи вашего приложения проходят через соответствующую процедуру в зависимости от контекста.
Войдите на портал Azure.
Если у вас есть доступ к нескольким клиентам, выберите значок Параметры в верхнем меню, чтобы переключиться на клиент Azure AD B2C из меню каталогов и подписок.
В портале Azure найдите и выберите Azure AD B2C.
В разделе Политики выберите Потоки пользователей и щелкните Создать поток пользователя.
На странице Создание потока пользователя выберите поток пользователя Регистрация и вход.
В разделе Выбор версии, выберите элемент Рекомендуемая и нажмите кнопку Создать. (См. сведения о версиях потоков пользователей.)
Введите имя потока пользователя. Например, signupsignin1.
В разделе Поставщики удостоверений выберите Регистрация по электронной почте.
Для атрибутов пользователей и утверждений маркера выберите утверждения и атрибуты, которые требуется собирать и отправлять от пользователя во время регистрации. Например, щелкните Показать еще, а затем выберите атрибуты и утверждения Страна или регион, Отображаемое имя и Почтовый индекс. Нажмите ОК.
Для добавления потока пользователя выберите команду Создать. Префикс B2C_1_ добавляется к имени автоматически.
Тестирование потока пользователя
Выберите созданный поток пользователя, чтобы открыть его страницу обзора.
В верхней части страницы обзора потока пользователя выберите команду Выполнить поток пользователя. В правой части страницы откроется панель.
Для приложения выберите веб-приложение, которое вы хотите протестировать, например одно с именем webapp1. В поле URL-адрес ответа должно содержаться значение
https://jwt.ms
.Выберите Выполнить поток пользователя, а затем выберите Зарегистрироваться сейчас.
Введите допустимый адрес электронной почты, выберите Отправить код проверки, а затем введите полученный код проверки и щелкните Проверить код.
Введите новый пароль и подтвердите его.
Выберите свою страну и регион, введите отображаемое имя, укажите почтовый индекс и щелкните Создать. Токен должен вернуться по адресу
https://jwt.ms
и отобразиться пользователю.Теперь вы снова можете запустить поток пользователя и на этот раз войти в учетную запись, которую создали. Полученный токен содержит выбранные утверждения страны и региона, имени и почтового индекса.
Примечание.
Функция "Выполнить поток пользователя" в настоящее время не совместима с URL-адресом ответа типа SPA при использовании потока кода авторизации. Чтобы использовать эту функцию с приложениями таких типов, зарегистрируйте URL-адрес ответа с веб-переадресацией и включите неявный поток, как описано здесь.
Включить самостоятельный сброс паролей
Чтобы включить самостоятельный сброс пароля для пользовательского потока регистрации или входа:
- Выберите созданный пользовательский поток регистрации или входа.
- В разделе Параметры в меню слева выберите Свойства.
- В разделе Конфигурация пароля выберите Самостоятельный сброс пароля.
- Выберите Сохранить.
Тестирование потока пользователя
- Выберите созданный поток пользователя, чтобы открыть его страницу обзора, а затем щелкните Выполнить поток пользователя.
- Для приложения выберите веб-приложение, которое вы хотите протестировать, например одно с именем webapp1. В поле URL-адрес ответа должно содержаться значение
https://jwt.ms
. - Выберите Выполнить поток пользователя.
- На странице регистрации или входа выберите Забыли пароль?.
- Проверьте адрес электронной почты для созданной ранее учетной записи и щелкните Продолжить.
- Теперь вы как пользователь сможете изменять пароль. Измените пароль и щелкните Продолжить. Токен должен вернуться по адресу
https://jwt.ms
и отобразиться пользователю.
Создание потока пользователя изменения профиля
Чтобы добавить для пользователей приложения возможность изменять профиль, используйте поток пользователя изменения профиля.
- В меню страницы обзора для арендатора Azure AD B2C выберите Потоки пользователей и щелкните Создать поток пользователя.
- На странице Создание потока пользователя выберите поток пользователя Изменение профиля.
- В разделе Выбор версии, выберите элемент Рекомендуемая и нажмите кнопку Создать.
- Введите имя потока пользователя. Например, profileediting1.
- Для параметра Поставщики удостоверений в разделе Локальные учетные записи выберите Регистрация по электронной почте.
- В разделе Атрибуты пользователя выберите атрибуты, которые клиенты будут изменять в своих профилях. Например, щелкните Показать еще, а затем выберите атрибуты и утверждения для отображаемого имени и названия задания. Нажмите ОК.
- Для добавления потока пользователя выберите команду Создать. Префикс B2C_1 автоматически добавляется к имени.
Тестирование потока пользователя
- Выберите созданный поток пользователя, чтобы открыть его страницу обзора.
- В верхней части страницы обзора потока пользователя выберите команду Выполнить поток пользователя. В правой части страницы откроется панель.
- Для приложения выберите веб-приложение, которое вы хотите протестировать, например одно с именем webapp1. В поле URL-адрес ответа должно содержаться значение
https://jwt.ms
. - Выберите Выполнить поток пользователя и выполните вход в учетную запись, созданную ранее.
- Теперь вы как пользователь можете изменять отображаемое имя и должность. Выберите Продолжить. Токен должен вернуться по адресу
https://jwt.ms
и отобразиться пользователю.
Совет
В этой статье объясняется, как настроить арендатор вручную. Ознакомившись с ней, вы сможете автоматизировать весь процесс. При автоматизации произойдет развертывание начального пакета SocialAndLocalAccountsWithMFA для Azure AD B2C, который предоставляет готовые пути взаимодействия пользователя для регистрации, входа, сброса пароля и изменения профиля. Чтобы автоматизировать представленное ниже пошаговое руководство, выполните инструкции на странице приложение настройки IEF.
Добавление ключей подписывания и шифрования для приложений Identity Experience Framework
- Войдите на портал Azure.
- Если у вас есть доступ к нескольким клиентам, выберите значок Параметры в верхнем меню, чтобы переключиться на клиент Azure AD B2C из меню каталогов и подписок.
- В портале Azure найдите и выберите Azure AD B2C.
- На странице "Обзор" в разделе Политики выберите Identity Experience Framework.
Создание ключа подписи
- Выберите Ключи политики, а затем щелкните Добавить.
- Для пункта Параметры выберите
Generate
. - В разделе Имя введите
TokenSigningKeyContainer
. ПрефиксB2C_1A_
может быть добавлен автоматически. - Для параметра Тип ключа выберите RSA.
- Чтобы использовать параметр Ключ, выберите Подпись.
- Выберите Создать.
Создание ключа шифрования
- Выберите Ключи политики, а затем щелкните Добавить.
- Для пункта Параметры выберите
Generate
. - В разделе Имя введите
TokenEncryptionKeyContainer
. ПрефиксB2C_1A
_ может быть добавлен автоматически. - Для параметра Тип ключа выберите RSA.
- Для параметра Использование ключа задайте значение Шифрование.
- Выберите Создать.
Регистрация приложений инфраструктуры процедур идентификации
Azure AD B2C требует регистрации двух приложений, которые используются для регистрации и входа пользователей с локальными учетными записями: IdentityExperienceFramework, веб-API и ProxyIdentityExperienceFramework, собственного приложения с делегированным разрешением для приложения IdentityExperienceFramework. Пользователи могут зарегистрироваться с помощью адреса электронной почты или имени пользователя и пароля для доступа к зарегистрированным в клиенте приложениям, в результате чего создается "локальная учетная запись". Локальные учетные записи хранятся только в клиенте Azure AD B2C.
Эти два приложения нужно зарегистрировать в клиенте Azure AD B2C только один раз.
Регистрация приложения IdentityExperienceFramework
Чтобы зарегистрировать приложение в арендаторе Azure AD B2C, можно использовать интерфейс Регистрация приложений.
- Щелкните Регистрация приложений и выберите Новая регистрация.
- Для параметра Имя введите
IdentityExperienceFramework
. - В разделе Поддерживаемые типы учетных записей выберите Учетные записи только в этом каталоге организации.
- В разделе URI перенаправления выберите Интернет и введите
https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com
, гдеyour-tenant-name
— это доменное имя вашего клиента Azure AD B2C. - В разделе Разрешения установите флажок Предоставьте согласие администратора для разрешений openid и offline_access.
- Выберите Зарегистрировать.
- Запишите значение параметра Идентификатор приложения (клиент). Оно вам потребуется в дальнейшем.
Затем задайте API, добавив область:
- В меню слева в разделе Управление выберите Предоставление API.
- Выберите Добавить область и щелкните Сохранить и продолжить, чтобы принять URI идентификатора приложения по умолчанию.
- Введите следующие значения, чтобы создать область, которая позволяет выполнять настраиваемую политику в клиенте Azure AD B2C:
- Имя области:
user_impersonation
- Отображаемое имя согласия администратора:
Access IdentityExperienceFramework
- Описание согласия администратора:
Allow the application to access IdentityExperienceFramework on behalf of the signed-in user.
- Имя области:
- Выберите Добавить область.
Регистрация приложения ProxyIdentityExperienceFramework
- Щелкните Регистрация приложений и выберите Новая регистрация.
- Для параметра Имя введите
ProxyIdentityExperienceFramework
. - В разделе Поддерживаемые типы учетных записей выберите Учетные записи только в этом каталоге организации.
- В разделе URI перенаправления в раскрывающемся списке выберите Общедоступный/собственный клиент (мобильный & классический).
- В поле URI перенаправления введите
myapp://auth
. - В разделе Разрешения установите флажок Предоставьте согласие администратора для разрешений openid и offline_access.
- Выберите Зарегистрировать.
- Запишите значение параметра Идентификатор приложения (клиент). Оно вам потребуется в дальнейшем.
Затем укажите, что приложение должно считаться общедоступным клиентом:
- В меню слева в разделе Управлениевыберите Проверка подлинности.
- В разделе Дополнительные параметры, Разрешать потоки общедоступных клиентов, установите переключатель Включить следующие потоки для мобильных и классических систем в положение Да.
- Выберите Сохранить.
- Убедитесь, что allowPublicClient: true задано в манифесте приложения:
- В меню слева в разделе Управление выберите Манифест, чтобы открыть манифест приложения.
- Найдите ключ allowPublicClient и убедитесь, что для него задано значение true.
Теперь предоставьте разрешения для области API, которую вы указали ранее при регистрации IdentityExperienceFramework:
- В меню слева в разделе Управление выберите Разрешения API.
- В разделе Настроенные разрешения выберите Добавить разрешение.
- Перейдите на вкладку Мои API и выберите приложение IdentityExperienceFramework.
- В разделе Разрешение выберите определенную ранее область user_impersonation.
- Выберите Добавить разрешения. В соответствии с инструкциями подождите несколько минут, прежде чем перейти к следующему шагу.
- Выберите Предоставить согласие администратора для <имя арендатора)>.
- Выберите Да.
- Выберите Обновить, а затем убедитесь, что в разделе Состояние для области отображается "Предоставлено для...".
Начальный пакет настраиваемых политик
Настраиваемые политики представляют собой набор XML-файлов, которые вы отправляете в клиент Azure AD B2C для определения технических профилей и путей взаимодействия пользователей. Мы предоставляем начальные пакеты с несколькими готовыми политиками, чтобы вы могли сразу приступить к работе. Каждый начальный пакет содержит минимальное количество технических профилей и путей взаимодействия пользователей, необходимых для достижения описанных сценариев:
- LocalAccounts позволяет использовать только локальные учетные записи.
- SocialAccounts позволяет использовать только учетные записи социальных сетей (или федеративные).
- SocialAndLocalAccounts позволяет использовать и локальные учетные записи, и учетные записи социальных сетей.
- SocialAndLocalAccountsWithMFA позволяет использовать локальные учетные записи и учетные записи социальных сетей с многофакторной проверкой подлинности.
Каждый начальный пакет содержит:
- Базовый файл, в который нужно внести несколько изменений. Пример: TrustFrameworkBase.xml
- Файл локализации — файл, в который вносятся изменения конфигурации. Пример: TrustFrameworkLocalization.xml.
- Файл расширения, в который вносится большинство изменений конфигурации. Пример: TrustFrameworkExtensions.xml
- Файлы проверяющей стороны, которые вызывает приложение для выполнения определенных задач. Примеры: SignUpOrSignin.xml, ProfileEdit.xml, PasswordReset.xml
Вы этой статье вы измените XML-файлы настраиваемой политики в начальном пакете SocialAndLocalAccounts. Если вам нужен редактор XML, попробуйте Visual Studio Code — упрощенный кроссплатформенный редактор.
Получение начального пакета
Скачайте начальные пакеты настраиваемых политик из GitHub, а затем обновите XML-файлы в начальном пакете SocialAndLocalAccounts, указав имя своего клиента Azure AD B2C.
Скачайте ZIP-файл или клонируйте репозиторий:
git clone https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack
Во всех файлах в каталоге SocialAndLocalAccounts замените строку
yourtenant
именем своего клиента Azure AD B2C.Например, если ваш клиент B2C имеет имя contosotenant, все экземпляры
yourtenant.onmicrosoft.com
должны иметь видcontosotenant.onmicrosoft.com
.
Добавление идентификаторов приложений в настраиваемую политику
В файл расширений TrustFrameworkExtensions добавьте идентификаторы приложений.
- Откройте
SocialAndLocalAccounts/
TrustFrameworkExtensions.xml
и найдите элемент<TechnicalProfile Id="login-NonInteractive">
. - Замените оба экземпляра
IdentityExperienceFrameworkAppId
идентификатором созданного ранее приложения IdentityExperienceFramework. - Замените оба экземпляра
ProxyIdentityExperienceFrameworkAppId
идентификатором созданного ранее приложения ProxyIdentityExperienceFramework. - Сохраните файл.
Добавление Facebook в качестве поставщика удостоверений
Начальный пакет SocialAndLocalAccounts включает функцию входа через социальные сети с помощью Facebook. Вам не нужен доступ к Facebook для использования настраиваемых политик. Здесь мы просто демонстрируем возможности федеративного входа через социальные сети в настраиваемых политиках. Если вам не нужен федеративный вход через социальные сети, воспользуйтесь начальным пакетом LocalAccounts и пропустите раздел Добавление Facebook в качестве поставщика удостоверений.
Создание приложения Facebook
Выполните шаги, описанные в разделе Создание приложения Facebook, чтобы получить идентификатор приложения Facebook и секрет приложения. Пропустите предварительные требования и остальные шаги в статье Настройка регистрации и входа с учетной записью Facebook.
Создание ключа Facebook
Добавьте секрет приложения Facebook в качестве ключа политики. Вы можете использовать секрет созданного приложения, чтобы выполнить одно из предварительных требований, описанных в этой статье.
- Войдите на портал Azure.
- Если у вас есть доступ к нескольким клиентам, выберите значок Параметры в верхнем меню, чтобы переключиться на клиент Azure AD B2C из меню каталогов и подписок.
- В портале Azure найдите и выберите Azure AD B2C.
- На странице "Обзор" в разделе Политики выберите Identity Experience Framework.
- Выберите Ключи политики, а затем щелкните Добавить.
- Для пункта Параметры выберите
Manual
. - Для параметра Имя введите
FacebookSecret
. ПрефиксB2C_1A_
может быть добавлен автоматически. - В поле Секрет введите секрет приложения Facebook, указанный на сайте developers.facebook.com. Обратите внимание, что это секрет, а не идентификатор приложения.
- Чтобы использовать параметр Ключ, выберите Подпись.
- Выберите Создать.
Обновление TrustFrameworkExtensions.xml в начальном пакете пользовательской политики
В файле SocialAndLocalAccounts/
TrustFrameworkExtensions.xml
замените значение client_id
идентификатором приложения Facebook и сохраните изменения.
<TechnicalProfile Id="Facebook-OAUTH">
<Metadata>
<!--Replace the value of client_id in this technical profile with the Facebook app ID"-->
<Item Key="client_id">00000000000000</Item>
Отправка политик
- Выберите пункт меню Identity Experience Framework в своем клиенте B2C на портале Azure.
- Выберите Отправить настраиваемую политику.
- В этом порядке отправьте файлы политики:
- TrustFrameworkBase.xml
- TrustFrameworkLocalization.xml
- TrustFrameworkExtensions.xml
- SignUpOrSignin.xml
- ProfileEdit.xml
- PasswordReset.xml
При отправке файлов в Azure к каждому из них добавляется префикс B2C_1A_
.
Совет
Если в редакторе XML поддерживается проверка, проверьте файлы с помощью XML-файла схемы TrustFrameworkPolicy_0.3.0.0.xsd
, который расположен в корневом каталоге начального пакета. При проверке по схеме XML определяются ошибки перед отправкой.
Проверка пользовательской политики
- В разделе Настраиваемые политики выберите B2C_1A_signup_signin.
- Для выбора приложения на странице обзора настраиваемой политики выберите веб-приложение, которое вы хотите протестировать, например одно с именем webapp1.
- Убедитесь, что для параметра URL-адрес ответа выбрано значение
https://jwt.ms
. - Выберите Запустить сейчас.
- Зарегистрируйтесь с помощью адреса электронной почты.
- Снова выберите Запустить сейчас.
- Войдите в систему с помощью той же учетной записи, чтобы подтвердить правильность конфигурации.
- Снова щелкните Запустить сейчас и выберите Facebook, чтобы войти под учетной записью Facebook и проверить работу настраиваемой политики.
Следующие шаги
Из этой статьи вы узнали, как выполнять следующие задачи:
- Создание потока пользователя для регистрации и входа в систему
- Создание потока пользователя изменения профиля
- Создание потока пользователя сброса пароля
Затем узнайте, как использовать Azure AD B2C для входа и регистрации пользователей в приложении. Следуйте приведенным ниже примерам приложений.
- Настройка примера веб-приложения ASP.NET Core
- Настройка примера веб-приложения ASP.NET Core, вызывающего веб-API
- Настройка проверки подлинности в примере веб-приложения Python
- Настройка примера одностраничного приложения (SPA)
- Настройка примера одностраничного приложения Angular
- Настройка примера мобильного приложения Android
- Настройка примера мобильного приложения iOS
- Настройка проверки подлинности в примере веб-приложения WPF
- Включение проверки подлинности в веб-API
- Настройка приложения SAML
Дополнительные сведения см. в серии видео об архитектуре Azure AD B2C.