Assigner des rôles personnalisés avec une étendue de ressources à l’aide de PowerShell dans Azure Active Directory

Cet article explique comment créer une attribution de rôle à l’échelle de l’organisation dans Azure Active Directory (Azure AD). L’attribution d’un rôle à l’échelle de l’organisation accorde l’accès à l’ensemble de l’organisation Azure AD. Pour créer une attribution de rôle avec une étendue d’une seule ressource Azure AD, consultez Comment créer un rôle personnalisé et l’affecter à l’étendue de la ressource. Cet article utilise le module Azure Active Directory PowerShell Version 2.

Pour plus d’informations sur les rôles Azure AD, consultez Rôles intégrés Azure AD.

Prérequis

  • Licence Azure AD Premium P1 ou P2
  • Administrateur de rôle privilégié ou Administrateur général
  • Module AzureADPreview (avec PowerShell)

Pour plus d’informations, consultez Prérequis pour utiliser PowerShell ou l’Afficheur Graph.

Affecter un rôle d’annuaire à un utilisateur ou à un principal de service avec une étendue de ressource

  1. Chargez le modèle Azure AD PowerShell (préversion).
  2. Connectez-vous en exécutant la commande Connect-AzureAD.
  3. Créez un nouveau rôle à l’aide du script PowerShell suivant.
## Assign a role to a user or service principal with resource scope
# Get the user and role definition you want to link
$user = Get-AzureADUser -Filter "userPrincipalName eq 'cburl@f128.info'"
$roleDefinition = Get-AzureADMSRoleDefinition -Filter "displayName eq 'Application Support Administrator'"

# Get app registration and construct resource scope for assignment.
$appRegistration = Get-AzureADApplication -Filter "displayName eq 'f/128 Filter Photos'"
$directoryScope = '/' + $appRegistration.objectId

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

Pour attribuer le rôle à un principal du service au lieu d’un utilisateur, utilisez la cmdlet Get-AzureADMSServicePrincipal.

Définitions de rôles

Les objets de définition de rôle contiennent la définition du rôle intégré ou personnalisé, ainsi que les autorisations octroyées par cette attribution de rôle. Cette ressource affiche à la fois les définitions de rôle personnalisées et les rôles d’annuaire intégrés (qui sont affichés sous une forme équivalente à roleDefinition). Pour plus d’informations sur le nombre maximal de rôles personnalisés qui peuvent être créés dans une organisation Azure AD, consultez Restrictions et limites du service Azure AD.

Créer une définition de rôle

# 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-AzureADMSRoleDefinition -RolePermissions $rolePermissions -DisplayName $displayName -Description $description -TemplateId $templateId -IsEnabled $true

Lire et répertorier les définitions de rôles

# Get all role definitions
Get-AzureADMSRoleDefinitions

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

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

Mettre à jour une définition de rôle

# Update role definition
# This works for any writable property on role definition. You can replace display name with other
# valid properties.
Set-AzureADMSRoleDefinition -Id c4e39bd9-1100-46d3-8c65-fb160da0071f -DisplayName "Updated DisplayName"

Supprimer une définition de rôle

# Delete role definition
Remove-AzureADMSRoleDefinitions -Id c4e39bd9-1100-46d3-8c65-fb160da0071f

Attributions de rôles

Les attributions de rôles contiennent des informations qui lient une entité de sécurité donnée (un principal de service d’utilisateur ou d’application) à une définition de rôle. Si nécessaire, vous pouvez ajouter une étendue d’une ressource de Azure AD unique pour les autorisations affectées. La restriction de l’étendue d’une attribution de rôle est prise en charge pour les rôles intégrés et personnalisés.

Création d'une affectation de rôle

# Get the user and role definition you want to link
$user = Get-AzureADUser -Filter "userPrincipalName eq 'cburl@f128.info'"
$roleDefinition = Get-AzureADMSRoleDefinition -Filter "displayName eq 'Application Support Administrator'"

# Get app registration and construct resource scope for assignment.
$appRegistration = Get-AzureADApplication -Filter "displayName eq 'f/128 Filter Photos'"
$directoryScope = '/' + $appRegistration.objectId

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

Lire et répertorier les attributions de rôles.

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

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

Supprimer une attribution de rôle

# Remove role assignment
Remove-AzureADMSRoleAssignment -Id 'qiho4WOb9UKKgng_LbPV7tvKaKRCD61PkJeKMh7Y458-1'

Étapes suivantes