将 Microsoft Entra 角色分配给用户

若要向 Microsoft Entra ID 中的用户授予访问权限,需要分配 Microsoft Entra 角色。 角色是权限的集合。 本文介绍如何使用 Microsoft Entra 管理中心和 PowerShell 分配 Microsoft Entra 角色。

先决条件

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

Microsoft Entra 管理中心

按照以下步骤使用 Microsoft Entra 管理中心分配 Microsoft Entra 角色。 你的体验将因 Microsoft Entra Privileged Identity Management (PIM)是否已启用而有所不同。

分配角色

提示

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

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

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

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

  3. 找到所需的角色。 可以使用搜索框或“添加筛选器”来筛选角色。

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

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

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

    如果显示的内容与下图不同,则可能启用了 PIM。 请参阅下一部分。

    为所选角色添加分配窗格的屏幕截图。

    注意

    如果将 Microsoft Entra 内置角色分配给来宾用户,则来宾用户将被提升为具有与成员用户相同的权限。 有关成员和来宾用户默认权限的信息,请参阅 Microsoft Entra ID 中的默认用户权限是什么?

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

使用 PIM 分配角色

如果启用了 Microsoft Entra Privileged Identity Management (PIM),则可使用额外的角色分配功能。 例如,可以使用户符合角色的条件或设置持续时间。 启用 PIM 后,可通过两种方式使用 Microsoft Entra 管理中心分配角色。 可以使用”角色和管理员”页面或 PIM 体验。 这两种方式均使用相同的 PIM 服务。

按照以下步骤通过角色和管理员页面分配角色。 如果要使用 Privileged Identity Management 分配角色,请参阅在 Privileged Identity Management 中分配 Microsoft Entra 角色

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

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

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

  3. 找到所需的角色。 可以使用搜索框或“添加筛选器”来筛选角色。

  4. 选择角色名称以打开该角色,并查看其符合条件的、活动的和已过期的角色分配。 不要勾选该角色。

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

  5. 选择“添加分配”。

  6. 选择“未选中成员”,然后选择要分配给此角色的用户。

    启用了 PIM 的“添加分配”页面和“选择成员”窗格的屏幕截图。

  7. 选择下一步

  8. 在“设置”选项卡上,选择要将此角色分配设置为“符合条件”还是“有效”

    符合条件的角色分配意味着用户必须执行一项或多项操作才能使用该角色。 活动角色分配意味着用户无需执行任何操作即可使用该角色。 若要详细了解这些设置的含义,请参阅 PIM 术语

    启用了 PIM 的“添加分配”页面和“设置”选项卡的屏幕截图。

  9. 使用其余选项设置分配的持续时间。

  10. 选择“分配”以分配角色。

PowerShell

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

安装

  1. 打开 PowerShell 窗口并使用 Import-Module 导入 Microsoft Graph PowerShell 模块。 有关详细信息,请参阅使用 PowerShell 的先决条件

    Import-Module -Name Microsoft.Graph.Identity.Governance -Force
    
  2. 在 PowerShell 窗口中,使用 Connect-MgGraph 登录到你的租户。

    Connect-MgGraph -Environment China -ClientId 'YOUR_CLIENT_ID' -TenantId 'YOUR_TENANT_ID' -Scopes "RoleManagement.ReadWrite.Directory"
    
  3. 使用 Get-MgUser 获取要为其分配角色的用户。

    $user = Get-MgUser -Filter "userPrincipalName eq 'johndoe@contoso.com'"
    

分配角色

  1. 使用 Get-MgRoleManagementDirectoryRoleDefinition 获取要分配的角色。

    $roledefinition = Get-MgRoleManagementDirectoryRoleDefinition -Filter "DisplayName eq 'Billing Administrator'"
    
  2. 使用 New-MgRoleManagementDirectoryRoleAssignment 分配角色。

    $roleassignment = New-MgRoleManagementDirectoryRoleAssignment -DirectoryScopeId '/' -RoleDefinitionId $roledefinition.Id -PrincipalId $user.Id
    

使用 PIM 将角色分配为符合条件

