Aller au contenu
Réussir mon BTS SIO

Tape une notion, une commande ou le nom d'une épreuve.

Par exemple

Chapitre 1114 minIntermédiaire

Identités et accès : Entra ID, RBAC, MFA et identités managées

Par Josselyn C., prof de BTS SIO. Mis à jour le .

À la fin de ce chapitre, tu sauras

  • distinguer les rôles Entra ID et les rôles Azure RBAC ;
  • attribuer un rôle à un groupe au bon niveau, en moindre privilège ;
  • remplacer un secret par une identité managée ;
  • relier l'Active Directory local à Entra ID avec Cloud Sync.

4 exercices corrigés

Dans Azure, tout accès passe par une identité de Microsoft Entra ID (l'annuaire cloud de Microsoft, appelé Azure Active Directory jusqu'en 2023) et par un rôle attribué sur une étendue : c'est le contrôle d'accès en fonction du rôle, ou RBAC (Role-Based Access Control). Les applications, elles, reçoivent des identités managées, qui leur évitent de stocker des mots de passe. Ce chapitre explique l'annuaire, les deux familles de rôles, la MFA et les comptes d'administration, les identités managées, et la façon de relier l'Active Directory de Sorbier à Entra ID.

Microsoft Entra ID, l'annuaire du cloud

Le locataire Entra ID de Sorbier (sorbier.onmicrosoft.com, avec le domaine vérifié sorbier.example) contient :

  • des utilisateurs : créés directement dans le cloud, ou synchronisés depuis l'Active Directory local (plus bas) ;
  • des groupes, auxquels on attribue les droits plutôt qu'aux personnes ;
  • des invités (B2B) : le compte d'un prestataire, qui garde son propre annuaire ;
  • des applications et leurs principaux de service, les identités des programmes, dont les identités managées.

Entra ID parle les protocoles du web, OAuth 2.0 et OpenID Connect (cours Authentification), et n'a ni OU ni GPO : ce n'est pas un Active Directory dans le cloud. La comparaison détaillée des deux annuaires est dans le cours Windows Server. Les fonctions avancées demandent une licence : Entra ID P1 pour l'accès conditionnel, P2 pour la protection des identités et l'élévation de privilèges juste-à-temps (PIM).

Deux familles de rôles à ne pas confondre

