在 Microsoft Entra ID 中创建和分配自定义角色

本文介绍如何在 Microsoft Entra ID 中创建新的自定义角色。 有关自定义角色的基础知识,请参阅自定义角色概述。 只能在目录级范围或应用注册资源范围中分配角色。

可以在 Microsoft Entra 管理中心的“角色和管理员”页中创建自定义角色。

先决条件

  • Microsoft Entra ID P1 或 P2 许可证
  • 特权角色管理员
  • 使用 PowerShell 时需要 Microsoft.Graph 模块
  • 使用 Microsoft Graph API 时需要管理员同意

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

在 Microsoft Entra 管理中心创建角色

创建新的自定义角色,授予管理应用注册所需的访问权限

提示

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

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

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

  3. 选择“新建自定义角色”。

    从“角色和管理员”页创建或编辑角色

  4. 在“基本信息”页上,提供角色的名称和说明

    可以通过自定义角色克隆基线权限,但无法克隆内置角色。

    在“基本信息”选项卡上提供自定义角色的名称和说明

  5. 在“权限”选项卡中,选择管理应用注册的基本属性和凭据属性所需的权限。 有关每个权限的详细说明,请参阅Microsoft Entra ID 中的应用程序注册子类型和权限

    1. 首先在搜索栏中输入“credentials”,然后选择 microsoft.directory/applications/credentials/update 权限。

      在“权限”选项卡上选择自定义角色的权限

    2. 接下来,在搜索栏中输入“basic”,选择 microsoft.directory/applications/basic/update 权限,然后单击“下一步”。

  6. 在“查看 + 创建”选项卡上查看权限,然后选择“创建” 。

    你的自定义角色将显示在要分配的可用角色列表中。

使用 PowerShell 创建角色

登录

使用 Connect-MgGraph 命令登录到租户。

Connect-MgGraph -Environment China -ClientId 'YOUR_CLIENT_ID' -TenantId 'YOUR_TENANT_ID' -Scopes "RoleManagement.ReadWrite.Directory"

Create the custom role

Create a new role using the following PowerShell script:

# Basic role information
$displayName = "Application Support Administrator"
$description = "Can manage basic aspects of application registrations."
$templateId = (New-Guid).Guid

# Set of permissions to grant
$allowedResourceAction =
@(
    "microsoft.directory/applications/basic/update",
    "microsoft.directory/applications/credentials/update"
)
$rolePermissions = @(@{AllowedResourceActions= $allowedResourceAction})

# Create new custom admin role
$customAdmin = New-MgRoleManagementDirectoryRoleDefinition -RolePermissions $rolePermissions -DisplayName $displayName -IsEnabled -Description $description -TemplateId $templateId

Assign the custom role using PowerShell

Assign the role using the below PowerShell script:

# Get the user and role definition you want to link
$user = Get-MgUser -Filter "userPrincipalName eq 'user@contoso.com'"
$roleDefinition = Get-MgRoleManagementDirectoryRoleDefinition -Filter "DisplayName eq 'Application Support Administrator'"

# Get app registration and construct resource scope for assignment.
$appRegistration = Get-MgApplication -Filter "Displayname eq 'MyApp1'"
$resourceScope = '/' + $appRegistration.objectId

# Create a scoped role assignment
$roleAssignment = New-MgRoleManagementDirectoryRoleAssignment -DirectoryScopeId $resourcescope -RoleDefinitionId $roledefinition.Id -PrincipalId $user.Id

使用 Microsoft Graph API 创建角色

执行以下步骤:

  1. 使用 Create unifiedRoleDefinition API 创建自定义角色。

    POST https://microsoftgraph.chinacloudapi.cn/v1.0/roleManagement/directory/roleDefinitions
    

    正文

    {
      "description": "Can manage basic aspects of application registrations.",
      "displayName": "Application Support Administrator",
      "isEnabled": true,
      "templateId": "<GUID>",
      "rolePermissions": [
          {
              "allowedResourceActions": [
                  "microsoft.directory/applications/basic/update",
                  "microsoft.directory/applications/credentials/update"
              ]
          }
      ]
    }
    

    注意

    "templateId": "GUID" 是根据需要在正文中发送的可选参数。 如果需要使用公共参数创建多个不同的自定义角色,最好创建一个模板并定义 templateId 值。 可以事先通过使用 PowerShell cmdlet (New-Guid).Guid 来生成 templateId 值。

  2. 使用 Create unifiedRoleAssignment API 分配自定义角色。

    POST https://microsoftgraph.chinacloudapi.cn/v1.0/roleManagement/directory/roleAssignments
    

    Body

    {
        "principalId":"<GUID OF USER>",
        "roleDefinitionId":"<GUID OF ROLE DEFINITION>",
        "directoryScopeId":"/<GUID OF APPLICATION REGISTRATION>"
    }
    

为资源分配自定义角色范围

与内置角色一样,默认情况下,在默认的组织范围内分配自定义角色,以授予对组织中所有应用注册的访问权限。 此外,还可以在单个 Microsoft Entra 资源的范围中分配自定义角色和一些相关的内置角色(具体取决于 Microsoft Entra 资源的类型)。 这样你就可以被用户分配权限,使之可以更新单个应用的凭据和基本属性,不需创建另一个自定义角色。

  1. 以不亚于应用程序开发人员的身份登录到 Microsoft Entra 管理中心

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

  3. 选择要授予其管理权限的应用注册。 可能需要选择“所有应用程序”才能查看 Microsoft Entra 组织中应用注册的完整列表。

    选择应用注册作为角色分配的资源范围

  4. 在应用注册中,选择“角色和管理员”。 如果尚未创建,请按上一过程中的说明操作。

  5. 选择角色以打开“分配”页。

  6. 选择“添加分配”以添加用户。 用户将仅被授予对所选应用注册的任何权限。