How to list role definitions in Microsoft Entra ID

Role definitions in Microsoft Entra ID specify exactly what permissions each administrative role grants. For IT admins, understanding which built-in and custom roles are available, what permissions they include, and how to retrieve them is crucial for secure and efficient governance. But there are easy and reliable methods that allow you to list quickly and review all current role definitions in your tenant.

  • M365 admin center
  • PowerShell
  • ADManager Plus
 

How to list role definitions in Microsoft Entra ID using the Microsoft Entra admin center

  1. Sign in to the Microsoft Entra admin center.
  2. Navigate to Entra ID > Roles & admins.
  3. Choose All roles.
  4. Click the required role name.
  5. Under Manage, click Description.
Retrieving role definition in Microsoft Entra ID using the Microsoft Entra admin center.

How to get directory role definitions using Windows PowerShell

  • Connect to Microsoft Microsoft Graph PowerShell.
    Connect-MgGraph -Scopes "Directory.Read.All RoleManagement.Read.Directory"
  • Get all directory role definitions.
    Get-MgDirectoryRole
  • You can also filter by a specific role using its display name or ID.
    Get-MgDirectoryRole -Filter "displayName eq 'Global Administrator'"

Example to retrieve the role definition for the Global Administrator role

Example query:

Connect-MgGraph -Scopes "Directory.Read.All RoleManagement.Read.Directory"
Get-MgDirectoryRole -Filter "displayName eq 'Global Administrator'"

Example output:

Id: 62e90394-69f5-4237-9190-012177145e10
DisplayName: Global Administrator
Description: Can manage all aspects of Microsoft Entra ID and Microsoft services that use Microsoft Entra ID identities.
IsEnabled: True
RoleTemplateId: 62e90394-69f5-4237-9190-012177145e10

How to get role definition in Microsoft Entra ID using Microsoft Graph PowerShell

The syntax is as follows:

Get-MgRoleManagementDirectoryRoleDefinition
[-ExpandProperty <string[]>]
[-Property <string[]>]
[-Filter <string>]
[-Search <string>]
[-Skip ]
[-Sort <string[]>]
[-Top <int>]
[-ResponseHeadersVariable <string>]
[-Break]
[-Headers <IDictionary>]
[-HttpPipelineAppend <SendAsyncStep[]>]
[-HttpPipelinePrepend <SendAsyncStep[]>]
[-Proxy <uri>]
[-ProxyCredential <pscredential>]
[-ProxyUseDefaultCredentials]
[-PageSize <int>]
[-All]
[-CountVariable <string>]
[<CommonParameters>]

Example to retrieve the role definition for the Security Administrator role

Example query:

Connect-MgGraph -Scopes "Directory.Read.All RoleManagement.Read.Directory"
Get-MgDirectoryRole -Filter "displayName eq 'Security Administrator'"

Example output:

Id: 194ae4cb-b126-40b2-bd5b-6091b380977d
DisplayName: Security Administrator
Description: Can manage security-related features, including conditional access and security reports.
IsEnabled: True
RoleTemplateId: 194ae4cb-b126-40b2-bd5b-6091b380977d

This role, Security Administrator, is identified by the unique Id 194ae4cb-b126-40b2-bd5b-6091b380977d. It grants permissions to manage security-related features, including conditional access and security reports. The role is currently active (IsEnabled: True) and is based on the template 194ae4cb-b126-40b2-bd5b-6091b380977d, giving admins a clear view of what it allows before assigning it.

Manage Microsoft 365 with ease using ADManager Plus

Simplify Microsoft 365 management and reporting with ADManager Plus. Manage users, groups, and access from a single interface, automate routine tasks, and gain actionable insights with over 200 prebuilt reports, all while keeping your environment secure and compliant.

Centralized management

ADManager Plus gives you a single interface to manage users, groups, and access efficiently, saving time and reducing complexity.

Delegation and workflows

Allow safe role-based delegation, enabling admins to assign and manage roles through controlled workflows. This reduces risk while empowering teams to handle role assignments effectively.

Automation

Streamline routine tasks such as user provisioning, group modifications, and license administration through automation. Stay compliant and audit-ready with scheduled reports, saving manual effort.

Bulk group updates

Efficiently update multiple groups at once by modifying memberships, changing configurations, or reorganizing groups to adapt quickly to evolving business needs.

Insightful reporting

Access over 200 ready-made reports on group memberships, license allocation, and user activities. Monitor access trends, facilitate audits, and detect any unusual behavior effortlessly.

Access reviews

Conduct regular access reviews to remove excess privileges, deactivate outdated memberships, and enforce least-privilege principles across your environment.

Important tips

  • Understand role permissions and scope

    Role definitions describe the exact permissions granted by each administrative role in your tenant. When retrieving role definitions, focus on both permissions and the scope at which roles apply to ensure you understand their impact fully.

  • Leverage built-in roles first and create custom roles sparingly

    Start your review with Microsoft's built-in roles, which cover most common administrative needs. Create custom roles only when necessary to address special scenarios, keeping role complexity manageable and minimizing risks of over-provisioning.

  • Automate role definition retrieval and reporting

    Use automation tools and PowerShell cmdlets to regularly extract role definitions. Automated reports enable ongoing visibility into permission structures and help maintain compliance.

  • Integrate role data with access reviews and governance practices

    Combine role definition information with access reviews and Privileged Identity Management (PIM) workflows to enforce least privilege and just-in-time access, reducing privilege sprawl and enhancing overall security posture.

Experience seamless Microsoft 365 management with ADManager Plus

FAQ

Yes, each role definition contains a set of permissions, such as read, write, or delete operations on specific resources.

To view members, you'll first need to identify the RoleDefinitionId of your custom role.

Connect-MgGraph -Scopes "RoleManagement.Read.Directory"
Get-MgRoleManagementDirectoryRoleDefinition | Where-Object {$_.DisplayName -eq "Custom Role Name"}

This will return details such as the role's Id (RoleDefinitionId). With that Id, you can then query role assignments to see which users, groups, or service principals are members.

Get-MgRoleManagementDirectoryRoleAssignment -Filter "roleDefinitionId eq '<RoleDefinitionId>'"

This way, Get-MgRoleManagementDirectoryRoleDefinition helps you confirm the role exists and retrieve its definition, while Get-MgRoleManagementDirectoryRoleAssignment gives you the actual member assignments.

To export and report all admin role memberships, retrieve all directory roles.

$roles = Get-MgRoleManagementDirectoryRoleDefinition

For each role, get its members:

foreach ($role in $roles) { $members = Get-MgRoleManagementDirectoryRoleMember -RoleDefinitionId $role.Id # Output or export members, e.g. to CSV }
The one-stop solution to Active Directory Management and Reporting
Email Download Link Email the ADManager Plus download link