Leçon 5 / 6
Leçon 05 · Entra ID

Rôles et permissions

Deux systèmes de rôles distincts

Dans l'écosystème Microsoft, le contrôle d'accès repose sur deux systèmes de rôles indépendants qui coexistent et se complètent. Confondre les deux est l'erreur la plus fréquente chez les débutants.

🪪

Rôles Entra ID

Contrôlent les actions dans l'annuaire : créer des utilisateurs, gérer des groupes, enregistrer des applications, réinitialiser des mots de passe…

Annuaire · Microsoft 365
☁️

RBAC Azure

Contrôlent l'accès aux ressources Azure : machines virtuelles, comptes de stockage, bases de données, groupes de ressources, abonnements…

Azure · Ressources cloud
💡

Un Global Administrator Entra ID n'a pas automatiquement accès aux ressources Azure. Et un Owner Azure ne peut pas gérer les utilisateurs de l'annuaire. Les deux systèmes sont séparés et doivent être configurés indépendamment.

Les rôles Entra ID intégrés

Entra ID propose plus d'une centaine de rôles intégrés. Voici les plus courants que tu rencontreras :

Rôle Périmètre Usage typique
Global Administrator Tout le tenant Accès complet à Entra ID et aux services M365 — à réserver aux urgences
User Administrator Utilisateurs et groupes Créer/supprimer des comptes, réinitialiser des mots de passe
Application Administrator Applications Enregistrer et gérer les applications d'entreprise
Groups Administrator Groupes Créer et gérer tous les groupes du tenant
Security Administrator Sécurité Configurer les politiques de sécurité, lire les alertes
Helpdesk Administrator Support Réinitialiser MFA et mots de passe pour les utilisateurs non-admins
Billing Administrator Facturation Gérer les abonnements et les informations de paiement
Conditional Access Administrator Accès conditionnel Créer et modifier les politiques d'accès conditionnel

Attribuer un rôle Entra ID

L'attribution d'un rôle Entra ID se fait depuis le portail Azure, le Centre d'administration Microsoft 365, ou via Azure CLI / PowerShell.

Via le portail (Entra ID)

  1. Ouvre Entra ID > Rôles et administrateurs
  2. Recherche le rôle voulu (ex. User Administrator)
  3. Clique sur Ajouter des affectations
  4. Sélectionne l'utilisateur ou le groupe cible
  5. Confirme l'attribution
Azure CLI — Rôles Entra ID
# Lister tous les rôles Entra ID disponibles
az role definition list --query "[?roleType=='BuiltInRole'].roleName" -o tsv

# Obtenir l'ID d'un utilisateur
az ad user show --id alice@contoso.com --query id -o tsv

# Attribuer le rôle "User Administrator" à un utilisateur
# (via Microsoft Graph / module Az PowerShell)
az rest --method POST \
  --url "https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments" \
  --body '{
    "roleDefinitionId": "fe930be7-5e62-47db-91af-98c3a49a38b1",
    "principalId": "<object-id-utilisateur>",
    "directoryScopeId": "/"
  }'

# Lister les attributions de rôles Entra d'un utilisateur
az rest --method GET \
  --url "https://graph.microsoft.com/v1.0/users/alice@contoso.com/memberOf/microsoft.graph.directoryRole"

Préfère attribuer les rôles Entra ID à des groupes plutôt qu'à des individus. Quand un collaborateur change de poste, il suffit de le retirer du groupe — pas de modifier des dizaines d'attributions individuelles. Cette fonctionnalité nécessite une licence Entra ID P1 minimum.

RBAC Azure : contrôler l'accès aux ressources

Le RBAC Azure (Role-Based Access Control) détermine qui peut faire quoi sur les ressources Azure. Le modèle repose sur trois éléments :

  • Principal de sécurité — l'identité à laquelle on accorde l'accès (utilisateur, groupe, service principal, identité managée)
  • Définition de rôle — le set de permissions accordées
  • Scope (étendue) — la portée de l'attribution : groupe d'administration, abonnement, groupe de ressources ou ressource individuelle

