azureblog.co.uk
← cd ~/roles
// roles/entra

Teams Communications AdministratorMicrosoft Entra built-in role

Can manage calling and meetings features within the Microsoft Teams service.

Role IDbaf37b3a-610e-45da-9e62-d9d1e5e8914b
PrivilegedNo
Permissions11

What it can do

PermissionWhat it allows
microsoft.azure.serviceHealth/allEntities/allTasksRead and configure Azure Service Health
microsoft.azure.supportTickets/allEntities/allTasksCreate and manage Azure support tickets
microsoft.directory/authorizationPolicy/standard/readRead standard properties of authorization policy
microsoft.office365.serviceHealth/allEntities/allTasksRead and configure Service Health in the Microsoft 365 admin center
microsoft.office365.skypeForBusiness/allEntities/allTasksManage all aspects of Skype for Business Online
microsoft.office365.supportTickets/allEntities/allTasksCreate and manage Microsoft 365 service requests
microsoft.office365.usageReports/allEntities/allProperties/readRead Office 365 usage reports
microsoft.office365.webPortal/allEntities/standard/readRead basic properties on all resources in the Microsoft 365 admin center
microsoft.teams/callQuality/allProperties/readRead all data in the Call Quality Dashboard (CQD)
microsoft.teams/meetings/allProperties/allTasksManage meetings including meeting policies, configurations, and conference bridges
microsoft.teams/voice/allProperties/allTasksManage voice including calling policies and phone number inventory and assignment

Assign it

The role ID is the same in every tenant, so these work as they are. Make it eligible through PIM:

powershell13 lines
Connect-MgGraph -Scopes "RoleEligibilitySchedule.ReadWrite.Directory"
$user = Get-MgUser -UserId "jane.doe@contoso.com"
New-MgRoleManagementDirectoryRoleEligibilityScheduleRequest -BodyParameter @{
    Action           = "AdminAssign"
    Justification    = "Needs Teams Communications Administrator for <reason>"
    RoleDefinitionId = "baf37b3a-610e-45da-9e62-d9d1e5e8914b"
    DirectoryScopeId = "/"
    PrincipalId      = $user.Id
    ScheduleInfo     = @{
        StartDateTime = (Get-Date).ToUniversalTime().ToString("o")
        Expiration    = @{ Type = "afterDuration"; Duration = "P180D" }
    }
}

Who already has it?

powershell3 lines
Connect-MgGraph -Scopes "RoleManagement.Read.Directory"
Get-MgRoleManagementDirectoryRoleAssignment -Filter "roleDefinitionId eq 'baf37b3a-610e-45da-9e62-d9d1e5e8914b'" -ExpandProperty Principal |
    ForEach-Object { $_.Principal.AdditionalProperties.displayName }

Related roles

Find the smallest role for a task →