本文介绍如何使用 Microsoft Entra 管理中心、Microsoft Graph PowerShell 或 Microsoft Graph API 列出在 Microsoft Entra ID 中分配的角色。
提示
本文中的步骤可能因开始使用的门户而略有不同。
列出我的角色分配
你也可轻松列出自己的权限。 在“角色和管理员”页上选择“你的角色”,可查看当前分配给你的角色。
Microsoft Entra 管理中心中“角色和管理员”页的
列出用户的角色分配
按照以下步骤使用 Microsoft Entra 管理中心列出用户的 Microsoft Entra 角色。 你的体验将有所不同,具体取决于是否已启用 Microsoft Entra Privileged Identity Management (PIM)。
登录 Microsoft Entra 管理中心。
浏览到“标识”>“用户”>“所有用户”。
选择“用户名”>“分配的角色”。
可以在不同的范围内查看分配给用户的角色列表。 此外,还可以查看该角色是直接分配的还是通过组分配的。
如果你有 Microsoft Entra ID P2 许可证,将看到 PIM 体验,其中包含合格、活动和过期的角色分配详细信息。
列出组的角色分配
登录 Microsoft Entra 管理中心。
浏览到“标识”>“组”>“所有组”。
选择可分配角色的组。
若要确定组是否可分配角色,可以查看组 属性。
选择“分配的角色”。
现在可以查看分配给此组的所有 Microsoft Entra 角色。 如果未看到 可分配的角色 选项,则该组不是一个可分配角色的组。
下载角色分配
要下载所有角色(包括内置角色和自定义角色)的所有活动角色分配,请执行以下步骤。
批量操作最多可运行 1 小时,且存在针对大型租户的限制。 有关详细信息,请参阅批量操作和在 Microsoft Entra ID 中批量创建用户。
在“角色和管理员”页上,选择“所有角色”。
选择“下载分配”。
指定文件名并选择“开始下载”。
将会下载一个 CSV 文件,其中列出了所有角色的所有范围内的分配。
若要下载特定角色的角色分配,请执行以下步骤。
在“角色和管理员”页上,选择一个角色。
选择“下载分配”。
如果有 Microsoft Entra ID P2 许可证,可以看到 PIM 体验。 选择“导出”以下载角色分配。
将会下载一个 CSV 文件,其中列出了该角色的所有范围内的分配。
列出租户范围的角色分配
此过程介绍如何列出租户范围的角色分配。
登录 Microsoft Entra 管理中心。
浏览到“标识”>“角色和管理员”>“角色和管理员”。
选择角色名称以打开该角色。 不要勾选该角色。
选择“分配”以列出角色分配。
在“范围”列中,查看“目录”范围的角色分配。
列出应用注册范围的角色分配
此部分介绍如何列出单一应用程序范围的角色分配。
登录 Microsoft Entra 管理中心。
浏览到“标识”>“应用程序”>“应用注册”。
为要查看的一系列角色分配选择应用注册。
可能需要选择“所有应用程序”才能查看 Microsoft Entra 组织中应用注册的完整列表。
选择“角色和管理员”。
选择角色名称以打开该角色。
选择“分配”以列出角色分配。
如果在应用注册中打开分配页,会显示范围设为此 Microsoft Entra 资源的角色分配。
在“范围”列中,查看“此资源”范围的角色分配。
列出管理单元范围的角色分配
可以在Microsoft Entra 管理中心的 管理单元 部分中查看使用管理单元范围创建的所有角色分配。
登录 Microsoft Entra 管理中心。
浏览到“标识”>“角色和管理员”>“管理单元”。
选择一个管理单元以查看角色分配列表。
选择“角色和管理员”。
选择角色名称以打开该角色。
选择“分配”以列出角色分配。
在“范围”列中,查看“此资源”范围的角色分配。
此部分介绍如何查看租户范围角色的分配。 本部分使用 Microsoft Graph PowerShell 模块。
设置
使用 Install-Module安装 Microsoft Graph 模块。
Install-Module -name Microsoft.Graph
使用 Connect-MgGraph 命令登录并使用 Microsoft Graph PowerShell cmdlet。
Connect-MgGraph
列出租户范围的角色分配
使用 Get-MgRoleManagementDirectoryRoleDefinition 和 Get-MgRoleManagementDirectoryRoleAssignment 命令列出角色分配。
以下示例演示如何列出组管理员角色的角色分配。
# Get a specific directory role by ID
$role = Get-MgRoleManagementDirectoryRoleDefinition -UnifiedRoleDefinitionId fdd7a751-b60b-444a-984c-02652fe8fa1c
# Get role assignments for a given role definition
Get-MgRoleManagementDirectoryRoleAssignment -Filter "roleDefinitionId eq '$($role.Id)'"
Id PrincipalId RoleDefinitionId DirectoryScopeId AppScop
eId
-- ----------- ---------------- ---------------- -------
lAPpYvVpN0KRkAEhdxReEH2Fs3EjKm1BvSKkcYVN2to-1 aaaaaaaa-bbbb-cccc-1111-222222222222 62e90394-69f5-4237-9190-012177145e10 /
lAPpYvVpN0KRkAEhdxReEMdXLf2tIs1ClhpzQPsutrQ-1 bbbbbbbb-cccc-dddd-2222-333333333333 62e90394-69f5-4237-9190-012177145e10 /
下面的示例演示如何列出所有角色(包括内置角色和自定义角色)的所有活动角色分配。
$roles = Get-MgRoleManagementDirectoryRoleDefinition
foreach ($role in $roles)
{
Get-MgRoleManagementDirectoryRoleAssignment -Filter "roleDefinitionId eq '$($role.Id)'"
}
Id PrincipalId RoleDefinitionId DirectoryScopeId AppScop
eId
-- ----------- ---------------- ---------------- -------
lAPpYvVpN0KRkAEhdxReEH2Fs3EjKm1BvSKkcYVN2to-1 aaaaaaaa-bbbb-cccc-1111-222222222222 62e90394-69f5-4237-9190-012177145e10 /
lAPpYvVpN0KRkAEhdxReEMdXLf2tIs1ClhpzQPsutrQ-1 bbbbbbbb-cccc-dddd-2222-333333333333 62e90394-69f5-4237-9190-012177145e10 /
4-PYiFWPHkqVOpuYmLiHa3ibEcXLJYtFq5x3Kkj2TkA-1 cccccccc-dddd-eeee-3333-444444444444 88d8e3e3-8f55-4a1e-953a-9b9898b8876b /
4-PYiFWPHkqVOpuYmLiHa2hXf3b8iY5KsVFjHNXFN4c-1 dddddddd-eeee-ffff-4444-555555555555 88d8e3e3-8f55-4a1e-953a-9b9898b8876b /
BSub0kaAukSHWB4mGC_PModww03rMgNOkpK77ePhDnI-1 eeeeeeee-ffff-aaaa-5555-666666666666 d29b2b05-8046-44ba-8758-1e26182fcf32 /
BSub0kaAukSHWB4mGC_PMgzOWSgXj8FHusA4iaaTyaI-1 ffffffff-aaaa-bbbb-6666-777777777777 d29b2b05-8046-44ba-8758-1e26182fcf32 /
列出主体的角色分配
使用 Get-MgRoleManagementDirectoryRoleAssignment 命令列出主体的角色分配。
# Get role assignments for a given principal
Get-MgRoleManagementDirectoryRoleAssignment -Filter "PrincipalId eq 'aaaaaaaa-bbbb-cccc-1111-222222222222'"
列出主体的直接和可传递角色分配
使用 List transitiveRoleAssignments API 直接以可传递方式向用户分配角色。
$response = $null
$uri = "https://graph.microsoft.com/beta/roleManagement/directory/transitiveRoleAssignments?`$count=true&`$filter=principalId eq 'aaaaaaaa-bbbb-cccc-1111-222222222222'"
$method = 'GET'
$headers = @{'ConsistencyLevel' = 'eventual'}
$response = (Invoke-MgGraphRequest -Uri $uri -Headers $headers -Method $method -Body $null).value
列出组中的角色分配
使用 Get-MgGroup 命令获取组。
Get-MgGroup -Filter "DisplayName eq 'Contoso_Helpdesk_Administrators'"
使用 Get-MgRoleManagementDirectoryRoleAssignment 命令列出该组的角色分配。
Get-MgRoleManagementDirectoryRoleAssignment -Filter "PrincipalId eq '<object id of group>'"
列出管理单元范围的角色分配
使用 Get-MgDirectoryAdministrativeUnitScopedRoleMember 命令列出管理单元范围的角色分配。
$adminUnit = Get-MgDirectoryAdministrativeUnit -Filter "displayname eq 'Example_admin_unit_name'"
Get-MgDirectoryAdministrativeUnitScopedRoleMember -AdministrativeUnitId $adminUnit.Id | FL *
本部分介绍如何列出租户范围的角色分配。 使用 List unifiedRoleAssignments API 获取角色分配。
列出主体的角色分配
GET https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments?$filter=principalId+eq+'<object-id-of-principal>'
响应
HTTP/1.1 200 OK
{
"value":[
{
"id": "A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0uIiSDKQoTVJrLE9etXyrY0-1"
"principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
"roleDefinitionId": "10dae51f-b6af-4016-8d66-8c2a99b929b3",
"directoryScopeId": "/"
} ,
{
"id": "C2dE3fH4iJ5kL6mN7oP8qR9sT0uV1wIiSDKQoTVJrLE9etXyrY0-1"
"principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
"roleDefinitionId": "fe930be7-5e62-47db-91af-98c3a49a38b1",
"directoryScopeId": "/"
}
]
}
列出主体的直接和可传递角色分配
按照以下步骤,使用 Graph 浏览器中的 Microsoft Graph API 列出分配给用户的 Microsoft Entra 角色。
登录到 Graph 浏览器。
使用 List transitiveRoleAssignments API 直接以可传递方式向用户分配角色。 将以下查询添加到 URL。
GET https://graph.microsoft.com/beta/rolemanagement/directory/transitiveRoleAssignments?$count=true&$filter=principalId eq 'aaaaaaaa-bbbb-cccc-1111-222222222222'
导航到“请求头”选项卡。添加 ConsistencyLevel
作为键,添加 Eventual
作为其值。
选择 运行查询。
列出组的角色分配
使用 Get Group API 获取组。
GET https://graph.microsoft.com/v1.0/groups?$filter=displayName+eq+'Contoso_Helpdesk_Administrator'
使用 List unifiedRoleAssignments API 获取角色分配。
GET https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments?$filter=principalId eq
列出某一角色定义的角色分配
以下示例演示如何列出特定角色定义的角色分配。
GET https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments?$filter=roleDefinitionId eq '<template-id-of-role-definition>'
响应
HTTP/1.1 200 OK
{
"id": "C2dE3fH4iJ5kL6mN7oP8qR9sT0uV1wIiSDKQoTVJrLE9etXyrY0-1",
"principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
"roleDefinitionId": "00000000-0000-0000-0000-000000000000",
"directoryScopeId": "/"
}
按 ID 列出角色分配
GET https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments/lAPpYvVpN0KRkAEhdxReEJC2sEqbR_9Hr48lds9SGHI-1
响应
HTTP/1.1 200 OK
{
"id": "A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0uIiSDKQoTVJrLE9etXyrY0-1",
"principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
"roleDefinitionId": "10dae51f-b6af-4016-8d66-8c2a99b929b3",
"directoryScopeId": "/"
}
列出应用注册范围的角色分配
GET https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments?$filter=directoryScopeId+eq+'/d23998b1-8853-4c87-b95f-be97d6c6b610'
响应
HTTP/1.1 200 OK
{
"value":[
{
"id": "A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0uIiSDKQoTVJrLE9etXyrY0-1"
"principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
"roleDefinitionId": "10dae51f-b6af-4016-8d66-8c2a99b929b3",
"directoryScopeId": "/d23998b1-8853-4c87-b95f-be97d6c6b610"
} ,
{
"id": "C2dE3fH4iJ5kL6mN7oP8qR9sT0uV1wIiSDKQoTVJrLE9etXyrY0-1"
"principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
"roleDefinitionId": "00000000-0000-0000-0000-000000000000",
"directoryScopeId": "/d23998b1-8853-4c87-b95f-be97d6c6b610"
}
]
}
列出管理单元范围的角色分配
使用列出 scopedRoleMembers API 列出具有管理单元范围的角色分配。
请求
GET /directory/administrativeUnits/{admin-unit-id}/scopedRoleMembers
Body
{}