Les trois rôles fondamentaux

👑

Owner

Accès complet à toutes les ressources. Peut déléguer l'accès à d'autres. À réserver aux administrateurs techniques.

Lecture + Écriture + RBAC
🔧

Contributor

Peut créer et gérer toutes les ressources, mais ne peut pas attribuer des rôles ni gérer les accès.

Lecture + Écriture
👁️

Reader

Peut voir toutes les ressources mais ne peut rien modifier. Idéal pour les auditeurs ou le monitoring.

Lecture seule
Azure CLI — RBAC Azure
# Attribuer le rôle Contributor sur un groupe de ressources
az role assignment create \
  --assignee alice@contoso.com \
  --role "Contributor" \
  --resource-group rg-production

# Attribuer le rôle Reader sur un abonnement entier
az role assignment create \
  --assignee bob@contoso.com \
  --role "Reader" \
  --scope "/subscriptions/<subscription-id>"

# Lister les attributions de rôles sur un groupe de ressources
az role assignment list \
  --resource-group rg-production \
  --output table

# Supprimer une attribution de rôle
az role assignment delete \
  --assignee alice@contoso.com \
  --role "Contributor" \
  --resource-group rg-production

Rôles personnalisés RBAC Azure

Quand aucun rôle intégré ne correspond exactement à ton besoin, tu peux créer un rôle personnalisé. C'est une définition JSON qui liste les actions autorisées et les actions refusées.

JSON — Définition d'un rôle personnalisé
# Fichier role-vm-operateur.json
{
  "Name": "Opérateur VM",
  "Description": "Peut démarrer, arrêter et redémarrer les VMs — sans les modifier",
  "Actions": [
    "Microsoft.Compute/virtualMachines/start/action",
    "Microsoft.Compute/virtualMachines/powerOff/action",
    "Microsoft.Compute/virtualMachines/restart/action",
    "Microsoft.Compute/virtualMachines/read"
  ],
  "NotActions": [],
  "AssignableScopes": [
    "/subscriptions/<subscription-id>"
  ]
}

# Créer le rôle personnalisé
az role definition create --role-definition role-vm-operateur.json

# Lister les rôles personnalisés du tenant
az role definition list --custom-role-only true --output table
💡

Les rôles personnalisés Azure RBAC permettent d'appliquer le principe du moindre privilège avec précision. Plutôt que de donner Contributor à un opérateur qui n'a besoin que de démarrer/arrêter des VMs, crée un rôle sur mesure avec uniquement les actions nécessaires.

Privileged Identity Management (PIM)

PIM est une fonctionnalité Entra ID P2 qui remplace les attributions de rôles permanentes par des accès just-in-time (JIT). Un administrateur n'a un accès privilégié que pendant la durée nécessaire à sa tâche.

Comment fonctionne PIM

  1. Attribution éligible — L'utilisateur est éligible au rôle, mais ne l'a pas activement. Il n'a aucun privilège supplémentaire au repos.
  2. Activation — L'utilisateur demande l'activation du rôle via le portail ou l'app My Access. Il justifie la demande.
  3. Approbation (optionnelle) — Un approbateur humain valide la demande avant que le rôle ne soit activé.
  4. Durée limitée — Le rôle est actif pendant 1 à 8 heures maximum (configurable). À expiration, il se désactive automatiquement.
  5. Audit — Chaque activation est tracée : qui, quand, pourquoi, combien de temps.
🔐

Privileged Identity Management réduit drastiquement la surface d'attaque. Si un compte éligible est compromis, l'attaquant ne dispose d'aucun privilège immédiat — il doit activer le rôle, ce qui déclenche une alerte et peut nécessiter une approbation humaine. Requiert une licence Microsoft Entra ID P2 (incluse dans Microsoft 365 E5 ou EMS E5).

PowerShell — PIM via Microsoft Graph
# Installer le module Microsoft Graph
Install-Module Microsoft.Graph -Scope CurrentUser

