本文介绍如何使用 Microsoft Entra 管理中心、Microsoft Graph PowerShell 或 Microsoft Graph API 创建自定义角色来管理对 Microsoft Entra 资源的访问权限。 若要改为创建自定义角色来管理对 Azure 资源的访问权限,请参阅 使用 Azure 门户创建或更新 Azure 自定义角色。
有关自定义角色的基础知识,请参阅 自定义角色概述。 只能在目录级范围或应用注册资源范围中分配角色。 有关可在 Microsoft Entra 组织中创建的自定义角色的最大数目的信息,请参阅 Microsoft Entra 服务限制和限制。
先决条件
有关详细信息,请参阅 使用 PowerShell 或 Graph 资源管理器的先决条件。
创建自定义角色
这些步骤介绍如何在 Microsoft Entra 管理中心创建自定义角色来管理应用注册。
以至少特权角色管理员身份登录到 Microsoft Entra 管理中心。
浏览到 Entra ID>角色和管理员。
选择 “新建自定义角色”。
在 “基本信息 ”选项卡上,提供角色的名称和说明。
可以从自定义角色克隆基线权限,但无法克隆内置角色。
在“ 权限 ”选项卡上,选择管理应用注册的基本属性和凭据属性所需的权限。 有关每个权限的详细说明,请参阅Microsoft Entra ID中的 应用程序注册子类型和权限。
首先,在搜索栏中输入“凭据”,然后选择 microsoft.directory/applications/credentials/update
权限。
接下来,在搜索栏中输入“basic”,选择 microsoft.directory/applications/basic/update
权限,然后单击“ 下一步”。
在“ 审阅 + 创建 ”选项卡上,查看权限并选择“ 创建”。
自定义角色将显示在要分配的可用角色列表中。
登录
使用 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
$rolePermissions = @{
"allowedResourceActions" = @(
"microsoft.directory/applications/basic/update",
"microsoft.directory/applications/credentials/update"
)
}
# Create new custom admin role
$customAdmin = New-MgRoleManagementDirectoryRoleDefinition -RolePermissions $rolePermissions `
-DisplayName $displayName -Description $description -TemplateId $templateId -IsEnabled:$true
更新自定义角色
# Update role definition
# This works for any writable property on role definition. You can replace display name with other
# valid properties.
Update-MgRoleManagementDirectoryRoleDefinition -UnifiedRoleDefinitionId c4e39bd9-1100-46d3-8c65-fb160da0071f `
-DisplayName "Updated DisplayName"
删除自定义角色
# Delete role definition
Remove-MgRoleManagementDirectoryRoleDefinition -UnifiedRoleDefinitionId c4e39bd9-1100-46d3-8c65-fb160da0071f
创建自定义角色
按照以下步骤操作:
使用 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 templateId
事先生成 (New-Guid).Guid
值。
使用 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>"
}
相关内容