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

IoT Device AdministratorMicrosoft Entra built-in role

Provision new IoT devices, manage their lifecycle, configure certificates, and manage device templates.

Role ID2ea5ce4c-b2d8-4668-bd81-3680bd2d227a
PrivilegedNo
Permissions10

What it can do

PermissionWhat it allows
microsoft.directory/certificateBasedDeviceAuthConfigurations/createCreate Certificate Authorities configurations for IoT Device trust and authentication
microsoft.directory/certificateBasedDeviceAuthConfigurations/credentials/updateUpdate crendential related properties on certificate authority configurations for Internet of Things (IoT) device trust and authentication
microsoft.directory/certificateBasedDeviceAuthConfigurations/deleteDelete certificate authority configurations for Internet of Things (IoT) device
microsoft.directory/certificateBasedDeviceAuthConfigurations/standard/readRead standard properties on certificate authority configurations for Internet of Things (IoT) device trust and authentication
microsoft.directory/deviceTemplates/createCreate Internet of Things (IoT) device templates
microsoft.directory/deviceTemplates/createDeviceFromTemplateCreate IoT Device from Internet of Things (IoT) device templates
microsoft.directory/deviceTemplates/deleteDelete Internet of Things (IoT) device templates
microsoft.directory/deviceTemplates/deviceInstances/readRead device instances from Internet of Things (IoT) device links
microsoft.directory/deviceTemplates/owners/readRead owners on Internet of Things (IoT) device templates
microsoft.directory/deviceTemplates/owners/updateUpdate owners on Internet of Things (IoT) device templates

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 IoT Device Administrator for <reason>"
    RoleDefinitionId = "2ea5ce4c-b2d8-4668-bd81-3680bd2d227a"
    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 '2ea5ce4c-b2d8-4668-bd81-3680bd2d227a'" -ExpandProperty Principal |
    ForEach-Object { $_.Principal.AdditionalProperties.displayName }

Related roles

Find the smallest role for a task →