Authentication Methods for Microsoft 365 (All Products) Migrations

Authentication and permission management for Microsoft 365 can be complex and varies by type. This article covers the various types of authentication, what scenarios they apply to, and special cases.

The specific authentication needed and the steps to enable it will be found in the migration guide for your specific scenario.

Keep in mind that BitTitan only supports Modern Authentication for Microsoft 365 endpoints used for Mailbox, Online Archive mailbox, and Public Folder migrations. Modern Authentication provides a more secure authentication mechanism for registered applications to connect to Microsoft Entra ID and Microsoft 365. 

Microsoft's documentation explains enabling and disabling Modern Authentication for Exchange Online.

Please review the documentation below for a better understanding of the authentication methods for:

But first, let's review the terminology and the authentications available.

Terminology
Basic Authentication Modern Authentication Delegated Permissions Application Permissions

Basic Authentication is no longer supported between MigrationWiz and Exchange Online endpoints as of the end of December 2022 due to Microsoft discontinuing support for Basic Authentication in Exchange Online. Basic Authentication will not be supported after that and configuring MigrationWiz to use Modern Authentication will be required.

Authentications Available per Product Type
Microsoft 365 SharePoint and OneDrive Teams Small Business Tenant

Modern Authentication - Delegated Permissions

  • Created in the customer's Microsoft Entra account.
  • Requires admin credentials.

Microsoft 365

Below you can find the information related to Microsoft 365 Mailbox, Online Archive mailbox, and Public Folder migrations, and suggested:

Meet the Prerequisites

Before beginning your migration process please ensure to meet the following prerequisites:

  • A Global Administrator account with access to Microsoft Entra ID.
  • MigrationWiz Mailbox project(s) created and ready for configuration.
  • End-user credentials are not supported. Administrator credentials must be used for the endpoints in the MigrationWiz project
  • The application will require administrator consent

Warning

App password usage, MFA/2FA, and ADFS are not supported for the migration admin account/service account being used by these endpoints. The administrator account will need to be excluded from these policies if enabled. 

Check your Endpoints

To check the supported endpoints for each Microsoft 365 project type, please click the dropdown below and take a look.

Supported Endpoints
Project Type Source Destination
Mailbox
  1. Exchange Server 2003+
  2. Microsoft 365
  3. Microsoft 365 (Germany)
  4. Microsoft 365 (US Government)
  5. Microsoft 365 Groups
  1. Exchange Server 2003+
  2. Microsoft 365
  3. Microsoft 365 (Germany)
  4. Microsoft 365 (US Government)
  5. Microsoft 365 Groups
Public Folder
  1. Exchange Server 2003+
  2. Exchange Server Public Folder
  3. Microsoft 365
  4. Microsoft 365 Germany
  5. Microsoft 365 US Government
  6. Microsoft 365 Public Folders
  7. Microsoft 365 Public Folders (Germany)
  8. Microsoft 365 Public Folders (US Government)
  1. Exchange Server 2003+
  2. Exchange Server Public Folder
  3. Microsoft 365
  4. Microsoft 365 Germany
  5. Microsoft 365 US Government
  6. Microsoft 365 Public Folders
  7. Microsoft 365 Public Folders (Germany)
  8. Microsoft 365 Public Folders (US Government)
Personal Archive
  1. Exchange Server 2003+
  2. Microsoft 365
  3. Microsoft 365 (Germany)
  4. Microsoft 365 (US Government)
  1. Exchange Server 2003+
  2. Microsoft 365
  3. Microsoft 365 (Germany)
  4. Microsoft 365 (US Government)
Hybrid On-Premises Exchange 2010+ Microsoft 365 (Hybrid Migrations only)

Register and Configure your Application

Below, you can find a series of tabs that outline the necessary steps for setting up the tenant, registering the application, and assigning permissions.

Each tab contains four or three main steps specific to each migration type. Please follow them carefully to ensure a smooth process.

Deprecation of Microsoft Application Impersonation Role

From February 2025, Microsoft has started the depreciation process to remove the Application Impersonation role from O365. Exchange On-premise and Hosted Exchange are not affected by these changes. For further information please see this article.

If you are currently using Application Impersonation for your migrations, there is no telling when that will eventually fail. It is highly recommended that you switch to using the new API permission process to avoid delays in your project due to permission failures.

