Modern Authentication (OAuth 2.0) Guide

How to Register App in Azure Active Directory (Microsoft Entra ID)

When opting for Modern Authentication in MailsDaddy migration and backup applications, register your application in Microsoft Entra ID (Azure AD). Follow this illustrated guide with step-by-step screenshots to configure API permissions, generate your Client Secret, and assign administrator privileges.

Microsoft 365 / Entra ID Exchange Online Full Access Graph API Scopes Global Admin Role
01

Register the App in Microsoft Entra ID (Azure AD)

You can complete application registration via Microsoft 365 Admin Center or directly in Azure Portal (portal.azure.com).

Step 1Access Microsoft Entra ID (Identity Admin Center)

Sign in to the Microsoft 365 Admin center using your global administrator credentials. Under the left-hand navigation sidebar, look for Admin centers and select "Identity" (Microsoft Entra ID).

Microsoft 365 Admin Center - Select Identity
Step 2Navigate to App Registrations

In the Microsoft Entra admin center navigation tree, expand the Applications menu and click on "App registrations".

Applications - App Registrations Menu
Step 3Click "+ New registration"

On the top toolbar of the App registrations page, click the "+ New registration" button to start creating your app.

App Registrations - New Registration Button
Step 4Provide Application Name & Select Account Type

Enter an intuitive name for the app (e.g., MailsDaddy Migration App or MailsDaddy Backup). Under Supported account types, select "Accounts in this organizational directory only (Single tenant)", then click on the "Register" button at the bottom.

Register an application - Enter Name and Register
02

Add API Permissions: Office 365 (Exchange Online)

Configure application-level permissions so MailsDaddy software can access mailboxes, folders, calendars, and items.

Step 1Open API Permissions & Add Permission

Under the Manage category in the left sidebar, click on "API permissions", then click the "+ Add a permission" button.

API Permissions - Add a permission
Step 2Select "APIs my organization uses" → Office 365 Exchange Online

In the Request API permissions pane, click on the "APIs my organization uses" tab. Search for "Office 365 Exchange Online" and select it from the result list.

Search APIs my organization uses for Office 365 Exchange Online
Step 3Select Application Permissions & Add Full Access

Choose "Application permissions" (runs as a background service without a signed-in user), then check the required permissions:

Migration TypePermission CategoryPermission NamePurpose
For Office 365 / Exchange OnlineExchangeExchange.ManageAsAppManage Exchange organization as app
Full Accessfull_access_as_appUse Exchange Web Services with full access to all mailboxes

Click the "Add permissions" button to save the configuration.

Application Permissions - full_access_as_app
Step 4Grant Admin Consent for Your Organization

After adding the permissions, they remain in an ungranted state until authorized. Under Configured permissions, click on "Grant admin consent for <Your Organization>".

Grant Admin Consent Button

A confirmation dialog appears. Click "Yes" to confirm admin consent. You will see green checkmarks under the Status column for all granted permissions.

Grant Admin Consent Confirmation - Click Yes
03

Microsoft Graph Permissions (Teams, OneDrive, SharePoint)

Configure Microsoft Graph scopes for backing up and migrating Microsoft Teams channels, chats, OneDrive files, and SharePoint document libraries.

Step 1Select Microsoft Graph in API Permissions

Click "+ Add a permission" again, and select "Microsoft Graph" under Microsoft APIs.

Select Microsoft Graph API
Step 2Choose Application Permissions

Select "Application permissions" to allow background synchronization without individual end-user prompts.

Choose Application Permissions in Microsoft Graph

Complete Microsoft Graph Permission Reference Matrix

Depending on your migration scope (source vs. target), check the respective permissions from the table below:

CategorySource Read PermissionsTarget Write / Migration Permissions
ApplicationApplication.Read.AllApplication.ReadWrite.All, Application.ReadWrite.OwnedBy
CalendarsCalendars.Read, Calendars.ReadBasic.AllCalendars.ReadWrite
ChannelMessageChannelMessage.Read.AllN/A
ChatChat.Read.AllChat.ReadWrite.All
DirectoryDirectory.Read.AllDirectory.ReadWrite.All
FilesFiles.Read.AllFiles.ReadWrite.All
GroupGroup.Read.AllGroup.Create, Group.ReadWrite.All
GroupMemberGroupMember.Read.AllGroupMember.ReadWrite.All
NotesNotes.Read.AllNotes.ReadWrite.All
SitesSites.Read.AllSites.ReadWrite.All
TasksTasks.Read.AllTasks.ReadWrite.All
TeamTeam.ReadBasic.AllTeam.Create, Team.ReadBasic.All
TeamMemberTeamMember.Read.All, TeamMember.ReadWriteNonOwnerRole.AllTeamMember.ReadWrite.All, TeamMember.ReadWriteNonOwnerRole.All
TeamSettingsTeamSettings.Read.AllTeamSettings.ReadWrite.All
TeamsTabTeamsTab.Read.AllTeamsTab.Create, TeamsTab.ReadWrite.All
TeamWorkN/ATeamwork.Migrate.All
TeamworkAppTeamworkAppSettings.ReadTeamworkAppSettings.Read
TeamworkAppSettingsTeamworkAppSettings.Read.AllTeamworkAppSettings.ReadWrite.All
TeamworkTagTeamworkTag.Read.AllTeamworkTag.ReadWrite.All
UserUser.Read, User.Read.AllUser.Read
04

Generate Client Secret Value

The Client Secret acts as the password for your application when authenticating via OAuth2.

Step 1Select "Certificates & secrets" → "+ New client secret"

From the left-hand Manage menu, select "Certificates & secrets". On the Client secrets tab, click on "+ New client secret".

Certificates and Secrets - New Client Secret
Step 2Enter Description & Choose Expiration Period

Provide a short description (e.g. MailsDaddySecret) and select your desired expiration timeframe (such as 180 days or 24 months). Then click "Add".

Add a client secret description and expiration
Step 3Copy the Client Secret Value Immediately

Azure displays the secret in the table. Copy the text from the "Value"column (NOT the "Secret ID" column) and save it in a secure location.

Crucial Warning: Azure displays this secret string ONLY once upon creation. Once you leave or refresh the page, the value is permanently hidden behind asterisks.
Copy the Client Secret Value
05

Assign Global Administrator Role

Required for cross-mailbox migration and tenant-wide mailbox mapping in MailsDaddy migration software.

Step 1Search for Roles and Administrators

In the top search bar of Microsoft Entra ID, type "roles and administrators" and select it from the search results.

Search Microsoft Entra ID Roles and Administrators
Step 2Open "Global Administrator"

Type "Global Administrator" in the role search box, and click on the Global Administrator role to open it.

Select Global Administrator Role
Step 3Click "+ Add assignments"

On the top action bar of the Global Administrator role page, click the "+ Add assignments" button.

Click Add Assignments button
Step 4Search for Registered App & Add

Type the name of your registered application (e.g. MailsDaddy Migration App) in the search field. Select the checkbox next to it, and click the "Add" button.

Select Registered App and Click Add
Next Step: Software Connection

Where to Find Tenant ID, Client ID & Secret?

Read our dedicated companion tutorial showing exactly where to copy your Directory (Tenant) ID, Application (Client) ID, and paste them into MailsDaddy software.

View Tenant & Client ID Guide