本文介绍如何创建一个在 Microsoft Entra ID 中有权限管理用户和组的企业应用分配的自定义角色。 有关角色分配的元素,以及子类型、权限和属性集等术语的含义,请参阅自定义角色概述。
有关详细信息,请参阅使用 PowerShell 的先决条件。
本文中讨论了两种企业应用权限。 所有示例都使用 update 权限。
- 若要读取范围内的用户和组分配,请授予
microsoft.directory/servicePrincipals/appRoleAssignedTo/read
权限
- 若要管理范围内的用户和组分配,请授予
microsoft.directory/servicePrincipals/appRoleAssignedTo/update
权限
授予 update 权限后,被分派人能够管理向企业应用的用户和组分配。 可以针对单个应用程序或针对所有应用程序授予用户和/或组分配的范围。 如果在组织范围级别授予,则被分派人可以管理所有应用程序的分配。 如果在应用程序级别授予,则被分派人只能管理指定应用程序的分配。
授予 update 权限的操作分为两步:
- 使用权限
microsoft.directory/servicePrincipals/appRoleAssignedTo/update
创建自定义角色
- 向用户或组授予权限,以管理向企业应用的用户和组分配。 这时,你可以将范围设置为组织范围级别或单个应用程序。
在 Microsoft Entra 管理中心,可以创建并管理自定义角色以控制企业应用的访问和权限。
注意
自定义角色是在组织范围级别创建和管理的,只在组织的“概述”页中提供。
至少以特权角色管理员身份登录到 Microsoft Entra 管理中心。
浏览到“标识”>“角色和管理员”>“角色和管理员”。
选择“新建自定义角色”。
在“基本信息”选项卡上,提供“管理用户和组分配”作为角色的名称,提供“授予权限以管理用户和组分配”作为角色说明,然后选择“下一步”。
在“权限”选项卡的搜索框中输入“microsoft.directory/servicePrincipals/appRoleAssignedTo/update”,选中所需权限旁边的复选框,然后选择“下一步”。
在“查看 + 创建”选项卡上查看权限,然后选择“创建” 。
使用 Microsoft Entra 管理中心将角色分配给用户
至少以特权角色管理员身份登录到 Microsoft Entra 管理中心。
浏览到“标识”>“角色和管理员”>“角色和管理员”。
选择“管理用户和组分配”角色。
选择“添加分配”,选择所需的用户,然后单击“选择”以向用户添加角色分配 。
若要向被分派人授予权限以管理组织范围内所有企业应用的用户和组访问权限,请从组织的 Microsoft Entra ID“概述”页上组织范围内的“角色和管理员”列表开始操作。
若要向被分派人授予权限以管理特定企业应用的用户和组访问权限,请在 Microsoft Entra ID 中转到该应用,并打开该应用的“角色和管理员”列表。 选择新的自定义角色并完成用户或组分配。 被分派人只能管理特定应用的用户和组访问权限。
若要测试自定义角色分配,请以被分派人身份登录,并打开应用程序的“用户和组”页,验证是否启用了“添加用户”选项 。
有关详细信息,请参阅 在 Microsoft Entra ID 中创建自定义角色 和 分配 Microsoft Entra 角色。
使用以下 PowerShell 脚本创建新角色:
# Basic role information
$description = "Can manage user and group assignments for Applications"
$displayName = "Manage user and group assignments"
$templateId = (New-Guid).Guid
# Set of permissions to grant
$allowedResourceAction = @("microsoft.directory/servicePrincipals/appRoleAssignedTo/update")
$rolePermission = @{'allowedResourceActions'= $allowedResourceAction}
$rolePermissions = $rolePermission
# Create new custom admin role
$customRole = New-MgRoleManagementDirectoryRoleDefinition -Description $description `
-DisplayName $displayName -RolePermissions $rolePermissions -TemplateId $templateId -IsEnabled
使用此 PowerShell 脚本分配角色。
# Get the user and role definition you want to link
$user = Get-MgUser -Filter "userPrincipalName eq 'chandra@example.com'"
$roleDefinition = Get-MgRoleManagementDirectoryRoleDefinition -Filter "displayName eq 'Manage user and group assignments'"
# Get app registration and construct scope for assignment.
$appRegistration = Get-MgApplication -Filter "displayName eq 'My Filter Photos'"
$directoryScope = '/' + $appRegistration.Id
# Create a scoped role assignment
$roleAssignment = New-MgRoleManagementDirectoryRoleAssignment -DirectoryScopeId $directoryScope `
-PrincipalId $user.Id -RoleDefinitionId $roleDefinition.Id