Учебник. Создание потоков пользователей и пользовательских политик в 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. В других средах будет, как и раньше, использоваться прежняя система управления версиями потоков пользователя.

Предварительные требования

Создание потока пользователя для регистрации и входа в систему

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

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

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

  3. В настройках портала на странице Каталоги и подписки найдите свой каталог Azure AD B2C в списке Имя каталога и выберите Переключить.

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

  5. В разделе Политики выберите Потоки пользователей и щелкните Создать поток пользователя.

    User flows page in portal with New user flow button highlighted

  6. На странице Создание потока пользователя выберите поток пользователя Регистрация и вход.

    Select a user flow page with Sign up and sign in flow highlighted

  7. В разделе Выбор версии, выберите элемент Рекомендуемая и нажмите кнопку Создать. (См. сведения о версиях потоков пользователей.)

    Create user flow page in Azure portal with properties highlighted

  8. Введите имя потока пользователя. Например, signupsignin1.

  9. В разделе Поставщики удостоверений выберите Регистрация по электронной почте.

  10. В разделе Атрибуты пользователя и утверждения выберите утверждения и атрибуты, которые вы хотите собирать и отправлять от пользователя во время регистрации. Например, щелкните Показать еще, а затем выберите атрибуты и утверждения Страна или регион, Отображаемое имя и Почтовый индекс. Нажмите кнопку ОК.

    Attributes and claims selection page with three claims selected

  11. Для добавления потока пользователя щелкните Создать. Префикс B2C_1 добавляется к имени автоматически.

Тестирование потока пользователя

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

  2. В разделе Приложение выберите зарегистрированное ранее веб-приложение с именем webapp1. В поле URL-адрес ответа должно содержаться значение https://jwt.ms.

  3. Щелкните Выполнить поток пользователя, а затем выберите Зарегистрироваться сейчас.

    Run user flow page in portal with Run user flow button highlighted

  4. Введите допустимый адрес электронной почты, щелкните Отправить код проверки, а затем введите полученный код проверки и щелкните Проверить код.

  5. Введите новый пароль и подтвердите его.

  6. Выберите свою страну и регион, введите отображаемое имя, укажите почтовый индекс и щелкните Создать. Токен должен вернуться по адресу https://jwt.ms и отобразиться пользователю.

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

Примечание

Функция "Выполнить поток пользователя" в настоящее время не совместима с URL-адресом ответа типа SPA при использовании потока кода авторизации. Чтобы использовать эту функцию с приложениями таких типов, зарегистрируйте URL-адрес ответа с веб-переадресацией и включите неявный поток, как описано здесь.

Включение самостоятельного сброса пароля

Чтобы включить самостоятельный сброс пароля для пользовательского потока регистрации или входа:

  1. Выберите созданный пользовательский поток регистрации или входа.
  2. В разделе Параметры в меню слева выберите Свойства.
  3. В разделе Конфигурация пароля выберите Самостоятельный сброс пароля.
  4. Щелкните Сохранить.

Тестирование потока пользователя

  1. Выберите созданный поток пользователя, чтобы открыть его страницу обзора, а затем щелкните Выполнить поток пользователя.
  2. В разделе Приложение выберите зарегистрированное ранее веб-приложение с именем webapp1. В поле URL-адрес ответа должно содержаться значение https://jwt.ms.
  3. Выберите Выполнить поток пользователя.
  4. На странице регистрации или входа выберите Забыли пароль? .
  5. Проверьте адрес электронной почты для созданной ранее учетной записи и щелкните Продолжить.
  6. Теперь вы как пользователь сможете изменять пароль. Измените пароль и щелкните Продолжить. Токен должен вернуться по адресу https://jwt.ms и отобразиться пользователю.

