Учебник. Создание потоков пользователей и пользовательских политик в 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 найдите и выберите Azure AD B2C.

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

    User flows page in portal with New user flow button highlighted

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

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

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

    Create user flow page in Azure portal with properties highlighted

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

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

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

    Attributes and claims selection page with three claims selected

  10. Для добавления потока пользователя выберите команду Создать. Префикс B2C_1_ добавляется к имени автоматически.

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

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

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

  3. Для приложения выберите веб-приложение, которое вы хотите протестировать, например одно с именем webapp1. В поле URL-адрес ответа должно содержаться значение https://jwt.ms.

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

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

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

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

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

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

Примечание.

Функция "Выполнить поток пользователя" в настоящее время не совместима с 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. Для параметра Поставщики удостоверений в разделе Локальные учетные записи выберите Регистрация по электронной почте.
  6. В разделе Атрибуты пользователя выберите атрибуты, которые клиенты будут изменять в своих профилях. Например, щелкните Показать еще, а затем выберите атрибуты и утверждения для отображаемого имени и названия задания. Нажмите ОК.
  7. Для добавления потока пользователя выберите команду Создать. Префикс B2C_1 автоматически добавляется к имени.

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

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

Совет

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

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

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

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