指派不同範圍的 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 系統管理中心
提示
根據您開始使用的入口網站,本文中的步驟可能略有不同。
以至少 [特殊權限角色管理員] 身分登入 Microsoft Entra 系統管理中心。
瀏覽至 [身分識別]>[角色與系統管理員]>[角色與系統管理員]。
選取角色以查看其指派。 若要協助您找到所需的角色,請使用 [新增篩選條件] 來篩選角色。
選取 [新增指派],然後選取您要指派給此角色的使用者。
選取 [新增] 以指派角色。
PowerShell
請遵循下列步驟以使用 PowerShell 來指派 Microsoft Entra 角色。
開啟 PowerShell 視窗。 如有必要,請使用 Install-Module 來安裝 Microsoft Graph PowerShell。 如需詳細資訊,請參閱使用 PowerShell 或 Graph 總管的必要條件。
Install-Module Microsoft.Graph -Scope CurrentUser
在 PowerShell 視窗中,使用 Connect-MgGraph 登入您的租用戶。
Connect-MgGraph -Scopes "RoleManagement.Read.Directory","User.Read.All","RoleManagement.ReadWrite.Directory"
使用 Get-MgUser 來取得使用者。
$user = Get-MgUser -Filter "userPrincipalName eq 'alice@contoso.com'"
使用 Get-MgRoleManagementDirectoryRoleDefinition 來取得您想要指派的角色。
$roleDefinition = Get-MgRoleManagementDirectoryRoleDefinition -Filter "displayName eq 'Billing Administrator'"
將租用戶設定為角色指派的範圍。
$directoryScope = '/'
使用 New-MgRoleManagementDirectoryRoleAssignment 來指派角色。
$roleAssignment = New-MgRoleManagementDirectoryRoleAssignment ` -DirectoryScopeId $directoryScope -PrincipalId $user.Id ` -RoleDefinitionId $roleDefinition.Id
Microsoft Graph API
按照以下指示在 [Graph 總管] 中使用 Microsoft Graph API 指派角色。
使用 List users API 來取得使用者。
GET https://graph.microsoft.com/v1.0/users?$filter=userPrincipalName eq 'alice@contoso.com'
使用 List unifiedRoleDefinitions API 來取得您想要指派的角色。
GET https://graph.microsoft.com/v1.0/rolemanagement/directory/roleDefinitions?$filter=displayName eq 'Billing Administrator'
使用 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 系統管理中心
以至少 [特殊權限角色管理員] 身分登入 Microsoft Entra 系統管理中心。
瀏覽至 [身分識別]>[角色與系統管理員]>[管理單位]。
選擇系統管理單位。
從左側導覽功能表中選取 [角色和系統管理員 ],以查看可透過系統管理單位指派的所有角色清單。
選取所需的角色。
選取 [新增指派],然後選取您要指派給此角色的使用者或群組。
選取 [新增] 以指派管理單位範圍內的角色。
注意
您將不會在此看到 Microsoft Entra 內建或自訂角色的完整清單。 這是預期行為。 我們會顯示具有管理單位內支援之物件相關權限的角色。 若要查看管理單位內支援的物件清單,請參閱 Microsoft Entra ID 中的管理單位。
PowerShell
請遵循下列步驟,使用 PowerShell 在管理單位範圍指派 Microsoft Entra 角色。
開啟 PowerShell 視窗。 如有必要,請使用 Install-Module 來安裝 Microsoft Graph PowerShell。 如需詳細資訊,請參閱使用 PowerShell 或 Graph 總管的必要條件。
Install-Module Microsoft.Graph -Scope CurrentUser
在 PowerShell 視窗中,使用 Connect-MgGraph 登入您的租用戶。
Connect-MgGraph -Scopes "Directory.Read.All","RoleManagement.Read.Directory","User.Read.All","RoleManagement.ReadWrite.Directory"
使用 Get-MgUser 來取得使用者。
$user = Get-MgUser -Filter "userPrincipalName eq 'alice@contoso.com'"
使用 Get-MgRoleManagementDirectoryRoleDefinition 來取得您想要指派的角色。
$roleDefinition = Get-MgRoleManagementDirectoryRoleDefinition ` -Filter "displayName eq 'User Administrator'"
使用 Get-MgDirectoryAdministrativeUnit 來取得您希望角色指派範圍的管理單位。
$adminUnit = Get-MgDirectoryAdministrativeUnit -Filter "displayName eq 'Seattle Admin Unit'" $directoryScope = '/administrativeUnits/' + $adminUnit.Id
使用 New-MgRoleManagementDirectoryRoleAssignment 來指派角色。
$roleAssignment = New-MgRoleManagementDirectoryRoleAssignment ` -DirectoryScopeId $directoryScope -PrincipalId $user.Id ` -RoleDefinitionId $roleDefinition.Id
Microsoft Graph API
按照以下指示在 [Graph 總管] 中使用 Microsoft Graph API 在管理單位範圍指派角色。
使用 List users API 來取得使用者。
GET https://graph.microsoft.com/v1.0/users?$filter=userPrincipalName eq 'alice@contoso.com'
使用 List unifiedRoleDefinitions API 來取得您想要指派的角色。
GET https://graph.microsoft.com/v1.0/rolemanagement/directory/roleDefinitions?$filter=displayName eq 'User Administrator'
使用 List administrativeUnits 取得您希望角色指派範圍的管理單位。
GET https://graph.microsoft.com/v1.0/directory/administrativeUnits?$filter=displayName eq 'Seattle Admin Unit'
使用 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 系統管理中心
以至少 [特殊權限角色管理員] 身分登入 Microsoft Entra 系統管理中心。
瀏覽至 [身分識別]>[應用程式]>[應用程式註冊]。
選取應用程式。 您可以使用 [搜尋] 方塊來尋找所需的應用程式。
從左側導覽功能表中選取 [角色和系統管理員 ],以查看可透過應用程式註冊指派的所有角色清單。
選取所需的角色。
選取 [新增指派],然後選取您要指派給此角色的使用者或群組。
選取 [新增] 以指派應用程式註冊範圍內的角色。
注意
您將不會在此看到 Microsoft Entra 內建或自訂角色的完整清單。 這是預期行為。 我們會顯示具有管理應用程式註冊相關權限的角色。
PowerShell
請遵循下列步驟,使用 PowerShell 在應用程式範圍指派 Microsoft Entra 角色。
開啟 PowerShell 視窗。 如有必要,請使用 Install-Module 來安裝 Microsoft Graph PowerShell。 如需詳細資訊,請參閱使用 PowerShell 或 Graph 總管的必要條件。
Install-Module Microsoft.Graph -Scope CurrentUser
在 PowerShell 視窗中,使用 Connect-MgGraph 登入您的租用戶。
Connect-MgGraph -Scopes "Application.Read.All","RoleManagement.Read.Directory","User.Read.All","RoleManagement.ReadWrite.Directory"
使用 Get-MgUser 來取得使用者。
$user = Get-MgUser -Filter "userPrincipalName eq 'alice@contoso.com'"
使用 Get-MgRoleManagementDirectoryRoleDefinition 來取得您想要指派的角色。
$roleDefinition = Get-MgRoleManagementDirectoryRoleDefinition ` -Filter "displayName eq 'Application Administrator'"
使用 Get-MgApplication 來取得您希望角色指派範圍的應用程式註冊。
$appRegistration = Get-MgApplication -Filter "displayName eq 'f/128 Filter Photos'" $directoryScope = '/' + $appRegistration.Id
使用 New-MgRoleManagementDirectoryRoleAssignment 來指派角色。
$roleAssignment = New-MgRoleManagementDirectoryRoleAssignment ` -DirectoryScopeId $directoryScope -PrincipalId $user.Id ` -RoleDefinitionId $roleDefinition.Id
Microsoft Graph API
按照以下指示在 [Graph 總管] 中使用 Microsoft Graph API 在應用程式範圍指派角色。
使用 List users API 來取得使用者。
GET https://graph.microsoft.com/v1.0/users?$filter=userPrincipalName eq 'alice@contoso.com'
使用 List unifiedRoleDefinitions API 來取得您想要指派的角色。
GET https://graph.microsoft.com/v1.0/rolemanagement/directory/roleDefinitions?$filter=displayName eq 'Application Administrator'
使用 List applications 取得您希望角色指派範圍的管理單位。
GET https://graph.microsoft.com/v1.0/applications?$filter=displayName eq 'f/128 Filter Photos'
使用 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 表示主體可以根據指派給她的角色 (而非管理單位本身) 來管理管理單位的成員。