# Se connecter
Connect-MgGraph -Scopes "RoleManagement.ReadWrite.Directory"

# Lister les attributions PIM éligibles
Get-MgRoleManagementDirectoryRoleEligibilitySchedule -All | Select-Object PrincipalId, RoleDefinitionId, Status

# Créer une attribution éligible (Entra ID P2 requis)
New-MgRoleManagementDirectoryRoleEligibilityScheduleRequest `
  -Action "adminAssign" `
  -RoleDefinitionId "fe930be7-5e62-47db-91af-98c3a49a38b1" `
  -PrincipalId "<user-object-id>" `
  -DirectoryScopeId "/" `
  -ScheduleInfo @{
    startDateTime = (Get-Date).ToString("o")
    expiration = @{ type = "noExpiration" }
  }

Configurer PIM depuis le portail

  1. Ouvre Entra ID > Privileged Identity Management
  2. Clique sur Rôles Entra ID (ou Ressources Azure pour le RBAC)
  3. Sélectionne le rôle à configurer, puis Paramètres
  4. Configure la durée maximale d'activation, l'approbation requise et les notifications
  5. Dans Attributions, ajoute les utilisateurs comme éligibles (et non actifs)

Principe du moindre privilège

Le principe du moindre privilège (Least Privilege) est simple : chaque compte ne doit avoir que les permissions strictement nécessaires à ses tâches, ni plus, ni moins. C'est l'un des piliers de la sécurité Zero Trust que Microsoft prône avec Entra ID.

Bonnes pratiques concrètes

  • Évite les Global Admins permanents. Utilise PIM pour activer ce rôle uniquement quand c'est indispensable.
  • Privilégie les rôles granulaires. User Administrator plutôt que Global Administrator pour gérer les comptes.
  • Sépare les comptes. Un administrateur doit avoir un compte admin distinct de son compte quotidien.
  • Attribue au scope le plus étroit possible. Un accès sur un groupe de ressources plutôt que sur l'abonnement entier.
  • Revois les accès régulièrement. Utilise les révisions d'accès (Access Reviews) d'Entra ID pour auditer et révoquer les accès obsolètes.
  • Protège les comptes admins avec MFA. Toujours, sans exception.
⚠️

Avoir trop de Global Administrators permanents est l'une des configurations les plus dangereuses qu'un tenant puisse avoir. Microsoft recommande 2 à 4 comptes Global Admin maximum, tous protégés par MFA robuste (clé physique FIDO2 de préférence), tous gérés via PIM, et jamais utilisés pour les tâches quotidiennes. Si un de ces comptes est compromis, l'attaquant contrôle tout le tenant.

Access Reviews — révisions d'accès périodiques

Les Access Reviews (révisions d'accès) permettent de demander périodiquement aux propriétaires de groupes ou aux utilisateurs eux-mêmes de confirmer qu'ils ont encore besoin de leurs accès. Les accès non confirmés sont automatiquement révoqués.

  • Configurables depuis Entra ID > Identity Governance > Révisions d'accès
  • Applicable aux groupes, applications et rôles Entra
  • Fréquence configurable : hebdomadaire, mensuelle, trimestrielle…
  • Requiert une licence Entra ID P2
// À retenir
  • Rôles Entra ID = accès à l'annuaire et aux services M365. RBAC Azure = accès aux ressources cloud. Ce sont deux systèmes distincts.
  • Les rôles Entra clés : Global Administrator, User Administrator, Application Administrator, Security Administrator.
  • RBAC Azure : Owner (tout + RBAC), Contributor (tout sauf RBAC), Reader (lecture seule). Le scope peut être abonnement, groupe de ressources ou ressource.
  • PIM (P2) remplace les rôles permanents par des accès just-in-time, avec activation sur demande, approbation et audit. Obligatoire pour les rôles sensibles.
  • Principe du moindre privilège : le moins de permissions possible, au scope le plus étroit, le moins longtemps nécessaire.
  • Maximum 2 à 4 Global Admins, jamais permanents, toujours protégés par MFA fort.