← All Roles

Directory Writers

PrivilegedEnabled
Versionv1
Date Added2026-06-21
Categoryidentity
Assignment Modeallowed
Built-inYes
Template ID9360feb5-f418-4baa-8175-e2a00bac4301

Attack path

Directory Writers has broad rights to update directory objects, including some service-principal application-role assignments. An attacker could use these rights to assign a controlled identity to a privileged role exposed by an enterprise application or identity-governance service. If that application holds powerful Microsoft Graph permissions or controls access in another cloud, the new assignment may provide an indirect route to changing users and groups, reading protected data, or gaining administrative access outside Entra ID.

Description

Can read and write basic directory information. For granting access to applications, not intended for users.

Details

Users in this role can read and update basic information of users, groups, and service principals. Assign this role only to applications that don't support the Consent Framework. It should not be assigned to any users.

Directory Actions42

ActionCondition
microsoft.directory/applications/extensionProperties/updatenull
microsoft.directory/contacts/createnull
microsoft.directory/groups/assignedLabels/updatenull
microsoft.directory/groups/assignLicensenull
microsoft.directory/groups/basic/updatenull
microsoft.directory/groups/classification/updatenull
microsoft.directory/groups/createnull
microsoft.directory/groups/dynamicMembershipRule/updatenull
microsoft.directory/groupSettings/basic/updatenull
microsoft.directory/groupSettings/createnull
microsoft.directory/groupSettings/deletenull
microsoft.directory/groups/groupType/updatenull
microsoft.directory/groups/members/updatenull
microsoft.directory/groups/onPremWriteBack/updatenull
microsoft.directory/groups/owners/updatenull
microsoft.directory/groups/reprocessLicenseAssignmentnull
microsoft.directory/groups/settings/updatenull
microsoft.directory/groups/visibility/updatenull
microsoft.directory/oAuth2PermissionGrants/basic/updatenull
microsoft.directory/oAuth2PermissionGrants/createnull
microsoft.directory/servicePrincipals/appRoleAssignedTo/updatenull
microsoft.directory/servicePrincipals/synchronization.cloudTenantToCloudTenant/credentials/managenull
microsoft.directory/servicePrincipals/synchronization.cloudTenantToCloudTenant/jobs/managenull
microsoft.directory/servicePrincipals/synchronization.cloudTenantToCloudTenant/schema/managenull
microsoft.directory/servicePrincipals/synchronization.cloudTenantToExternalSystem/credentials/managenull
microsoft.directory/servicePrincipals/synchronization.cloudTenantToExternalSystem/jobs/managenull
microsoft.directory/servicePrincipals/synchronization.cloudTenantToExternalSystem/schema/managenull
microsoft.directory/servicePrincipals/synchronizationCredentials/managenull
microsoft.directory/servicePrincipals/synchronizationJobs/managenull
microsoft.directory/servicePrincipals/synchronizationSchema/managenull
microsoft.directory/users/assignLicensenull
microsoft.directory/users/basic/updatenull
microsoft.directory/users/createnull
microsoft.directory/users/disablenull
microsoft.directory/users/enablenull
microsoft.directory/users/invalidateAllRefreshTokensnull
microsoft.directory/users/inviteGuestnull
microsoft.directory/users/manager/updatenull
microsoft.directory/users/photo/updatenull
microsoft.directory/users/reprocessLicenseAssignmentnull
microsoft.directory/users/sponsors/updatenull
microsoft.directory/users/userPrincipalName/updatenull

Graph API Permissions43

Microsoft do not provide a direct mapping between Directory actions and Graph API permissions, despite this being necessary for delegated (interactive) access. MSAdminRoles.com has meticulously compiled a list of the Graph API permissions that each built-in admin role enables you to utilise. Please note this listing is not 100% accurate. Graph API permissions and Entra RBAC operate as two independent authorisation planes and do not map to each other on a one-to-one basis.

  • Application.Read.All
  • Application.ReadUpdate.All
  • Application.ReadWrite.All
  • AppRoleAssignment.ReadWrite.All
  • DelegatedPermissionGrant.Read.All
  • DelegatedPermissionGrant.ReadWrite.All
  • Directory.Read.All
  • Group.Read.All
  • Group.ReadWrite.All
  • GroupMember.Read.All
  • GroupMember.ReadWrite.All
  • GroupSettings.Read.All
  • GroupSettings.ReadWrite.All
  • LicenseAssignment.Read.All
  • LicenseAssignment.ReadWrite.All
  • OrgContact.Read.All
  • Policy.Read.PermissionGrant
  • Policy.ReadWrite.PermissionGrant
  • ServicePrincipalEndpoint.Read.All
  • ServicePrincipalEndpoint.ReadWrite.All
  • SignInIdentifier.Read.All
  • SignInIdentifier.ReadWrite.All
  • User-ConvertToInternal.ReadWrite.All
  • User-LifeCycleInfo.Read.All
  • User-LifeCycleInfo.ReadWrite.All
  • User-Mail.ReadWrite.All
  • User-OnPremisesSyncBehavior.ReadWrite.All
  • User-PasswordProfile.ReadWrite.All
  • User.Create
  • User.DeleteRestore.All
  • User.EnableDisableAccount.All
  • User.Export.All
  • User.Invite.All
  • User.ManageIdentities.All
  • User.Read.All
  • User.ReadBasic.All
  • User.ReadWrite.All
  • User.RevokeSessions.All
  • UserAuthenticationMethod.Read.All
  • UserAuthenticationMethod.ReadWrite.All
  • UserAuthMethod-External.ReadWrite.All
  • UserAuthMethod-HardwareOATH.ReadWrite.All
  • UserAuthMethod-TAP.ReadWrite.All