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

Directory ReadersMicrosoft Entra built-in role

Can read basic directory information. Commonly used to grant directory read access to applications and guests.

Role ID88d8e3e3-8f55-4a1e-953a-9b9898b8876b
PrivilegedNo
Permissions55

What it can do

PermissionWhat it allows
microsoft.directory/administrativeUnits/members/readRead members of administrative units
microsoft.directory/administrativeUnits/standard/readRead basic properties on administrative units
microsoft.directory/applicationPolicies/standard/readRead standard properties of application policies
microsoft.directory/applications/owners/readRead owners of applications
microsoft.directory/applications/policies/readRead policies of applications
microsoft.directory/applications/standard/readRead standard properties of applications
microsoft.directory/contacts/memberOf/readRead the group membership for all contacts in Microsoft Entra ID
microsoft.directory/contacts/standard/readRead basic properties on contacts in Microsoft Entra ID
microsoft.directory/contracts/standard/readRead basic properties on partner contracts
microsoft.directory/devices/memberOf/readRead device memberships
microsoft.directory/devices/registeredOwners/readRead registered owners of devices
microsoft.directory/devices/registeredUsers/readRead registered users of devices
microsoft.directory/devices/standard/readRead basic properties on devices
microsoft.directory/directoryRoles/eligibleMembers/readRead the eligible members of Microsoft Entra roles
microsoft.directory/directoryRoles/members/readRead all members of Microsoft Entra roles
microsoft.directory/directoryRoles/standard/readRead basic properties of Microsoft Entra roles
microsoft.directory/domains/standard/readRead basic properties on domains
microsoft.directory/groups/appRoleAssignments/readRead application role assignments of groups
microsoft.directory/groups/memberOf/readRead the memberOf property on Security groups and Microsoft 365 groups, including role-assignable groups
microsoft.directory/groups/members/readRead members of Security groups and Microsoft 365 groups, including role-assignable groups
microsoft.directory/groups/owners/readRead owners of Security groups and Microsoft 365 groups, including role-assignable groups
microsoft.directory/groups/settings/readRead settings of groups
microsoft.directory/groups/standard/readRead standard properties of Security groups and Microsoft 365 groups, including role-assignable groups
microsoft.directory/groupSettings/standard/readRead basic properties on group settings
microsoft.directory/groupSettingTemplates/standard/readRead basic properties on group setting templates
microsoft.directory/oAuth2PermissionGrants/standard/readRead basic properties on OAuth 2.0 permission grants
microsoft.directory/organization/standard/readRead basic properties on an organization
microsoft.directory/organization/trustedCAsForPasswordlessAuth/readRead trusted certificate authorities for passwordless authentication
microsoft.directory/roleAssignments/standard/readRead basic properties on role assignments
microsoft.directory/roleDefinitions/standard/readRead basic properties on role definitions
microsoft.directory/servicePrincipals/appRoleAssignedTo/readRead service principal role assignments
microsoft.directory/servicePrincipals/appRoleAssignments/readRead role assignments assigned to service principals
microsoft.directory/servicePrincipals/memberOf/readRead the group memberships on service principals
microsoft.directory/servicePrincipals/oAuth2PermissionGrants/readRead delegated permission grants on service principals
microsoft.directory/servicePrincipals/ownedObjects/readRead owned objects of service principals
microsoft.directory/servicePrincipals/owners/readRead owners of service principals
microsoft.directory/servicePrincipals/policies/readRead policies of service principals
microsoft.directory/servicePrincipals/standard/readRead basic properties of service principals
microsoft.directory/subscribedSkus/standard/readRead basic properties on subscriptions
microsoft.directory/users/appRoleAssignments/readRead application role assignments for users
microsoft.directory/users/deviceForResourceAccount/readRead deviceForResourceAccount of users
microsoft.directory/users/directReports/readRead the direct reports for users
microsoft.directory/users/invitedBy/readRead the user that invited an external user to a tenant
microsoft.directory/users/licenseDetails/readRead license details of users
microsoft.directory/users/manager/readRead manager of users
microsoft.directory/users/memberOf/readRead the group memberships of users
microsoft.directory/users/oAuth2PermissionGrants/readRead delegated permission grants on users
microsoft.directory/users/ownedDevices/readRead owned devices of users
microsoft.directory/users/ownedObjects/readRead owned objects of users
microsoft.directory/users/photo/readRead photo of users
microsoft.directory/users/registeredDevices/readRead registered devices of users
microsoft.directory/users/scopedRoleMemberOf/readRead user's membership of a Microsoft Entra role, that is scoped to an administrative unit
microsoft.directory/users/sponsorOf/readRead all the agents or applications the user is sponsor of
microsoft.directory/users/sponsors/readRead sponsors of users
microsoft.directory/users/standard/readRead basic properties on users

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 Directory Readers for <reason>"
    RoleDefinitionId = "88d8e3e3-8f55-4a1e-953a-9b9898b8876b"
    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 '88d8e3e3-8f55-4a1e-953a-9b9898b8876b'" -ExpandProperty Principal |
    ForEach-Object { $_.Principal.AdditionalProperties.displayName }

Related roles

Find the smallest role for a task →