Cross-Tenant mailbox migration in Microsoft 365 Exchange Online

In questo articolo parleremo di una feature molto attesa dagli amministratori di Exchange Online, nell’ultima edizione del Microsoft Ignite 2020 è stata annunciata quella che viene definita “Cross Tenant mailbox migration in public preview”. Prima di questo annuncio, quando si aveva la necessità di spostare una mailbox da un Tenant all’altro, la procedura era quella di riportare la mailbox On-Premises per poi eseguire la migrazione di quest’ultima su un nuovo Tenant.

Con il “Cross-Tenant mailbox migration”, ora è possibile trasferire mailbox da un Tenant all’altro senza troppe dipendenze sull’infrastruttura On-Premises. Questo rimuove la necessità di riportare On-Premises la mailbox da migrare sul nuovo Tenant.

In genere, in fase di acquisizione di un’azienda viene la necessità di migrare la mailbox da un tenant di Microsoft 365 all’altro. L’operazione effettuata dell’amministratore del Tenant “Target” viene definita “Pull move”, similare alla migrazione da Organizzazione On-Premises a Microsoft 365.

Le migrazioni Cross-Tenant delle mailbox permettono agli amministratori di avere un’esperienza di gestione del processo praticamente identica a quella a cui sono già abituati. Sarà infatti possibile poter utilizzare il classico Exchange Control Panel di Exchange Online per creare i batch di migrazione, oppure con il ben noto CMDLET “New-MigrationBatch” in PowerShell, tutto questo ovviamente con le dovute permission assegnate all’identità utente con privilegi amministrativi che sta eseguendo le operazioni di migrazione. Il processo di migrazione prevede i check di autorizzazione sul “Source” Tenant durante tutto il processo di spostamento degli items della mailbox interessata.

Il Cross-Tenant mailbox migration è supportato nei seguenti scenari:

  • Tenant to Tenant Cloud Only
  • Tenant Hybrid to Tenant Cloud Only
  • Tenant Cloud Only to Tenant Hybrid

Prerequisiti

  • Azure Key Vault: il Cross-Tenant migration richiede l’utilizzo dell’Azure Key Vault, questo verrà utilizzato per archiviare il certificato che verrà utilizzato per l’autenticazione e l’autorizzazione della migrazione delle mailbox Cross-Tenant, per questo motivo sarà necessario essere in possesso di una sottoscrizione di Azure e di Azure Key Vault. Per maggiori informazioni su Azure Key Vault potete visitare la pagina https://docs.microsoft.com/it-it/azure/key-vault/basic-concepts
  • Utenti con permessi amministrativi sui Tenant: prima di iniziare, dovremo verificare di disporre delle autorizzazioni necessarie per l’esecuzione degli script che serviranno per configurare l’Azure Key Vault, registrazione di una nuova applicazione su Azure Active Directory (“Target” Tenant) con i permessi di migrare le mailbox dal “Source” Tenant, creazione endpoint di migrazione Exchange Online e configurazione regole di Organization Sharing tra “Source” Tenant e “Target” Tenant.
  • Mail-Enabled Security Group su “Source” Tenant: quest’oggetto in fase di configurazione verrà utilizzato dal “Target” Tenant come riferimento della lista di Mailbox che potranno essere migrate.
  • Tenant ID del “Source Tenant”: in fase di configurazione del “Target” Tenant sarà necessario essere il possesso del Tenant ID del Source Tenant, per trovare il Tenant ID sarà necessario eseguire il login sull’Admin Center di Microsoft 365 e andare su https://aad.portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/Properties.

Figura 1 – Flusso Di Migrazione Cross-Tenant

Le attività di configurazione saranno effettuate tramite due script che ci vengono forniti da Microsoft, il primo è “SetupCrossTenantRelationshipForTargetTenant.ps1” e verrà eseguito sul “Target” Tenant, il secondo è “SetupCrossTenantRelationshipForResourceTenant.ps1” e verrà eseguito sul “Source” Tenant. Su GitHub trovate gli script forniti da Microsoft per questa preview. Dopo l’esecuzione con i parametri corretti si potrà procedere con la creazione dei batch di migrazione delle mailbox.

Esempio esecuzione script Target Tenant:

Esempio esecuzione script Source Tenant:

 

