<!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 01 — Fondamentaux · Formation Entra ID · Atoo Next</title>
  <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-layers" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 2 7 12 12 22 7 12 2"/><polyline points="2 17 12 22 22 17"/><polyline points="2 12 12 17 22 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-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-star" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"/></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"/></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-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-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-clock" 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 6 12 12 16 14"/></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>
  </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--sky">
            <span class="module-header__number-huge">01</span>
            <div class="module-header__icon-large"><svg><use href="#icon-layers"/></svg></div>
          </div>
          <div class="module-header__meta">
            <span class="module-header__label">MODULE 01 · COURS</span>
            <h1 class="module-header__title">Fondamentaux</h1>
            <p class="module-header__subtitle">AD DS vs Entra ID, tenant, licences, écosystème M365.</p>
            <div class="module-header__stats">
              <div class="stat-mini"><span class="stat-mini__value">4h</span><span class="stat-mini__label">durée</span></div>
              <div class="stat-mini"><span class="stat-mini__value">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>

        <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>Distinguer</strong> AD DS et Entra ID sans les confondre : protocoles, structure, périmètre, ce que fait chacun.</span></li>
            <li class="task-list__item"><span><strong>Expliquer</strong> le modèle de tenant Entra et le rôle des domaines vérifiés (<code>onmicrosoft.com</code> + domaine custom).</span></li>
            <li class="task-list__item"><span><strong>Situer</strong> les briques de l'écosystème M365 et leur lien avec l'identité.</span></li>
            <li class="task-list__item"><span><strong>Identifier</strong> ce que débloquent les licences (E3 vs E5, Entra ID Free/P1/P2) et vérifier les licences d'un tenant.</span></li>
            <li class="task-list__item"><span><strong>Naviguer</strong> dans les 4 portails (entra / admin / intune / azure) et savoir lequel utiliser pour quelle tâche.</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>Notion d'annuaire, d'utilisateurs et de groupes</td><td>« OU = conteneur de stratégie » (pas d'OU ni de GPO dans Entra)</td></tr>
              <tr><td>Rigueur sur les comptes à privilèges</td><td>« J'administre depuis un DC / RSAT » — ici portails web + Graph</td></tr>
              <tr><td>Logique DNS (les domaines vérifiés en dépendent)</td><td>« Kerberos/NTLM partout » — ici OAuth 2.0 / OIDC / SAML</td></tr>
            </tbody></table></div>
          </div>
        </section>

        <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">AD DS vs Entra ID · Tenant · Licences · Portails</h2>
              <p class="section-header__meta">5 sections · lecture ~40 min</p>
            </div>
          </div>

          <div class="content-block animate-on-scroll" data-section-id="s-cours-1">
            <h3>1. AD DS vs Entra ID : ce n'est PAS la même chose</h3>
            <div class="section-hook">
              <span class="section-hook__label">Contexte</span>
              Un collègue vous dit « Entra ID c'est notre AD dans le cloud, avec quelques différences ». C'est l'erreur fondatrice — Entra n'est <strong>pas</strong> un contrôleur de domaine distant. C'est un fournisseur d'identité (IdP) parlant OAuth 2.0, OpenID Connect et SAML, pas LDAP ni Kerberos. Tout le module part de là.
            </div>
            <h4>Le tableau comparatif (à connaître par cœur)</h4>
            <div class="table-wrapper"><table><thead><tr><th>Critère</th><th>AD DS (on-premise)</th><th>Entra ID (cloud)</th></tr></thead><tbody>
              <tr><td>Nature</td><td>Service d'annuaire sur DC</td><td>Fournisseur d'identité SaaS multi-tenant</td></tr>
              <tr><td>Protocoles</td><td>LDAP, Kerberos, NTLM</td><td>OAuth 2.0, OpenID Connect, SAML 2.0, WS-Fed, SCIM</td></tr>
              <tr><td>Structure</td><td>Forêt → domaines → OU (hiérarchie)</td><td>Tenant plat : pas d'OU, pas de hiérarchie</td></tr>
              <tr><td>Regroupement</td><td>OU + GPO liées</td><td>Groupes + politiques ciblées (CA, Intune)</td></tr>
              <tr><td>Gestion des postes</td><td>GPO (push au login)</td><td>Intune / MDM (pull au check-in)</td></tr>
              <tr><td>Authentification</td><td>Ticket Kerberos / NTLM sur le réseau</td><td>Jeton OAuth/OIDC sur HTTPS, depuis partout</td></tr>
              <tr><td>Administration</td><td>RSAT, dsa.msc, GPMC</td><td>Portails web + Microsoft Graph (API/PowerShell)</td></tr>
              <tr><td>Requêtes</td><td><code>Get-ADUser</code> (ActiveDirectory)</td><td><code>Get-MgUser</code> (Microsoft.Graph)</td></tr>
              <tr><td>Périmètre réseau</td><td>LAN / VPN (ligne vers un DC)</td><td>Internet (identité = nouveau périmètre)</td></tr>
              <tr><td>Contrôle d'accès conditionnel</td><td>Inexistant nativement</td><td>Conditional Access (cœur du modèle)</td></tr>
            </tbody></table></div>
            <h4>Les 3 idées à retenir</h4>
            <ol>
              <li><strong>Structure plate.</strong> Il n'y a pas d'OU dans Entra. On cible avec des <strong>groupes</strong> (assignés ou dynamiques), pas avec une arborescence.</li>
              <li><strong>L'identité est le périmètre.</strong> En AD, le réseau protège. En Entra, la protection se fait par <strong>Conditional Access</strong> (module 04), pas par un pare-feu.</li>
              <li><strong>On administre par API.</strong> Le portail est pratique, mais l'outil de fond est <strong>Microsoft Graph</strong> — l'équivalent conceptuel de <code>Get-ADUser</code> / ADSI en REST.</li>
            </ol>
            <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>Vous liez une GPO à l'OU <code>Comptabilité</code>.</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> ENTRA / INTUNE</div><div class="ad-entra-card__body"><p>Vous ciblez un groupe <code>grp-comptabilite</code> avec une politique CA et/ou un profil Intune.</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>Créer une « OU » dans Entra. Ça n'existe pas. Les <strong>unités administratives</strong> servent à <strong>déléguer l'admin</strong>, pas à appliquer de la configuration.</p></div></div>
            </div>
            <div class="reveal-card">
              <button class="reveal-card__trigger" aria-controls="ade-1"><div class="icon-circle icon-circle--sm icon-circle--sky"><svg><use href="#icon-info"/></svg></div><span class="reveal-card__title">Et « Entra Domain Services » alors ?</span><svg class="reveal-card__chevron" width="20" height="20"><use href="#icon-chevron-right"/></svg></button>
              <div class="reveal-card__content" id="ade-1" role="region"><p><strong>Microsoft Entra Domain Services</strong> (anciennement Azure AD DS) est un service <strong>séparé</strong> qui fournit un vrai domaine géré (LDAP/Kerberos/GPO) dans Azure, pour des applications legacy. <strong>Ce n'est pas Entra ID.</strong> On ne le traite pas ici : la cible est cloud-first. À retenir seulement pour ne pas confondre : AD DS ≠ Entra ID ≠ Entra Domain Services.</p></div>
            </div>
          </div>

          <div class="content-block animate-on-scroll" data-section-id="s-cours-2">
            <h3>2. Le modèle de tenant</h3>
            <p>Un <strong>tenant</strong> est une instance dédiée d'Entra ID pour une organisation. C'est la <strong>frontière d'identité</strong> : un annuaire, ses utilisateurs, ses groupes, ses apps, ses politiques.</p>
            <ul>
              <li>Créé automatiquement avec le premier abonnement M365/Azure.</li>
              <li>Identifié par un <strong>Tenant ID</strong> (GUID) et un domaine initial <code>xxxxx.onmicrosoft.com</code>.</li>
              <li><strong>1 organisation = 1 tenant</strong> en règle générale.</li>
            </ul>
            <h4>Domaines vérifiés</h4>
            <p>Au départ le tenant n'a que <code>contoso.onmicrosoft.com</code>. Pour utiliser <code>@contoso.fr</code>, il faut <strong>ajouter puis vérifier</strong> le domaine :</p>
            <ol>
              <li>Ajouter le domaine dans le portail.</li>
              <li>Microsoft fournit un <strong>enregistrement DNS TXT</strong> (ou MX).</li>
              <li>Vous le publiez dans votre zone DNS publique.</li>
              <li>Microsoft vérifie que vous contrôlez le domaine → utilisable pour les UPN et adresses mail.</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 FRÉQUENT</span>
                <p>Confondre le domaine DNS interne AD (<code>contoso.local</code>, non routable) avec le domaine public vérifié dans Entra (<code>contoso.fr</code>). Un <code>.local</code> ne peut pas être vérifié.</p>
              </div>
            </aside>
          </div>

          <div class="content-block animate-on-scroll" data-section-id="s-cours-3">
            <h3>3. Licences M365 / Entra</h3>
            <div class="section-hook">
              <span class="section-hook__label">À retenir</span>
              Deux couches distinctes, souvent confondues. Les licences <strong>M365</strong> (E3, E5…) sont des <strong>bundles</strong> qui incluent Exchange, SharePoint, Teams, + un niveau d'Entra. Les plans <strong>Entra ID</strong> eux-mêmes sont <strong>Free / P1 / P2</strong>, facturés par utilisateur.
            </div>
            <h4>Ce que débloque chaque plan Entra ID</h4>
            <div class="table-wrapper"><table><thead><tr><th>Fonctionnalité</th><th>Free</th><th>P1</th><th>P2</th></tr></thead><tbody>
              <tr><td>Utilisateurs, groupes, SSO apps SaaS</td><td>✅</td><td>✅</td><td>✅</td></tr>
              <tr><td>MFA de base (security defaults)</td><td>✅</td><td>✅</td><td>✅</td></tr>
              <tr><td><strong>Conditional Access</strong></td><td>❌</td><td>✅</td><td>✅</td></tr>
              <tr><td>Groupes dynamiques, SSPR cloud</td><td>❌</td><td>✅</td><td>✅</td></tr>
              <tr><td><strong>Identity Protection</strong> (risk-based)</td><td>❌</td><td>❌</td><td>✅</td></tr>
              <tr><td><strong>PIM</strong> (Privileged Identity Management)</td><td>❌</td><td>❌</td><td>✅</td></tr>
              <tr><td><strong>Access Reviews</strong>, Entitlement Management</td><td>❌</td><td>❌</td><td>✅</td></tr>
            </tbody></table></div>
            <aside class="callout callout--license">
              <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">POSITIONNEMENT DE LA FORMATION</span>
                <p><strong>Cible production : M365 E3 + Entra ID P2.</strong> Donc CA, PIM, Identity Protection, Access Reviews sont disponibles. <strong>Tenant de test : E5 dev</strong> — surdimensionné. Certaines features testées en E5 (Defender for Identity, Sentinel) ne sont <strong>pas</strong> dans E3+P2 — d'où l'encart licences en tête de chaque lab.</p>
              </div>
            </aside>
            <div class="quickquestion animate-on-scroll" data-id="qq-01-p2">
              <div class="quickquestion__label"><svg width="14" height="14"><use href="#icon-sparkles"/></svg> Question rapide</div>
              <p class="quickquestion__question">D'après ce que nous venons de voir, la fonctionnalité <strong>PIM</strong> nécessite-t-elle Entra ID P1 ou P2 ?</p>
              <button class="btn btn--soft-violet quickquestion__btn" type="button">Voir la réponse</button>
              <div class="quickquestion__answer">
                <strong>P2.</strong>
                <p class="quickquestion__explanation">PIM, Identity Protection et Access Reviews sont trois fonctionnalités <strong>P2</strong>. Conditional Access, lui, est disponible dès <strong>P1</strong>. La cible E3 + Entra ID P2 débloque tout ce dont la formation a besoin en prod.</p>
              </div>
            </div>
          </div>

          <div class="content-block animate-on-scroll" data-section-id="s-cours-4">
            <h3>4. L'écosystème Microsoft 365</h3>
            <p>Entra ID est le <strong>socle d'identité</strong>. Les autres briques s'appuient dessus :</p>
            <div class="table-wrapper"><table><thead><tr><th>Brique</th><th>Rôle</th><th>Lien avec Entra</th></tr></thead><tbody>
              <tr><td><strong>Entra ID</strong></td><td>Identité : users, groupes, auth, CA, PIM</td><td>Le socle</td></tr>
              <tr><td><strong>Intune</strong></td><td>Gestion des postes/mobiles (MDM/MAM)</td><td>Conformité d'appareil consommée par CA</td></tr>
              <tr><td><strong>Defender (XDR)</strong></td><td>Sécurité : endpoint, identité, mail, cloud apps</td><td>Signaux de risque remontés à IP</td></tr>
              <tr><td><strong>Purview</strong></td><td>Conformité, DLP, rétention</td><td>Étiquettes de sensibilité liées aux identités</td></tr>
              <tr><td><strong>Exchange Online</strong></td><td>Messagerie</td><td>Boîtes liées aux comptes Entra</td></tr>
              <tr><td><strong>SharePoint / OneDrive</strong></td><td>Fichiers, intranet</td><td>Cible de migration des partages (module 08)</td></tr>
              <tr><td><strong>Teams</strong></td><td>Collaboration</td><td>S'appuie sur M365 Groups + SharePoint</td></tr>
            </tbody></table></div>
            <p><strong>Idée clé :</strong> tout tourne autour de l'identité Entra. Un utilisateur, ses licences, ses groupes déterminent ses accès à Exchange, SharePoint, Teams, et les politiques de sécurité qui s'appliquent à lui.</p>
          </div>

          <div class="content-block animate-on-scroll" data-section-id="s-cours-5">
            <h3>5. Les 4 portails</h3>
            <div class="table-wrapper"><table><thead><tr><th>Portail</th><th>URL</th><th>On y fait quoi</th></tr></thead><tbody>
              <tr><td><strong>Entra admin center</strong></td><td><code>entra.microsoft.com</code></td><td>Users, groupes, rôles, <strong>CA</strong>, <strong>PIM</strong>, Identity Protection, apps</td></tr>
              <tr><td><strong>Microsoft 365 admin</strong></td><td><code>admin.microsoft.com</code></td><td>Licences, users métier, <strong>domaines</strong>, Exchange/SharePoint/Teams</td></tr>
              <tr><td><strong>Intune admin center</strong></td><td><code>intune.microsoft.com</code></td><td>Enrôlement, <strong>conformité</strong>, profils de config (ex-GPO), apps, Autopilot</td></tr>
              <tr><td><strong>Azure portal</strong></td><td><code>portal.azure.com</code></td><td>Abonnements Azure, <strong>RBAC Azure</strong>, Log Analytics / Sentinel, ressources</td></tr>
            </tbody></table></div>
            <ul>
              <li>Beaucoup de tâches d'identité existent à la fois dans <code>admin.microsoft.com</code> et <code>entra.microsoft.com</code>. Pour tout ce qui est <strong>sécurité/identité avancée</strong> (CA, PIM, IP), utilisez <strong>entra.microsoft.com</strong>.</li>
              <li><strong>Rôles Entra</strong> (annuaire) se gèrent dans Entra ; <strong>rôles RBAC Azure</strong> (ressources) se gèrent dans le portail Azure. Deux systèmes différents — détaillé au module 02.</li>
            </ul>
            <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</span>
                <p>Chercher les stratégies de sécurité dans <code>admin.microsoft.com</code>. Le CA, le PIM et l'Identity Protection sont dans <strong>entra.microsoft.com</strong>.</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/fundamentals/compare" target="_blank" rel="noopener">Comparaison AD DS / Entra ID <svg width="12" height="12" style="display:inline"><use href="#icon-external-link"/></svg></a></li>
              <li><a href="https://learn.microsoft.com/entra/fundamentals/whatis" target="_blank" rel="noopener">Qu'est-ce qu'Entra ID <svg width="12" height="12" style="display:inline"><use href="#icon-external-link"/></svg></a></li>
              <li><a href="https://learn.microsoft.com/entra/fundamentals/add-custom-domain" target="_blank" rel="noopener">Tenant & domaines <svg width="12" height="12" style="display:inline"><use href="#icon-external-link"/></svg></a></li>
              <li><a href="https://learn.microsoft.com/entra/fundamentals/licensing" target="_blank" rel="noopener">Plans et licences Entra <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>

        <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">Explorer un tenant et ses licences</h2>
              <p class="section-header__meta">3 parties · TP guidé ~2h · Portails : entra + admin.microsoft.com</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">LICENCES REQUISES EN PRODUCTION</span>
              <p><strong>✅ Inclus dans M365 E3 + Entra ID P2 :</strong> exploration de l'annuaire, gestion des domaines, licences (SKU), PowerShell Microsoft.Graph.</p>
              <p><strong>⚠️ Nécessite E5 / add-on :</strong> — Néant (aucune feature E5 utilisée dans ce lab).</p>
              <p><strong>🔬 Démo uniquement (tenant dev) :</strong> le tenant dev est E5 ; on n'y touche à aucune feature spécifique E5.</p>
            </div>
          </aside>

          <div class="content-block animate-on-scroll" data-section-id="s-lab-a">
            <h3>Partie A — Exploration au portail (30 min)</h3>
            <h4>1. Identifier le tenant</h4>
            <p><strong>Portail :</strong> <code>entra.microsoft.com &gt; Overview</code></p>
            <p>Notez le Tenant ID, le nom d'organisation et le domaine initial <code>xxxxx.onmicrosoft.com</code>.</p>
            <h4>2. Explorer les utilisateurs et groupes</h4>
            <p><code>entra.microsoft.com &gt; Users</code> puis <code>&gt; Groups</code>. Repérez l'origine (cloud vs synchronisé).</p>
            <h4>3. Repérer les rôles</h4>
            <p><code>entra.microsoft.com &gt; Roles &amp; admins</code>. Repérez le rôle <strong>Global Administrator</strong>.</p>
          </div>

          <div class="content-block animate-on-scroll" data-section-id="s-lab-b">
            <h3>Partie B — Domaines et licences (50 min)</h3>
            <h4>4. Ajouter un domaine personnalisé</h4>
            <p><code>admin.microsoft.com &gt; Settings &gt; Domains</code>. Microsoft affichera un TXT à publier dans votre zone DNS publique.</p>
            <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">SI PAS DE DOMAINE DISPO</span><p>Lisez la procédure sans finaliser — l'objectif est de comprendre le mécanisme de preuve DNS.</p></div></aside>
            <h4>5. Voir les licences disponibles</h4>
            <p><code>admin.microsoft.com &gt; Billing &gt; Licenses</code>. Notez les SKU présents (SPE_E3, SPE_E5, AAD_PREMIUM_P2…).</p>
            <h4>6. Attribuer une licence</h4>
            <p>Ciblez un utilisateur de test et attribuez lui une licence M365 E3 (ou équivalent tenant dev).</p>
          </div>

          <div class="content-block animate-on-scroll" data-section-id="s-lab-c">
            <h3>Partie C — En PowerShell / Graph (40 min)</h3>
            <h4>7. Connexion et contexte</h4>
            <pre><code>Install-Module Microsoft.Graph -Scope CurrentUser
Connect-MgGraph -Scopes "Organization.Read.All","Directory.Read.All","User.Read.All","Group.Read.All"
Get-MgContext</code></pre>
            <h4>8. Exploration automatisée</h4>
            <pre><code>./scripts/01-explore-tenant.ps1</code></pre>
            <p>Le script affiche organisation, domaines, SKU, volumétrie utilisateurs/groupes.</p>
            <h4>9. Attribution de licence par script</h4>
            <pre><code>./scripts/01-assign-license.ps1 -UserPrincipalName "test.user@contoso.onmicrosoft.com" -SkuPartNumber "SPE_E5"</code></pre>
            <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>J'ai identifié le Tenant ID, les domaines et les SKU disponibles.</li><li>J'ai vérifié la présence d'un rôle Global Administrator.</li><li>J'ai exécuté un script Graph et lu les résultats.</li></ul></div></aside>
          </div>
        </section>

        <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 réflexes AD à corriger</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 — « ENTRA ID = MON AD HÉBERGÉ »</span><p><strong>Le réflexe :</strong> raisonner comme si Entra était un contrôleur de domaine distant.</p><p><strong>Pourquoi c'est faux :</strong> Entra ID est un fournisseur d'identité qui parle OAuth 2.0, OIDC et SAML. Pas de LDAP exposé, pas de Kerberos, pas d'OU, pas de GPO.</p><p><strong>La bonne pratique :</strong> partir des protocoles (jetons, pas tickets) et de la structure plate.</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 — VOULOIR CRÉER DES OU</span><p><strong>Le réflexe :</strong> recréer l'arborescence d'OU pour ranger les objets.</p><p><strong>Pourquoi c'est faux :</strong> l'annuaire Entra est plat. Les unités administratives (AU) servent à <strong>déléguer</strong>, pas à appliquer de la configuration.</p><p><strong>La bonne pratique :</strong> organiser par <strong>groupes</strong> (assignés/dynamiques) pour le ciblage.</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 — CONFONDRE DOMAINE INTERNE ET DOMAINE VÉRIFIÉ</span><p><strong>Le réflexe :</strong> vouloir vérifier <code>contoso.local</code> dans Entra.</p><p><strong>Pourquoi c'est faux :</strong> un domaine non routable publiquement ne peut pas être prouvé via un TXT public.</p><p><strong>La bonne pratique :</strong> vérifier le domaine public de messagerie et aligner les UPN dessus.</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 — IGNORER LA COUCHE LICENCE</span><p><strong>Le réflexe :</strong> concevoir sur le tenant de test E5, puis déployer en prod.</p><p><strong>Pourquoi c'est faux :</strong> la cible est E3+P2. Defender for Identity, Sentinel n'existent pas en E3+P2.</p><p><strong>La bonne pratique :</strong> vérifier le plan minimal requis pour chaque feature ; prévoir l'alternative E3+P2 dès la conception.</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 — CHERCHER TOUT DANS UN SEUL PORTAIL</span><p><strong>Le réflexe :</strong> vouloir la « console unique » façon <code>dsa.msc</code> / GPMC.</p><p><strong>Pourquoi c'est faux :</strong> les tâches sont réparties entre 4 portails web + Microsoft Graph.</p><p><strong>La bonne pratique :</strong> mémoriser « quel portail pour quelle tâche » et investir tôt dans <strong>Microsoft.Graph PowerShell</strong> — c'est le <code>Get-ADUser</code> du cloud.</p></div></aside>
        </section>

        <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 · ~20 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)">Feedback riche par question et 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-01-e5-vs-e3">
            <h3 class="caspratique__title"><svg width="24" height="24"><use href="#icon-graduation-cap"/></svg> Cas pratique — Test E5 vs prod E3+P2</h3>
            <div class="caspratique__statement">
              <p><strong>Contexte :</strong> votre PME migre vers M365 <strong>E3 + Entra ID P2</strong>. Un administrateur a monté un tenant de test via le <strong>Microsoft 365 Developer Program</strong> (E5). Il vous dit :</p>
              <blockquote>« J'ai testé PIM et Defender for Identity sur le tenant de dev, ça marche nickel. Je documente la procédure pour la prod. Et j'ai créé une OU <code>Admins</code> pour y ranger nos comptes à privilèges. »</blockquote>
              <p><strong>Questions :</strong></p>
              <ol>
                <li>Parmi PIM et Defender for Identity, lequel sera <strong>réellement déployable</strong> en E3+P2 et lequel ne le sera pas ? Justifiez.</li>
                <li>Pour la feature non déployable, quelle <strong>alternative</strong> proposez-vous sous E3+P2 ?</li>
                <li>Que répondez-vous sur l'« OU <code>Admins</code> » ? Quel est le bon mécanisme dans Entra ?</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>PIM est déployable en E3+P2</strong> (fonctionnalité Entra ID P2). <strong>Defender for Identity ne l'est pas</strong> : il exige E5/add-on. Ne pas documenter une procédure prod qui en dépend.</li>
                <li><strong>Alternative E3+P2 à Defender for Identity :</strong> s'appuyer sur <strong>Identity Protection</strong> (P2, détections basées sur le risque) et sur les <strong>sign-in / audit logs</strong> d'Entra pour la détection et l'investigation (voir module 07).</li>
                <li>L'<strong>OU <code>Admins</code> n'existe pas</strong> dans Entra (annuaire plat). Bon mécanisme : un <strong>groupe de sécurité</strong> pour regrouper les comptes à privilèges + <strong>PIM</strong> (rôles éligibles, activation JIT avec MFA + justification) + politiques <strong>Conditional Access</strong>. Les AU peuvent servir à déléguer, pas à appliquer une stratégie.</li>
              </ol>
              <h4>Grille d'auto-évaluation</h4>
              <ul class="caspratique__checklist">
                <li><input type="checkbox" id="cp-1"> <label for="cp-1">A identifié PIM comme déployable et Defender for Identity comme non déployable</label></li>
                <li><input type="checkbox" id="cp-2"> <label for="cp-2">A cité Entra ID P2 comme le plan qui débloque PIM</label></li>
                <li><input type="checkbox" id="cp-3"> <label for="cp-3">A proposé Identity Protection + logs comme alternative E3+P2</label></li>
                <li><input type="checkbox" id="cp-4"> <label for="cp-4">A rejeté explicitement le concept d'OU dans Entra</label></li>
                <li><input type="checkbox" id="cp-5"> <label for="cp-5">A mentionné groupe de sécurité + PIM + Conditional Access comme trio de gestion des admins</label></li>
                <li><input type="checkbox" id="cp-6"> <label for="cp-6">A évoqué les Administrative Units comme mécanisme de délégation (pas de config)</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><a class="module-toc__link" href="#s-objectifs" data-target="s-objectifs">Objectifs</a></li>
            <li><a class="module-toc__link" href="#s-cours-1" data-target="s-cours-1">1. AD DS vs Entra ID</a></li>
            <li><a class="module-toc__link" href="#s-cours-2" data-target="s-cours-2">2. Le modèle de tenant</a></li>
            <li><a class="module-toc__link" href="#s-cours-3" data-target="s-cours-3">3. Licences M365 / Entra</a></li>
            <li><a class="module-toc__link" href="#s-cours-4" data-target="s-cours-4">4. Écosystème M365</a></li>
            <li><a class="module-toc__link" href="#s-cours-5" data-target="s-cours-5">5. Les 4 portails</a></li>
            <li><a class="module-toc__link" href="#s-cours-sources" data-target="s-cours-sources">Sources</a></li>
            <li><a class="module-toc__link" href="#s-lab-a" data-target="s-lab-a">Lab · Partie A</a></li>
            <li><a class="module-toc__link" href="#s-lab-b" data-target="s-lab-b">Lab · Partie B</a></li>
            <li><a class="module-toc__link" href="#s-lab-c" data-target="s-lab-c">Lab · Partie C</a></li>
            <li><a class="module-toc__link" href="#s-pieges" data-target="s-pieges">Pièges classiques</a></li>
            <li><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--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 01 · 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 — Fondamentaux</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 = '01-fondamentaux';
    window.MODULE_NUM = '01';
    window.MODULE_STORAGE_KEY = 'formation-entra:module-01';
    window.MODULE_TITLE = 'Fondamentaux';
    window.QCM_DATA = {
      module: '01-fondamentaux', titre: 'Évaluation — Fondamentaux', seuils: { acquis: 60, maitrise: 80 },
      questions: [
        { id: 'q1', type: 'single', enonce: 'Un collègue affirme : « Entra ID, c\'est juste notre AD hébergé chez Microsoft. » Que répondez-vous ?', reference_cours: 'Section 1 — AD DS vs Entra ID',
          choix: [
            { id: 'a', texte: 'Exact, c\'est un contrôleur de domaine dans le cloud', correct: false, feedback_si_choisi: 'C\'est l\'erreur fondatrice à corriger. Entra n\'est pas un DC : pas de LDAP exposé, pas de Kerberos.' },
            { id: 'b', texte: 'Faux : Entra ID est un fournisseur d\'identité (OAuth/OIDC/SAML)', correct: true },
            { id: 'c', texte: 'Vrai, on peut y lier des GPO', correct: false, feedback_si_choisi: 'Il n\'existe pas de GPO dans Entra. Le ciblage se fait par groupes + politiques (CA, Intune).' },
            { id: 'd', texte: 'C\'est le service qui remplace le DNS interne', correct: false, feedback_si_choisi: 'Confusion : Entra n\'est pas un serveur DNS. Le DNS public sert seulement à vérifier la possession d\'un domaine.' }
          ],
          explication: 'Entra ID est un IdP (fournisseur d\'identité) qui parle des protocoles web modernes. Il n\'a ni LDAP, ni Kerberos, ni OU, ni GPO. Le modèle mental doit changer, pas seulement les outils.'
        },
        { id: 'q2', type: 'single', enonce: 'Dans Entra ID, comment applique-t-on une configuration à un sous-ensemble d\'utilisateurs ?', reference_cours: 'Section 1 — Structure plate',
          choix: [
            { id: 'a', texte: 'En les plaçant dans une OU liée à une GPO', correct: false, feedback_si_choisi: 'Réflexe AD à abandonner. Pas d\'OU, pas de GPO dans Entra.' },
            { id: 'b', texte: 'En les ciblant via un groupe (assigné ou dynamique) dans une politique', correct: true },
            { id: 'c', texte: 'En créant une forêt dédiée', correct: false, feedback_si_choisi: 'Il n\'y a qu\'un seul tenant par organisation en règle générale. Créer une nouvelle instance pour cibler quelques utilisateurs est disproportionné et impraticable.' },
            { id: 'd', texte: 'Impossible, tout est appliqué à tout le monde', correct: false, feedback_si_choisi: 'C\'est faux : le ciblage granulaire est parfaitement possible via des groupes.' }
          ],
          explication: 'On cible par groupes (assignés ou dynamiques). Les politiques CA, les profils Intune, les attributions de licences, tout se pilote par groupe.'
        },
        { id: 'q3', type: 'single', enonce: 'À quoi sert un enregistrement DNS TXT lors de l\'ajout d\'un domaine personnalisé ?', reference_cours: 'Section 2 — Domaines vérifiés',
          choix: [
            { id: 'a', texte: 'À localiser les contrôleurs de domaine', correct: false, feedback_si_choisi: 'La localisation des DC utilise des SRV records dans AD DS. Cela n\'a pas de sens dans Entra qui n\'a pas de DC.' },
            { id: 'b', texte: 'À prouver à Microsoft que vous contrôlez ce domaine public', correct: true },
            { id: 'c', texte: 'À router le trafic Kerberos', correct: false, feedback_si_choisi: 'Entra ne parle pas Kerberos. Pas de routage de tickets Kerberos à configurer via DNS.' },
            { id: 'd', texte: 'À activer la MFA', correct: false, feedback_si_choisi: 'La MFA se configure dans Entra (Security Defaults ou Conditional Access), sans lien avec DNS.' }
          ],
          explication: 'Le TXT prouve la possession du domaine public. Microsoft vérifie qu\'il est là (donc que vous contrôlez la zone DNS), et vous pouvez alors utiliser ce domaine pour vos UPN et adresses mail.'
        },
        { id: 'q4', type: 'multi', enonce: 'Quelles fonctionnalités nécessitent Entra ID P2 (et pas seulement P1) ? (plusieurs)', reference_cours: 'Section 3 — Licences',
          choix: [
            { id: 'a', texte: 'Conditional Access de base', correct: false, feedback_si_choisi: 'Le CA est disponible dès P1. Pas besoin de P2 pour cette fonctionnalité.' },
            { id: 'b', texte: 'PIM (Privileged Identity Management)', correct: true },
            { id: 'c', texte: 'Identity Protection (risk-based policies)', correct: true },
            { id: 'd', texte: 'Access Reviews', correct: true }
          ],
          explication: 'PIM, Identity Protection et Access Reviews sont les trois piliers P2. Le CA de base est P1 (mais son intégration avec le risque nécessite P2 pour les risk-based policies).'
        },
        { id: 'q5', type: 'single', enonce: 'Un domaine interne AD nommé contoso.local peut-il être vérifié comme domaine personnalisé dans Entra ?', reference_cours: 'Section 2 + Piège 3',
          choix: [
            { id: 'a', texte: 'Oui, tel quel', correct: false, feedback_si_choisi: 'Impossible : un .local n\'est pas routable publiquement, aucun TXT public ne peut être publié.' },
            { id: 'b', texte: 'Non : il faut un domaine public routable dont on contrôle le DNS', correct: true },
            { id: 'c', texte: 'Oui, mais seulement en E5', correct: false, feedback_si_choisi: 'La licence n\'y change rien : c\'est une contrainte technique du DNS public, indépendante du plan.' },
            { id: 'd', texte: 'Oui, via une GPO', correct: false, feedback_si_choisi: 'Les GPO n\'existent pas dans Entra et n\'ont aucun rôle dans la vérification de domaine.' }
          ],
          explication: 'Un domaine non routable publiquement (comme .local) ne peut pas être prouvé. Entra exige un domaine public dont vous contrôlez la zone DNS. Anticiper le décalage UPN interne ↔ adresse mail dans les scénarios hybrides.'
        },
        { id: 'q6', type: 'single', enonce: 'Où configure-t-on le Conditional Access et le PIM ?', reference_cours: 'Section 5 — Les 4 portails',
          choix: [
            { id: 'a', texte: 'Dans admin.microsoft.com', correct: false, feedback_si_choisi: 'admin.microsoft.com gère licences, domaines et utilisateurs métier — pas les stratégies de sécurité avancée.' },
            { id: 'b', texte: 'Dans entra.microsoft.com', correct: true },
            { id: 'c', texte: 'Dans intune.microsoft.com', correct: false, feedback_si_choisi: 'Intune gère les postes et la conformité ; CA et PIM sont dans Entra.' },
            { id: 'd', texte: 'Sur un contrôleur de domaine avec GPMC', correct: false, feedback_si_choisi: 'GPMC gère les GPO on-prem. Pas de CA ni PIM dans un DC — ce sont des fonctionnalités Entra ID.' }
          ],
          explication: 'CA, PIM et Identity Protection sont toutes dans entra.microsoft.com. Règle de mémoire : sécurité / identité avancée = entra.microsoft.com.'
        },
        { id: 'q7', type: 'single', enonce: 'Qu\'est-ce qu\'une unité administrative (AU) dans Entra ?', reference_cours: 'Section 1 + Piège 2',
          choix: [
            { id: 'a', texte: 'L\'équivalent d\'une OU pour appliquer des GPO', correct: false, feedback_si_choisi: 'Confusion fréquente. Les AU ne portent pas de configuration : elles délimitent un périmètre de délégation.' },
            { id: 'b', texte: 'Un mécanisme de délégation d\'administration sur un sous-ensemble d\'objets', correct: true },
            { id: 'c', texte: 'Un type de licence', correct: false, feedback_si_choisi: 'Les AU ne sont pas des licences — c\'est un mécanisme d\'annuaire, disponible dans les plans Entra.' },
            { id: 'd', texte: 'Un contrôleur de domaine géré', correct: false, feedback_si_choisi: 'Confusion avec Entra Domain Services, qui est un service séparé.' }
          ],
          explication: 'Les AU servent à déléguer l\'administration à un scope réduit (un service, une filiale). Elles ne portent aucune configuration comme le ferait une OU liée à une GPO.'
        },
        { id: 'q8', type: 'single', enonce: '« Entra Domain Services » et « Entra ID », c\'est :', reference_cours: 'Section 1 — Encadré Entra Domain Services',
          choix: [
            { id: 'a', texte: 'La même chose sous deux noms', correct: false, feedback_si_choisi: 'Deux services distincts, à ne pas confondre malgré la proximité de nom.' },
            { id: 'b', texte: 'Deux services différents : le premier fournit un domaine géré (LDAP/Kerberos/GPO), le second est l\'IdP cloud', correct: true },
            { id: 'c', texte: 'Deux niveaux de licence', correct: false, feedback_si_choisi: 'Ce ne sont pas des plans mais des produits séparés avec leur propre facturation.' },
            { id: 'd', texte: 'Deux portails du même service', correct: false, feedback_si_choisi: 'Deux services indépendants, chacun avec sa propre configuration.' }
          ],
          explication: 'Entra Domain Services (ex-Azure AD DS) est un domaine géré dans Azure pour les apps legacy nécessitant LDAP/Kerberos/GPO. Entra ID est l\'IdP cloud. Piège de nommage classique.'
        },
        { id: 'q9', type: 'single', enonce: 'Dans l\'écosystème M365, quel élément fournit la conformité d\'appareil consommée par le Conditional Access ?', reference_cours: 'Section 4 — Écosystème',
          choix: [
            { id: 'a', texte: 'Exchange Online', correct: false, feedback_si_choisi: 'Exchange gère la messagerie, pas la conformité d\'appareil.' },
            { id: 'b', texte: 'Purview', correct: false, feedback_si_choisi: 'Purview gère la conformité de données (DLP, rétention), pas la conformité des appareils.' },
            { id: 'c', texte: 'Intune', correct: true },
            { id: 'd', texte: 'SharePoint', correct: false, feedback_si_choisi: 'SharePoint gère les fichiers/intranet, pas la conformité d\'appareil.' }
          ],
          explication: 'Intune évalue la conformité d\'appareil (chiffrement, version OS, etc.). Le CA la consomme comme signal via la condition « require compliant device ».'
        },
        { id: 'q10', type: 'single', enonce: 'Vous voulez inventorier par script les licences d\'un tenant. Quel module PowerShell utilisez-vous ?', reference_cours: 'Section 5 — Portails et Graph',
          choix: [
            { id: 'a', texte: 'ActiveDirectory (Get-ADUser)', correct: false, feedback_si_choisi: 'ActiveDirectory sert l\'AD DS on-prem, pas le cloud.' },
            { id: 'b', texte: 'MSOnline (Get-MsolUser)', correct: false, feedback_si_choisi: 'MSOnline est déprécié depuis 2022 — ne plus démarrer de nouveaux scripts avec.' },
            { id: 'c', texte: 'Microsoft.Graph (Get-MgSubscribedSku)', correct: true },
            { id: 'd', texte: 'AzureAD (Get-AzureADUser)', correct: false, feedback_si_choisi: 'AzureAD est également déprécié. Microsoft pousse vers Microsoft.Graph pour tous les nouveaux développements.' }
          ],
          explication: 'Microsoft.Graph est le SDK moderne. Get-MgSubscribedSku liste les SKU (licences) du tenant. C\'est le successeur unifié de MSOnline et AzureAD, tous deux dépréciés.'
        }
      ]
    };
  </script>
  <script src="assets/shared.js"></script>

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