Teams Connector Setup

Provide necessary API permissions to index Teams channels.

Index Teams channels, chat, messages, and meeting transcripts by granting the necessary API Permissions in your App Registration.

Grant API Permissions for Microsoft Teams

After following the steps in Entra ID - Create New App Registration to create a new App Registration, you will need to add additional API permissions to index Teams resources.

In addition to the Entra ID permissions listed in the Microsoft Connector for the Microsoft Graph, you will also need:

  • Under Microsoft Graph API:
    • Channel.ReadBasic.All
    • ChannelMember.Read.All
    • ChannelMessage.Read.All
    • Chat.Read.All
    • ChatMember.Read.All
    • ChatMessage.Read.All
    • Team.ReadBasic.All
    • TeamMember.Read.All
  • To access Teams meeting transcripts:
    • OnlineMeetings.Read.All
    • OnlineMeetingTranscript.Read.All
    • Calendars.Read
    • Domain.Read.All
  • Once added, select Grant admin consent for ... where ... is your tenant name. This link is beside the Add a permission link.

Application Access Policy for Teams Meeting Transcripts

In addition to Entra ID permissions above, you need to setup an application access policy for Atolio to access transcripts.

  • Open PowerShell. Install the Microsoft Teams PS module:
    • Install-Module -Name MicrosoftTeams -Force -AllowClobber
  • Connect to Teams module w/ an admin account on your shell. This will prompt a login page on your browser:
    • Import-Module MicrosoftTeams
    • Connect-MicrosoftTeams
  • Create a new policy. Assuming the policy name is “Atolio-Transcript-Access-Policy”, and the previously registered application ID (client ID) is “some-app-id”, the shell command will be as follows:
    • New-CsApplicationAccessPolicy -Identity Atolio-Transcript-Access-Policy -AppIds "some-app-id" -Description "Access policy for teams transcripts"
  • Associate users with the policy. You have two options:
    • Option 1 - Grant tenant-wide access (recommended). This will allow Atolio to index transcripts owned by every user who does not have an application access policy assigned:
      • Grant-CsApplicationAccessPolicy -PolicyName Atolio-Transcript-Access-Policy -Global
    • Option 2 - Grant user-specific access. This will allow Atolio to index transcripts owned by explicitly declared users only:
      • Grant-CsApplicationAccessPolicy -PolicyName Atolio-Transcript-Access-Policy -Identity "some-user-id"

More details about the policy setup can be found in the official documentation:

Determine Indexing Scope

If you have many teams, it may be worth using the includes feature explained in the Common Fields: Resources section to index only the relevant teams.

Limitations

  • Only first 1000 replies to a channel post will be indexed, due to limitations with the Microsoft API.