在 Microsoft Entra ID 中创建和分配自定义角色
本文介绍如何在 Microsoft Entra ID 中创建新的自定义角色。 有关自定义角色的基础知识,请参阅自定义角色概述。 只能在目录级范围或应用注册资源范围中分配角色。
可以在 Microsoft Entra 管理中心的“角色和管理员”页中创建自定义角色。
先决条件
- Microsoft Entra ID P1 或 P2 许可证
- 特权角色管理员或全局管理员
- 使用 PowerShell 时需要 Microsoft.Graph 模块
- 将 Graph 浏览器用于 Microsoft Graph API 时需要管理员同意
有关详细信息,请参阅使用 PowerShell 或 Graph 浏览器的先决条件。
在 Microsoft Entra 管理中心创建角色
创建新的自定义角色,授予管理应用注册所需的访问权限
提示
本文中的步骤可能因开始使用的门户而略有不同。
至少以特权角色管理员身份登录到 Microsoft Entra 管理中心。
浏览到“标识”>“角色和管理员”>“角色和管理员”。
选择“新建自定义角色”。
在“基本信息”选项卡中提供角色的名称和说明,然后单击“下一步”。
在“权限”选项卡中,选择管理应用注册的基本属性和凭据属性所需的权限。 有关每个权限的详细说明,请参阅Microsoft Entra ID 中的应用程序注册子类型和权限。
首先在搜索栏中输入“credentials”,然后选择
microsoft.directory/applications/credentials/update
权限。接下来,在搜索栏中输入“basic”,选择
microsoft.directory/applications/basic/update
权限,然后单击“下一步”。
在“查看 + 创建”选项卡上查看权限,然后选择“创建” 。
你的自定义角色将显示在要分配的可用角色列表中。
使用 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 创建角色
使用 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
值。使用 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 资源的类型)。 这样你就可以被用户分配权限,使之可以更新单个应用的凭据和基本属性,不需创建另一个自定义角色。
以不亚于应用程序开发人员的身份登录到 Microsoft Entra 管理中心。
浏览到“标识”>“应用程序”>“应用注册”。
选择要授予其管理权限的应用注册。 可能需要选择“所有应用程序”才能查看 Microsoft Entra 组织中应用注册的完整列表。
在应用注册中,选择“角色和管理员”。 如果尚未创建,请按上一过程中的说明操作。
选择角色以打开“分配”页。
选择“添加分配”以添加用户。 用户将仅被授予对所选应用注册的任何权限。
后续步骤
- 可随时在 Microsoft Entra 管理角色论坛上与我们分享你的观点。
- 有关角色权限的详细信息,请参阅 Microsoft Entra 内置角色。
- 有关默认用户权限,请参阅默认来宾和成员用户权限的比较。