Миграция пользователей в Azure AD B2CMigrate users to Azure AD B2C

Миграция с другого поставщика удостоверений на Azure Active Directory B2C (Azure AD B2C) также может потребовать миграции существующих учетных записей пользователей.Migrating from another identity provider to Azure Active Directory B2C (Azure AD B2C) might also require migrating existing user accounts. Здесь обсуждаются два метода миграции: групповой импорт и Простая миграция.Two migration methods are discussed here, bulk import and seamless migration. При использовании любого из этих подходов необходимо написать приложение или сценарий, который использует Microsoft Graph API для создания учетных записей пользователей в Azure AD B2C.With either approach, you're required to write an application or script that uses the Microsoft Graph API to create user accounts in Azure AD B2C.

Групповое импортBulk import

В потоке с массовым импортом приложение миграции выполняет следующие действия для каждой учетной записи пользователя:In the bulk import flow, your migration application performs these steps for each user account:

  1. Чтение учетной записи пользователя из старого поставщика удостоверений, включая текущие учетные данные (имя пользователя и пароль).Read the user account from the old identity provider, including its current credentials (username and password).
  2. Создайте соответствующую учетную запись в каталоге Azure AD B2C с текущими учетными данными.Create a corresponding account in your Azure AD B2C directory with the current credentials.

Используйте поток с массовым импортом в любой из этих двух ситуаций:Use the bulk import flow in either of these two situations:

  • У вас есть доступ к учетным данным пользователя в виде открытого текста (имя пользователя и пароль).You have access to a user's plaintext credentials (their username and password).
  • Учетные данные шифруются, но их можно расшифровать.The credentials are encrypted, but you can decrypt them.

Сведения о создании учетных записей пользователей программным путем см. в разделе Управление учетными записями пользователей Azure AD B2C с помощью Microsoft Graph.For information about programmatically creating user accounts, see Manage Azure AD B2C user accounts with Microsoft Graph.

Простая миграцияSeamless migration

Используйте простой поток миграции, если недоступность паролей в старом поставщике удостоверений невозможна.Use the seamless migration flow if plaintext passwords in the old identity provider are not accessible. Например, если:For example, when:

  • Пароль хранится в одностороннего зашифрованном формате, например в хэш-функции.The password is stored in a one-way encrypted format, such as with a hash function.
  • Пароль хранится в устаревшем поставщике удостоверений в недоступном виде.The password is stored by the legacy identity provider in a way that you can't access. Например, когда поставщик удостоверений проверяет учетные данные путем вызова веб-службы.For example, when the identity provider validates credentials by calling a web service.

Для беспрепятственного переноса по-прежнему требуется выполнить полную миграцию учетных записей пользователей, а затем использовать настраиваемую политику для запроса REST API (который вы создаете), чтобы задать пароль каждого пользователя при первом входе в систему.The seamless migration flow still requires bulk migration of user accounts, but then uses a custom policy to query a REST API (which you create) to set each users' password at first sign-in.

Таким образом, простой поток миграции имеет два этапа: массовый импорт и Настройка учетных данных.The seamless migration flow thus has two phases: bulk import and set credentials.

Этап 1. массовый импортPhase 1: Bulk import

  1. Приложение для миграции считывает учетные записи пользователей из старого поставщика удостоверений.Your migration application reads the user accounts from the old identity provider.
  2. Приложение для миграции создает соответствующие учетные записи пользователей в каталоге Azure AD B2C, но не устанавливает пароли.The migration application creates corresponding user accounts in your Azure AD B2C directory, but does not set passwords.

Этап 2. Настройка учетных данныхPhase 2: Set credentials

После выполнения полной миграции учетных записей пользовательская политика и REST API при входе пользователя выполняет следующие действия.After bulk migration of the accounts is complete, your custom policy and REST API then perform the following when a user signs in:

  1. Считывает учетную запись пользователя Azure AD B2C, соответствующую заданному адресу электронной почты.Read the Azure AD B2C user account corresponding to the email address entered.
  2. Проверьте, помечена ли учетная запись для миграции, путем оценки атрибута логического расширения.Check whether the account is flagged for migration by evaluating a boolean extension attribute.
    • Если атрибут расширения возвращает True, вызовите REST API, чтобы проверить пароль для устаревшего поставщика удостоверений.If the extension attribute returns True, call your REST API to validate the password against the legacy identity provider.
      • Если REST API определит неверный пароль, верните пользователю понятную ошибку.If the REST API determines the password is incorrect, return a friendly error to the user.
      • Если REST API определяет пароль правильно, запишите пароль в учетную запись Azure AD B2C и измените атрибут логического расширения на False.If the REST API determines the password is correct, write the password to the Azure AD B2C account and change the boolean extension attribute to False.
    • Если атрибут логического расширения возвращает False, продолжайте процесс входа как обычная.If the boolean extension attribute returns False, continue the sign-in process as normal.

Пример пользовательской политики и REST API см. в примере простой миграции пользователей на сайте GitHub.To see an example custom policy and REST API, see the seamless user migration sample on GitHub.

