在不同的范围分配 Microsoft Entra 角色

在 Microsoft Entra ID 中,通常会分配 Microsoft Entra 角色,以便它们应用于整个租户。 但是,还可以为不同的资源(例如管理单元或应用程序注册)分配 Microsoft Entra 角色。 例如,可以分配支持管理员角色,使之仅应用于特定的管理单元,而不是整个租户。 角色分配适用的资源也称为范围。 本文介绍如何在租户范围、管理单元范围和应用程序注册范围分配 Microsoft Entra 角色。 有关范围的详细信息,请参阅 Microsoft Entra ID 中基于角色的访问控制 (RBAC) 概述

先决条件

  • 特权角色管理员或全局管理员。
  • 使用 PowerShell 时安装的 Microsoft Graph PowerShell SDK。

有关详细信息,请参阅使用 PowerShell 的先决条件

分配以租户为作用域的角色

本部分介绍如何在租户作用域分配角色。

Microsoft Entra 管理中心

提示

本文中的步骤可能因开始使用的门户而略有不同。

  1. 至少以特权角色管理员身份登录到 Microsoft Entra 管理中心

  2. 浏览到“标识”>“角色和管理员”>“角色和管理员”

    Microsoft Entra ID 中的“角色和管理员”页面。

  3. 选择一个角色,查看其分配情况。 为帮助查找所需角色,请使用“添加筛选器”来筛选角色。

  4. 选择“添加分配”,然后选择要分配给此角色的用户。

    为所选角色添加分配窗格。

  5. 选择“添加”以分配角色。

PowerShell

执行以下步骤以使用 PowerShell 分配 Microsoft Entra 角色。

  1. 打开 PowerShell 窗口。 如有必要,使用 Install-Module 安装 Microsoft Graph PowerShell。 有关详细信息,请参阅使用 PowerShell 的先决条件

    Install-Module Microsoft.Graph -Scope CurrentUser
    
  2. 在 PowerShell 窗口中,使用 Connect-MgGraph 登录到你的租户。

    Connect-MgGraph -Environment China -ClientId 'YOUR_CLIENT_ID' -TenantId 'YOUR_TENANT_ID' -Scopes "RoleManagement.Read.Directory","User.Read.All","RoleManagement.ReadWrite.Directory"
    
  3. 使用 Get-MgUser 获取用户。

    $user = Get-MgUser -Filter "userPrincipalName eq 'alice@contoso.com'"
    
  4. 使用 Get-MgRoleManagementDirectoryRoleDefinition 获取要分配的角色。

    $roleDefinition = Get-MgRoleManagementDirectoryRoleDefinition -Filter "displayName eq 'Billing Administrator'"
    
  5. 将租户设置为角色分配的作用域。

    $directoryScope = '/'
    
  6. 使用 New-MgRoleManagementDirectoryRoleAssignment 分配角色。

    $roleAssignment = New-MgRoleManagementDirectoryRoleAssignment `
       -DirectoryScopeId $directoryScope -PrincipalId $user.Id `
       -RoleDefinitionId $roleDefinition.Id
    

分配以管理单元为作用域的角色

本部分介绍如何在管理单元范围分配角色。

Microsoft Entra 管理中心

  1. 至少以特权角色管理员身份登录到 Microsoft Entra 管理中心

  2. 浏览到“标识”>“角色和管理员”>“管理单元”。

  3. 选择管理单元。

    Microsoft Entra ID 中的管理单元。

  4. 从左侧导航菜单中选择“角色和管理员”,查看可用于通过管理单元分配的所有角色的列表。

    Microsoft Entra ID 中管理单元下的“角色和管理员”菜单。

  5. 选择所需的角色。

  6. 选择“添加分配”,然后选择要向其分配此角色的用户或组。

  7. 选择“添加”分配以管理单元为作用域的角色。

注意

你不会在此处看到 Microsoft Entra 内置或自定义角色的完整列表。 这是正常情况。 我们将显示具有与管理单元内支持的对象相关的权限的角色。 若要查看管理单元内支持的对象列表,请参阅 Microsoft Entra ID 中的管理单元

PowerShell

