<!DOCTYPE html>
<html lang="fr" data-theme="light">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Module 08 — Migration AD → Entra · Formation Entra ID · Atoo Next</title>
  <meta name="description" content="Trois stratégies de migration, plan de bascule 6 mois, décommission du DC.">
  <meta name="color-scheme" content="light dark">
  <link rel="preconnect" href="https://fonts.googleapis.com">
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Instrument+Serif:ital@0;1&family=JetBrains+Mono:wght@400;500&display=swap">
  <link rel="stylesheet" href="assets/shared.css">
</head>
<body class="layout-module">
  <a href="#main-content" class="skip-link">Aller au contenu principal</a>

  <svg xmlns="http://www.w3.org/2000/svg" style="display:none" aria-hidden="true">
    <symbol id="icon-home" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/><polyline points="9 22 9 12 15 12 15 22"/></symbol>
    <symbol id="icon-book-open" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 7v14"/><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"/></symbol>
    <symbol id="icon-trending-up" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 7 13.5 15.5 8.5 10.5 2 17"/><polyline points="16 7 22 7 22 13"/></symbol>
    <symbol id="icon-award" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M15.477 12.89 17 22l-5-3-5 3 1.523-9.11"/><circle cx="12" cy="8" r="6"/></symbol>
    <symbol id="icon-settings" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"/></symbol>
    <symbol id="icon-help-circle" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"/><path d="M12 17h.01"/></symbol>
    <symbol id="icon-menu" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><line x1="4" x2="20" y1="12" y2="12"/><line x1="4" x2="20" y1="6" y2="6"/><line x1="4" x2="20" y1="18" y2="18"/></symbol>
    <symbol id="icon-arrow-right-circle" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><polyline points="12 16 16 12 12 8"/><line x1="8" x2="16" y1="12" y2="12"/></symbol>
    <symbol id="icon-check" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></symbol>
    <symbol id="icon-check-circle" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"/><polyline points="22 4 12 14.01 9 11.01"/></symbol>
    <symbol id="icon-x" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><line x1="18" x2="6" y1="6" y2="18"/><line x1="6" x2="18" y1="6" y2="18"/></symbol>
    <symbol id="icon-refresh-cw" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><polyline points="23 4 23 10 17 10"/><path d="M3.51 9a9 9 0 0 1 14.85-3.36L23 10"/></symbol>
    <symbol id="icon-chevron-right" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"/></symbol>
    <symbol id="icon-arrow-left" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><line x1="19" x2="5" y1="12" y2="12"/><polyline points="12 19 5 12 12 5"/></symbol>
    <symbol id="icon-arrow-right" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><line x1="5" x2="19" y1="12" y2="12"/><polyline points="12 5 19 12 12 19"/></symbol>
    <symbol id="icon-moon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"/></symbol>
    <symbol id="icon-sun" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="4"/><path d="M12 2v2"/><path d="M12 20v2"/><path d="m4.93 4.93 1.41 1.41"/><path d="m17.66 17.66 1.41 1.41"/><path d="M2 12h2"/><path d="M20 12h2"/><path d="m6.34 17.66-1.41 1.41"/><path d="m19.07 4.93-1.41 1.41"/></symbol>
    <symbol id="icon-alert-triangle" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z"/><path d="M12 9v4"/><path d="M12 17h.01"/></symbol>
    <symbol id="icon-info" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M12 16v-4"/><path d="M12 8h.01"/></symbol>
    <symbol id="icon-key-round" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z"/></symbol>
    <symbol id="icon-sparkles" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z"/><path d="M20 3v4"/><path d="M22 5h-4"/><path d="M4 17v2"/><path d="M5 18H3"/></symbol>
    <symbol id="icon-server" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><rect width="20" height="8" x="2" y="2" rx="2"/><rect width="20" height="8" x="2" y="14" rx="2"/><line x1="6" x2="6.01" y1="6" y2="6"/><line x1="6" x2="6.01" y1="18" y2="18"/></symbol>
    <symbol id="icon-graduation-cap" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M22 10v6M2 10l10-5 10 5-10 5z"/><path d="M6 12v5c3 3 9 3 12 0v-5"/></symbol>
    <symbol id="icon-flask-conical" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2"/><path d="M6.453 15h11.094"/><path d="M8.5 2h7"/></symbol>
    <symbol id="icon-target" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><circle cx="12" cy="12" r="6"/><circle cx="12" cy="12" r="2"/></symbol>
    <symbol id="icon-list" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><line x1="8" x2="21" y1="6" y2="6"/><line x1="8" x2="21" y1="12" y2="12"/><line x1="8" x2="21" y1="18" y2="18"/><line x1="3" x2="3.01" y1="6" y2="6"/><line x1="3" x2="3.01" y1="12" y2="12"/><line x1="3" x2="3.01" y1="18" y2="18"/></symbol>
    <symbol id="icon-external-link" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><polyline points="15 3 21 3 21 9"/><line x1="10" x2="21" y1="14" y2="3"/></symbol>
    <symbol id="icon-cloud" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z"/></symbol>
    <symbol id="icon-calendar" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><rect width="18" height="18" x="3" y="4" rx="2" ry="2"/><line x1="16" x2="16" y1="2" y2="6"/><line x1="8" x2="8" y1="2" y2="6"/><line x1="3" x2="21" y1="10" y2="10"/></symbol>
    <symbol id="icon-folder" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"/></symbol>
    <symbol id="icon-shield-check" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"/><path d="m9 12 2 2 4-4"/></symbol>
  </svg>

  <button class="hamburger-btn" aria-label="Ouvrir le menu">
    <svg width="24" height="24"><use href="#icon-menu"/></svg>
  </button>

  <aside class="sidebar-icons" role="navigation" aria-label="Menu principal">
    <a href="javascript:void(0)" class="sidebar-icons__logo" aria-label="Accueil Atoo Next">
      <img src="assets/atoo-next-logo.svg" alt="Atoo Next">
    </a>
    <nav class="sidebar-icons__nav" aria-label="Navigation principale">
      <a href="javascript:void(0)" class="sidebar-icons__item" aria-label="Tableau de bord" title="Tableau de bord"><svg><use href="#icon-home"/></svg></a>
      <a href="#module-content" class="sidebar-icons__item is-active" aria-label="Ce module" title="Ce module"><svg><use href="#icon-book-open"/></svg></a>
      <a href="javascript:void(0)" class="sidebar-icons__item" aria-label="Progression" title="Progression"><svg><use href="#icon-trending-up"/></svg></a>
      <a href="javascript:void(0)" class="sidebar-icons__item" aria-label="Certificat" title="Certificat"><svg><use href="#icon-award"/></svg></a>
    </nav>
    <div class="sidebar-icons__footer">
      <a href="#" class="sidebar-icons__item" aria-label="Aide" title="Aide"><svg><use href="#icon-help-circle"/></svg></a>
      <a href="#" class="sidebar-icons__item" aria-label="Paramètres" title="Paramètres"><svg><use href="#icon-settings"/></svg></a>
    </div>
  </aside>

  <main class="module-main" id="main-content">
    <header class="module-topbar">
      <a href="javascript:void(0)" class="back-link">
        <svg><use href="#icon-arrow-left"/></svg>
        Retour au tableau de bord
      </a>
      <div class="module-topbar__actions">
        <button id="theme-toggle" class="btn-icon" aria-label="Basculer thème" aria-pressed="false">
          <svg width="20" height="20"><use href="#icon-moon"/></svg>
        </button>
      </div>
    </header>

    <div class="module-layout" id="module-content">
      <article class="module-content">
        <header class="module-header">
          <div class="module-header__visual module-header__visual--mint">
            <span class="module-header__number-huge">08</span>
            <div class="module-header__icon-large"><svg><use href="#icon-arrow-right-circle"/></svg></div>
          </div>
          <div class="module-header__meta">
            <span class="module-header__label">MODULE 08 · COURS</span>
            <h1 class="module-header__title">Migration AD → Entra</h1>
            <p class="module-header__subtitle">Trois stratégies, plan de bascule 6 mois, décommission du DC.</p>
            <div class="module-header__stats">
              <div class="stat-mini"><span class="stat-mini__value">3h</span><span class="stat-mini__label">durée</span></div>
              <div class="stat-mini"><span class="stat-mini__value" id="module-sections-count">12</span><span class="stat-mini__label">sections</span></div>
              <div class="stat-mini"><span class="stat-mini__value">10</span><span class="stat-mini__label">questions</span></div>
            </div>
          </div>
        </header>

        <!-- OBJECTIFS -->
        <section class="module-section module-section--objectifs" data-section-id="s-objectifs">
          <div class="section-header">
            <div class="icon-circle icon-circle--lg icon-circle--lavender"><svg><use href="#icon-target"/></svg></div>
            <div class="section-header__content">
              <span class="section-header__label">OBJECTIFS</span>
              <h2 class="section-header__title">Ce que vous saurez faire</h2>
              <p class="section-header__meta">5 objectifs · ~5 min</p>
            </div>
          </div>
          <ul class="task-list">
            <li class="task-list__item"><span><strong>Choisir</strong> une stratégie de migration (lift &amp; shift, hybride progressif, cloud-only) selon le contexte.</span></li>
            <li class="task-list__item"><span><strong>Planifier</strong> la migration des identités et des groupes (sync puis bascule, ou création cloud).</span></li>
            <li class="task-list__item"><span><strong>Organiser</strong> le remplacement des GPO par Intune et la migration des partages vers SharePoint / OneDrive.</span></li>
            <li class="task-list__item"><span><strong>Énoncer</strong> les conditions et étapes de décommissionnement d'un contrôleur de domaine.</span></li>
            <li class="task-list__item"><span><strong>Dérouler</strong> un plan de bascule type sur 6 mois.</span></li>
          </ul>
          <div class="content-block animate-on-scroll" style="margin-top:var(--space-6)">
            <h3>Compétences transférées depuis l'AD classique</h3>
            <div class="table-wrapper">
              <table>
                <thead><tr><th>L'admin AD réutilise</th><th>L'admin AD doit désapprendre</th></tr></thead>
                <tbody>
                  <tr><td>Connaissance exhaustive du SI (AD, GPO, partages)</td><td>« L'AD est éternel » — c'est un point de départ à faire décroître</td></tr>
                  <tr><td>Gestion de projet d'infrastructure</td><td>Migration « big bang » — préférer l'incrémental, réversible</td></tr>
                  <tr><td>Cartographie des dépendances</td><td>Sous-estimer les apps legacy (LDAP / Kerberos) comme frein n°1</td></tr>
                </tbody>
              </table>
            </div>
          </div>
        </section>

        <!-- COURS -->
        <section class="module-section module-section--cours">
          <div class="section-header">
            <div class="icon-circle icon-circle--lg icon-circle--sky"><svg><use href="#icon-book-open"/></svg></div>
            <div class="section-header__content">
              <span class="section-header__label">COURS</span>
              <h2 class="section-header__title">Assembler la trajectoire</h2>
              <p class="section-header__meta">6 sections · lecture ~35 min</p>
            </div>
          </div>

          <div class="content-block animate-on-scroll" data-section-id="s-cours-1">
            <h3>1. Trois stratégies</h3>
            <div class="section-hook">
              <span class="section-hook__label">Contexte</span>
              Il n'y a pas de bouton « migrer ». Ce module assemble tout ce qui précède (identités, sécurité, postes) en un <strong>projet</strong> : une trajectoire incrémentale et réversible qui fait <strong>décroître</strong> la dépendance à l'AD DS.
            </div>
            <div class="table-wrapper">
              <table>
                <thead><tr><th>Stratégie</th><th>Principe</th><th>Pour qui</th><th>Risque</th></tr></thead>
                <tbody>
                  <tr><td><strong>Lift &amp; shift</strong></td><td>Serveurs AD / apps sur VM Azure (IaaS), l'AD DS reste tel quel</td><td>Contraintes fortes, apps legacy non modifiables à court terme</td><td>Faible transformation, coûts IaaS, dette reportée</td></tr>
                  <tr><td><strong>Hybride progressif</strong></td><td>Synchronisation (module 03), bascule service par service, réduction progressive de l'AD</td><td><strong>La majorité des PME</strong> (dont votre cas)</td><td>Maîtrisé, réversible</td></tr>
                  <tr><td><strong>Cloud-only</strong></td><td>Comptes créés dans Entra, postes joints Entra + Intune, aucun AD DS</td><td>Nouveaux SI, ou après élimination des dépendances AD</td><td>Nécessite que <strong>rien</strong> ne dépende plus de l'AD DS</td></tr>
                </tbody>
              </table>
            </div>
            <aside class="callout callout--info">
              <div class="callout__icon"><div class="icon-circle icon-circle--sm icon-circle--sky"><svg><use href="#icon-info"/></svg></div></div>
              <div class="callout__content">
                <span class="callout__label">POUR VOTRE PME</span>
                <p>Une app LDAP, des partages migrables (module 03) : <strong>hybride progressif</strong> aujourd'hui, <strong>cloud-only</strong> en cible une fois l'app LDAP et les partages traités.</p>
              </div>
            </aside>
          </div>

          <div class="content-block animate-on-scroll" data-section-id="s-cours-2">
            <h3>2. Migration des identités &amp; groupes</h3>
            <p><strong>Identités</strong> — deux voies :</p>
            <ul>
              <li><strong>Synchroniser</strong> l'AD vers Entra (Connect / Cloud Sync) puis, à terme, basculer la source en cloud (via une bascule de la gestion).</li>
              <li><strong>Créer directement</strong> en cloud pour les nouveaux comptes.</li>
            </ul>
            <p><strong>Groupes</strong> — les groupes de sécurité AD peuvent être synchronisés. Profiter de la migration pour <strong>rationaliser</strong> : transformer les groupes « par service » en <strong>groupes dynamiques</strong> (module 02), supprimer les groupes morts.</p>
            <aside class="callout callout--warning">
              <div class="callout__icon"><div class="icon-circle icon-circle--sm icon-circle--peach"><svg><use href="#icon-alert-triangle"/></svg></div></div>
              <div class="callout__content">
                <span class="callout__label">PIÈGE FRÉQUENT</span>
                <p>Synchroniser l'AD « tel quel » et importer 15 ans de dette (groupes obsolètes, comptes dormants). Faire le ménage <strong>avant</strong> ou <strong>pendant</strong>, pas « plus tard ».</p>
              </div>
            </aside>
            <div class="reveal-card">
              <button class="reveal-card__trigger" aria-controls="ade-cours2">
                <div class="icon-circle icon-circle--sm icon-circle--sky"><svg><use href="#icon-server"/></svg></div>
                <span class="reveal-card__title">Équivalent AD DS</span>
                <svg class="reveal-card__chevron" width="20" height="20"><use href="#icon-chevron-right"/></svg>
              </button>
              <div class="reveal-card__content" id="ade-cours2" role="region"><p>Groupes gérés sur le DC, appartenance manuelle. Aucune notion native de groupe dynamique par attribut.</p></div>
            </div>
          </div>

          <div class="content-block animate-on-scroll" data-section-id="s-cours-3">
            <h3>3. GPO → Intune</h3>
            <p>Reprendre le <strong>tableau de correspondance GPO ↔ Intune</strong> (module 06). Démarche :</p>
            <ol>
              <li><strong>Inventorier</strong> toutes les GPO (Group Policy Analytics mesure la couverture Intune).</li>
              <li><strong>Trier</strong> : garder l'utile, supprimer l'obsolète / redondant.</li>
              <li><strong>Prioriser</strong> : sécurité et conformité d'abord (BitLocker, mots de passe, pare-feu).</li>
              <li><strong>Rejouer</strong> en profils Intune (Settings Catalog, ADMX ingérés), par vagues.</li>
              <li><strong>Valider</strong> sur un pilote avant généralisation.</li>
            </ol>
          </div>

          <div class="content-block animate-on-scroll" data-section-id="s-cours-4">
            <h3>4. Partages de fichiers → SharePoint / OneDrive</h3>
            <ul>
              <li><strong>Données personnelles</strong> (lecteur <code>H:</code>) → <strong>OneDrive</strong>.</li>
              <li><strong>Partages d'équipe</strong> (lecteur <code>S:</code>) → <strong>SharePoint</strong> / <strong>Teams</strong>.</li>
              <li>Outils : <strong>SharePoint Migration Tool (SPMT)</strong>, <strong>Migration Manager</strong>.</li>
              <li>Repenser les <strong>permissions</strong> : ACL NTFS + groupes AD → <strong>permissions SharePoint</strong> + groupes M365 / sécurité.</li>
            </ul>
            <div class="ad-entra-grid">
              <div class="ad-entra-card ad-entra-card--ad">
                <div class="ad-entra-card__label"><svg width="14" height="14"><use href="#icon-server"/></svg> AD CLASSIQUE</div>
                <div class="ad-entra-card__body"><p>Partages SMB, ACL NTFS, GPP drive maps.</p></div>
              </div>
              <div class="ad-entra-card ad-entra-card--entra">
                <div class="ad-entra-card__label"><svg width="14" height="14"><use href="#icon-cloud"/></svg> M365</div>
                <div class="ad-entra-card__body"><p>SharePoint / OneDrive, permissions cloud, plus de mappage de lecteur.</p></div>
              </div>
              <div class="ad-entra-card ad-entra-card--danger">
                <div class="ad-entra-card__label"><svg width="14" height="14"><use href="#icon-alert-triangle"/></svg> PIÈGE</div>
                <div class="ad-entra-card__body"><p>Répliquer l'arborescence de partage 1:1 dans SharePoint. Repenser l'organisation (sites, bibliothèques), pas copier la structure de dossiers legacy.</p></div>
              </div>
            </div>
          </div>

          <div class="content-block animate-on-scroll" data-section-id="s-cours-5">
            <h3>5. Décommissionnement des DC</h3>
            <p>Un contrôleur de domaine ne s'éteint pas « quand on veut ». <strong>Conditions préalables</strong> :</p>
            <ul>
              <li>Plus <strong>aucun</strong> poste / serveur ne dépend de l'AD DS pour l'authentification.</li>
              <li>Plus <strong>aucune</strong> application n'utilise LDAP / Kerberos contre l'AD.</li>
              <li>Partages <strong>migrés</strong>, GPO <strong>rejouées</strong> en Intune, impressions / services migrés.</li>
              <li>Postes <strong>joints Entra</strong> + Intune (plus de jointure au domaine AD).</li>
              <li>La <strong>synchronisation</strong> n'est plus nécessaire (ou on bascule en cloud-only maîtrisé).</li>
            </ul>
            <p><strong>Étapes (après conditions remplies)</strong> :</p>
            <ol>
              <li>Arrêter la synchronisation (ou basculer la gestion des objets en cloud).</li>
              <li>Réduire progressivement les rôles du DC (période d'observation, DC « débranché » testable).</li>
              <li>Rétrograder proprement (<code>dcpromo</code> / suppression du rôle ADDS), transférer / retirer les rôles FSMO.</li>
              <li>Décommissionner DNS / DHCP internes si remplacés.</li>
            </ol>
            <aside class="callout callout--warning">
              <div class="callout__icon"><div class="icon-circle icon-circle--sm icon-circle--peach"><svg><use href="#icon-alert-triangle"/></svg></div></div>
              <div class="callout__content">
                <span class="callout__label">PIÈGE À ÉVITER</span>
                <p>Éteindre un DC « parce qu'on est dans le cloud maintenant » alors qu'une app ou un vieux poste en dépend encore. Toujours <strong>valider les conditions</strong> et garder une <strong>réversibilité</strong> (sauvegardes, période d'observation).</p>
              </div>
            </aside>

            <div class="quickquestion animate-on-scroll" data-id="qq-decommission">
              <div class="quickquestion__label"><svg width="14" height="14"><use href="#icon-sparkles"/></svg> Question rapide</div>
              <p class="quickquestion__question">Vous êtes tenté d'éteindre le DC dès que 90 % des postes sont joints Entra. Quel réflexe garder ?</p>
              <button class="btn btn--soft-violet quickquestion__btn" type="button">Voir la réponse</button>
              <div class="quickquestion__answer">
                <strong>Vérifier explicitement les 5 conditions et rester réversible.</strong>
                <p class="quickquestion__explanation">Les 10 % restants — souvent l'app LDAP oubliée, une imprimante réseau qui s'authentifie contre l'AD, un vieux serveur de sauvegarde — cassent la prod le jour de l'extinction. Débrancher physiquement (ou bloquer le réseau) le DC en test pendant 1-2 semaines, observer les incidents, puis rétrograder. Garder les sauvegardes et les rôles FSMO documentés : la réversibilité est le seul filet.</p>
              </div>
            </div>
          </div>

          <div class="content-block animate-on-scroll" data-section-id="s-cours-6">
            <h3>6. Plan de bascule type sur 6 mois</h3>
            <p>Planning indicatif pour une PME (~30 postes). Chaque mois = un incrément <strong>réversible</strong>.</p>
            <div class="table-wrapper">
              <table>
                <thead><tr><th>Mois</th><th>Objectifs</th><th>Livrables</th></tr></thead>
                <tbody>
                  <tr><td><strong>M1 · Cadrage &amp; socle</strong></td><td>Inventaire complet (AD, GPO, apps, partages, comptes). Créer / valider le tenant. Vérifier les domaines. Définir break-glass.</td><td>Cartographie des dépendances AD DS ; tenant prêt ; 2 comptes break-glass.</td></tr>
                  <tr><td><strong>M2 · Sync &amp; identités</strong></td><td>Déployer la synchronisation (Cloud Sync), PHS + Seamless SSO. Rationaliser les groupes (dynamiques).</td><td>Identités synchronisées ; groupes nettoyés ; SSO en place.</td></tr>
                  <tr><td><strong>M3 · Sécurité identité</strong></td><td>Déployer MFA, Conditional Access (report-only → On), PIM sur les rôles admin, Identity Protection (report-only).</td><td>Baseline CA active ; admins en PIM ; MFA généralisée.</td></tr>
                  <tr><td><strong>M4 · Postes (Intune)</strong></td><td>Enrôler un pilote Intune, rejouer les GPO prioritaires (Settings Catalog), conformité + CA « compliant device ». Autopilot sur nouveaux postes.</td><td>Pilote conforme ; GPO sécurité rejouées ; Autopilot opérationnel.</td></tr>
                  <tr><td><strong>M5 · Données &amp; apps</strong></td><td>Migrer partages → SharePoint / OneDrive (SPMT). Traiter les apps legacy (auth moderne ou plan de sortie). Généraliser Intune.</td><td>Partages migrés ; plan apps LDAP ; parc majoritairement Intune.</td></tr>
                  <tr><td><strong>M6 · Convergence &amp; décommission</strong></td><td>Vérifier les conditions de décommission. Débrancher le DC en test, observer, rétrograder. Supervision (logs, alertes). Bilan.</td><td>Dépendances AD DS levées ; DC décommissionné (ou planifié) ; supervision active.</td></tr>
                </tbody>
              </table>
            </div>

            <figure class="mermaid-container animate-on-scroll" data-mermaid-source='flowchart LR
  M1["M1<br>Cadrage<br>&amp; socle"] --> M2["M2<br>Sync<br>&amp; identités"]
  M2 --> M3["M3<br>Sécurité<br>identité"]
  M3 --> M4["M4<br>Postes<br>Intune"]
  M4 --> M5["M5<br>Données<br>&amp; apps"]
  M5 --> M6["M6<br>Convergence<br>décommission"]
  M6 --> Cible["Cloud-only<br>(si dépendances levées)"]
  classDef start fill:#A78BD9,color:#fff,stroke:#6B4FA0
  classDef step fill:#B8E0C8,stroke:#5DAA7A,color:#2C2438
  classDef final fill:#F5C7A9,stroke:#C88458,color:#2C2438
  class M1 start
  class M2,M3,M4,M5,M6 step
  class Cible final'>
              <div class="mermaid-render"><em class="text-muted">Chargement du schéma…</em></div>
              <figcaption class="mermaid-caption">Plan 6 mois — chaque étape est réversible : on peut s'arrêter en hybride sans casse.</figcaption>
            </figure>

            <aside class="callout callout--info">
              <div class="callout__icon"><div class="icon-circle icon-circle--sm icon-circle--sky"><svg><use href="#icon-info"/></svg></div></div>
              <div class="callout__content">
                <span class="callout__label">RÉVERSIBILITÉ</span>
                <p>À chaque mois, on peut <strong>s'arrêter</strong> et rester en hybride sans casse. Le cloud-only n'est atteint qu'au M6, une fois les dépendances réellement levées.</p>
              </div>
            </aside>
          </div>

          <div class="content-block animate-on-scroll" data-section-id="s-cours-sources">
            <h3>Sources Microsoft Learn</h3>
            <ul>
              <li><a href="https://learn.microsoft.com/entra/architecture/road-to-the-cloud-introduction" target="_blank" rel="noopener">Cloud-first / migration <svg width="12" height="12" style="display:inline"><use href="#icon-external-link"/></svg></a></li>
              <li><a href="https://learn.microsoft.com/entra/architecture/road-to-the-cloud-migrate" target="_blank" rel="noopener">Étapes vers le cloud (road to the cloud) <svg width="12" height="12" style="display:inline"><use href="#icon-external-link"/></svg></a></li>
              <li><a href="https://learn.microsoft.com/mem/intune/configuration/group-policy-analytics" target="_blank" rel="noopener">Group Policy Analytics <svg width="12" height="12" style="display:inline"><use href="#icon-external-link"/></svg></a></li>
              <li><a href="https://learn.microsoft.com/sharepointmigration/introducing-the-sharepoint-migration-tool" target="_blank" rel="noopener">SharePoint Migration Tool <svg width="12" height="12" style="display:inline"><use href="#icon-external-link"/></svg></a></li>
              <li><a href="https://learn.microsoft.com/entra/identity/hybrid/cloud-sync/what-is-cloud-sync" target="_blank" rel="noopener">Cloud Sync <svg width="12" height="12" style="display:inline"><use href="#icon-external-link"/></svg></a></li>
            </ul>
            <p class="text-muted" style="font-size:var(--fs-sm);margin-top:var(--space-3)"><em>Rappel : en cas d'écart entre ce support et le portail, le portail fait foi.</em></p>
          </div>
        </section>

        <!-- LAB -->
        <section class="module-section module-section--lab">
          <div class="section-header">
            <div class="icon-circle icon-circle--lg icon-circle--mint"><svg><use href="#icon-flask-conical"/></svg></div>
            <div class="section-header__content">
              <span class="section-header__label">LAB</span>
              <h2 class="section-header__title">Atelier de planification</h2>
              <p class="section-header__meta">2 parties · atelier ~2h · Papier + tenant dev</p>
            </div>
          </div>

          <aside class="callout callout--license animate-on-scroll">
            <div class="callout__icon"><div class="icon-circle icon-circle--sm icon-circle--lavender"><svg><use href="#icon-key-round"/></svg></div></div>
            <div class="callout__content">
              <span class="callout__label">SPÉCIFICITÉ DE CE MODULE</span>
              <p>Ce module est un <strong>atelier de planification</strong>, pas un lab technique classique. Toutes les briques (sync, CA, PIM, Intune, logs) ont été vues aux modules précédents. Ici, on <strong>assemble</strong>.</p>
              <p><strong>Licences en jeu :</strong> M365 E3 + Entra ID P2 (cible du projet). Aucune brique du plan ne requiert E5.</p>
            </div>
          </aside>

          <div class="content-block animate-on-scroll" data-section-id="s-lab-a">
            <h3>Partie A — Cartographier vos dépendances AD DS (60 min)</h3>
            <p>Sur un tableur (ou papier), listez pour votre organisation :</p>
            <ol>
              <li><strong>Postes joints AD</strong> — combien, quel OS, quelle vétusté.</li>
              <li><strong>Applications</strong> qui s'authentifient contre l'AD — LDAP, Kerberos, NTLM.</li>
              <li><strong>Services AD</strong> — DNS, DHCP, PKI, RADIUS interne.</li>
              <li><strong>Partages réseau</strong> — SMB, drive maps, sensibilité (RH, compta, projets).</li>
              <li><strong>GPO en vigueur</strong> — combien, dernière revue, doublons connus.</li>
              <li><strong>Comptes dormants</strong> — comptes n'ayant pas servi &gt; 90 jours.</li>
            </ol>
            <p>Pour chaque ligne, noter : <strong>quand cette dépendance peut-elle être levée ?</strong> C'est cette carte qui détermine si le cloud-only est atteignable en 6 mois ou 18 mois.</p>
          </div>

          <div class="content-block animate-on-scroll" data-section-id="s-lab-b">
            <h3>Partie B — Bâtir votre plan 6 mois (60 min)</h3>
            <p>À partir de la carte de dépendances de la partie A, remplissez votre propre plan M1-M6 en repartant du template de la section 6. Pour chaque mois :</p>
            <ul>
              <li>Adapter les <strong>objectifs</strong> à votre contexte (parc, apps, contraintes).</li>
              <li>Nommer un <strong>livrable vérifiable</strong>.</li>
              <li>Identifier le <strong>point de non-retour</strong> et la stratégie de rollback.</li>
              <li>Marquer les dépendances entre étapes (M4 « CA compliant device » suppose M3 CA + M4 Intune opérationnels).</li>
            </ul>
            <aside class="callout callout--info">
              <div class="callout__icon"><div class="icon-circle icon-circle--sm icon-circle--sky"><svg><use href="#icon-info"/></svg></div></div>
              <div class="callout__content">
                <span class="callout__label">RÉSULTAT ATTENDU</span>
                <ul style="margin:var(--space-2) 0 0">
                  <li>Une carte complète des dépendances AD DS de votre SI, avec date cible de levée pour chaque ligne.</li>
                  <li>Un plan 6 mois M1-M6 personnalisé, chaque mois avec objectif, livrable, réversibilité.</li>
                  <li>L'identification claire des chemins critiques (apps LDAP, dépendances Intune / CA).</li>
                  <li>La liste des conditions de décommission du DC, cochables en fin de projet.</li>
                </ul>
              </div>
            </aside>
          </div>
        </section>

        <!-- PIÈGES -->
        <section class="module-section module-section--pieges" data-section-id="s-pieges">
          <div class="section-header">
            <div class="icon-circle icon-circle--lg icon-circle--peach"><svg><use href="#icon-alert-triangle"/></svg></div>
            <div class="section-header__content">
              <span class="section-header__label">PIÈGES CLASSIQUES</span>
              <h2 class="section-header__title">5 pièges de projet migration</h2>
              <p class="section-header__meta">Lecture ~10 min</p>
            </div>
          </div>

          <aside class="callout callout--warning animate-on-scroll">
            <div class="callout__icon"><div class="icon-circle icon-circle--sm icon-circle--peach"><svg><use href="#icon-alert-triangle"/></svg></div></div>
            <div class="callout__content">
              <span class="callout__label">PIÈGE 1 — VISER LE « BIG BANG »</span>
              <p><strong>Le réflexe :</strong> tout basculer d'un coup, un week-end.</p>
              <p><strong>Pourquoi c'est faux :</strong> une bascule massive et irréversible maximise le risque et laisse peu de marge de retour arrière.</p>
              <p><strong>La bonne pratique :</strong> migration <strong>incrémentale et réversible</strong> (plan par vagues mensuelles), chaque étape validée sur un pilote avant généralisation.</p>
            </div>
          </aside>

          <aside class="callout callout--warning animate-on-scroll">
            <div class="callout__icon"><div class="icon-circle icon-circle--sm icon-circle--peach"><svg><use href="#icon-alert-triangle"/></svg></div></div>
            <div class="callout__content">
              <span class="callout__label">PIÈGE 2 — SYNCHRONISER 15 ANS DE DETTE AD « TEL QUEL »</span>
              <p><strong>Le réflexe :</strong> activer la sync et importer tout l'AD sans tri.</p>
              <p><strong>Pourquoi c'est faux :</strong> on propage groupes obsolètes, comptes dormants, permissions incohérentes. Le cloud hérite de la dette on-prem.</p>
              <p><strong>La bonne pratique :</strong> <strong>faire le ménage avant / pendant</strong> (désactiver les comptes dormants, rationaliser les groupes, passer aux groupes dynamiques). La migration est une occasion de nettoyage.</p>
            </div>
          </aside>

          <aside class="callout callout--warning animate-on-scroll">
            <div class="callout__icon"><div class="icon-circle icon-circle--sm icon-circle--peach"><svg><use href="#icon-alert-triangle"/></svg></div></div>
            <div class="callout__content">
              <span class="callout__label">PIÈGE 3 — SOUS-ESTIMER LES APPLICATIONS LEGACY</span>
              <p><strong>Le réflexe :</strong> « on migrera les apps LDAP à la fin, c'est un détail ».</p>
              <p><strong>Pourquoi c'est faux :</strong> les apps qui dépendent de LDAP / Kerberos sont le <strong>frein n°1</strong> au cloud-only. Elles bloquent le décommissionnement du DC.</p>
              <p><strong>La bonne pratique :</strong> <strong>inventorier tôt</strong> les apps liées à l'AD, décider pour chacune (réécriture auth moderne, remplacement, isolement), et traiter ce chantier en priorité — c'est le chemin critique.</p>
            </div>
          </aside>

          <aside class="callout callout--warning animate-on-scroll">
            <div class="callout__icon"><div class="icon-circle icon-circle--sm icon-circle--peach"><svg><use href="#icon-alert-triangle"/></svg></div></div>
            <div class="callout__content">
              <span class="callout__label">PIÈGE 4 — RÉPLIQUER L'ARBORESCENCE DE PARTAGES DANS SHAREPOINT</span>
              <p><strong>Le réflexe :</strong> recopier <code>S:\Service\Sous-dossier\...</code> à l'identique.</p>
              <p><strong>Pourquoi c'est faux :</strong> SharePoint fonctionne par <strong>sites</strong> et <strong>bibliothèques</strong>, avec un modèle de permissions différent des ACL NTFS. Copier la structure legacy crée une usine à gaz.</p>
              <p><strong>La bonne pratique :</strong> <strong>repenser</strong> l'organisation (un site par équipe, bibliothèques, métadonnées), migrer les permissions vers des groupes M365 / sécurité, utiliser SPMT.</p>
            </div>
          </aside>

          <aside class="callout callout--warning animate-on-scroll">
            <div class="callout__icon"><div class="icon-circle icon-circle--sm icon-circle--peach"><svg><use href="#icon-alert-triangle"/></svg></div></div>
            <div class="callout__content">
              <span class="callout__label">PIÈGE 5 — ÉTEINDRE UN DC TROP TÔT</span>
              <p><strong>Le réflexe :</strong> « on est dans le cloud, on coupe le DC ».</p>
              <p><strong>Pourquoi c'est faux :</strong> si un poste, un service (DNS / DHCP / impression) ou une app en dépend encore, l'extinction casse la production.</p>
              <p><strong>La bonne pratique :</strong> <strong>vérifier toutes les conditions</strong> de décommission, garder une <strong>période d'observation</strong> (DC débranché testable), des <strong>sauvegardes</strong>, et rétrograder proprement (rôles FSMO, suppression du rôle ADDS). Réversibilité jusqu'au dernier moment.</p>
            </div>
          </aside>
        </section>

        <!-- ÉVALUATION -->
        <section class="module-section module-section--eval" data-section-id="s-eval">
          <div class="section-header">
            <div class="icon-circle icon-circle--lg icon-circle--peach"><svg><use href="#icon-graduation-cap"/></svg></div>
            <div class="section-header__content">
              <span class="section-header__label">ÉVALUATION</span>
              <h2 class="section-header__title">Testez vos acquis</h2>
              <p class="section-header__meta">10 questions QCM · cas pratique · ~30 min</p>
            </div>
          </div>

          <div class="content-block animate-on-scroll" style="text-align:center;padding:var(--space-8)">
            <p style="font-size:var(--fs-lg);color:var(--text-secondary);margin-bottom:var(--space-3)">Une évaluation interactive qui vous donne le badge <strong>Acquis</strong> (≥60%) ou <strong>Maîtrisé</strong> (≥80%).</p>
            <div class="eval-status" style="max-width:400px;margin:0 auto var(--space-4)">Évaluation non tentée.</div>
            <button class="btn btn--primary btn--lg qcm-launcher" type="button">
              <svg width="18" height="18"><use href="#icon-sparkles"/></svg>
              Lancer l'évaluation
            </button>
          </div>

          <div class="caspratique animate-on-scroll" data-id="cp-08-cloud-only-6-mois">
            <h3 class="caspratique__title">
              <svg width="24" height="24"><use href="#icon-graduation-cap"/></svg>
              Cas pratique — Cloud-only dans 6 mois ?
            </h3>
            <div class="caspratique__statement">
              <p><strong>Contexte :</strong> votre PME veut être <strong>cloud-only dans 6 mois</strong>. Contraintes : 1 application interne authentifiée en LDAP contre l'AD, 3 partages réseau (dont un sensible), ~40 GPO, 30 postes joints au domaine.</p>
              <p><strong>Questions :</strong></p>
              <ol>
                <li>Est-ce réaliste en 6 mois ? Qu'est-ce qui conditionne la réponse ?</li>
                <li>Donnez la séquence des grandes étapes (dépendances entre elles).</li>
                <li>Que faites-vous de l'application LDAP ?</li>
                <li>Quelles conditions vérifiez-vous <strong>avant</strong> d'éteindre le DC ?</li>
              </ol>
            </div>
            <label class="caspratique__label" for="cp-textarea">Votre réponse :</label>
            <textarea id="cp-textarea" class="caspratique__textarea" placeholder="Rédigez votre démarche ici. Elle est sauvegardée automatiquement dans votre navigateur."></textarea>
            <div class="caspratique__actions">
              <button class="btn btn--soft-peach caspratique__reveal-btn" type="button">Voir la correction type</button>
              <button class="btn btn--ghost btn--sm caspratique__clear-btn" type="button">Effacer ma réponse</button>
            </div>
            <div class="caspratique__correction">
              <h4>Démarche attendue</h4>
              <ol>
                <li><strong>Réaliste seulement si l'app LDAP peut être traitée dans la fenêtre.</strong> Le cloud-only exige <strong>zéro dépendance AD DS</strong>. Si l'app LDAP ne peut être ni réécrite (auth moderne) ni remplacée en 6 mois, la cible réaliste est <strong>hybride</strong> à 6 mois, cloud-only ensuite. La migration des partages, GPO et postes est faisable en 6 mois ; l'app est le facteur limitant.</li>
                <li><strong>Séquence :</strong> socle &amp; inventaire (M1) → sync + identités + SSO (M2) → sécurité CA / PIM / MFA (M3) → postes Intune + rejeu GPO (M4) → migration partages + traitement app (M5) → convergence, vérification des conditions, décommission DC (M6). Les postes Intune (M4) précèdent le CA « compliant device » effectif ; le décommission (M6) suppose M2-M5 aboutis.</li>
                <li><strong>App LDAP :</strong> privilégier une <strong>réécriture vers une auth moderne</strong> (OIDC / SAML via Entra) ou un remplacement. Si impossible à court terme : la maintenir en <strong>hybride</strong> (l'AD reste pour elle), ou l'isoler sur une VM Azure (lift &amp; shift ciblé) le temps de la sortie. Elle <strong>empêche</strong> le décommission tant qu'elle en dépend.</li>
                <li><strong>Conditions avant extinction du DC :</strong> plus aucune app / poste ne s'authentifie contre l'AD ; partages migrés ; GPO rejouées en Intune ; postes <strong>joints Entra</strong> ; sync non nécessaire ou bascule cloud maîtrisée ; sauvegardes et <strong>période d'observation</strong> (DC débranché testable) pour garder la réversibilité.</li>
              </ol>
              <h4>Grille d'auto-évaluation</h4>
              <ul class="caspratique__checklist">
                <li><input type="checkbox" id="cp-1"> <label for="cp-1">A conditionné la faisabilité 6 mois au sort de l'<strong>app LDAP</strong></label></li>
                <li><input type="checkbox" id="cp-2"> <label for="cp-2">A donné une <strong>séquence M1-M6</strong> avec dépendances</label></li>
                <li><input type="checkbox" id="cp-3"> <label for="cp-3">A proposé <strong>auth moderne / remplacement / lift &amp; shift</strong> pour l'app LDAP</label></li>
                <li><input type="checkbox" id="cp-4"> <label for="cp-4">A listé les <strong>conditions</strong> de décommission du DC</label></li>
                <li><input type="checkbox" id="cp-5"> <label for="cp-5">A prévu une <strong>période d'observation</strong> (DC débranché testable)</label></li>
                <li><input type="checkbox" id="cp-6"> <label for="cp-6">A évoqué <strong>sauvegardes</strong> et <strong>rôles FSMO</strong></label></li>
                <li><input type="checkbox" id="cp-7"> <label for="cp-7">A gardé l'option <strong>hybride</strong> comme cible réaliste si l'app bloque</label></li>
              </ul>
            </div>
          </div>
        </section>
      </article>

      <aside class="module-sidebar-right" aria-label="Progression et sommaire">
        <div class="module-progress-card">
          <div class="module-progress-card__title">Ma progression</div>
          <div class="progress-donut progress-donut--module" data-value="0">
            <svg viewBox="0 0 120 120">
              <circle class="progress-donut__track" cx="60" cy="60" r="50"/>
              <circle class="progress-donut__fill" cx="60" cy="60" r="50" stroke-dasharray="314" stroke-dashoffset="314"/>
            </svg>
            <div class="progress-donut__label">
              <span class="progress-donut__value">0</span>
              <span class="progress-donut__unit">%</span>
            </div>
          </div>
          <div class="module-progress-card__stats">
            <div><strong class="module-progress-card__count">0 / 12</strong><br><span>sections lues</span></div>
          </div>
        </div>

        <nav class="module-toc" aria-label="Sommaire du module">
          <div class="module-toc__title">Sommaire</div>
          <ul class="module-toc__list">
            <li class="module-toc__item"><a class="module-toc__link" href="#s-objectifs" data-target="s-objectifs">Objectifs</a></li>
            <li class="module-toc__item"><a class="module-toc__link" href="#s-cours-1" data-target="s-cours-1">1. Trois stratégies</a></li>
            <li class="module-toc__item"><a class="module-toc__link" href="#s-cours-2" data-target="s-cours-2">2. Identités &amp; groupes</a></li>
            <li class="module-toc__item"><a class="module-toc__link" href="#s-cours-3" data-target="s-cours-3">3. GPO → Intune</a></li>
            <li class="module-toc__item"><a class="module-toc__link" href="#s-cours-4" data-target="s-cours-4">4. Partages → SharePoint</a></li>
            <li class="module-toc__item"><a class="module-toc__link" href="#s-cours-5" data-target="s-cours-5">5. Décommission des DC</a></li>
            <li class="module-toc__item"><a class="module-toc__link" href="#s-cours-6" data-target="s-cours-6">6. Plan 6 mois</a></li>
            <li class="module-toc__item"><a class="module-toc__link" href="#s-cours-sources" data-target="s-cours-sources">Sources</a></li>
            <li class="module-toc__item"><a class="module-toc__link" href="#s-lab-a" data-target="s-lab-a">Lab · Cartographie</a></li>
            <li class="module-toc__item"><a class="module-toc__link" href="#s-lab-b" data-target="s-lab-b">Lab · Plan personnel</a></li>
            <li class="module-toc__item"><a class="module-toc__link" href="#s-pieges" data-target="s-pieges">Pièges classiques</a></li>
            <li class="module-toc__item"><a class="module-toc__link" href="#s-eval" data-target="s-eval">Évaluation</a></li>
          </ul>
        </nav>

        <div class="module-actions">
          <button class="btn btn--primary btn--full qcm-launcher" type="button">
            <svg width="16" height="16"><use href="#icon-sparkles"/></svg>
            Passer l'évaluation
          </button>
          <a class="btn btn--ghost btn--full" href="javascript:void(0)" onclick="if(window.ScormAPI){ScormAPI.terminate();}try{window.parent.location.reload();}catch(e){alert('Retournez sur Moodle pour le module suivant.');}return false;">
            <svg width="16" height="16"><use href="#icon-arrow-left"/></svg>
            Module précédent
          </a>
          <a class="btn btn--soft-violet btn--full" href="javascript:void(0)" onclick="if(window.ScormAPI){ScormAPI.terminate();}try{window.parent.location.reload();}catch(e){alert('Retournez sur Moodle pour le module suivant.');}return false;">
            Module suivant
            <svg width="16" height="16"><use href="#icon-arrow-right"/></svg>
          </a>
        </div>
      </aside>
    </div>
  </main>

  <footer class="site-footer">
    <div class="site-footer__brand">
      <img src="assets/atoo-next-logo.svg" alt="Atoo Next">
      <span class="site-footer__tag">La connexion commence ici</span>
    </div>
    <div>Module 08 · Formation Microsoft Entra ID</div>
  </footer>

  <div class="modal-overlay" id="qcm-modal" role="dialog" aria-modal="true" aria-labelledby="qcm-modal-title">
    <div class="modal" tabindex="-1">
      <header class="modal__header">
        <h2 id="qcm-modal-title" style="margin:0;font-size:var(--fs-xl)">Évaluation — Migration AD → Entra</h2>
        <button class="modal__close" aria-label="Fermer"><svg><use href="#icon-x"/></svg></button>
      </header>
      <div class="modal__body"></div>
      <footer class="modal__footer"></footer>
    </div>
  </div>

  <script>window.__SCORM_CONTEXT__ = true;</script>
  <script>
    window.MODULE_ID = '08-migration-ad-vers-entra';
    window.MODULE_NUM = '08';
    window.MODULE_STORAGE_KEY = 'formation-entra:module-08';
    window.MODULE_TITLE = 'Migration AD → Entra';

    window.QCM_DATA = {
      module: '08-migration-ad-vers-entra',
      titre: 'Évaluation — Migration AD → Entra',
      seuils: { acquis: 60, maitrise: 80 },
      questions: [
        { id: 'q1', type: 'single', enonce: 'Quelle stratégie convient le mieux à une PME encore dépendante de quelques apps legacy, qui veut avancer sans big bang ?', reference_cours: 'Section 1',
          choix: [
            { id: 'a', texte: 'Cloud-only immédiat', correct: false, feedback_si_choisi: 'Le cloud-only exige zéro dépendance AD DS — impossible si des apps legacy en dépendent encore.' },
            { id: 'b', texte: 'Hybride progressif', correct: true },
            { id: 'c', texte: 'Lift & shift pur', correct: false, feedback_si_choisi: 'Le lift & shift reporte la dette sur des VM Azure sans transformer — utile en dernier recours, pas en cible.' },
            { id: 'd', texte: 'Ne rien faire', correct: false, feedback_si_choisi: 'L\'immobilisme maintient la double surface AD + Entra et laisse la dette s\'accumuler.' }
          ],
          explication: 'Hybride progressif : synchronisation en place, bascule service par service, réduction progressive de l\'AD. Réversible, maîtrisé — la trajectoire adaptée à la majorité des PME.'
        },
        { id: 'q2', type: 'single', enonce: 'Le frein n°1 au cloud-only est le plus souvent :', reference_cours: 'Section 5 + Piège 3',
          choix: [
            { id: 'a', texte: 'La couleur des portails', correct: false, feedback_si_choisi: 'Sans commentaire — ce n\'est pas un frein technique.' },
            { id: 'b', texte: 'Les applications legacy (LDAP / Kerberos) et les dépendances AD DS résiduelles', correct: true },
            { id: 'c', texte: 'Le nombre de licences', correct: false, feedback_si_choisi: 'Les licences sont un sujet mais rarement un frein bloquant à la migration elle-même.' },
            { id: 'd', texte: 'Le DNS public', correct: false, feedback_si_choisi: 'Le DNS public est un sujet de vérification de domaine (M1), pas un frein persistant.' }
          ],
          explication: 'Une app LDAP qui refuse d\'être réécrite = un DC qui reste. Le chemin critique du cloud-only, c\'est le traitement des dépendances applicatives.'
        },
        { id: 'q3', type: 'single', enonce: 'Pendant la migration des groupes, quelle bonne pratique ?', reference_cours: 'Section 2 + Piège 2',
          choix: [
            { id: 'a', texte: 'Tout synchroniser tel quel', correct: false, feedback_si_choisi: 'C\'est importer 15 ans de dette dans le cloud — piège classique.' },
            { id: 'b', texte: 'Rationaliser (groupes dynamiques, suppression des groupes morts)', correct: true },
            { id: 'c', texte: 'Supprimer tous les groupes', correct: false, feedback_si_choisi: 'Trop brutal : on casse les accès légitimes.' },
            { id: 'd', texte: 'Créer un groupe par utilisateur', correct: false, feedback_si_choisi: 'Anti-pattern : les groupes sont là pour regrouper, pas pour recréer les comptes.' }
          ],
          explication: 'La migration est l\'occasion de nettoyer. Passer à des groupes dynamiques (attributs) élimine la maintenance manuelle. Le tri des groupes morts se fait avant ou pendant la sync, pas plus tard.'
        },
        { id: 'q4', type: 'single', enonce: 'Le lecteur personnel `H:` migre vers :', reference_cours: 'Section 4',
          choix: [
            { id: 'a', texte: 'SharePoint d\'équipe', correct: false, feedback_si_choisi: 'SharePoint est adapté aux partages d\'équipe (S:), pas aux données personnelles.' },
            { id: 'b', texte: 'OneDrive', correct: true },
            { id: 'c', texte: 'Un DC', correct: false, feedback_si_choisi: 'Le DC est justement ce qu\'on cherche à décommissionner.' },
            { id: 'd', texte: 'Une GPO', correct: false, feedback_si_choisi: 'Une GPO ne stocke pas de fichiers utilisateur.' }
          ],
          explication: 'Données personnelles → OneDrive ; partages d\'équipe → SharePoint / Teams. Le mappage de lecteur SMB disparaît au profit du client OneDrive et des sites collaboratifs.'
        },
        { id: 'q5', type: 'single', enonce: 'Avant de décommissionner un DC, quelle condition est **indispensable** ?', reference_cours: 'Section 5 + Piège 5',
          choix: [
            { id: 'a', texte: 'Avoir acheté E5', correct: false, feedback_si_choisi: 'E5 n\'est pas requis pour décommissionner un DC — c\'est une question de dépendances, pas de licence.' },
            { id: 'b', texte: 'Plus aucune app / poste ne dépend de l\'AD DS pour l\'authentification', correct: true },
            { id: 'c', texte: 'Avoir supprimé tous les utilisateurs', correct: false, feedback_si_choisi: 'Absurde : les utilisateurs restent, ce sont eux qui basculent en cloud-only.' },
            { id: 'd', texte: 'Désactiver la MFA', correct: false, feedback_si_choisi: 'On ne désactive jamais la MFA — c\'est l\'inverse de la trajectoire Zero Trust.' }
          ],
          explication: 'La condition sine qua non : zéro dépendance restante. Tant qu\'un poste ou une app s\'authentifie contre l\'AD, éteindre le DC casse la prod.'
        },
        { id: 'q6', type: 'single', enonce: 'Migrer les partages « 1:1 » dans SharePoint est :', reference_cours: 'Section 4 + Piège 4',
          choix: [
            { id: 'a', texte: 'Recommandé', correct: false, feedback_si_choisi: 'Non — c\'est le piège classique qui crée une usine à gaz SharePoint.' },
            { id: 'b', texte: 'À éviter : repenser l\'organisation (sites / bibliothèques) plutôt que copier l\'arborescence', correct: true },
            { id: 'c', texte: 'Impossible', correct: false, feedback_si_choisi: 'C\'est techniquement possible avec SPMT — c\'est fonctionnellement mauvais.' },
            { id: 'd', texte: 'Obligatoire', correct: false, feedback_si_choisi: 'Rien ne l\'oblige, et c\'est même déconseillé.' }
          ],
          explication: 'SharePoint fonctionne par sites, bibliothèques et métadonnées, avec un modèle de permissions différent des ACL NTFS. Repenser l\'organisation évite de recréer 20 niveaux de dossiers imbriqués.'
        },
        { id: 'q7', type: 'single', enonce: 'Quel outil aide à mesurer la couverture Intune des GPO existantes ?', reference_cours: 'Section 3',
          choix: [
            { id: 'a', texte: 'Group Policy Analytics', correct: true },
            { id: 'b', texte: 'dcpromo', correct: false, feedback_si_choisi: '`dcpromo` sert à promouvoir / rétrograder un DC, pas à analyser des GPO.' },
            { id: 'c', texte: 'SPMT', correct: false, feedback_si_choisi: 'SPMT est un outil de migration de partages vers SharePoint.' },
            { id: 'd', texte: 'What If', correct: false, feedback_si_choisi: 'What If est un outil de simulation de politiques Conditional Access (module 04).' }
          ],
          explication: 'Group Policy Analytics : outil Intune qui importe vos GPO existantes et mesure quels paramètres sont couverts par les profils Intune modernes. Support majeur pour prioriser la migration.'
        },
        { id: 'q8', type: 'single', enonce: 'Dans le plan 6 mois proposé, à quel moment déploie-t-on la baseline Conditional Access et PIM ?', reference_cours: 'Section 6',
          choix: [
            { id: 'a', texte: 'M1', correct: false, feedback_si_choisi: 'M1 = cadrage et socle : trop tôt pour activer CA sans avoir la sync et les identités en place.' },
            { id: 'b', texte: 'M3 (sécurité identité)', correct: true },
            { id: 'c', texte: 'M6', correct: false, feedback_si_choisi: 'M6 = convergence et décommission : trop tard, les postes doivent déjà être protégés par CA au M4-M5.' },
            { id: 'd', texte: 'Jamais', correct: false, feedback_si_choisi: 'CA et PIM sont au cœur de la stratégie Entra — indispensables.' }
          ],
          explication: 'M3 « Sécurité identité » : la sync est faite (M2), les identités sont là, on peut protéger. Attendre M4-M6 exposerait les identités pendant plusieurs mois.'
        },
        { id: 'q9', type: 'single', enonce: 'Quelle propriété du plan de bascule proposé le rend prudent ?', reference_cours: 'Section 6 + Piège 1',
          choix: [
            { id: 'a', texte: 'Il est irréversible', correct: false, feedback_si_choisi: 'L\'irréversibilité est l\'opposé de la prudence — c\'est la définition du big bang.' },
            { id: 'b', texte: 'Chaque étape est réversible : on peut s\'arrêter en hybride sans casse', correct: true },
            { id: 'c', texte: 'Il se fait en un week-end', correct: false, feedback_si_choisi: 'C\'est justement le piège du big bang.' },
            { id: 'd', texte: 'Il supprime l\'AD dès M1', correct: false, feedback_si_choisi: 'L\'AD ne peut être supprimé qu\'après M6 (conditions remplies).' }
          ],
          explication: 'Réversibilité à chaque étape : si un obstacle apparaît (app LDAP qui ne se laisse pas migrer, résistance métier), on s\'arrête à hybride sans casse. C\'est la garantie majeure du plan.'
        },
        { id: 'q10', type: 'single', enonce: 'Pendant la transition, comment compenser l\'absence de Defender for Identity (E3+P2) ?', reference_cours: 'Section 5 + Module 07',
          choix: [
            { id: 'a', texte: 'On ne peut pas', correct: false, feedback_si_choisi: 'Il existe une alternative valable via Identity Protection et les logs Entra.' },
            { id: 'b', texte: 'Identity Protection + sign-in / audit logs Entra', correct: true },
            { id: 'c', texte: 'En achetant un DC', correct: false, feedback_si_choisi: 'Ajouter un DC augmente la surface d\'attaque, pas la détection.' },
            { id: 'd', texte: 'Avec une GPO', correct: false, feedback_si_choisi: 'Les GPO ne détectent rien — elles configurent.' }
          ],
          explication: 'Identity Protection (P2) apporte la détection basée risque côté cloud. Combiné aux sign-in / audit logs Entra (module 09), il couvre l\'essentiel sans exiger E5 / MDI. La réduction progressive de l\'AD DS réduit d\'autant le besoin de MDI.'
        }
      ]
    };
  </script>
  <script src="assets/shared.js"></script>

  <script src="scorm2004-api.js"></script>
  <script src="scorm-bridge.js"></script>
</body>
</html>
