Zuweisen benutzerdefinierter Rollen mit Ressourcengeltungsbereich unter Verwendung von PowerShell in Microsoft Entra ID

In diesem Artikel erfahren Sie, wie Sie eine Rollenzuweisung mit organisationsweitem Geltungsbereich in Microsoft Entra ID erstellen. Durch Zuweisen einer Rolle mit organisationsweitem Geltungsbereich wird Zugriff innerhalb der gesamten Microsoft Entra-Organisation gewährt. Informationen zum Erstellen einer Rollenzuweisung mit einem Geltungsbereich für eine einzelne Microsoft Entra-Ressource finden Sie unter Erstellen und zuweisen einer benutzerdefinierten Rolle in Microsoft Entra ID. In diesem Artikel wird das Microsoft Graph PowerShell SDK-Modul verwendet.

Weitere Informationen zu Microsoft Entra Rollen finden Sie unter Integrierte Microsoft Entra-Rollen.

Voraussetzungen

  • P1- oder P2-Lizenz für Microsoft Entra ID
  • „Administrator für privilegierte Rollen“ oder „Globaler Administrator“
  • Microsoft Graph PowerShell-Modul bei Verwendung von PowerShell

Weitere Informationen finden Sie unter Voraussetzungen für die Verwendung von PowerShell oder Graph-Tester.

Zuweisen einer Verzeichnisrolle zu einem Benutzer oder Dienstprinzipal mit Ressourcengeltungsbereich

  1. Laden Sie das Microsoft Graph PowerShell-Modul.

  2. Führen Sie den Befehl Connect-MgGraph aus, um sich anzumelden.

  3. Erstellen Sie mithilfe des folgenden PowerShell-Skripts eine neue Rolle:

    ## Assign a role to a user or service principal with resource scope
    # 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 'f/128 Filter Photos'"
    $directoryScope = '/' + $appRegistration.Id
    
    # Create a scoped role assignment
    $roleAssignment = New-MgRoleManagementDirectoryRoleAssignment -DirectoryScopeId $directoryScope `
       -RoleDefinitionId $roleDefinition.Id -PrincipalId $user.Id
    

Falls Sie die Rolle keinem Benutzer, sondern einem Dienstprinzipal zuweisen möchten, verwenden Sie das Cmdlet Get-AzureADMSServicePrincipal.

Rollendefinitionen

Rollendefinitionsobjekte enthalten die Definition der integrierten oder benutzerdefinierten Rolle sowie die Berechtigungen, die durch diese Rollenzuweisung erteilt werden. Diese Ressource zeigt sowohl benutzerdefinierte Rollendefinitionen als auch integrierte Verzeichnisrollen (in einem ähnlichen Format wie bei „roleDefinition“) an. Informationen zur maximalen Anzahl von benutzerdefinierten Rollen, die in einer Microsoft Entra-Organisation erstellt werden können, finden Sie unter Microsoft Entra-Dienstgrenzwerte und -einschränkungen.

Erstellen einer Rollendefinition

# Basic information
$description = "Can manage credentials of application registrations"
$displayName = "Application Registration Credential Administrator"
$templateId = (New-Guid).Guid

# Set of actions to include
$rolePermissions = @{
    "allowedResourceActions" = @(
        "microsoft.directory/applications/standard/read",
        "microsoft.directory/applications/credentials/update"
    )
}

# Create new custom directory role
$customAdmin = New-MgRoleManagementDirectoryRoleDefinition -RolePermissions $rolePermissions `
   -DisplayName $displayName -Description $description -TemplateId $templateId -IsEnabled:$true

Lesen und Auflisten von Rollendefinitionen

# Get all role definitions
Get-MgRoleManagementDirectoryRoleDefinition

# Get single role definition by ID
Get-MgRoleManagementDirectoryRoleDefinition -UnifiedRoleDefinitionId 86593cfc-114b-4a15-9954-97c3494ef49b

# Get single role definition by templateId
Get-MgRoleManagementDirectoryRoleDefinition -Filter "TemplateId eq 'c4e39bd9-1100-46d3-8c65-fb160da0071f'"

Aktualisieren einer Rollendefinition

# 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"

Löschen einer Rollendefinition

# Delete role definition
Remove-MgRoleManagementDirectoryRoleDefinition -UnifiedRoleDefinitionId c4e39bd9-1100-46d3-8c65-fb160da0071f

Rollenzuweisungen

Rollenzuweisungen enthalten Informationen, die einen bestimmten Sicherheitsprinzipal (Benutzer oder Anwendungsdienstprinzipal) mit einer Rollendefinition verknüpfen. Bei Bedarf können Sie für die zugewiesenen Berechtigungen einen Geltungsbereich für eine einzelne Microsoft Entra-Ressource hinzufügen. Das Einschränken des Geltungsbereichs für eine Rollenzuweisung wird für integrierte und benutzerdefinierte Rollen unterstützt.

Erstellen einer Rollenzuweisung

# 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 'f/128 Filter Photos'"
$directoryScope = '/' + $appRegistration.Id

# Create a scoped role assignment
$roleAssignment = New-MgRoleManagementDirectoryRoleAssignment -DirectoryScopeId $directoryScope `
   -RoleDefinitionId $roleDefinition.Id -PrincipalId $user.Id

Lesen und Auflisten von Rollenzuweisungen

# Get role assignments for a given principal
Get-MgRoleManagementDirectoryRoleAssignment -Filter "PrincipalId eq '27c8ca78-ab1c-40ae-bd1b-eaeebd6f68ac'"

# Get role assignments for a given role definition 
Get-MgRoleManagementDirectoryRoleAssignment -Filter "RoleDefinitionId eq '355aed8a-864b-4e2b-b225-ea95482e7570'"

Entfernen einer Rollenzuweisung

# Remove role assignment
Remove-MgRoleManagementDirectoryRoleAssignment -UnifiedRoleAssignmentId 'qiho4WOb9UKKgng_LbPV7tvKaKRCD61PkJeKMh7Y458-1'

Nächste Schritte