Wenn du entra id automation sauber umsetzen willst (Gruppe erstellen und danach eine entra id role assignment durchführen), musst du beim Erstellen der Gruppe die richtigen Eigenschaften setzen:
securityEnabled = true(Security Group / Security Principal)- und für Entra Directory Roles auf Gruppen in der Praxis:
isAssignableToRole = true(Role-Assignable Group).
Microsoft zeigt diesen Ansatz ebenfalls: Eine role-assignable security group wird mit securityEnabled: true und isAssignableToRole: true erstellt.
Warum securityEnabled = true so wichtig ist
Entra Directory Roles werden an Security Principals gebunden. Wenn deine Gruppe nicht securityEnabled ist, scheitert die „Rolle zuweisen“-Automatisierung typischerweise, weil die Gruppe nicht im richtigen Kontext als Zielobjekt für Rollenmanagement genutzt werden kann.
Darum: Wenn du von „Gruppe erstellen“ direkt weiter zu „Entra Rolle zuweisen“ automatisieren willst, erstelle die Gruppe als Security Group (securityEnabled=true) und – für Directory Roles auf Gruppen – als role-assignable (isAssignableToRole=true).
Die Graph-API Bausteine
- Gruppe erstellen:
POST <https://graph.microsoft.com/v1.0/groups> - Rollenzuweisung erstellen:
POST /roleManagement/directory/roleAssignments(unifiedRoleAssignment)
Berechtigungsseitig nennt Microsoft u. a. Group.ReadWrite.All für das Erstellen der Gruppe und RoleManagement.ReadWrite.Directory für rollenbezogene Operationen.
Zusätzlich dokumentiert Microsoft, dass (delegiert) Privileged Role Administrator die least-privileged Entra Rolle für das Erstellen von Role Assignments ist.
Vollständiges PowerShell Script: Gruppe erstellen + Entra Rolle zuweisen
<#
Entra ID Automation: Role-Assignable Security Group erstellen und Entra Directory Role zuweisen
Voraussetzung: Microsoft Graph PowerShell SDK
#>
# ---------------------------
# 0) Voraussetzungen / Module
# ---------------------------
# Install-Module Microsoft.Graph -Scope CurrentUser
Import-Module Microsoft.Graph.Groups
Import-Module Microsoft.Graph.Identity.Governance
# ---------------------------
# 1) Verbindung zu Microsoft Graph
# ---------------------------
$scopes =@(
"Group.ReadWrite.All",
"RoleManagement.ReadWrite.Directory",
"Directory.Read.All"
)
Connect-MgGraph-Scopes$scopes
# ---------------------------
# 2) Parameter definieren
# ---------------------------
$groupDisplayName ="PIM-Helpdesk-UserAdmin"
$groupDescription ="Role-assignable security group managed by automation"
$mailNickname = ("pimhelpdesk" + (Get-Random-Maximum9999))
# Gewünschte Entra Directory Role (Beispiele: "User Administrator", "Groups Administrator")
$roleDisplayName ="User Administrator"
# ---------------------------
# 3) ROLE-ASSIGNABLE SECURITY GROUP erstellen
# ---------------------------
$params =@{
description =$groupDescription
displayName =$groupDisplayName
mailEnabled =$false
mailNickname =$mailNickname
securityEnabled =$true
isAssignableToRole =$true
}
$group =New-MgGroup-BodyParameter$params
Write-Host"Gruppe erstellt:"$group.DisplayName" ("$group.Id")"
# ---------------------------
# 4) Role Definition ID ermitteln
# ---------------------------
$roleDefinition =Get-MgRoleManagementDirectoryRoleDefinition-Filter"displayName eq '$roleDisplayName'"
if (-not$roleDefinition) {
throw"Role Definition nicht gefunden für displayName: $roleDisplayName"
}
Write-Host"Rolle:"$roleDefinition.DisplayName" ("$roleDefinition.Id")"
# ---------------------------
# 5) Entra Rolle der Gruppe zuweisen (Tenant-weit)
# ---------------------------
$assignmentParams =@{
principalId =$group.Id
roleDefinitionId =$roleDefinition.Id
directoryScopeId ="/"
}
$assignment =New-MgRoleManagementDirectoryRoleAssignment-BodyParameter$assignmentParams
Write-Host"Rolle zugewiesen. Assignment Id:"$assignment.Id
# ---------------------------
# 6) Ergebnis ausgeben
# ---------------------------
[PSCustomObject]@{
Gruppenname =$group.DisplayName
GruppenId =$group.Id
Rollenname =$roleDefinition.DisplayName
RoleDefinitionId =$roleDefinition.Id
DirectoryScopeId ="/"
RoleAssignmentId =$assignment.Id
}
Die entscheidenden Punkte:
- Gruppe wird über
/groupserstellt und setzt explizitsecurityEnabledundisAssignableToRole. - Die Rollenzuweisung wird als
unifiedRoleAssignmentüber Role Management erstellt.
Von Automation zu Governance: warum PIM der nächste Schritt ist
Skripte lösen Provisioning – aber Governance (Genehmigungen, JIT, Ablaufzeiten, Audits) kommt meist als nächstes. Microsoft beschreibt PIM genau mit dem Ziel, „standing admin access“ zu reduzieren und privilegierten Zugriff zu steuern.
Entdecke unsere hybride au2mator PIM Lösung
Wenn du Entra Rollen und On-Prem AD Rollen in einem Portal verwalten und zeitlich begrenzen willst (hybrid), schau dir unsere Lösung an: