Eseguire la migrazione di utenti ad Azure AD B2CMigrate users to Azure AD B2C

La migrazione da un altro provider di identità a Azure Active Directory B2C (Azure AD B2C) potrebbe richiedere anche la migrazione degli account utente esistenti.Migrating from another identity provider to Azure Active Directory B2C (Azure AD B2C) might also require migrating existing user accounts. Di seguito sono descritti due metodi di migrazione, pre-migrazione e migrazione senza problemi.Two migration methods are discussed here, pre migration and seamless migration. Con entrambi gli approcci, è necessario scrivere un'applicazione o uno script che usi l' API Microsoft Graph per creare gli account utente nel 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.

Pre-migrazionePre migration

Nel flusso di pre-migrazione, l'applicazione di migrazione esegue questi passaggi per ogni account utente:In the pre migration flow, your migration application performs these steps for each user account:

  1. Leggere l'account utente dal vecchio provider di identità, incluse le credenziali correnti (nome utente e password).Read the user account from the old identity provider, including its current credentials (username and password).
  2. Creare un account corrispondente nella directory Azure AD B2C con le credenziali correnti.Create a corresponding account in your Azure AD B2C directory with the current credentials.

Usare il flusso di pre-migrazione in una delle due situazioni seguenti:Use the pre migration flow in either of these two situations:

  • È possibile accedere alle credenziali in testo non crittografato dell'utente (nome utente e password).You have access to a user's plaintext credentials (their username and password).
  • Le credenziali sono crittografate, ma è possibile decrittografarle.The credentials are encrypted, but you can decrypt them.

Per informazioni sulla creazione di account utente a livello di codice, vedere manage Azure ad B2C user accounts with Microsoft Graph.For information about programmatically creating user accounts, see Manage Azure AD B2C user accounts with Microsoft Graph.

Migrazione senza problemiSeamless migration

Usare il flusso di migrazione senza problemi se le password non crittografate nel vecchio provider di identità non sono accessibili.Use the seamless migration flow if plaintext passwords in the old identity provider are not accessible. Ad esempio, nei casi seguenti:For example, when:

  • La password viene archiviata in un formato crittografato unidirezionale, ad esempio con una funzione hash.The password is stored in a one-way encrypted format, such as with a hash function.
  • La password viene archiviata dal provider di identità legacy in modo che non sia possibile accedere a.The password is stored by the legacy identity provider in a way that you can't access. Ad esempio, quando il provider di identità convalida le credenziali chiamando un servizio Web.For example, when the identity provider validates credentials by calling a web service.

Il flusso di migrazione trasparente richiede ancora la pre-migrazione degli account utente, ma usa un criterio personalizzato per eseguire una query su un' API REST (creata) per impostare la password di ogni utente al primo accesso.The seamless migration flow still requires pre 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.

Il flusso di migrazione senza problemi comporta quindi due fasi: pre-migrazione e set credentials.The seamless migration flow thus has two phases: pre migration and set credentials.

Fase 1: pre-migrazionePhase 1: Pre migration

  1. L'applicazione di migrazione legge gli account utente dal vecchio provider di identità.Your migration application reads the user accounts from the old identity provider.
  2. L'applicazione di migrazione crea gli account utente corrispondenti nella directory Azure AD B2C, ma imposta le password casuali generate.The migration application creates corresponding user accounts in your Azure AD B2C directory, but set random passwords you generate.

Fase 2: impostare le credenzialiPhase 2: Set credentials

Al termine della pre-migrazione degli account, i criteri personalizzati e l'API REST eseguono le operazioni seguenti quando un utente accede:After pre migration of the accounts is complete, your custom policy and REST API then perform the following when a user signs in:

  1. Leggere l'account utente Azure AD B2C corrispondente all'indirizzo di posta elettronica immesso.Read the Azure AD B2C user account corresponding to the email address entered.
  2. Controllare se l'account è contrassegnato per la migrazione valutando un attributo di estensione booleano.Check whether the account is flagged for migration by evaluating a boolean extension attribute.
    • Se l'attributo di estensione restituisce True , chiamare l'API REST per convalidare la password rispetto al provider di identità legacy.If the extension attribute returns True, call your REST API to validate the password against the legacy identity provider.
      • Se l'API REST determina che la password non è corretta, restituire un errore descrittivo all'utente.If the REST API determines the password is incorrect, return a friendly error to the user.
      • Se l'API REST determina che la password è corretta, scrivere la password nell'account Azure AD B2C e modificare l'attributo di estensione booleano in 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.
    • Se l'attributo di estensione booleano restituisce False , continuare il processo di accesso come di consueto.If the boolean extension attribute returns False, continue the sign-in process as normal.

Per visualizzare un criterio personalizzato di esempio e un'API REST, vedere l' esempio di migrazione di utenti semplificati su GitHub.To see an example custom policy and REST API, see the seamless user migration sample on GitHub.

