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

Groups AdministratorMicrosoft Entra built-in role

Members of this role can create/manage groups, create/manage groups settings like naming and expiration policies, and view groups activity and audit reports.

Role IDfdd7a751-b60b-444a-984c-02652fe8fa1c
PrivilegedNo
Permissions26

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/bulkJobs.groups/basic/updateUpdate bulk jobs related to groups
microsoft.directory/bulkJobs.groups/createCreate bulk jobs related to groups
microsoft.directory/bulkJobs.groups/standard/readRead bulk jobs related to groups
microsoft.directory/deletedItems.groups/deletePermanently delete groups, which can no longer be restored
microsoft.directory/deletedItems.groups/restoreRestore soft deleted groups to original state
microsoft.directory/groups/assignedLabels/updateUpdate the assigned labels property on groups of assigned membership type, excluding role-assignable groups
microsoft.directory/groups/assignLicenseAssign product licenses to groups for group-based licensing
microsoft.directory/groups/basic/updateUpdate basic properties on Security groups and Microsoft 365 groups, excluding role-assignable groups
microsoft.directory/groups/classification/updateUpdate the classification property on Security groups and Microsoft 365 groups, excluding role-assignable groups
microsoft.directory/groups/createCreate Security groups and Microsoft 365 groups, excluding role-assignable groups
microsoft.directory/groups/deleteDelete Security groups and Microsoft 365 groups, excluding role-assignable groups
microsoft.directory/groups/dynamicMembershipRule/updateUpdate the dynamic membership rule on Security groups and Microsoft 365 groups, excluding role-assignable groups
microsoft.directory/groups/groupType/updateUpdate properties that would affect the group type of Security groups and Microsoft 365 groups, excluding role-assignable groups
microsoft.directory/groups/hiddenMembers/readRead hidden members of Security groups and Microsoft 365 groups, including role-assignable groups
microsoft.directory/groups/members/updateUpdate members of Security groups and Microsoft 365 groups, excluding role-assignable groups
microsoft.directory/groups/onPremWriteBack/updateUpdate Microsoft Entra groups to be written back to on-premises with Microsoft Entra Connect
microsoft.directory/groups/owners/updateUpdate owners of Security groups and Microsoft 365 groups, excluding role-assignable groups
microsoft.directory/groups/reprocessLicenseAssignmentReprocess license assignments for group-based licensing
microsoft.directory/groups/restoreRestore groups from soft-deleted container
microsoft.directory/groups/settings/updateUpdate settings of groups
microsoft.directory/groups/visibility/updateUpdate the visibility property of Security groups and Microsoft 365 groups, excluding role-assignable groups
microsoft.office365.serviceHealth/allEntities/allTasksRead and configure Service Health in the Microsoft 365 admin center
microsoft.office365.supportTickets/allEntities/allTasksCreate and manage Microsoft 365 service requests
microsoft.office365.webPortal/allEntities/standard/readRead basic properties on all resources in the Microsoft 365 admin center

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 Groups Administrator for <reason>"
    RoleDefinitionId = "fdd7a751-b60b-444a-984c-02652fe8fa1c"
    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 'fdd7a751-b60b-444a-984c-02652fe8fa1c'" -ExpandProperty Principal |
    ForEach-Object { $_.Principal.AdditionalProperties.displayName }

Related roles

Find the smallest role for a task →