Создание потока пользователя изменения профиля

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

  1. В меню страницы обзора для арендатора Azure AD B2C выберите Потоки пользователей и щелкните Создать поток пользователя.
  2. На странице Создание потока пользователя выберите поток пользователя Изменение профиля.
  3. В разделе Выбор версии, выберите элемент Рекомендуемая и нажмите кнопку Создать.
  4. Введите имя потока пользователя. Например, profileediting1.
  5. Щелкните Поставщики удостоверений и выберите Local Account SignIn (Вход с локальной учетной записью).
  6. В разделе Атрибуты пользователя выберите атрибуты, которые клиенты будут изменять в своих профилях. Например, щелкните Показать еще, а затем выберите атрибуты и утверждения для отображаемого имени и названия задания. Нажмите кнопку ОК.
  7. Для добавления потока пользователя щелкните Создать. Префикс B2C_1 автоматически добавляется к имени.

Тестирование потока пользователя

  1. Выберите созданный поток пользователя, чтобы открыть его страницу обзора, а затем щелкните Выполнить поток пользователя.
  2. В разделе Приложение выберите зарегистрированное ранее веб-приложение с именем webapp1. В поле URL-адрес ответа должно содержаться значение https://jwt.ms.
  3. Щелкните Выполнить поток пользователя и выполните вход в учетную запись, созданную ранее.
  4. Теперь вы как пользователь можете изменять отображаемое имя и должность. Нажмите кнопку Продолжить. Токен должен вернуться по адресу https://jwt.ms и отобразиться пользователю.

Совет

В этой статье объясняется, как настроить арендатор вручную. Ознакомившись с ней, вы сможете автоматизировать весь процесс. При автоматизации произойдет развертывание начального пакета SocialAndLocalAccountsWithMFA для Azure AD B2C, который предоставляет готовые пути взаимодействия пользователя для регистрации, входа, сброса пароля и изменения профиля. Чтобы автоматизировать представленное ниже пошаговое руководство, выполните инструкции на странице приложение настройки IEF.

Добавление ключей подписывания и шифрования для приложений Identity Experience Framework

  1. Войдите на портал Azure.
  2. Убедитесь, что вы используете каталог, содержащий клиент Azure AD B2C. На панели инструментов портала выберите значок Каталоги и подписки.
  3. В настройках портала на странице Каталоги и подписки найдите свой каталог Azure AD B2C в списке Имя каталога и выберите Переключить.
  4. На портале Azure найдите и выберите Azure AD B2C.
  5. На странице "Обзор" в разделе Политики выберите Identity Experience Framework.

Создание ключа подписи

  1. Выберите Ключи политики, а затем щелкните Добавить.
  2. Для пункта Параметры выберите Generate.
  3. В разделе Имя введите TokenSigningKeyContainer. Префикс B2C_1A_ может быть добавлен автоматически.
  4. Для параметра Тип ключа выберите RSA.
  5. Для параметра Использование ключа выберите Подпись.
  6. Нажмите кнопку создания.

Создание ключа шифрования

  1. Выберите Ключи политики, а затем щелкните Добавить.
  2. Для пункта Параметры выберите Generate.
  3. В разделе Имя введите TokenEncryptionKeyContainer. Префикс B2C_1A_ может быть добавлен автоматически.
  4. Для параметра Тип ключа выберите RSA.
  5. Для параметра Использование ключа задайте значение Шифрование.
  6. Нажмите кнопку создания.

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

Для Azure AD B2C необходимо зарегистрировать два приложения, которые используются для регистрации и входа пользователей с помощью локальных учетных записей: IdentityExperienceFramework (веб-API) и ProxyIdentityExperienceFramework (нативное приложение) с делегированным разрешением приложению IdentityExperienceFramework. Пользователи могут зарегистрироваться с помощью адреса электронной почты или имени пользователя и пароля для доступа к зарегистрированным в клиенте приложениям, в результате чего создается "локальная учетная запись". Локальные учетные записи хранятся только в клиенте Azure AD B2C.

Эти два приложения нужно зарегистрировать в клиенте Azure AD B2C только один раз.

Регистрация приложения IdentityExperienceFramework

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

  1. Щелкните Регистрация приложений и выберите Новая регистрация.
  2. Для параметра Имя введите IdentityExperienceFramework.
  3. В разделе Поддерживаемые типы учетных записей выберите Учетные записи только в этом каталоге организации.
  4. В разделе URI перенаправления выберите Интернет и введите https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com, где your-tenant-name — это доменное имя вашего клиента Azure AD B2C.
  5. В разделе Разрешения установите флажок Предоставьте согласие администратора для разрешений openid и offline_access.
  6. Выберите Зарегистрировать.
  7. Запишите значение параметра Идентификатор приложения (клиент) . Оно вам потребуется в дальнейшем.

Затем задайте API, добавив область:

  1. В меню слева в разделе Управление выберите Предоставление API.
  2. Выберите Добавить область и щелкните Сохранить и продолжить, чтобы принять URI идентификатора приложения по умолчанию.
  3. Введите следующие значения, чтобы создать область, которая разрешает выполнение настраиваемых политик в клиенте Azure AD B2C:
    • Имя области: user_impersonation
    • Отображаемое имя согласия администратора: Access IdentityExperienceFramework
    • Описание согласия администратора: Allow the application to access IdentityExperienceFramework on behalf of the signed-in user.
  4. Выберите Добавить область.

Регистрация приложения ProxyIdentityExperienceFramework

  1. Щелкните Регистрация приложений и выберите Новая регистрация.
  2. Для параметра Имя введите ProxyIdentityExperienceFramework.
  3. В разделе Поддерживаемые типы учетных записей выберите Учетные записи только в этом каталоге организации.
  4. В разделе URI перенаправления в раскрывающемся списке выберите пункт Общедоступный/собственный клиент (мобильный и классический).
  5. В поле URI перенаправления введите myapp://auth.
  6. В разделе Разрешения установите флажок Предоставьте согласие администратора для разрешений openid и offline_access.
  7. Выберите Зарегистрировать.
  8. Запишите значение параметра Идентификатор приложения (клиент) . Оно вам потребуется в дальнейшем.

Затем укажите, что приложение должно считаться общедоступным клиентом:

  1. В меню слева в разделе Управлениевыберите Проверка подлинности.
  2. В разделе Дополнительные параметры, Разрешать потоки общедоступных клиентов, установите переключатель Включить следующие потоки для мобильных и классических систем в положение Да.
  3. Выберите Сохранить.
  4. Убедитесь, что в манифесте приложения указана строка "allowPublicClient": true.
    1. В меню слева в разделе Управление выберите Манифест, чтобы открыть манифест приложения.
    2. Найдите ключ allowPublicClient и убедитесь, что для него задано значение true.

Теперь предоставьте разрешения для области API, которую вы указали ранее при регистрации IdentityExperienceFramework:

  1. В меню слева в разделе Управление выберите Разрешения API.
  2. В разделе Настроенные разрешения выберите Добавить разрешение.
  3. Перейдите на вкладку Мои API и выберите приложение IdentityExperienceFramework.
  4. В разделе Разрешение выберите определенную ранее область user_impersonation.
  5. Выберите Добавить разрешения. В соответствии с инструкциями подождите несколько минут, прежде чем перейти к следующему шагу.
  6. Выберите Предоставить согласие администратора для <имя арендатора)>.
  7. Выберите ответ Да.
  8. Выберите Обновить, а затем убедитесь, что в разделе Состояние для области отображается "Предоставлено для...".

Начальный пакет настраиваемых политик

Настраиваемые политики представляют собой набор 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.

  1. Скачайте ZIP-файл или клонируйте репозиторий:

    git clone https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack
    
  2. Во всех файлах в каталоге SocialAndLocalAccounts замените строку yourtenant именем своего клиента Azure AD B2C.

    Например, если ваш клиент B2C имеет имя contosotenant, все экземпляры yourtenant.onmicrosoft.com должны иметь вид contosotenant.onmicrosoft.com.

Добавление идентификаторов приложений в настраиваемую политику