如果启用 PIM,你将拥有其他功能,例如使用户有资格分配角色或定义角色分配的开始和结束时间。 这些功能使用一组不同的 PowerShell 命令。 若要详细了解如何使用 PowerShell 和 PIM,请参阅适用于 Privileged Identity Management 中的 Microsoft Entra 角色的 PowerShell

  1. 使用 Get-MgRoleManagementDirectoryRoleDefinition 获取要分配的角色。

    $roledefinition = Get-MgRoleManagementDirectoryRoleDefinition -Filter "DisplayName eq 'Billing Administrator'"
    
  2. 使用以下命令创建哈希表来存储为用户分配角色所需的所有必要属性。 主体 ID 是要为其分配角色的用户 ID。 在此示例中,分配的有效期仅为 10 小时

    $params = @{
      "PrincipalId" = "aaaaaaaa-bbbb-cccc-1111-222222222222"
      "RoleDefinitionId" = "b0f54661-2d74-4c50-afa3-1ec803f12efe"
      "Justification" = "Add eligible assignment"
      "DirectoryScopeId" = "/"
      "Action" = "AdminAssign"
      "ScheduleInfo" = @{
        "StartDateTime" = Get-Date
        "Expiration" = @{
          "Type" = "AfterDuration"
          "Duration" = "PT10H"
          }
        }
      }
    
  3. 使用 New-MgRoleManagementDirectoryRoleEligibilityScheduleRequest 将角色分配为符合条件的角色。 分配角色后,它将反映在 Microsoft Entra 管理中心的“标识治理”>“Privileged Identity Management”>“Microsoft Entra 角色”>“分配”>“符合条件的分配”部分下。

    New-MgRoleManagementDirectoryRoleEligibilityScheduleRequest -BodyParameter $params | Format-List Id, Status, Action, AppScopeId, DirectoryScopeId, RoleDefinitionId, IsValidationOnly, Justification, PrincipalId, CompletedDateTime, CreatedDateTime
    

    Microsoft 图形 API

    按照这些说明使用 Microsoft Graph API 分配角色。

    分配角色

    在此示例中,在租户范围内为 objectID 为 aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb 的安全主体分配计费管理员角色(角色定义 ID b0f54661-2d74-4c50-afa3-1ec803f12efe)。 要查看所有内置角色的不可变角色模板 ID 列表,请参阅 Microsoft Entra 内置角色

    POST https://microsoftgraph.chinacloudapi.cn/v1.0/roleManagement/directory/roleAssignments
    Content-type: application/json
    
    { 
        "@odata.type": "#microsoft.graph.unifiedRoleAssignment",
        "roleDefinitionId": "b0f54661-2d74-4c50-afa3-1ec803f12efe",
        "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
        "directoryScopeId": "/"
    }
    

    使用 PIM 分配角色

    分配一个限时有效的角色分配

    在此示例中,将为一个 objectID 为 aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb 的安全主体分配一个限时有效的计费管理员角色(角色定义 ID b0f54661-2d74-4c50-afa3-1ec803f12efe),有效期为 180 天。

    POST https://microsoftgraph.chinacloudapi.cn/v1.0/rolemanagement/directory/roleEligibilityScheduleRequests
    Content-type: application/json
    
    {
        "action": "adminAssign",
        "justification": "for managing admin tasks",
        "directoryScopeId": "/",
        "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
        "roleDefinitionId": "b0f54661-2d74-4c50-afa3-1ec803f12efe",
        "scheduleInfo": {
            "startDateTime": "2021-07-15T19:15:08.941Z",
            "expiration": {
                "type": "afterDuration",
                "duration": "PT180D"
            }
        }
    }
    

    分配一个永久有效的角色分配

    在下面的示例中,为安全主体分配了一个永久有效的计费管理员角色。

    POST https://microsoftgraph.chinacloudapi.cn/v1.0/rolemanagement/directory/roleEligibilityScheduleRequests
    Content-type: application/json
    
    {
        "action": "adminAssign",
        "justification": "for managing admin tasks",
        "directoryScopeId": "/",
        "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
        "roleDefinitionId": "b0f54661-2d74-4c50-afa3-1ec803f12efe",
        "scheduleInfo": {
            "startDateTime": "2021-07-15T19:15:08.941Z",
            "expiration": {
                "type": "noExpiration"
            }
        }
    }
    

    激活角色分配

    要激活角色分配,请使用创建 roleAssignmentScheduleRequests API。

    POST https://microsoftgraph.chinacloudapi.cn/v1.0/roleManagement/directory/roleAssignmentScheduleRequests
    Content-type: application/json
    
    {
        "action": "selfActivate",
        "justification": "activating role assignment for admin privileges",
        "roleDefinitionId": "b0f54661-2d74-4c50-afa3-1ec803f12efe",
        "directoryScopeId": "/",
        "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222"
    }
    

    有关通过 Microsoft Graph 中的 PIM API 管理 Microsoft Entra 角色的详细信息,请参阅通过 privileged identity management (PIM) API 进行角色管理概述