共用方式為


指派不同範圍的 Microsoft Entra 角色

在 Microsoft Entra 識別符中,角色通常會指派給整個租使用者。 不過,您也可以為不同的資源指派 Microsoft Entra 角色,例如管理單位或應用程式註冊。 例如,您可以指派技術支援管理員角色,只套用至特定的管理單位,而不是整個租用戶。 角色指派套用到其中的資源也稱為範圍。 本文說明如何在租用戶、管理單位和應用程式註冊範圍指派 Microsoft Entra 角色。 如需範圍的相關詳細資訊,請參閱 Microsoft Entra ID 中角色型存取控制 (RBAC) 的概觀

必要條件

  • 特殊權限角色管理員。
  • 使用 PowerShell 時安裝的 Microsoft Graph PowerShell SDK。
  • 針對 Microsoft Graph API 使用 Graph 總管時的管理員同意。

如需詳細資訊,請參閱使用 PowerShell 或 Graph 總管的必要條件

指派範圍為租用戶的角色

本節說明如何在租用戶範圍指派角色。

Microsoft Entra 系統管理中心

提示

根據您開始使用的入口網站,本文中的步驟可能略有不同。

  1. 以至少 [特殊權限角色管理員] 身分登入 Microsoft Entra 系統管理中心

  2. 瀏覽至 [身分識別]>[角色與系統管理員]>[角色與系統管理員]

    Microsoft Entra ID 中的 [角色和系統管理員] 頁面。

  3. 選取角色以查看其指派。 若要協助您找到所需的角色,請使用 [新增篩選條件] 來篩選角色。

  4. 選取 [新增指派],然後選取您要指派給此角色的使用者。

    所選取角色的 [新增指派] 窗格。

  5. 選取 [新增] 以指派角色。

PowerShell

請遵循下列步驟以使用 PowerShell 來指派 Microsoft Entra 角色。

  1. 開啟 PowerShell 視窗。 如有必要,請使用 Install-Module 來安裝 Microsoft Graph PowerShell。 如需詳細資訊,請參閱使用 PowerShell 或 Graph 總管的必要條件

    Install-Module Microsoft.Graph -Scope CurrentUser
    
  2. 在 PowerShell 視窗中,使用 Connect-MgGraph 登入您的租用戶。

    Connect-MgGraph -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 Graph API

按照以下指示在 [Graph 總管] 中使用 Microsoft Graph API 指派角色。

  1. 登入 [Graph 總管]

  2. 使用 List users API 來取得使用者。

    GET https://graph.microsoft.com/v1.0/users?$filter=userPrincipalName eq 'alice@contoso.com'
    
  3. 使用 List unifiedRoleDefinitions API 來取得您想要指派的角色。

    GET https://graph.microsoft.com/v1.0/rolemanagement/directory/roleDefinitions?$filter=displayName eq 'Billing Administrator'
    
  4. 使用 Create unifiedRoleAssignment API 指派角色。

    POST https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments
    {
        "@odata.type": "#microsoft.graph.unifiedRoleAssignment",
        "principalId": "<provide objectId of the user obtained above>",
        "roleDefinitionId": "<provide templateId of the role obtained above>",
        "directoryScopeId": "/"
    }
    

將範圍角色指派至管理單位

本節說明如何在管理單位範圍指派角色。

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 或 Graph 總管的必要條件

    Install-Module Microsoft.Graph -Scope CurrentUser
    
  2. 在 PowerShell 視窗中,使用 Connect-MgGraph 登入您的租用戶。

    Connect-MgGraph -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 Graph API

按照以下指示在 [Graph 總管] 中使用 Microsoft Graph API 在管理單位範圍指派角色。

  1. 登入 [Graph 總管]

  2. 使用 List users API 來取得使用者。

    GET https://graph.microsoft.com/v1.0/users?$filter=userPrincipalName eq 'alice@contoso.com'
    
  3. 使用 List unifiedRoleDefinitions API 來取得您想要指派的角色。

    GET https://graph.microsoft.com/v1.0/rolemanagement/directory/roleDefinitions?$filter=displayName eq 'User Administrator'
    
  4. 使用 List administrativeUnits 取得您希望角色指派範圍的管理單位。

    GET https://graph.microsoft.com/v1.0/directory/administrativeUnits?$filter=displayName eq 'Seattle Admin Unit'
    
  5. 使用 Create unifiedRoleAssignment API 指派角色。

    POST https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments
    {
        "@odata.type": "#microsoft.graph.unifiedRoleAssignment",
        "principalId": "<provide objectId of the user obtained above>",
        "roleDefinitionId": "<provide templateId of the role obtained above>",
        "directoryScopeId": "/administrativeUnits/<provide objectId of the admin unit obtained above>"
    }
    

注意

這裡的 directoryScopeId 會指定為 /administrativeUnits/foo,而不是 /foo。 這是預設行為。 範圍 /administrativeUnits/foo 表示主體可以根據指派給她的角色 (而非管理單位本身) 來管理管理單位的成員。 /foo 的範圍表示主體可以管理 Microsoft Entra 物件本身。 在下一節中,您會看到範圍是 /foo,因為應用程式註冊範圍的角色會授與管理物件本身的權限。

指派範圍為應用程式註冊的角色

本節說明如何在應用程式註冊範圍指派角色。

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 或 Graph 總管的必要條件

    Install-Module Microsoft.Graph -Scope CurrentUser
    
  2. 在 PowerShell 視窗中,使用 Connect-MgGraph 登入您的租用戶。

    Connect-MgGraph -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 
    

Microsoft Graph API

按照以下指示在 [Graph 總管] 中使用 Microsoft Graph API 在應用程式範圍指派角色。

  1. 登入 [Graph 總管]

  2. 使用 List users API 來取得使用者。

    GET https://graph.microsoft.com/v1.0/users?$filter=userPrincipalName eq 'alice@contoso.com'
    
  3. 使用 List unifiedRoleDefinitions API 來取得您想要指派的角色。

    GET https://graph.microsoft.com/v1.0/rolemanagement/directory/roleDefinitions?$filter=displayName eq 'Application Administrator'
    
  4. 使用 List applications 取得您希望角色指派範圍的管理單位。

    GET https://graph.microsoft.com/v1.0/applications?$filter=displayName eq 'f/128 Filter Photos'
    
  5. 使用 Create unifiedRoleAssignment API 指派角色。

    POST https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments
    
    {
        "@odata.type": "#microsoft.graph.unifiedRoleAssignment",
        "principalId": "<provide objectId of the user obtained above>",
        "roleDefinitionId": "<provide templateId of the role obtained above>",
        "directoryScopeId": "/<provide objectId of the app registration obtained above>"
    }
    

注意

這裡的 directoryScopeId 會指定為 /foo,與上述區段不同。 這是預設行為。 /foo 的範圍表示主體可以管理 Microsoft Entra 物件。 範圍 /administrativeUnits/foo 表示主體可以根據指派給她的角色 (而非管理單位本身) 來管理管理單位的成員。

下一步