执行以下步骤,使用 PowerShell 在管理单元作用域分配 Microsoft Entra 角色。

  1. 打开 PowerShell 窗口。 如有必要,使用 Install-Module 安装 Microsoft Graph PowerShell。 有关详细信息,请参阅使用 PowerShell 的先决条件

    Install-Module Microsoft.Graph -Scope CurrentUser
    
  2. 在 PowerShell 窗口中,使用 Connect-MgGraph 登录到你的租户。

    Connect-MgGraph -Environment China -ClientId 'YOUR_CLIENT_ID' -TenantId 'YOUR_TENANT_ID' -Scopes "Directory.Read.All","RoleManagement.Read.Directory","User.Read.All","RoleManagement.ReadWrite.Directory"
    
  3. 使用 Get-MgUser 获取用户。

    $user = Get-MgUser -Filter "userPrincipalName eq 'alice@contoso.com'"
    
  4. 使用 Get-MgRoleManagementDirectoryRoleDefinition 获取要分配的角色。

    $roleDefinition = Get-MgRoleManagementDirectoryRoleDefinition `
       -Filter "displayName eq 'User Administrator'"
    
  5. 使用 Get-MgDirectoryAdministrativeUnit 获取要将角色分配的作用域限定到的管理单元。

    $adminUnit = Get-MgDirectoryAdministrativeUnit -Filter "displayName eq 'Seattle Admin Unit'"
    $directoryScope = '/administrativeUnits/' + $adminUnit.Id
    
  6. 使用 New-MgRoleManagementDirectoryRoleAssignment 分配角色。

    $roleAssignment = New-MgRoleManagementDirectoryRoleAssignment `
       -DirectoryScopeId $directoryScope -PrincipalId $user.Id `
       -RoleDefinitionId $roleDefinition.Id
    

分配以应用注册为作用域的角色

本部分介绍如何在应用程序注册范围分配角色。

Microsoft Entra 管理中心

  1. 至少以特权角色管理员身份登录到 Microsoft Entra 管理中心

  2. 浏览到“标识”>“应用程序”>“应用注册”。

  3. 选择应用程序。 可以使用“搜索”框查找所需的应用。

    Microsoft Entra ID 中的应用注册。

  4. 从左侧导航菜单中选择“角色和管理员”,查看可用于通过应用注册分配的所有角色的列表。

    Microsoft Entra ID 中的应用注册的角色。

  5. 选择所需的角色。

  6. 选择“添加分配”,然后选择要向其分配此角色的用户或组。

    在 Microsoft Entra ID 中添加以应用注册为作用域的角色分配。

  7. 选择“添加”分配以应用注册为作用域的角色。

    已在 Microsoft Entra ID 中成功添加以应用注册为作用域的角色分配。

    为 Microsoft Entra ID 中以应用注册为作用域的用户分配的角色。

注意

你不会在此处看到 Microsoft Entra 内置或自定义角色的完整列表。 这是正常情况。 我们将显示仅具有与管理应用注册相关的权限的角色。

PowerShell

执行以下步骤,使用 PowerShell 在应用程序作用域分配 Microsoft Entra 角色。

  1. 打开 PowerShell 窗口。 如有必要,使用 Install-Module 安装 Microsoft Graph PowerShell。 有关详细信息,请参阅使用 PowerShell 的先决条件

    Install-Module Microsoft.Graph -Scope CurrentUser
    
  2. 在 PowerShell 窗口中,使用 Connect-MgGraph 登录到你的租户。

    Connect-MgGraph -Environment China -ClientId 'YOUR_CLIENT_ID' -TenantId 'YOUR_TENANT_ID' -Scopes "Application.Read.All","RoleManagement.Read.Directory","User.Read.All","RoleManagement.ReadWrite.Directory"
    
  3. 使用 Get-MgUser 获取用户。

    $user = Get-MgUser -Filter "userPrincipalName eq 'alice@contoso.com'"
    
  4. 使用 Get-MgRoleManagementDirectoryRoleDefinition 获取要分配的角色。

    $roleDefinition = Get-MgRoleManagementDirectoryRoleDefinition `
       -Filter "displayName eq 'Application Administrator'"
    
  5. 使用 Get-MgApplication 获取要将角色分配的作用域限定到的应用注册。

    $appRegistration = Get-MgApplication -Filter "displayName eq 'f/128 Filter Photos'"
    $directoryScope = '/' + $appRegistration.Id
    
  6. 使用 New-MgRoleManagementDirectoryRoleAssignment 分配角色。

    $roleAssignment = New-MgRoleManagementDirectoryRoleAssignment `
       -DirectoryScopeId $directoryScope -PrincipalId $user.Id `
       -RoleDefinitionId $roleDefinition.Id 
    

后续步骤