Mailbox and Personal Archive

The information below outlines different processes to prepare your environment using API permission or Delegated permission.

Even though delegated permissions are an option, are not recommended. Instead, we strongly recommend using the approach from the General API Permissions tab.

In case you want further information for Mailbox and Personal Archive endpoints we strongly recommend you to check the approach outlined in the Performing Migration using only API permissions article.

General API Permissions Scoped API Permissions Delegated Permissions

Step One - Create a New Application Registration

Create a new Application Registration in the Microsoft 365 tenant source or destination.

  1. Log in to the Microsoft Entra admin center with a Global Administrator login.
  2. Click View all products and select Microsoft ID (Azure AD) in the Microsoft Entra Admin Center.
  3. In the left sidebar, open the Applications dropdown list and select App Registrations, which is found under the Identity dropdown list.
  4. Select New Registration at the top of the screen.
    1. New App Registration.png
  5. Give the app a distinct name. You can change this later if necessary.
  6. Select the Accounts in this organizational directory only ('Tenant name only' - Single tenant) radio button.
  7. Click Register.
  8. Under the Manage menu, select Authentication.
  9. Set the option Allow public client flows to Yes
  10. Click Save.

Step Two - Assign the API Permissions and Grant Admin Consent

The following steps allow you to assign the API permission and grant consent to the necessary M365 components.

  1. From the Manage menu, select API permissions.

    Important

    If an API permission is named User.Read under Microsoft Graph is already present, this can be removed. The Microsoft Graph API does not apply to this project type and is not used.
  2. Click Add a Permission.
    5. API Permissions_1.png
  3. Select APIs my organization uses.
  4. Scroll down or search for the following permissions Office 365 Exchange Online.
    5. Request API permissions_1.png
  5. Select Delegated Permissions.
  6. Select EWS.
  7. Check the box under EWS for EWS.AccessAsUser.All

    Important

    This permission only allows the OAuth application (MigrationWiz) to be associated with EWS. This does not grant access to all mailbox data.
  8. Click Add a Permission.
    6. Request API permissions_1.png
  9. Select APIs my organization uses.
  10. Scroll down or search for the Office 365 Exchange Online.
  11. Select Application Permissions.
  12. Check the box under Other Permissions for full_access_as_app.
  13. Click Add Permissions.
    7.1 Grant app permissions.png
  14. Click Grant admin consent.
    7.2.1 Grant permissions.png
  15. Click Yes to confirm the settings. Under the Status column, you should see a message that permission has been granted for the domain.

Step Three - Obtain the AppID and TenantID from the Application Registration

Follow the steps below to obtain the AppID and TenantID from the Application Registration.

  1. Navigate to the App Registrations item as shown below. In the Overview tab, you will find the Application (client) ID and the Directory (Tenant) ID.
  2. Copy both of these to another application, such as Notepad, for use later in this process. This is needed for the MigrationWiz Project Setup.
    3. Authentication Settings.png

Step Four - Create a Client Secret

Create a Client Secret for the application by following the steps below.

  1. Go to Manage > Certificates & secrets from the left sidebar.
  2. Create a new secret client by clicking + New client secret.
  3. Copy and save the client secrets' value on a notepad or other preferred tool.
    SecretValue.jpg

Warning

Consider that the secret client's value is only available until the first time you sign off the Azure Portal after the secret client creation. After that, it will be no longer visible. 
In case you lost the value, please create a new client secret as suggested above and use it in the steps below.
Public Folder and Microsoft 365 Groups
Public Folder Microsoft 365 Groups

This is the approach for Public Folder migrations.

Step One - Create a New Application Registration

Create a new Application Registration in the Microsoft 365 tenant source or destination.

  1. Log in to the Microsoft Entra admin center with a Global Administrator login.
  2. Click View all products and select Microsoft ID (Azure AD) in the Microsoft Entra Admin Center.
  3. In the left sidebar, open the Applications dropdown list and select App Registrations, which is found under the Identity dropdown list.
  4. Select New Registration at the top of the screen.
    1. New App Registration.png
  5. Give the app a distinct name. You can change this later if necessary.
  6. Select the Accounts in this organizational directory only ('Tenant name only' - Single tenant) radio button.
  7. Under Redirect URI (optional), select Public client/native (mobile & desktop) and set it to urn:ietf:wg:oauth:2.0:oob
  8. Click Register.
    2. Register App.png
  9. Under the Manage menu, select Authentication.
  10. Set the option Allow public client flows to Yes
  11. Click Save.