В файл расширений TrustFrameworkExtensions добавьте идентификаторы приложений.

  1. Откройте SocialAndLocalAccounts/TrustFrameworkExtensions.xml и найдите элемент <TechnicalProfile Id="login-NonInteractive">.
  2. Замените оба экземпляра IdentityExperienceFrameworkAppId идентификатором созданного ранее приложения IdentityExperienceFramework.
  3. Замените оба экземпляра ProxyIdentityExperienceFrameworkAppId идентификатором созданного ранее приложения ProxyIdentityExperienceFramework.
  4. Сохраните файл.

Добавление Facebook в качестве поставщика удостоверений

Начальный пакет SocialAndLocalAccounts включает функцию входа через социальные сети с помощью Facebook. Вам не нужен доступ к Facebook для использования настраиваемых политик. Здесь мы просто демонстрируем возможности федеративного входа через социальные сети в настраиваемых политиках. Если вам не нужен федеративный вход через социальные сети, воспользуйтесь начальным пакетом LocalAccounts и пропустите раздел Добавление Facebook в качестве поставщика удостоверений.

Создание приложения Facebook

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

Создание ключа Facebook

Добавьте секрет приложения Facebook в качестве ключа политики. Вы можете использовать секрет созданного приложения, чтобы выполнить одно из предварительных требований, описанных в этой статье.

  1. Войдите на портал Azure.
  2. Убедитесь, что вы используете каталог, содержащий клиент Azure AD B2C. На панели инструментов портала выберите значок Каталоги и подписки.
  3. В настройках портала на странице Каталоги и подписки найдите свой каталог Azure AD B2C в списке Имя каталога и выберите Переключить.
  4. На портале Azure найдите и выберите Azure AD B2C.
  5. На странице "Обзор" в разделе Политики выберите Identity Experience Framework.
  6. Выберите Ключи политики, а затем щелкните Добавить.
  7. Для пункта Параметры выберите Manual.
  8. Для параметра Имя введите FacebookSecret. Префикс B2C_1A_ может быть добавлен автоматически.
  9. В поле Секрет введите секрет приложения Facebook, указанный на сайте developers.facebook.com. Обратите внимание, что это секрет, а не идентификатор приложения.
  10. Для параметра Использование ключа выберите Подпись.
  11. Нажмите кнопку создания.

Обновление 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>

Отправка политик

  1. Выберите пункт меню Identity Experience Framework в своем клиенте B2C на портале Azure.
  2. Выберите Отправить настраиваемую политику.
  3. Отправьте файлы политики в следующем порядке:
    1. TrustFrameworkBase.xml
    2. TrustFrameworkLocalization.xml
    3. TrustFrameworkExtensions.xml
    4. SignUpOrSignin.xml
    5. ProfileEdit.xml
    6. PasswordReset.xml

При отправке файлов в Azure к каждому из них добавляется префикс B2C_1A_.

Совет

Если в редакторе XML поддерживается проверка, проверьте файлы с помощью XML-файла схемы TrustFrameworkPolicy_0.3.0.0.xsd, который расположен в корневом каталоге начального пакета. При проверке по схеме XML определяются ошибки перед отправкой.

Проверка пользовательской политики

  1. В разделе Настраиваемые политики выберите B2C_1A_signup_signin.
  2. Для параметра Выбор приложения на странице сведений о настраиваемой политике выберите зарегистрированное ранее веб-приложение с именем webapp1.
  3. Убедитесь, что для параметра URL-адрес ответа выбрано значение https://jwt.ms.
  4. Выберите Запустить сейчас.
  5. Зарегистрируйтесь с помощью адреса электронной почты.
  6. Снова выберите Запустить сейчас.
  7. Войдите в систему с помощью той же учетной записи, чтобы подтвердить правильность конфигурации.
  8. Снова щелкните Запустить сейчас и выберите Facebook, чтобы войти под учетной записью Facebook и проверить работу настраиваемой политики.

Дальнейшие действия

Из этой статьи вы узнали, как выполнять следующие задачи:

  • Создание потока пользователя для регистрации и входа в систему
  • Создание потока пользователя изменения профиля
  • Создание потока пользователя сброса пароля

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

Дополнительные сведения см. в серии видео об архитектуре Azure AD B2C.