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

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

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

先决条件

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

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

在 Microsoft Entra 管理中心创建角色

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

提示

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

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

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

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

    Create or edit roles from the Roles and administrators page

  4. 在“基本信息”选项卡中提供角色的名称和说明,然后单击“下一步”。

    provide a name and description for a custom role on the Basics tab

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

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

      Select the permissions for a custom role on the Permissions tab

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

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

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

使用 PowerShell 创建角色

登录

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

Connect-MgGraph -Scopes "RoleManagement.ReadWrite.Directory"

创建自定义角色

使用以下 PowerShell 脚本创建新角色:

# 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

使用 PowerShell 分配自定义角色

使用以下 PowerShell 脚本分配角色:

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

# Get app registration and construct resource scope for assignment.
$appRegistration = Get-MgApplication -Filter "Displayname eq 'POSTMAN'"
$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://graph.microsoft.com/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://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments
    

    正文

    {
        "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 组织中应用注册的完整列表。

    Select the app registration as a resource scope for a role assignment

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

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

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

后续步骤