Step Two - Assign the API Permissions and Grant Admin Consent

The following steps allow you to assign the API permission and grant consent to the necessary M365 components.

  1. From the Manage menu, select API permissions.

    Important

    If an API permission is named User.Read under Microsoft Graph is already present, this can be removed. The Microsoft Graph API does not apply to this project type and is not used.
  2. Click Add a Permission.
    5. API Permissions_1.png
  3. Select APIs my organization uses.
  4. Scroll down or search for the following permissions Office 365 Exchange Online.
    5. Request API permissions_1.png
  5. Select Delegated Permissions.
  6. Select EWS.
  7. Check the box under EWS for EWS.AccessAsUser.All

    Important

    This permission only allows the OAuth application (MigrationWiz) to be associated with EWS. This does not grant access to all mailbox data.
  8. Click Add Permissions.
    6. Request API permissions_1.png
  9. Click Grant admin consent.
    7.3 Grant permissions.png
  10. Click Yes to confirm the settings. Under the Status column, you should see a message that permission has been granted for the domain.

Step Three - Obtain the AppID and TenantID from the Application Registration

Follow the steps below to obtain the AppID and TenantID from the Application Registration.

  1. Navigate to the App Registrations item as shown below. In the Overview tab, you will find the Application (client) ID and the Directory (Tenant) ID.
  2. Copy both of these to another application, such as Notepad, for use later in this process. This is needed for the MigrationWiz Project Setup.
    3. Authentication Settings.png
Google Groups to Microsoft 365

Important

Please note that for Google Groups to Shared Mailbox, a Global Admin is required for the destination if you wish to migrate members.

This is the approach for Google Groups to Microsoft 365 migrations.

Step One - Create a New Application Registration

Create a new Application Registration in the Microsoft 365 tenant source or destination.

  1. Log in to the Microsoft Entra admin center with a Global Administrator login.
  2. Click View all products and select Microsoft ID (Azure AD) in the Microsoft Entra Admin Center.
  3. In the left sidebar, open the Applications dropdown list and select App Registrations, which is found under the Identity dropdown list.
  4. Select New Registration at the top of the screen.
    1. New App Registration.png
  5. Give the app a distinct name. You can change this later if necessary.
  6. Select the Accounts in this organizational directory only ('Tenant name only' - Single tenant) radio button.
  7. Under Redirect URI (optional), select Public client/native (mobile & desktop) and set it to urn:ietf:wg:oauth:2.0:oob
  8. Click Register.
    2. Register App.png
  9. Under the Manage menu, select Authentication.
  10. Set the option Allow public client flows to Yes
  11. Click Save.

Step Two - Assign the API Permissions and Grant Admin Consent

The following steps allow you to assign the API permission and grant consent to the necessary M365 components.

  1. From the Manage menu, select API permissions.

    Important

    If an API permission is named User.Read under Microsoft Graph is already present, this can be removed. The Microsoft Graph API does not apply to this project type and is not used.
  2. Click Add a Permission.
    5. API Permissions_1.png
  3. Select APIs my organization uses.
  4. Scroll down or search for the following permissions Office 365 Exchange Online.
    5. Request API permissions_1.png
  5. Select Delegated Permissions.
  6. Select EWS.
  7. Check the box under EWS for EWS.AccessAsUser.All

    Important

    This permission only allows the OAuth application (MigrationWiz) to be associated with EWS. This does not grant access to all mailbox data.
  8. Click Add Permissions.
  9. Repeat steps 2 and 3.
  10. Search Microsoft Graph.
  11. Then select Delegated Permissions.
  12. Select permissions below and click Add Permissions.
    • Directory.ReadWrite.All
    • Group.ReadWrite.All
    • GroupMember.ReadWrite.All
    • User.Read.All
  13. Click Grant admin consent.
  14. Click Yes to confirm the settings. Under the Status column, you should see a message that permission has been granted for the domain.