Analisi dei Parametri dei due script forniti dalla casa di Redmond:

  • Target Tenant Script
    • ResourceTenantDomain, dominio del “Source” Tenant su Foresta Onmicrosoft (contoso.onmicrosoft.com).
    • ResourceTenantAdminEmail, smtp Address Amministratore “Source” Tenant, verrà utilizzata per ricevere la richiesta dall’applicazione registrata su “Target” Tenant per i permessi di migrazione delle mailbox.
    • TargetTenantDomain, dominio del “Target” Tenant su Foresta Onmicrosoft (fabrikam.onmicrosoft.com)
    • ResourceTenantID, ID “Source” Tenant come anticipato in precedenza lo trovate al link https://aad.portal.azure.com/
    • SubscriptionId, ID della sottoscrizione Azure del “Target” Tenant.
    • ResourceGroup, Azure resource group “Target” Tenant che conterrà il key vault.
    • KeyVaultName, Istanza Azure Key Vault che conterrà il certificato generato.
    • KeyVaultLocation, Region Azure Key Vault.
    • CertificateName, nome certificato generato su Key Vault “Target” Tenant.
    • CertificateSubject, Subject Name (es. contoso_fabrikam) del certificato generato e contenuto su Azure Key Vault.
    • AzureAppPermissions, permessi necessari per la migrazione delle mailbox Cross-Tenant, come Exchange o MSGraph (Exchange per la migrazione delle mailbox, MSGraph per utilizzare l’applicazione registrata su “Target Tenant” per mandare il link con l’invito all’amministratore del “Source” Tenant).
    • UseAppAndCertGeneratedForSendingInvitation, paramentro necessario all’invio dell’invito tramite lo script senza necessità di chiedere nuovamente le credenziali dell’amministratore del “Target” Tenant.
    • KeyVaultAuditStorageAccountName, storage account dove saranno contenuti i log dell’Azure Key Vault appena creato.
    • KeyVaultAuditStorageResourceGroup, resource group che conterrà lo storage account con all’interno i log dell’Azure Key Vault appena creato.
  • Source Tenant Script
    • SourceMailboxMovePublishedScopes, Mail-enabled security group appena creato su “Source” Tenant con all’interno le identità/mailbox coinvolte nella migrazione Cross-Tenant
    • ResourceTenantDomain, dominio del “Source” Tenant su Foresta Onmicrosoft (contoso.onmicrosoft.com).
    • TargetTenantDomain, dominio del “Target” Tenant su Foresta Onmicrosoft (fabrikam.onmicrosoft.com).
    • ApplicationId, ID dell’applicazione creata nel “Target” Tenant per la migrazione delle mailbox.
    • TargetTenantId, ID del “Target” Tenant.

Preparazione dei Tenant:

  • Target Tenant:
    • Nuovo Azure Resource Group, se non esiste con il valore assegnato al parametro di riferimento ne verrà creato uno nuovo (script).
    • Nuovo Key Vault, se non esiste con il valore assegnato al parametro di riferimento ne verrà creato uno nuovo (script).
    • Nuova Azure Access Policy per l’applicazione Office 365 Online Mailbox Migration (script).
    • Nuovo certificato, se non ne viene specificato uno esistente (script).
    • Nuova Applicazione Azure Active Directory (script).
    • Il certificato appena creato assegnato all’applicazione dedicata alla migrazione (script).
    • I permessi di migrazione delle mailbox verranno assegnate all’applicazione (script).
    • L’amministratore del “Target” Tenant dà i permessi necessari all’applicazione creata nel proprio Tenant (manuale).
    • Una “relationship” a livello di Organizzazione viene creata sul “Target” Tenant (script).
    • Un endpoint di migrazione viene creato sul “Target” Tenant (script).
  • Source Tenant:
    • L’amministratore del “Source” Tenant accetterà l’invito di accettazione dei permessi per la migrazion delle mailbox da parte dell’applicazione registrata sul “Target” Tenant (manuale).
    • L’amministratore del “Source” Tenant procederà con la creazione di un mail-enabled security group, all’interno del quale andrà a mettere la lista di mailbox che intende migrare (manuale).
    • Una “relationship” a livello di Organizzazione viene creata sul “Target” Tenant (script).

Step sul “Target” Tenant:

Figura 2 – Creazione Azure Key Vault

Figura 3 – Riassunto Azure Key Vault

Apriamo powershell, ci spostiamo nella directory contenente i due script forniti da Microsoft e importiamo il modulo di Exchange Online e Azure Active Directory:

Figura 4 – Esecuzione Script “Target” Tenant

Figura 5 – Immissione credenziali Amministratore “Target” Tenant

Dopo aver eseguito lo script dedicato al “Target” Tenant inseriremo le credenziali dell’amministratore del “Target” Tenant.

Figura 6 – URL autorizzazioni Amministratore “Target” Tenant

Figura 7 – Applicazione creata su “Target” Tenant

Figura 8 – Finestra autorizzazioni Amministratore “Target” Tenant

Figura 9 – API permissions assegnate all’applicazione creata

A questo punto, lo script si fermerà e vi chiederà di accettare la richiesta di permessi di migrazione delle mailbox da parte dell’applicazione appena creata. Questa richiesta la potrete accettare utilizzando la prima URL che vi verrà fornita in output dallo script appena eseguito. Quando avrete utilizzato l’URL vi troverete davanti alla finestra con la lista di autorizzazioni da accettare.

Figura 10 – Esecuzione Script “Target” Tenant

Richiesta credenziali amministratore Target Tenant per la creazione delle Relationship a livello di Organizzazioni.

Figura 11 – Riepilogo Relationship Organizzazioni e Endpoint di Migrazione delle Mailbox

Configurazione del “Target” Tenant terminata.

Step sul “Target” Tenant:

Figura 12 – Invito da parte del “Target” Tenant all’amministratore del “Source” Tenant tramite e-mail

La prima cosa da fare a inizio configurazione del “Source” Tenant è quello di accettare l’invito da parte dell’applicazione (M365x293780_Friends_M365x832185_6451) creata nel “Target” Tenant.

Figura 13 – Riassunto Permessi

Figura 14 – Riassunto Organization Relationship con evidenziato l’application ID aggiunto al “Source” Tenant

Dopo aver accettato l’invito dell’applicazione del “Target” Tenant procediamo con l’esecuzione dello script sul “Source” Tenant

Figura 15 – Esecuzione Script “Target” Tenant

Configurazione del “Source” Tenant terminata.

Verifichiamo la configurazione sui due Tenant:

Target Tenant

Figura 16 – Riepilogo Organizzazione “Target” Tenant

Figura 17 – Riepilogo Endpoint di Migrazione “Target” Tenant

Source Tenant

Figura 18 – Riepilogo Organizzazione “Source” Tenant

Preparazione identità su Target Tenant per la migrazione Cross-Tenant

Prerequisiti

I seguenti attributi devono essere configurati sulle identità del “Target” Tenant.

Per ogni mailbox che verrà migrata da un Tenant all’altro, andrà creato un oggetto “MailUser” nel “Target” Tenant:

  • Il Target MailUser dovrà avere configurati i seguenti attributi:
    • ExchangeGUID – il GUID della mailbox di partenza deve conincidere con l’identità del “Target” Tenant, altrimenti la migrazione non andrà a buon fine.
    • ArchiveGUID – Il GUID dell’archivio (in caso lo aveste abilitato sulla mailbox da migrare) deve coincidere, altrimenti la migrazione non andrà a buon fine.
    • LegacyExchangeDN – Questo attributo è presente nella mailbox di partenza, deve essere copiato e utilizzato come “x500 address” sull’identità di destinazione.
    • UserPrincipalName – L’UPN della nuova identità avrà suffisso DNS uguale al dominio del “Target” Tenant, ad esempio [email protected]
    • Primary SMTPAddress – Il primary smtp address avrà come domino, il dominio primario del “Target” Tenant, ad esempio [email protected]
    • TargetAdress/ExternalEmailAddress – L’oggetto MailUser creato nel “Target” Tenant avrà come domino nell’external address il dominio di secondo livello su foresta Onmicrosoft del “Source” Tenant, ad esempio utente@ M365x832185.onmicrosoft.com
  • Sarà fondamentale assicurarsi di non eseguire migrazioni su identità nel “Target” Tenant con attributo “ExchangeGuid” già presente causa precedenti mailbox, se così fosse la migrazione non andrebbe a buon fine.

Figura 19 – Esempio ExchangeGUID “Source” Tenant

Figura 20 – Esempio Conf ExchangeGUID su identità “Target” Tenant

Figura 21 – Get ExchangeGUID configurato su “Source” Tenant

Figura 22 – ProxyAdresses MailUser “Source” Tenant

Figura 23 – MailUser creati su “Target” Tenant

Figura 24 – ProxyAdresses MailUser “Target” Tenant

Facciamo un esempio di test di Migrazione:

Figura 25 – Nuovo Exchange Admin Center, lo utilizzeremo per la migrazione Cross-Tenant

Figura 26 – Nuovo Admin Center Exchange Online

Figura 27 – Nuovo Batch Di migrazione

Figura 28 – Scegliamo il nome del batch di migrazione

Figura 29 – Scegliamo Cross Tenant Migration come tipologia di migrazione

Figura 30 – Scegliamo l’endpoint di migrazione

Figura 31 – Scegliamo il dominio di destinazione del “Target” Tenant

Figura 32 – Scegliamo la schedulazione del batch

Figura 33 – Batch creato correttamente

Figura 34 – Migrazione Cross Tenant in corso

Dopo aver terminato tutte le operazioni necessarie sui Tenant interessati sarà possibile seguire la procedura tramite GUI come appena descritto, ma sarà anche possibile automatizzare il tutto tramite classico CMDLET New-MigrationBatch.

Conclusioni

Questa preview era molto attesa dagli amministratori di Exchange Online, soprattutto per scenari che riguardano acquisizioni di azienda che hanno già le proprie mailbox su Microsoft 365. Storicamente gli amministratori di Exchange Online erano costretti a eseguire un offboard della mailbox dal “Source” Tenant per poi in seguito importarla nel “Target” Tenant. Con questa feature in preview potete testare una soluzione che se ben sfruttata potra ottimizzare di gran lunga i tempi di migrazione degli item da un Tenant all’altro senza la necessità di utilizzare tool di terze parti a pagamento.