Skip to content

Azure Permissions

Use this guide to create the Microsoft Entra application used by the collector to call Microsoft Graph APIs.

At the end you must have:

  • tenant_id
  • client_id
  • One authentication method:
    • client_secret, or
    • client_certificate_path (PEM with private and public key)
  • Admin-consented Graph application permissions
flowchart TD
    A[Azure Portal] --> B[Microsoft Entra ID]
    B --> C[New App Registration]
    C --> D[Copy tenant_id and client_id]
    D --> E{Auth method}
    E -->|Client secret| F[Create client secret]
    E -->|Certificate| G[Upload public cert and store PEM on host]
    F --> H[Add Graph API permissions]
    G --> H
    H --> I[Grant admin consent]
    I --> J[Validate in collector config]
  1. Open Azure Portal and go to Microsoft Entra ID.
  2. Copy Tenant ID from Overview.
  3. Go to App registrations and click New registration.
  4. Select Accounts in this organizational directory only.
  5. Create the application and copy Application (client) ID.
  1. Open Certificates and secrets.
  2. In Client secrets, click New client secret.
  3. Copy the secret Value immediately after creation.
  4. Put this value in microsoft_authentication.graph.client_secret.

In API permissions:

  1. Click Add a permission.
  2. Select Microsoft Graph.
  3. Select Application permissions (not Delegated).
  4. Add:
    • CallRecords.Read.All
    • Reports.Read.All
    • ServiceHealth.Read.All
  5. Click Grant admin consent and confirm.

Use one of these authentication patterns.

microsoft_authentication:
graph:
tenant_id: "<tenant-id>"
client_id: "<client-id>"
client_secret: "<secret>"

Run:

Terminal window
ms-teams-agent validate --config ./config.yaml
ms-teams-agent test-connection --config ./config.yaml

For all configuration fields, see Configuration Reference.

Complete permission and authentication reference
PermissionTypeRequiredPurpose
CallRecords.Read.AllApplicationYesRetrieve Teams call records, stream details, PSTN, and Direct Routing data
Reports.Read.AllApplicationYesAccess Teams activity reports (user activity, usage)
ServiceHealth.Read.AllApplicationYesAccess Microsoft 365 service health incidents and advisories
PermissionTypeRequired ForPurpose
VAAC-specific permissionsApplicationAuto Attendant and Call QueueVoice application analytics
AttributeValue
Permission typeApplication (not Delegated)
Admin consentRequired
Token flowClient credentials
MethodDescription
Client secretSecret generated in Azure App Registration
Certificate (PEM)RSA certificate with private and public key