Step Three - Obtain the AppID and TenantID from the Application Registration

Follow the steps below to obtain the AppID and TenantID from the Application Registration.

  1. Navigate to the App Registrations item as shown below. In the Overview tab, you will find the Application (client) ID and the Directory (Tenant) ID.
  2. Copy both of these to another application, such as Notepad, for use later in this process. This is needed for the MigrationWiz Project Setup.
    3. Authentication Settings.png

Once you create a MigrationWiz project, do not forget to use the credentials you used here. These are required when setting up your endpoints (source and destination).

Warning

Please consider that you will not be able to save your project if you do not complete these fields, the credentials (client or tenant) are incorrect, or the credentials do not belong to the tenant.
Besides, remember that the client secret field is only mandatory for mailbox and archive endpoints.

Common Errors when Configuring Your Endpoint

For more information, review the AADSTS700016, AADSTS90002, and ADDSTS50126 issues on the Common Errors Using Modern Authentication page.

Application and Directory ID Issues Administration Credentials Issues

Make sure to complete the Application (client) ID and the Directory (tenant)  ID fields, otherwise, the following warnings arise and you cannot go to the next step.

Application and Directory ID issues.png

This happens when configuring the source or destination endpoints.

Invalid Application Client ID at Source Settings

Check whether the Application ID has been installed before or if it is the right one. For more information, refer to AADSTS700016.

Invalid Directory Tenant ID at Source Settings

Check whether the Directory Tenant ID has been installed before or if it is the right one. For more information, refer to AADSTS90002.

Set up Microsoft Entra SSO for MigrationWiz

Our Support team can enable the Microsoft 365 Microsoft Entra login on your company's MigrationWiz account. Note that SSO login happens at the domain level, which means all users with the domain you request will therefore be required to sign in with their Microsoft 365 Microsoft Entra logins - for example, instead of enabling SS just for You@company.com, it would be enabled for all users of @company.com. 

To set this up, you must have at least one MigrationWiz account with the same domain as your Microsoft 365 account. We do not support other SSO providers at this time.

  1. Contact our Support team.
  2. Our support team will set up your account to use Microsoft Entra login.
  3. Once your Microsoft Entra is ready, Support will contact you with instructions. 
  4. You will receive a response from Support when your account is all setup.

If any Security Conditional Access Policy at Microsoft Entra is blocking the BitTitan Application for MigrationWiz SSO then Exclude the application for the SSO to work.

To use the MigrationWiz PowerShell SDK with MigrationWiz SSO, you must use your original MigrationWiz/MSPComplete password, not your Microsoft Entra password.

SharePoint and OneDrive

Warning

App password usage, MFA/2FA, and ADFS are not supported for the migration admin account/service account being used by this endpoint. 

MigrationWiz now supports read-only Application Permissions for SharePoint and OneDrive migrations, introducing the UseApplicationPermission=1 option alongside FullControl permissions. This new read-only permission app can only be used at the source to enhance security, while destination permissions will always require FullControl access.

This allows for a secure migration without Global Admin or Site Collection Admin permissions on the source and destination.

This app is similar to the Office 365 Authentication App previously deployed, which utilized delegate permissions. This app uses application permissions. 

Microsoft has fully verified and accepted BitTitan applications. 

Your Granted Permissions

Before enabling your application permissions, let's check the permissions granted in each case:

Read Only Full Control

The following permissions are granted for Read Only.

SharePoint API

  • Sites.Read.All
  • User.Read.All

Graph API

  • Directory.Read.All
  • Files.Read.All
  • Group.Read.All (delegate permission)
  • User.Read (delegate permission)

Enable your Application Permissions

When you enable your application permissions, you'll see a message like the one below, depending on the permission you choose.

SharePoint_Read_Only.PNG Sharepoint_Full_Permissions.PNG

Depending on your endpoint, these permissions must be enabled at the source or destination. Please follow the steps below to enable them.

Enable Permissions at Source Enable Permissions at Destination

