Aangepaste rollen toewijzen met resourcebereik met behulp van PowerShell in Microsoft Entra-id

In dit artikel wordt beschreven hoe u een roltoewijzing maakt op organisatiebreed bereik in Microsoft Entra-id. Door een rol voor een organisatiebreed bereik toe te wijzen, wordt toegang verleend in de hele Microsoft Entra-organisatie. Als u een roltoewijzing wilt maken met een bereik van één Microsoft Entra-resource, raadpleegt u Een aangepaste rol maken en toewijzen in Microsoft Entra-id. In dit artikel wordt de Microsoft Graph PowerShell SDK-module gebruikt.

Zie ingebouwde Microsoft Entra-rollen voor meer informatie over Microsoft Entra-rollen.

Vereisten

  • Licentie voor Microsoft Entra ID P1 of P2
  • Beheerder van bevoorrechte rol of globale beheerder
  • Microsoft Graph PowerShell-module bij het gebruik van PowerShell

Raadpleeg Vereisten voor het gebruik van PowerShell of Graph Explorer voor meer informatie.

Een directory-rol toewijzen aan een gebruiker of service-principal met resourcebereik

  1. Laad de Microsoft Graph PowerShell-module .

  2. Meld u aan door de opdracht Connect-MgGraph uit te voeren.

  3. Maak een nieuwe rol met behulp van het volgende PowerShell-script.

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

Gebruik de cmdlet Get-MgServicePrincipal om de rol toe te wijzen aan een service-principal in plaats van een gebruiker.

Roldefinities

Roldefinitieobjecten bevatten de definitie van de ingebouwde of aangepaste rol, samen met de machtigingen die worden verleend door die roltoewijzing. Deze resource geeft zowel aangepaste roldefinities als ingebouwde directory-rollen weer (die worden weergegeven in een vergelijkbare vorm als roleDefinition). Zie Microsoft Entra-servicelimieten en -beperkingen voor meer informatie over het maximum aantal aangepaste rollen dat kan worden gemaakt in een Microsoft Entra-organisatie.

Een roldefinitie maken

# 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

Roldefinities lezen en vermelden

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

Een roldefinitie bijwerken

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

Een roldefinitie verwijderen

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

Roltoewijzingen

Roltoewijzingen bevatten informatie die een bepaalde beveiligingsprincipal (een service-principal van een gebruiker of toepassing) koppelt aan een roldefinitie. Indien nodig kunt u een bereik van één Microsoft Entra-resource toevoegen voor de toegewezen machtigingen. Het beperken van het bereik van een roltoewijzing wordt ondersteund voor ingebouwde en aangepaste rollen.

Een roltoewijzing maken

# 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

Roltoewijzingen lezen en vermelden

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

Roltoewijzing verwijderen

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

Volgende stappen