API Permissions

TenantLift requires the following Microsoft Graph API and Exchange Online permissions. All are application-level (not delegated) and are requested during the initial admin consent flow.

Microsoft Graph

PermissionTypePurpose
User.Read.AllApplicationRead user profiles, UPNs, and licence assignments
Mail.ReadApplicationRead mailbox contents for migration
Mail.ReadWriteApplicationWrite migrated mail to target mailboxes
Calendars.ReadApplicationRead calendar events and meeting details
Calendars.ReadWriteApplicationWrite migrated calendar events to target
MailboxSettings.ReadApplicationRead mailbox settings (auto-replies, time zones)
MailboxSettings.ReadWriteApplicationConfigure forwarding & mailbox settings
Directory.Read.AllApplicationRead directory objects (users, groups, domains)
Organization.Read.AllApplicationRead tenant subscriptions and licence SKUs
Group.Read.AllApplicationRead Microsoft 365 and security groups
Sites.Read.AllApplicationRead SharePoint sites and OneDrive usage
Files.Read.AllApplicationRead OneDrive files for size calculation
Reports.Read.AllApplicationRead Microsoft 365 usage reports
ReportSettings.ReadWrite.AllApplicationUn-conceal hashed UPNs in usage reports
Team.ReadBasic.AllApplicationRead Teams team metadata
Channel.ReadBasic.AllApplicationRead Teams channel metadata
Policy.Read.AllApplicationRead Conditional Access policies
Application.Read.AllApplicationRead Entra ID app registrations
DeviceManagementConfiguration.Read.AllApplicationRead Intune device configuration
DeviceManagementApps.Read.AllApplicationRead Intune app management
DeviceManagementManagedDevices.Read.AllApplicationRead Intune managed devices

Exchange Online

PermissionTypePurpose
full_access_as_appApplicationFull access to Exchange Online mailboxes for migration

Consent versions

TenantLift tracks which permissions have been consented via a version number:

VersionChanges
1Initial permission set
2Added ReportSettings.ReadWrite.All
3Added enhanced audit permissions (Teams, CA, Apps, Intune)
4Unified consent — all permissions requested up-front; added Organization.Read.All

Connections on an older version will show a re-consent prompt.