Diagramma del diagramma di flusso dell'approccio di migrazione trasparente alla migrazione degli utentiFlowchart diagram of the seamless migration approach to user migration
Diagramma: flusso di migrazione senza problemiDiagram: Seamless migration flow

Procedure consigliateBest practices

SicurezzaSecurity

L'approccio di migrazione trasparente usa l'API REST personalizzata per convalidare le credenziali di un utente rispetto al provider di identità legacy.The seamless migration approach uses your own custom REST API to validate a user's credentials against the legacy identity provider.

È necessario proteggere l'API REST da attacchi di forza bruta.You must protect your REST API against brute-force attacks. Un utente malintenzionato può inviare diverse password con la speranza di indovinare le credenziali di un utente.An attacker can submit several passwords in the hope of eventually guessing a user's credentials. Per evitare questi attacchi, interrompere la conservazione delle richieste all'API REST quando il numero di tentativi di accesso supera una determinata soglia.To help defeat such attacks, stop serving requests to your REST API when the number of sign-in attempts passes a certain threshold. Inoltre, è possibile proteggere le comunicazioni tra Azure AD B2C e l'API REST.Also, secure the communication between Azure AD B2C and your REST API. Per informazioni su come proteggere le API RESTful per la produzione, vedere Proteggere i servizi RESTful.To learn how to secure your RESTful APIs for production, see Secure RESTful API.

Attributi utenteUser attributes

Non è necessario eseguire la migrazione di tutte le informazioni del provider di identità legacy alla directory Azure AD B2C.Not all information in the legacy identity provider should be migrated to your Azure AD B2C directory. Identificare il set appropriato di attributi utente da archiviare in Azure AD B2C prima della migrazione.Identify the appropriate set of user attributes to store in Azure AD B2C before migrating.

  • Archivia in Azure ad B2CDO store in Azure AD B2C
    • Nome utente, password, indirizzi di posta elettronica, numeri di telefono, numeri di appartenenza/identificatori.Username, password, email addresses, phone numbers, membership numbers/identifiers.
    • Indicatori di consenso per l'informativa sulla privacy e i contratti di licenza con l'utente finaleConsent markers for privacy policy and end-user license agreements.
  • Non archiviare in Azure ad B2CDO NOT store in Azure AD B2C
    • Dati sensibili, come numeri di carta di credito, codici fiscali (SSN, Social Security Number), record medici o altri dati regolamentati da enti governativi o di conformità del settore.Sensitive data like credit card numbers, social security numbers (SSN), medical records, or other data regulated by government or industry compliance bodies.
    • Preferenze di marketing o comunicazione, comportamenti degli utenti e informazioni dettagliate.Marketing or communication preferences, user behaviors, and insights.

Pulizia directoryDirectory clean-up

Prima di iniziare il processo di migrazione, è possibile eliminare la directory.Before you start the migration process, take the opportunity to clean up your directory.

  • Identificare il set di attributi utente da archiviare in Azure AD B2C e migrare solo gli elementi necessari.Identify the set of user attributes to be stored in Azure AD B2C, and migrate only what you need. Se necessario, è possibile creare attributi personalizzati per archiviare più dati relativi a un utente.If necessary, you can create custom attributes to store more data about a user.
  • Se si esegue la migrazione da un ambiente con più origini di autenticazione (ad esempio, ogni applicazione dispone di una propria directory utente), eseguire la migrazione a un account unificato in 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.
  • Se più applicazioni hanno nomi utente diversi, è possibile archiviarli tutti in un account utente Azure AD B2C usando l'insieme di identità.If multiple applications have different usernames, you can store all of them in an Azure AD B2C user account by using the identities collection. Per quanto riguarda la password, consentire all'utente di sceglierne una e impostarla nella directory.With regard to the password, let the user choose one and set it in the directory. Ad esempio, con la migrazione senza problemi, solo la password scelta deve essere archiviata nell'account Azure AD B2C.For example, with the seamless migration, only the chosen password should be stored in the Azure AD B2C account.
  • Rimuovere gli account utente inutilizzati prima della migrazione oppure non eseguire la migrazione degli account obsoleti.Remove unused user accounts before migration, or do not migrate stale accounts.

Criteri passwordPassword policy

Se gli account di cui si sta eseguendo la migrazione hanno un livello di complessità della password più debole rispetto al livello di attendibilità della password forte applicato da Azure ad B2C, è possibile disabilitare il requisito per la password complessa.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. Per ulteriori informazioni, vedere proprietà dei criteri password.For more information, see Password policy property.

Passaggi successiviNext steps

Il repository Azure-ad-B2C/migrazione utenti in github contiene un esempio di codice personalizzato per la migrazione e un esempio di codice dell'API REST:The azure-ad-b2c/user-migration repository on GitHub contains a seamless migration custom policy example and REST API code sample:

Esempio di codice dell'API REST per la migrazione utente semplice &Seamless user migration custom policy & REST API code sample