Блок-схема простого подхода к миграции пользователейFlowchart diagram of the seamless migration approach to user migration
Схема: простой поток миграцииDiagram: Seamless migration flow

РекомендацииBest practices

БезопасностьSecurity

Простой подход к миграции использует собственный пользовательский REST API для проверки учетных данных пользователя в отношении устаревшего поставщика удостоверений.The seamless migration approach uses your own custom REST API to validate a user's credentials against the legacy identity provider.

Необходимо защитить REST API от атак методом подбора.You must protect your REST API against brute-force attacks. Злоумышленник может отправить несколько паролей в конечном итоге угадать учетные данные пользователя.An attacker can submit several passwords in the hope of eventually guessing a user's credentials. Чтобы избежать таких атак, прекращает обслуживать запросы к REST API, когда число попыток входа проходит определенное пороговое значение.To help defeat such attacks, stop serving requests to your REST API when the number of sign-in attempts passes a certain threshold. Кроме того, обеспечьте безопасность обмена данными между Azure AD B2C и REST API.Also, secure the communication between Azure AD B2C and your REST API. Чтобы узнать, как защитить интерфейсы API RESTFUL для рабочей среды, см. раздел Защита API RESTful.To learn how to secure your RESTful APIs for production, see Secure RESTful API.

Атрибуты пользователяUser attributes

Не все сведения в устаревшем поставщике удостоверений должны быть перенесены в каталог Azure AD B2C.Not all information in the legacy identity provider should be migrated to your Azure AD B2C directory. Укажите соответствующий набор атрибутов пользователя для хранения в Azure AD B2C перед миграцией.Identify the appropriate set of user attributes to store in Azure AD B2C before migrating.

  • Сохранить в Azure AD B2CDO store in Azure AD B2C
    • Имя пользователя, пароль, адреса электронной почты, Номера телефонов, номера или идентификаторы членства.Username, password, email addresses, phone numbers, membership numbers/identifiers.
    • Маркеры согласия для политики конфиденциальности и лицензионных соглашений для конечных пользователей.Consent markers for privacy policy and end-user license agreements.
  • Не храните в Azure AD B2CDO NOT store in Azure AD B2C
    • Конфиденциальные данные, такие как номера кредитных карт, номера социального страхования (SSN), медицинские записи или другие данные, регулируемые правительством или отраслевыми стандартами соответствия стандартам.Sensitive data like credit card numbers, social security numbers (SSN), medical records, or other data regulated by government or industry compliance bodies.
    • Параметры маркетинга или связи, поведение пользователей и аналитика.Marketing or communication preferences, user behaviors, and insights.

Очистка каталогаDirectory clean-up

Прежде чем начать процесс миграции, воспользуйтесь возможностью очистки каталога.Before you start the migration process, take the opportunity to clean up your directory.

  • Укажите набор пользовательских атрибутов, которые будут храниться в Azure AD B2C, и перенесите только необходимые данные.Identify the set of user attributes to be stored in Azure AD B2C, and migrate only what you need. При необходимости можно создать настраиваемые атрибуты для хранения дополнительных данных о пользователе.If necessary, you can create custom attributes to store more data about a user.
  • Если выполняется миграция из среды с несколькими источниками проверки подлинности (например, каждое приложение имеет свой собственный каталог пользователя), выполните миграцию на единую учетную запись в Azure AD B2C.If you're migrating from an environment with multiple authentication sources (for example, each application has its own user directory), migrate to a unified account in Azure AD B2C.
  • Если несколько приложений имеют разные имена пользователей, их можно хранить в Azure AD B2C учетной записи пользователя с помощью коллекции удостоверений.If multiple applications have different usernames, you can store all of them in an Azure AD B2C user account by using the identities collection. В отношении пароля предоставьте пользователю возможность выбрать один из них и установить его в каталоге.With regard to the password, let the user choose one and set it in the directory. Например, при простой миграции только выбранный пароль должен храниться в учетной записи Azure AD B2C.For example, with the seamless migration, only the chosen password should be stored in the Azure AD B2C account.
  • Удалите неиспользуемые учетные записи пользователей перед миграцией или не перенесите устаревшие учетные записи.Remove unused user accounts before migration, or do not migrate stale accounts.

Политика паролейPassword policy

Если переносимые учетные записи имеют более слабую стойкость пароля, чем усиленный пароль , принудительно установленный Azure AD B2C, можно отключить требование надежного пароля.If the accounts you're migrating have weaker password strength than the strong password strength enforced by Azure AD B2C, you can disable the strong password requirement. Дополнительные сведения см. в разделе свойство политики паролей.For more information, see Password policy property.

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

В репозитории Azure-AD-B2C/User-migrations на сайте GitHub содержится простой пример пользовательской политики миграции и REST API пример кода:The azure-ad-b2c/user-migration repository on GitHub contains a seamless migration custom policy example and REST API code sample:

Простая настраиваемая политика миграции пользователей & REST API пример кодаSeamless user migration custom policy & REST API code sample