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

Attribute Provisioning AdministratorMicrosoft Entra built-in role

Read and edit the provisioning configuration of all active custom security attributes for an application.

Role IDecb2c6bf-0ab6-418e-bd87-7986f8d63bbe
PrivilegedYes. Microsoft marks this role as privileged.
Permissions2

Before you assign it

Microsoft labels this a privileged role, so make it eligible through PIM rather than permanent, require phishing-resistant MFA to activate it, and review who has it regularly.

What it can do

PermissionWhat it allows
microsoft.directory/servicePrincipals/synchronization.customSecurityAttributes/schema/readRead all custom security attributes in the synchronization schema
microsoft.directory/servicePrincipals/synchronization.customSecurityAttributes/schema/updateUpdate custom security attribute mappings in the synchronization schema

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 Attribute Provisioning Administrator for <reason>"
    RoleDefinitionId = "ecb2c6bf-0ab6-418e-bd87-7986f8d63bbe"
    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 'ecb2c6bf-0ab6-418e-bd87-7986f8d63bbe'" -ExpandProperty Principal |
    ForEach-Object { $_.Principal.AdditionalProperties.displayName }

Related roles

Find the smallest role for a task →