Rôles Microsoft EntraRôles Azure (RBAC)
Ce qu'ils gèrentL'annuaire : comptes, groupes, licences, applicationsLes ressources : VM, bases, stockage, réseaux
ExemplesAdministrateur général, Administrateur d'utilisateurs, Administrateur du support techniquePropriétaire (Owner), Contributeur (Contributor), Lecteur (Reader)
Où on les attribueAu niveau du locataire (ou d'une unité administrative)Sur un groupe d'administration, un abonnement, un groupe de ressources ou une ressource

Un administrateur d'utilisateurs Entra ne peut pas créer de VM ; un propriétaire d'abonnement ne peut pas réinitialiser le mot de passe d'un salarié. Deux métiers, deux familles de rôles.

Le RBAC d'Azure : qui, quoi, où

Une attribution de rôle associe trois éléments :

  1. Qui : un principal de sécurité (utilisateur, groupe, principal de service, identité managée) ;
  2. Quoi : une définition de rôle, c'est-à-dire une liste d'actions permises ;
  3. Où : une étendue : groupe d'administration, abonnement, groupe de ressources ou ressource.

Les attributions s'héritent vers le bas (la hiérarchie du chapitre 6) et s'additionnent : un utilisateur Lecteur sur l'abonnement et Contributeur sur un groupe de ressources peut tout lire partout et tout modifier dans ce groupe.

Rôle intégréCe qu'il permet
Owner (Propriétaire)Tout, y compris attribuer des rôles à d'autres
Contributor (Contributeur)Créer et gérer toutes les ressources, sans pouvoir attribuer de rôles
Reader (Lecteur)Tout voir, ne rien modifier
User Access Administrator, Role Based Access Control AdministratorGérer les attributions de rôles ; le second peut être limité à certains rôles
Rôles de serviceVirtual Machine Contributor, Storage Blob Data Reader, Storage Blob Data Contributor… : les droits d'un seul service, ou de ses données

On applique le moindre privilège (cours Authentification) : des rôles attribués à des groupes, à l'étendue la plus petite possible, et le moins possible de propriétaires.

bash
# Un groupe pour les développeurs du suivi des livraisons
az ad group create --display-name "Azure-Dev-Livraisons" --mail-nickname azure-dev-livraisons
GROUPE=$(az ad group show --group "Azure-Dev-Livraisons" --query id --output tsv)

# Contributeur sur l'environnement de test, lecteur sur la production
az role assignment create --assignee-object-id "$GROUPE" --assignee-principal-type Group \
  --role "Contributor" \
  --scope "$(az group show --name rg-livraisons-test-frc --query id --output tsv)"

az role assignment create --assignee-object-id "$GROUPE" --assignee-principal-type Group \
  --role "Reader" \
  --scope "$(az group show --name rg-livraisons-prod-frc --query id --output tsv)"

# Vérifier les droits du groupe
az role assignment list --assignee "$GROUPE" --all --output table

MFA, accès conditionnel et comptes d'administration

  • La MFA est obligatoire pour administrer Azure (portail depuis octobre 2024, CLI, PowerShell et API depuis le 1er octobre 2025, chapitre 6). Pour les autres usages, les paramètres de sécurité par défaut, gratuits, imposent la MFA à tous les utilisateurs du locataire ; l'accès conditionnel (licence P1) permet des règles plus fines : « MFA résistante à l'hameçonnage pour les administrateurs », « bloquer les connexions depuis tel pays ».
  • Préfère une MFA résistante à l'hameçonnage pour les comptes d'administration : clés de sécurité FIDO2 ou clés d'accès (passkeys), plutôt qu'un code reçu par SMS (cours Authentification).
  • Des comptes d'administration à part, créés dans le cloud, jamais synchronisés depuis l'annuaire local, et des droits élevés activés seulement au moment du besoin avec PIM (Privileged Identity Management, licence P2).
  • Deux comptes d'accès d'urgence (break glass), cloud uniquement, avec une MFA par clé FIDO2 : depuis la MFA obligatoire, ils doivent eux aussi passer une MFA.
  • Les journaux de connexion et d'activité d'Entra ID et d'Azure (Activity Log) sont envoyés vers le SIEM, chez Sorbier vers Wazuh (cours Wazuh).

Les identités managées : plus de secret dans le code

Une application qui lit des blobs a besoin d'une identité. La mauvaise solution : une clé d'accès du compte de stockage dans un fichier de configuration, qui finira un jour dans un dépôt Git. La bonne : une identité managée, une identité Entra ID attachée à la ressource Azure elle-même. Azure crée et fait tourner ses secrets en interne : ni toi ni le code ne les voyez jamais.

TypeCycle de vieUsage
Attribuée par le systèmeCréée avec la ressource, supprimée avec elleUne application qui accède à ses propres ressources
Attribuée par l'utilisateurRessource indépendante, partageable entre plusieurs ressourcesPlusieurs applications qui ont besoin des mêmes droits

Pour que l'API du chapitre 10 lise les bons de livraison du chapitre 8 :

bash
# 1. Donner une identité à l'application et récupérer son identifiant
az webapp identity assign --name app-parc-jc42 --resource-group rg-cloud-lab
PRINCIPAL=$(az webapp identity show --name app-parc-jc42 --resource-group rg-cloud-lab --query principalId --output tsv)

# 2. Lui attribuer la lecture des blobs, sur ce seul compte de stockage
az role assignment create --assignee-object-id "$PRINCIPAL" --assignee-principal-type ServicePrincipal \
  --role "Storage Blob Data Reader" \
  --scope "$(az storage account show --name stsorbierlabjc42 --resource-group rg-cloud-lab --query id --output tsv)"

Dans le code, la bibliothèque @azure/identity trouve seule l'identité : l'identité managée quand le code tourne dans Azure, ton compte az login quand il tourne sur ton poste.

javascript
import { DefaultAzureCredential } from '@azure/identity';
import { BlobServiceClient } from '@azure/storage-blob';

const compte = process.env.STORAGE_ACCOUNT; // par exemple stsorbierlabjc42
const client = new BlobServiceClient(
  `https://${compte}.blob.core.windows.net`,
  new DefaultAzureCredential(), // identité managée dans Azure, ton compte az login sur ton poste
);

const conteneur = client.getContainerClient('bons-livraison');
for await (const blob of conteneur.listBlobsFlat({ prefix: '2026/11/' })) {
  console.log(blob.name, blob.properties.accessTier);
}

Aucune clé, aucun mot de passe : si le code fuit, il ne donne accès à rien. Les identités managées s'utilisent de la même façon pour lire un secret dans Azure Key Vault, ou pour se connecter à Azure Database for MySQL avec l'authentification Entra ID au lieu d'un mot de passe MySQL. Pour un programme qui tourne hors d'Azure, comme un pipeline GitHub Actions, on utilise un principal de service avec une fédération d'identité (OIDC), là encore sans secret permanent (cours Intégration continue).

L'identité hybride : relier l'Active Directory de Sorbier

L'Active Directory de Sorbier (ad.sorbier.example, contrôleurs srv-ad et srv-ad2) reste la source d'autorité : un compte créé, modifié ou désactivé là-bas doit l'être aussi dans Entra ID. Microsoft propose deux outils de synchronisation :

Microsoft Entra Cloud SyncMicrosoft Entra Connect Sync
Ce qu'on installeUn agent de provisionnement léger, sur un ou plusieurs serveursUn logiciel complet, avec sa base, sur un serveur dédié
Où est la configurationDans le cloud, dans le centre d'administration EntraSur le serveur de synchronisation
Haute disponibilitéPlusieurs agents actifs : si l'un tombe, les autres continuentUn serveur actif, un serveur en attente à maintenir
Flux réseauConnexions sortantes en HTTPS seulementConnexions sortantes
FréquenceToutes les 2 minutesToutes les 30 minutes par défaut
Position de MicrosoftL'orientation pour les nouveaux déploiements, avec un outil de migration guidée depuis Connect SyncEncore nécessaire pour certains scénarios avancés

Pour Sorbier, PME à une seule forêt, Cloud Sync convient : un agent sur srv-ad et un sur srv-ad2 assurent la redondance. Sur pfSense, une seule règle est nécessaire : autoriser ces deux serveurs à sortir en HTTPS vers Internet (cours pfSense). On choisit les OU synchronisées (pas les comptes d'administration ni les comptes de service), on passe les UPN sur le domaine vérifié sorbier.example, et l'on active la synchronisation du hachage du mot de passe (PHS), la méthode recommandée : Entra ID vérifie lui-même les mots de passe, même si les contrôleurs de domaine sont injoignables. Les détails (suffixes UPN, méthodes d'authentification, jonction des postes) sont dans le cours Windows Server.

Exercices

Exercice 1 sur 4 Rôle Entra ou rôle Azure ? Réussi À revoir

Pour chaque tâche, dis s'il faut un rôle Microsoft Entra ou un rôle Azure (RBAC), et lequel, au plus juste.

  1. Réinitialiser le mot de passe d'une salariée qui l'a oublié.
  2. Redémarrer les VM du groupe de ressources rg-entrepot-prod-frc, sans pouvoir en créer.
  3. Consulter la configuration de toutes les ressources de l'abonnement de production pour un audit.
  4. Créer des groupes et y ajouter des membres.
  5. Donner à un prestataire le droit de déployer dans rg-livraisons-test-frc.
Voir la réponseMasquer la réponse de l'exercice 1
  1. Rôle Entra : Administrateur du support technique (Helpdesk Administrator), qui réinitialise les mots de passe des utilisateurs non administrateurs. Administrateur général serait bien trop large.
  2. Rôle Azure : Virtual Machine Contributor sur le groupe rg-entrepot-prod-frc. Il permet de gérer les VM du groupe ; un rôle personnalisé limité au démarrage et à l'arrêt serait encore plus juste.
  3. Rôle Azure : Reader sur l'abonnement de production.
  4. Rôle Entra : Administrateur de groupes (Groups Administrator).
  5. Rôle Azure : Contributor sur rg-livraisons-test-frc seulement, attribué au compte invité du prestataire (ou à un groupe qui le contient), de préférence pour une durée limitée.

Tu avais trouvé ?

Exercice 2 sur 4 Évaluer un accès Réussi À revoir

Léa est membre de deux groupes : Azure-Lecteurs, qui a le rôle Reader sur l'abonnement Sorbier-Prod, et Azure-Dev-Livraisons, qui a le rôle Contributor sur le groupe de ressources rg-livraisons-prod-frc.

  1. Peut-elle supprimer l'application web app-livraisons-prod-frc ?
  2. Peut-elle supprimer une VM du groupe rg-reseau-prod-frc ?
  3. Peut-elle donner le rôle Reader à un collègue sur rg-livraisons-prod-frc ?
  4. Peut-elle lire les blobs du compte stlivraisonsprodfrc, rangé dans rg-livraisons-prod-frc, avec son compte Entra ?
Voir la réponseMasquer la réponse de l'exercice 2
  1. Oui : Contributor sur le groupe de ressources qui contient l'application. Les droits s'additionnent avec ceux du rôle Reader.
  2. Non : sur rg-reseau-prod-frc, elle n'a que le rôle Reader, hérité de l'abonnement.
  3. Non : Contributor ne permet pas d'attribuer des rôles ; seuls Owner, User Access Administrator ou Role Based Access Control Administrator le permettent.
  4. Non, pas directement : Contributor est un rôle de gestion, il ne donne pas l'accès aux données des blobs avec Entra ID. Il faudrait Storage Blob Data Reader. (Attention : Contributor permet de lire les clés d'accès du compte, et donc d'accéder aux données par ce biais, sauf si l'autorisation par clé partagée est désactivée. C'est une raison de plus pour la désactiver.)

Tu avais trouvé ?

Exercice 3 sur 4 Supprimer un secret Réussi À revoir

Le fichier de configuration d'une application déployée sur App Service contient la chaîne de connexion complète d'un compte de stockage, avec sa clé. Décris les étapes pour la remplacer par une identité managée, sans interruption de service.

Voir la réponseMasquer la réponse de l'exercice 3
  1. Activer l'identité managée de l'application (az webapp identity assign).
  2. Lui attribuer le rôle de données nécessaire (Storage Blob Data Reader ou Contributor) sur le seul compte de stockage.
  3. Modifier le code : new BlobServiceClient(url, new DefaultAzureCredential()) au lieu de la chaîne de connexion ; ne passer que le nom du compte en paramètre d'application.
  4. Déployer et vérifier que l'application lit et écrit bien.
  5. Supprimer la chaîne de connexion de la configuration, puis régénérer la clé du compte, puisqu'elle a circulé ; enfin, désactiver l'autorisation par clé partagée si plus rien ne l'utilise.

Tu avais trouvé ?

Exercice 4 sur 4 La synchronisation de Sorbier Réussi À revoir

  1. Pourquoi installer l'agent Cloud Sync sur deux serveurs plutôt qu'un ?
  2. Quelle règle faut-il sur pfSense pour qu'il fonctionne ? Faut-il ouvrir un port entrant ?
  3. Les deux contrôleurs de domaine sont en panne. Les salariés peuvent-ils encore se connecter aux services cloud, avec la synchronisation du hachage du mot de passe ?
  4. Un administrateur propose de synchroniser son compte membre des Admins du domaine pour lui donner le rôle Administrateur général dans Entra ID. Que réponds-tu ?
Voir la réponseMasquer la réponse de l'exercice 4
  1. Pour la disponibilité : les agents sont actifs ensemble ; si un serveur est en maintenance ou en panne, l'autre continue de synchroniser.
  2. Une règle qui autorise srv-ad (192.168.10.177) et srv-ad2 (192.168.10.181) à sortir en HTTPS (TCP 443) vers Internet. Aucun port entrant : l'agent n'établit que des connexions sortantes.
  3. Oui pour les services cloud : avec PHS, Entra ID vérifie lui-même le mot de passe à partir de l'empreinte synchronisée. Les nouveaux comptes et les modifications, en revanche, ne seront synchronisés qu'au retour des contrôleurs.
  4. Non : si l'annuaire local est compromis, l'attaquant change le mot de passe de ce compte et devient administrateur général du cloud. Les administrateurs du cloud ont des comptes créés dans le cloud, non synchronisés, protégés par une MFA résistante à l'hameçonnage, et l'OU des comptes d'administration est exclue de la synchronisation.

Tu avais trouvé ?

Chapitre terminé !

Fais les 4 exercices avant de passer à la suite : c'est en t'entraînant que tout se fixe.

chapitres
–
de série
–
du cours
–
Chapitre suivant : Le modèle de responsabilité partagéeRevoir le sommaire du cours