← cd ~/roles
// roles/entra
Teams Communications AdministratorMicrosoft Entra built-in role
Can manage calling and meetings features within the Microsoft Teams service.
| Role ID | baf37b3a-610e-45da-9e62-d9d1e5e8914b |
|---|---|
| Privileged | No |
| Permissions | 11 |
What it can do
| Permission | What it allows |
|---|---|
microsoft.azure.serviceHealth/allEntities/allTasks | Read and configure Azure Service Health |
microsoft.azure.supportTickets/allEntities/allTasks | Create and manage Azure support tickets |
microsoft.directory/authorizationPolicy/standard/read | Read standard properties of authorization policy |
microsoft.office365.serviceHealth/allEntities/allTasks | Read and configure Service Health in the Microsoft 365 admin center |
microsoft.office365.skypeForBusiness/allEntities/allTasks | Manage all aspects of Skype for Business Online |
microsoft.office365.supportTickets/allEntities/allTasks | Create and manage Microsoft 365 service requests |
microsoft.office365.usageReports/allEntities/allProperties/read | Read Office 365 usage reports |
microsoft.office365.webPortal/allEntities/standard/read | Read basic properties on all resources in the Microsoft 365 admin center |
microsoft.teams/callQuality/allProperties/read | Read all data in the Call Quality Dashboard (CQD) |
microsoft.teams/meetings/allProperties/allTasks | Manage meetings including meeting policies, configurations, and conference bridges |
microsoft.teams/voice/allProperties/allTasks | Manage 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:
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?
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
- Knowledge Manager · 11 permissions
- Attribute Assignment Administrator · 10 permissions
- Exchange Backup Administrator · 12 permissions
- IoT Device Administrator · 10 permissions
- Teams Telephony Administrator · 10 permissions
- Compliance Data Administrator · 9 permissions
- Knowledge Administrator · 13 permissions
- License Administrator · 9 permissions