Tilldela anpassade roller med resursomfång med hjälp av PowerShell i Microsoft Entra-ID

Den här artikeln beskriver hur du skapar en rolltilldelning i hela organisationen i Microsoft Entra-ID. Genom att tilldela en roll i hela organisationen får du åtkomst i hela Microsoft Entra-organisationen. Information om hur du skapar en rolltilldelning med en omfång för en enskild Microsoft Entra-resurs finns i Skapa och tilldela en anpassad roll i Microsoft Entra-ID. Den här artikeln använder Microsoft Graph PowerShell SDK-modulen .

Mer information om Microsoft Entra-roller finns i Inbyggda Microsoft Entra-roller.

Förutsättningar

  • Microsoft Entra ID P1- eller P2-licens
  • Privilegierad rolladministratör eller global administratör
  • Microsoft Graph PowerShell-modul när du använder PowerShell

Mer information finns i Krav för att använda PowerShell eller Graph Explorer.

Tilldela en katalogroll till en användare eller tjänstens huvudnamn med resursomfång

  1. Läs in Microsoft Graph PowerShell-modulen.

  2. Logga in genom att köra kommandot Connect-MgGraph.

  3. Skapa en ny roll med hjälp av följande PowerShell-skript.

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

Om du vill tilldela rollen till ett huvudnamn för tjänsten i stället för en användare använder du cmdleten Get-MgServicePrincipal .

Rolldefinitioner

Rolldefinitionsobjekt innehåller definitionen av den inbyggda eller anpassade rollen, tillsammans med de behörigheter som beviljas av rolltilldelningen. Den här resursen visar både anpassade rolldefinitioner och inbyggda katalogroller (som visas i roleDefinition-motsvarande formulär). Information om det maximala antalet anpassade roller som kan skapas i en Microsoft Entra-organisation finns i Begränsningar och begränsningar för Microsoft Entra-tjänsten.

Skapa en rolldefinition

# 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

Läsa och lista rolldefinitioner

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

Uppdatera en rolldefinition

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

Ta bort en rolldefinition

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

Rolltilldelningar

Rolltilldelningar innehåller information som länkar ett visst säkerhetsobjekt (en användare eller tjänstens huvudnamn) till en rolldefinition. Om det behövs kan du lägga till ett omfång för en enda Microsoft Entra-resurs för de tilldelade behörigheterna. Begränsning av omfånget för en rolltilldelning stöds för inbyggda och anpassade roller.

Skapa en rolltilldelning

# 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

Läsa och lista rolltilldelningar

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

Ta bort en rolltilldelning

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

Nästa steg