These are the steps to enable permission level at the source only. This authentication process gives you control over who is entitled to use the source.

  1. Ensure you are signed in as a Global Admin.
  2. Go to either MigrationWiz-SharePoint-ReadOnly or MigrationWiz-SharePoint-FullControl and consent to the app access when prompted.
  3. Create a new Security Group named “MigrationWiz” on the Office 365 Admin Portal. 
  4. Create a new user. This user must have a SharePoint/OneDrive license applied.
  5. Add a new user to the previously created security group as a member.
  6. Create MigrationWiz project.
  7. When creating the endpoints, enter the new user credentials.
  8. Add support option UseApplicationPermission=1

Post-Migration Steps

  1. Remove the newly created user.
  2. Remove the MigrationWiz Security Group created in Step 3. 

To remove the app from the source or destination, perform the following steps:

  1. Sign in to Microsoft Entra admin center.
  2. Select Microsoft Entra ID.
  3. Go to Identity > Applications > Enterprise applications, in the left bar of the window.
  4. In the Manage section, select All applications.
  5. Search for the application permission you configured in step 2 (MigrationWiz-SharePoint-ReadOnly or MigrationWiz-SharePoint-FullControl ) and select it.
  6. Go to Manage > Properties, and select Delete from the properties bar.
    mceclip0.png

Microsoft Teams

Keep in mind that this section only is applicable for Teams - Global admin & Application Permissions.

Warning

App password usage, MFA/2FA, and ADFS are not supported for the migration admin account/service account being used by this endpoint. 

In recent updates, the AO UseApplicationPermission=1 has been defaulted. Use Teams-FullControlApp for both Source and Destination.

MigrationWiz now supports read-only Application Permissions for Team migrations, in addition to full-control permissions. This new app, with ReadOnly permissions, can only be used at the source to enhance security and will not export document permissions. The destination permissions will always require FullControl permissions.

This allows for a secure migration without using Global Admin or Site Collection Admin permissions on the source and destination. The account still must be licensed for Teams at Exchange Online tenant.

This app is similar to the Office 365 Authentication App previously deployed, which utilized delegate permissions. This app uses the application permissions. If you are not using application permissions, go to the Authentication App article and follow those steps.

Your Granted Access

Before enabling your application permissions, let's check the permissions granted in each case. 

Read Only Full Control

When enabling ReadOnly permissions you will have access to conversations, Teams permissions, and documents. By choosing ReadOnly, the following permissions are granted:

SharePoint API

  • Sites.Read.All
  • User.Read.All

Graph API

  • Files.Read.All
  • Group.ReadWrite.All
    (This is to add the user to the team as an owner first before being able to read conversations)
  • User.Read.All
  • Group.Read.All (delegate permission)
    (This is to be able to read all the conversations as a user after being added)
  • User.Read (delegate permission)

Enable Application Permissions

When you enable your application permissions, you'll see a message like the one below, depending on the permission you choose.

61d5b82a-cc9f-42d9-8565-7813f8c94121.png

Enable Permissions at Source Enable Permissions at Destination
These are the steps to enable permission level at the source only. This authentication process gives you control over who is entitled to use the source.
  1. Ensure you are signed in as a Global Admin in the Office 365 Admin Portal.

  2. Go to either Teams-ReadOnlyApp or Teams-FullControlApp and consent to the app access when prompted. If choosing the Teams-ReadOnlyApp option, you will need to disable AMR via "DisableAsynchronousMetadataRead=1", due to Microsoft API limitation.

  3. Create a new Security Group named “MigrationWiz” on the Microsoft 365 Admin Portal. If you have not created a security group before, follow Microsoft's instructions.

  4. Create a new user. This user must have an active Teams license applied.

  5. Add a new user to the previously created security group as a member. Important: ADFS and MFA must be turned off for this user.

  6. Create MigrationWiz project.

  7. When creating the endpoints, enter the new user credentials.

Post-Migration Steps

  1. Remove the newly created user.

  2. Remove the MigrationWiz Security Group created in Step 3.

To remove the app from the source or destination, perform the following steps:

  1. Sign in to Microsoft Entra admin center.
  2. Select Microsoft Entra ID.
  3. Go to Identity > Applications > Enterprise applications, in the left bar of the window.
  4. In the Manage section, select All applications.
  5. Search for the application permission you configured in step 2 (Teams-ReadOnlyApp or Teams-FullControlApp) and select it.
  6. Go to Manage > Properties, and select Delete from the properties bar.
    mceclip0.png
Was this article helpful?
9 out of 30 found this helpful