将 Microsoft Entra 角色分配给组

若要简化角色管理,可以将 Microsoft Entra 角色分配给组而不是个人。 本文介绍如何使用 Microsoft Entra 管理中心、PowerShell 或 Microsoft Graph API 将 Microsoft Entra 角色分配给可分配角色的组

先决条件

有关详细信息,请参阅使用 PowerShell 或 Graph 浏览器的先决条件

Microsoft Entra 管理中心

提示

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

将 Microsoft Entra 角色分配给组类似于分配用户和服务主体,只不过只能使用可分配角色的组。

提示

这些步骤适用于拥有 Microsoft Entra ID P1 许可证的客户。 如果租户中有 Microsoft Entra ID P2 许可证,应转而按照在 Privileged Identity Management 中分配 Microsoft Entra 角色中的步骤操作。

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

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

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

  3. 选择角色名称以打开该角色。 不要勾选该角色。

    显示如何选择角色的屏幕截图。

  4. 选择“添加分配”。

    如果你看到的内容与以下屏幕截图不同,则你可能具有 Microsoft Entra ID P2。 有关详细信息,请参阅在 Privileged Identity Management 中分配 Microsoft Entra 角色

    用于向用户或组分配角色的“添加分配”窗格的屏幕截图。

  5. 选择要分配给此角色的组。 只会显示可分配角色的组。

    如果未列出组,则需要创建可分配角色的组。 有关详细信息,请参阅在 Microsoft Entra ID 中创建可分配角色的组

  6. 选择“添加”,将角色分配给组。

PowerShell

创建可分配角色的组

使用 New-MgGroup 命令创建可分配角色的组。

Connect-MgGraph -Scopes "Group.ReadWrite.All","RoleManagement.ReadWrite.Directory"
$group = New-MgGroup -DisplayName "Contoso_Helpdesk_Administrators" -Description "This group has Helpdesk Administrator built-in role assigned to it in Azure AD." -MailEnabled:$false -SecurityEnabled -MailNickName "contosohelpdeskadministrators" -IsAssignableToRole:$true

获取要分配的角色定义

使用 Get-MgRoleManagementDirectoryRoleDefinition 命令获取角色定义。

$roleDefinition = Get-MgRoleManagementDirectoryRoleDefinition -Filter "displayName eq 'Helpdesk Administrator'"

创建角色分配

使用 New-MgRoleManagementDirectoryRoleAssignment 命令分配角色。

$roleAssignment = New-MgRoleManagementDirectoryRoleAssignment -DirectoryScopeId '/' -RoleDefinitionId $roleDefinition.Id -PrincipalId $group.Id

Microsoft Graph API

创建可分配角色的组

使用创建组 API 创建可分配角色的组。

请求

POST https://graph.microsoft.com/v1.0/groups

{
    "description": "This group is assigned to Helpdesk Administrator built-in role of Azure AD.",
    "displayName": "Contoso_Helpdesk_Administrators",
    "groupTypes": [
        "Unified"
    ],
    "isAssignableToRole": true,
    "mailEnabled": true,
    "mailNickname": "contosohelpdeskadministrators",
    "securityEnabled": true
}

响应

HTTP/1.1 201 Created

获取要分配的角色定义

使用 List unifiedRoleDefinitions API 获取角色定义。

请求

GET https://graph.microsoft.com/v1.0/roleManagement/directory/roleDefinitions?$filter = displayName eq 'Helpdesk Administrator'

响应

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#roleManagement/directory/roleDefinitions",
    "value": [
        {
            "id": "729827e3-9c14-49f7-bb1b-9608f156bbb8",
            "description": "Can reset passwords for non-administrators and Helpdesk Administrators.",
            "displayName": "Helpdesk Administrator",
            "isBuiltIn": true,
            "isEnabled": true,
            "resourceScopes": [
                "/"
            ],

    ...

创建角色分配

使用 Create unifiedRoleAssignment API 分配角色。

请求

POST https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments

{
    "@odata.type": "#microsoft.graph.unifiedRoleAssignment",
    "principalId": "<Object ID of Group>",
    "roleDefinitionId": "<ID of role definition>",
    "directoryScopeId": "/"
}

响应

HTTP/1.1 201 Created
Content-type: application/json
{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#roleManagement/directory/roleAssignments/$entity",
    "id": "<Role assignment ID>",
    "roleDefinitionId": "<ID of role definition>",
    "principalId": "<Object ID of Group>",
    "directoryScopeId": "/"
}

后续步骤