Permissions for Destination Teams Chats

To connect to the destination, you need to use a delegated app profile as the authentication method. If you want to migrate chat files in Teams Chat Migration, you can also simultaneously use a Fly app profile or custom app profile to reduce throttling.

Refer to the following sections to view the permissions required by the authentication methods.

Delegated App Profile Permissions

Fly supports the default or custom delegated app profile for the destination.

*Note: If the consent user of the delegated app profile has Multi-Factor Authentication (MFA) enabled, you must authorize or re-authorize the delegated app profile after MFA is enabled. Otherwise, the migration jobs using the delegated app profile will fail.

- To use the Fly delegated app profile with required permissions, refer to [Fly Delegated App Profile Permissions](#missing-link). - To use a custom delegated app profile with required permissions, refer to the **Custom Delegated App Profile** section below.

*Note: If you re-authorize the app profile, you need to wait about one hour before using the app profile for your migration to refresh the token when there are permissions updated.

Additionally, if you only use the delegated app profile to connect to the destination, the consent user of the delegated app profile must meet the following requirements:

- Have a license for Microsoft Teams. > ***Note**: To assign the licenses to the consent user, go to the Microsoft 365 admin center > **Users** > **Active users**, and select **Microsoft Teams** under the **Licenses and apps** tab of the consent user. - Must be **SharePoint Administrator** to ensure the provision of OneDrive sites for destination chat users. If the consent user is **SharePoint Administrator** or **Global Administrator**, during the full migration job, the consent user will be automatically added as **Site Collection Administrator** of the OneDrive sites of destination chat users. After the migration, you can remove the consent user from the sites.

What permissions are required if I also use an app profile?

If you use both the delegated app profile and app profile authentications for destination Teams chats, the consent user of the delegated app profile must meet the following requirements:

- Have Microsoft Teams and SharePoint licenses. > ***Note**: To assign the licenses to the consent user, go to the Microsoft 365 admin center > **Users** > **Active users**, and select **Microsoft Teams** and **SharePoint** under the **Licenses and apps** tab of the consent user. - If the destination chat users’ OneDrive sites have not been initialized before the migration, the consent user must be **SharePoint Administrator**. If the destination chat users’ OneDrive sites have been initialized, the consent user can be a normal user without any admin roles. During the full migration job, the consent user will be automatically added as **Site Collection Administrator** of the OneDrive sites of destination chat users. After the migration, you can remove the consent user from the sites.

Custom Delegated App Profile

To use a custom delegated app profile with required permissions, refer to the following steps:

  1. After registering an app in Microsoft Entra ID, add the permissions in the table below to the app.
APIPermissionTypePurpose
Microsoft GraphUser.Read.All(Read all users' full profiles)DelegatedRetrieve and migrate Microsoft 365 users.
Microsoft GraphTeamsTab.Create(Create tabs in Microsoft Teams)DelegatedMigrate the tab.
Microsoft GraphTeamsTab.Read.All(Read tabs in Microsoft Teams.)DelegatedRetrieve and migrate Team tabs.
Microsoft GraphChat.ReadWrite(Read and write user chat messages)Delegated
Migrate chat members/chat messages.
Microsoft GraphFiles.ReadWrite(Have full access to user files)DelegatedMigrate chat files.
Microsoft GraphTeamsTab.ReadWriteSelfForChat(Allow the Teams app to manage only its own tabs in chats)DelegatedUpdate tabs in destination chats.
Microsoft Information Protection Sync ServiceUnifiedPolicy.User.Read(Read all unified policies a user has access to)DelegatedOnly required if you want to manage the sensitivity labels of files/emails/Teams.
Azure Rights Management Services*Note: For 21Vianet tenants, the API name is Microsoft Rights Management Services.user_impersonation(Create and access protected content for users)DelegatedOnly required if you want to manage the sensitivity labels of files/emails/Teams.
SharePoint/Office 365 SharePoint OnlineAllSites.FullControl(Have full control of all site collections)DelegatedRetrieve settings and permissions of OneDrive sites.
SharePoint/Office 365 SharePoint OnlineUser.Read.All(Read user profiles)DelegatedMigrate OneDrive sites.
For easy use, you can directly use the following commands to add required API permissions through **Manifest** for Microsoft 365 Commercial tenants.

"requiredResourceAccess": [

        {

            "resourceAppId": "00000003-0000-0ff1-ce00-000000000000",

            "resourceAccess": [

                {

                    "id": "56680e0d-d2a3-4ae1-80d8-3c4f2100e3d0",

                    "type": "Scope"

                },

                {

                    "id": "0cea5a30-f6f8-42b5-87a0-84cc26822e02",

                    "type": "Scope"

                }

            ]

        },

        {

            "resourceAppId": "00000003-0000-0000-c000-000000000000",

            "resourceAccess": [

                {

                    "id": "9ff7295e-131b-4d94-90e1-69fde507ac11",

                    "type": "Scope"

                },

                {

                    "id": "5c28f0bf-8a70-41f1-8ab2-9032436ddb65",

                    "type": "Scope"

                },

                {

                    "id": "a9ff19c2-f369-4a95-9a25-ba9d460efc8e",

                    "type": "Scope"

                },

                {

                    "id": "59dacb05-e88d-4c13-a684-59f1afc8cc98",

                    "type": "Scope"

                },

                {

                    "id": "0c219d04-3abf-47f7-912d-5cca239e90e6",

                    "type": "Scope"

                },

                {

                    "id": "a154be20-db9c-4678-8ab7-66f6cc099a59",

                    "type": "Scope"

                }

            ]

        },

        {

            "resourceAppId": "870c4f2e-85b6-4d43-bdda-6ed9a579b725",

            "resourceAccess": [

                {

                    "id": "34f7024b-1bed-402f-9664-f5316a1e1b4a",

                    "type": "Scope"

                }

            ]

        },

        {

            "resourceAppId": "00000012-0000-0000-c000-000000000000",

            "resourceAccess": [

                {

                    "id": "c9c9a04d-3b66-4ca8-a00c-fca953e2afd3",

                    "type": "Scope"

                }

            ]

        }

    ],

  1. Click Authentication in the left navigation of the app.

  2. Click Add a platform.

  3. Select Web in the Configure platforms panel.

  4. In the Configure Web panel, enter the AvePoint Online Services URL: https://www.avepointonlineservices.com for your commercial environment or https://usgov.avepointonlineservices.com for your U.S. Government environment in the Redirect URIs field.

  5. Select the Access tokens and ID tokens checkboxes in the Implicit grant and hybrid flows field.

    The Configure Web panel.

  6. Click Configure.

  7. Click Save.

  8. Create an app profile for the app using the Custom mode in AvePoint Online Services by referring to .

    *Note: When consenting to the app, if you have granted the admin consent and allowed public client flows for the permissions, you can choose to use the Global Administrator consent or the User consent method. If not, you can only use the Global Administrator consent method.

Fly App Profile Permissions

With the Tenant Owner or Service Administrator role, you can create a Fly app profile in AvePoint Online Services > Management > App management to connect to the Microsoft 365 tenant using the Fly app.

Refer to Fly App Profile Permissions about how to create a Fly app profile and the required permissions of the Fly app profile.

Custom App Profile Permissions

With the Tenant Owner and Service Administrator role, you can also create a custom app profile in AvePoint Online Services > Management > App management to connect to the Microsoft 365 tenant using a custom Azure app.

Refer to the following procedures to create a custom app profile:

  1. Prepare a certificate in Microsoft Entra ID. Refer to for more information.

    You can ignore this step if you have a certificate.

  2. Create a custom Azure app in Microsoft Entra ID. Refer to for more information.

  3. .

  4. in AvePoint Online Services.

*Note: After you re-authorize the app profile, you need to wait about one hour before using the app profile for your migration to refresh the token if there are permissions updated.

Refer to the following tables to add API permissions required by Microsoft Teams Chat Migration to the custom Azure app.

APIPermissionTypePurpose
Microsoft Information Protection Sync ServiceUnifiedPolicy.Tenant.Read (Read all unified policies of the tenant.)ApplicationOnly required if you want to manage the sensitivity labels of files.
Microsoft GraphFiles.Read.All (Read files in all site collections)ApplicationRetrieve and migrate OneDrive files.
Microsoft GraphChat.Create(Create Chat)ApplicationCreate chats.
Microsoft GraphUser.Read.All (Read all users’ full profiles)ApplicationRetrieve information of chat user profiles.
Microsoft GraphChat.ReadWrite.All(Read and write all chat messages)ApplicationRetrieve and migrate chat members/chat messages.
Microsoft GraphTeamsTab.Create(Create tabs in Microsoft Teams)ApplicationCreate tabs in destination chats.
Microsoft GraphTeamsTab.Read.All(Read tabs in Microsoft Teams)ApplicationRetrieve tabs in destination chats.
Microsoft GraphTeamsTab.ReadWriteSelfForChat.All(Allow the Teams app to manage only its own tabs for all chats)ApplicationUpdate tabs in destination chats.
SharePointSites.FullControl.All (Have full control of all site collections)ApplicationRetrieve settings and permissions of OneDrive sites.
SharePointUser.Read.All(Read user profiles)ApplicationRetrieve SharePoint user profile service.
Azure Rights Management Services*Note: For 21Vianet tenants, the API name is Microsoft Rights Management Services.Content.DelegatedWriter (Create protected content on behalf of a user)Application Only required if you want to manage the sensitivity labels of files.
Azure Rights Management Services*Note: For 21Vianet tenants, the API name is Microsoft Rights Management Services.Content.Writer (Create protected content)ApplicationOnly required if you want to manage the sensitivity labels of files.

For easy use, you can directly use the following commands to add required API permissions through Manifest for Microsoft 365 Commercial tenants.

"requiredResourceAccess": [

        {

            "resourceAppId": "00000012-0000-0000-c000-000000000000",

            "resourceAccess": [

                {

                    "id": "006e763d-a822-41fc-8df5-8d3d7fe20022",

                    "type": "Role"

                },

                {

                    "id": "d13f921c-7f21-4c08-bade-db9d048bd0da",

                    "type": "Role"

                }

            ]

        },

        {

            "resourceAppId": "00000003-0000-0ff1-ce00-000000000000",

            "resourceAccess": [

                {

                    "id": "678536fe-1083-478a-9c59-b99265e6b0d3",

                    "type": "Role"

                },

                {

                    "id": "df021288-bdef-4463-88db-98f22de89214",

                    "type": "Role"

                }

            ]

        },

        {

            "resourceAppId": "00000003-0000-0000-c000-000000000000",

            "resourceAccess": [

                {

                    "id": "d9c48af6-9ad9-47ad-82c3-63757137b9af",

                    "type": "Role"

                },

                {

                    "id": "294ce7c9-31ba-490a-ad7d-97a7d075e4ed",

                    "type": "Role"

                },

                {

                    "id": "01d4889c-1287-42c6-ac1f-5d1e02578ef6",

                    "type": "Role"

                },

                {

                    "id": "49981c42-fd7b-4530-be03-e77b21aed25e",

                    "type": "Role"

                },

                {

                    "id": "46890524-499a-4bb2-ad64-1476b4f3e1cf",

                    "type": "Role"

                },

                {

                    "id": "9f62e4a2-a2d6-4350-b28b-d244728c4f86",

                    "type": "Role"

                },

                {

                    "id": "df021288-bdef-4463-88db-98f22de89214",

                    "type": "Role"

                }

            ]

        },

        {

            "resourceAppId": "870c4f2e-85b6-4d43-bdda-6ed9a579b725",

            "resourceAccess": [

                {

                    "id": "8b2071cd-015a-4025-8052-1c0dba2d3f64",

                    "type": "Role"

                }

            ]

        }

    ],