我有下面的代码片段。目标是创建一个组,允许将 Microsoft Entra 角色分配给该组。下面的代码片段创建了组,但它不适用于 PIM 的内部 ID 角色分配。
New-MgGroup -DisplayName $groupfullname -MailNickName $groupfullname -MailEnabled:$false -SecurityEnabled -IsAssignableToRole:$true
我发现,如果我使用下面的 PowerShell 代码创建组,则会创建该组,我发现在将 Entra/Azure 资源角色分配给该组后添加到该组的任何用户都会永久获得此类角色,而不是通过权限身份管理解决方案。
如果我手动创建组,它会按预期工作,即通过 PIM 角色分配等。
对于 PIM 角色分配,您不应使用永久分配 Azure 角色的标准角色分配 cmdlet (New-AzRoleAssignment
)。在您的情况下,通过 PowerShell 创建可分配角色的组是正确的,但问题在于使用错误的命令来分配 PIM 角色。
最初,我通过运行相同的 PowerShell 命令创建了一个组,如下所示:
$groupfullname = "testpimgroup"
New-MgGroup -DisplayName $groupfullname -MailNickName $groupfullname -MailEnabled:$false -SecurityEnabled -IsAssignableToRole:$true
回复:
传送门:
要将 Azure 资源角色(例如“贡献者”)分配给组,您可以使用以下示例 PowerShell 脚本:
$guid = [guid]::NewGuid().ToString()
$startTime = Get-Date -Format o
$scope = "/subscriptions/subId/"
New-AzRoleEligibilityScheduleRequest -Name $guid -Scope $scope -ExpirationDuration PT1H -ExpirationType AfterDuration -PrincipalId "groupId" -RequestType AdminAssign -RoleDefinitionId subscriptions/subId/providers/Microsoft.Authorization/roleDefinitions/roledefId -ScheduleInfoStartDateTime $startTime
回复:
同样,使用以下示例 PowerShell 脚本将符合条件的 PIM Microsoft Entra 角色
(如应用程序管理员)分配给组:
Import-Module Microsoft.Graph.Identity.Governance
$startTime = Get-Date -Format o
$params = @{
action = "adminAssign"
justification = "Assign Application Admin eligibility to group"
roleDefinitionId = "9b895d92-2cd3-44c7-9d02-a6ac2d5ea5c3"
directoryScopeId = "/"
principalId = "groupId"
scheduleInfo = @{
startDateTime = $startTime
expiration = @{
type = "afterDateTime"
endDateTime = [System.DateTime]::Parse("2024-11-10T00:00:00Z")
}
}
}
New-MgRoleManagementDirectoryRoleEligibilityScheduleRequest -BodyParameter $params
回复: