DevOpsFacile
AccueilParcours de formationCertificationsModulesCheat SheetÀ Propos
DevOpsFacile

Une plateforme d'apprentissage complète pour maîtriser les pratiques DevOps modernes, du débutant à l'expert.

contact@devopsfacile.fr

Formation

  • Parcours de formation
  • Modules

Informations

  • À Propos
  • Conditions d'utilisation
  • Confidentialité
  • Mentions légales

© 2026 DevOps Facile. Tous droits réservés.

Fait avec pour la communauté DevOps

ModulesAzure - Débutant : premiers pas dans le cloud Microsoft05 - Gérer les identités avec Microsoft Entra ID

Détails

  • 30 minutes
  • Débutant

Objectifs

  • Créer des utilisateurs et des groupes dans Entra ID
  • Assigner des rôles Azure RBAC à des utilisateurs et groupes
  • Créer une application (Service Principal) pour l'authentification applicative
  • Comprendre la différence entre Entra ID et Azure RBAC
Module Azure - Débutant : premiers pas dans le cloud Microsoft

Exercice 05 : Gérer les identités avec Microsoft Entra ID

🎯 Objectifs

À la fin de cet exercice, vous serez capable de :

  • ✅ Créer des utilisateurs dans Entra ID via la CLI Azure
  • ✅ Créer des groupes et y ajouter des membres
  • ✅ Assigner des rôles RBAC Azure à un groupe sur un groupe de ressources
  • ✅ Créer un Service Principal pour les pipelines CI/CD

Durée estimée : 30 minutes

Difficulté : ⭐☆☆☆☆ (Débutant)

Prérequis : Compte Azure, permissions d'administration Entra ID


📖 Contexte

Microsoft Entra ID (anciennement Azure Active Directory) est le service d'identité et d'accès d'Azure. Il gère QUI peut se connecter (authentification). Azure RBAC (Role-Based Access Control) gère CE QUE les utilisateurs peuvent faire une fois connectés (autorisation). Ces deux systèmes fonctionnent ensemble.


📋 Énoncé

Créez une structure d'identités pour une équipe DevOps : développeurs avec accès lecture, admins avec accès complet, et un Service Principal pour les pipelines CI/CD.


🧭 Déroulement de l'exercice

Tâche 1 : Créer des utilisateurs et des groupes

bash
# Récupérer le domaine Entra ID de votre tenant
DOMAIN=$(az ad signed-in-user show --query 'userPrincipalName' -o tsv | cut -d@ -f2)
echo "Domaine : $DOMAIN"

# Créer un groupe de ressources pour les exercices
az group create --name rg-equipe-devops --location francecentral

# Créer les utilisateurs
az ad user create \
  --display-name "Alice Dupont" \
  --user-principal-name "alice.dupont@$DOMAIN" \
  --password "MotDePasseTemp123!" \
  --force-change-password-next-sign-in true \
  --mail-nickname "alice.dupont"

az ad user create \
  --display-name "Bob Martin" \
  --user-principal-name "bob.martin@$DOMAIN" \
  --password "MotDePasseTemp123!" \
  --force-change-password-next-sign-in true \
  --mail-nickname "bob.martin"

# Vérifier les utilisateurs créés
az ad user list --display-name "Alice" --query '[].{Nom:displayName,UPN:userPrincipalName}' -o table

Tâche 2 : Créer des groupes et assigner des membres

bash
# Créer le groupe développeurs
GROUP_DEV_ID=$(az ad group create \
  --display-name "Developers" \
  --mail-nickname "developers" \
  --query id -o tsv)

# Créer le groupe admins
GROUP_ADMIN_ID=$(az ad group create \
  --display-name "DevOps-Admins" \
  --mail-nickname "devops-admins" \
  --query id -o tsv)

echo "Groupe Developers : $GROUP_DEV_ID"
echo "Groupe Admins : $GROUP_ADMIN_ID"

# Récupérer les IDs des utilisateurs
ALICE_ID=$(az ad user show --id "alice.dupont@$DOMAIN" --query id -o tsv)
BOB_ID=$(az ad user show --id "bob.martin@$DOMAIN" --query id -o tsv)

# Ajouter Alice au groupe développeurs
az ad group member add --group $GROUP_DEV_ID --member-id $ALICE_ID

# Ajouter Bob au groupe admins
az ad group member add --group $GROUP_ADMIN_ID --member-id $BOB_ID

# Vérifier les membres
az ad group member list --group $GROUP_DEV_ID --query '[].displayName' -o tsv

Tâche 3 : Assigner des rôles RBAC Azure

bash
# Récupérer l'ID du groupe de ressources
RG_ID=$(az group show --name rg-equipe-devops --query id -o tsv)

# Donner le rôle "Reader" au groupe Developers sur le RG
az role assignment create \
  --assignee $GROUP_DEV_ID \
  --role "Reader" \
  --scope $RG_ID

# Donner le rôle "Contributor" au groupe Admins sur le RG
az role assignment create \
  --assignee $GROUP_ADMIN_ID \
  --role "Contributor" \
  --scope $RG_ID

# Voir toutes les assignations de rôle sur le RG
az role assignment list \
  --scope $RG_ID \
  --query '[].{Role:roleDefinitionName,Assignee:principalName}' \
  --output table

Indice : La portée (scope) détermine où s'applique le rôle. Du plus large au plus étroit : Management Group > Subscription > Resource Group > Resource. Les permissions sont héritées vers le bas : un rôle sur un RG s'applique à toutes les ressources du RG.


Tâche 4 : Créer un Service Principal pour CI/CD

Un Service Principal est l'équivalent d'un "utilisateur technique" pour les applications et pipelines CI/CD.

bash
# Créer un Service Principal avec le rôle Contributor sur le RG
SP_CREDENTIALS=$(az ad sp create-for-rbac \
  --name "sp-cicd-pipeline" \
  --role "Contributor" \
  --scopes $RG_ID \
  --json-auth)

echo "$SP_CREDENTIALS" | jq .

# Extraire les valeurs pour les secrets CI/CD
CLIENT_ID=$(echo $SP_CREDENTIALS | jq -r .clientId)
CLIENT_SECRET=$(echo $SP_CREDENTIALS | jq -r .clientSecret)
TENANT_ID=$(echo $SP_CREDENTIALS | jq -r .tenantId)
SUBSCRIPTION_ID=$(echo $SP_CREDENTIALS | jq -r .subscriptionId)

echo "Stocker ces valeurs comme secrets dans votre CI/CD :"
echo "AZURE_CLIENT_ID=$CLIENT_ID"
echo "AZURE_TENANT_ID=$TENANT_ID"
echo "AZURE_SUBSCRIPTION_ID=$SUBSCRIPTION_ID"
echo "AZURE_CLIENT_SECRET=*** (ne jamais afficher)"
bash
# Tester l'authentification avec le Service Principal
az login \
  --service-principal \
  --username $CLIENT_ID \
  --password $CLIENT_SECRET \
  --tenant $TENANT_ID

az account show
# Se reconnecter avec votre compte
az login

Tâche 5 : Nettoyer

bash
# Supprimer le Service Principal
az ad sp delete --id $CLIENT_ID

# Supprimer les utilisateurs
az ad user delete --id "alice.dupont@$DOMAIN"
az ad user delete --id "bob.martin@$DOMAIN"

# Supprimer les groupes
az ad group delete --group $GROUP_DEV_ID
az ad group delete --group $GROUP_ADMIN_ID

# Supprimer le groupe de ressources
az group delete --name rg-equipe-devops --yes --no-wait

✅ Vérification du résultat

  • Les utilisateurs Alice et Bob sont créés dans Entra ID
  • Alice est dans le groupe Developers, Bob dans DevOps-Admins
  • Le groupe Developers a le rôle Reader sur le Resource Group
  • Le Service Principal sp-cicd-pipeline peut s'authentifier avec ses credentials

💡 À retenir

Entra ID vs Azure RBAC :

Entra ID (qui ?)Azure RBAC (quoi ?)
GèreIdentités, groupes, appsPermissions sur ressources Azure
Exemple"Alice est dans le groupe Devs""Le groupe Devs peut lire les VMs"
ScopeTenantManagement Group, Sub, RG, Resource

Rôles built-in essentiels :

  • Reader : lecture seule sur toutes les ressources
  • Contributor : créer/modifier, pas gérer les accès
  • Owner : tout, y compris gérer les accès

✨ Solution Complète

bash
# Créer un Service Principal minimal pour CI/CD
az ad sp create-for-rbac \
  --name "sp-mon-projet-cicd" \
  --role "Contributor" \
  --scopes "/subscriptions/$(az account show --query id -o tsv)" \
  --json-auth > azure-credentials.json

# Utiliser dans GitHub Actions :
# AZURE_CREDENTIALS: $(cat azure-credentials.json)
Retour au module

Sur cette page

  • 🎯 Objectifs
  • 📖 Contexte
  • 📋 Énoncé
  • 🧭 Déroulement de l'exercice
  • Tâche 1 : Créer des utilisateurs et des groupes
  • Tâche 2 : Créer des groupes et assigner des membres
  • Tâche 3 : Assigner des rôles RBAC Azure
  • Tâche 4 : Créer un Service Principal pour CI/CD
  • Tâche 5 : Nettoyer
  • ✅ Vérification du résultat
  • 💡 À retenir
  • ✨ Solution Complète