<!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 07 — Zero Trust &amp; Sécurité · Formation Entra ID · Atoo Next</title>
  <meta name="description" content="Principes Zero Trust, Identity Protection (P2), passwordless FIDO2 / Windows Hello.">
  <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-shield" 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"/></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>
    <symbol id="icon-shield-alert" 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="M12 8v4"/><path d="M12 16h.01"/></symbol>
    <symbol id="icon-fingerprint" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4"/><path d="M14 13.12c0 2.38 0 6.38-1 8.88"/><path d="M17.29 21.02c.12-.6.43-2.3.5-3.02"/><path d="M2 12a10 10 0 0 1 18-6"/><path d="M2 16h.01"/><path d="M21.8 16c.2-2 .131-5.354 0-6"/><path d="M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2"/><path d="M8.65 22c.21-.66.45-1.32.57-2"/><path d="M9 6.8a6 6 0 0 1 9 5.2v2"/></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-lock" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><rect width="18" height="11" x="3" y="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></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--peach">
            <span class="module-header__number-huge">07</span>
            <div class="module-header__icon-large"><svg><use href="#icon-shield"/></svg></div>
          </div>
          <div class="module-header__meta">
            <span class="module-header__label">MODULE 07 · COURS</span>
            <h1 class="module-header__title">Zero Trust &amp; Sécurité</h1>
            <p class="module-header__subtitle">Identity Protection (P2), passwordless FIDO2 / Windows Hello, architecture Zero Trust.</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">11</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">4 objectifs · ~5 min</p>
            </div>
          </div>
          <ul class="task-list">
            <li class="task-list__item"><span><strong>Énoncer</strong> les principes Zero Trust (verify explicitly, least privilege, assume breach) et les traduire en réglages Entra.</span></li>
            <li class="task-list__item"><span><strong>Configurer</strong> Identity Protection (P2) : politiques basées sur le risque utilisateur / risque de connexion.</span></li>
            <li class="task-list__item"><span><strong>Comparer</strong> les méthodes MFA et passwordless (FIDO2, Windows Hello for Business, Authenticator) et prioriser les plus sûres.</span></li>
            <li class="task-list__item"><span><strong>Situer</strong> Defender for Identity et Defender for Cloud Apps comme <em>à connaître, non déployables</em> en E3+P2, et connaître leurs alternatives.</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>Culture du moindre privilège</td><td>« Le réseau interne est de confiance » — Zero Trust rejette ce présupposé</td></tr>
                  <tr><td>Gestion des méthodes d'authentification</td><td>« Le mot de passe est la base » — viser le <strong>passwordless</strong></td></tr>
                  <tr><td>Analyse d'incidents</td><td>Détection basée sur le <strong>risque</strong> calculé par le cloud — aucun équivalent AD</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">Architecture Zero Trust</h2>
              <p class="section-header__meta">5 sections · lecture ~30 min</p>
            </div>
          </div>

          <div class="content-block animate-on-scroll" data-section-id="s-cours-1">
            <h3>1. Zero Trust : les principes</h3>
            <div class="section-hook">
              <span class="section-hook__label">Contexte</span>
              La direction demande : « on veut passer au Zero Trust ». Vous répondez quoi ? Zero Trust n'est pas un produit à cocher dans une facture. C'est une <strong>posture</strong>, dérivée de trois principes que ce module aligne un par un sur des réglages Entra concrets.
            </div>
            <p>Le modèle AD classique repose sur un présupposé : <strong>le réseau interne est de confiance</strong>. Zero Trust renverse ce présupposé. Trois principes :</p>
            <ol>
              <li><strong>Verify explicitly</strong> — toujours authentifier et autoriser à partir de <strong>tous</strong> les signaux disponibles (identité, appareil, emplacement, risque), à chaque accès.</li>
              <li><strong>Least privilege</strong> — accès juste suffisant, juste-à-temps (JIT / PIM), juste-assez (JEA).</li>
              <li><strong>Assume breach</strong> — partir du principe que la compromission est possible : segmenter, chiffrer, surveiller, limiter le rayon d'explosion.</li>
            </ol>

            <div class="table-wrapper">
              <table>
                <thead><tr><th>Principe</th><th>Mise en œuvre Entra</th></tr></thead>
                <tbody>
                  <tr><td><strong>Verify explicitly</strong></td><td>Conditional Access (signaux), MFA, appareil conforme</td></tr>
                  <tr><td><strong>Least privilege</strong></td><td>PIM, Access Reviews, rôles ciblés (module 05)</td></tr>
                  <tr><td><strong>Assume breach</strong></td><td>Identity Protection (risque), logs &amp; alertes (module 09), segmentation</td></tr>
                </tbody>
              </table>
            </div>

            <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>Croire que « Zero Trust » est un produit à acheter. C'est une <strong>architecture</strong> assemblée à partir de CA + PIM + Intune + Identity Protection + supervision.</p>
              </div>
            </aside>
            <div class="reveal-card">
              <button class="reveal-card__trigger" aria-controls="ade-cours1">
                <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-cours1" role="region"><p>Confiance implicite au périmètre réseau : dès qu'on est sur le LAN, on est « à l'intérieur ». Ce présupposé rendait le mouvement latéral facile pour un attaquant qui avait franchi le pare-feu.</p></div>
            </div>
          </div>

          <div class="content-block animate-on-scroll" data-section-id="s-cours-2">
            <h3>2. Identity Protection (P2)</h3>
            <p><strong>Identity Protection</strong> (IP) calcule un <strong>risque</strong> à partir de signaux Microsoft (renseignement sur les menaces, comportements) :</p>
            <ul>
              <li><strong>Risque de connexion (sign-in risk)</strong> — cette connexion précise est-elle suspecte ? Voyage impossible, IP anonyme / Tor, adresse liée à des attaques, etc.</li>
              <li><strong>Risque utilisateur (user risk)</strong> — ce compte est-il probablement compromis ? Identifiants divulgués détectés, activités anormales, etc.</li>
            </ul>
            <p>On agit via des <strong>risk-based policies</strong>, appliquées par le Conditional Access :</p>
            <ul>
              <li><strong>Sign-in risk policy</strong> — si risque de connexion ≥ moyen → exiger la MFA (ou bloquer).</li>
              <li><strong>User risk policy</strong> — si risque utilisateur ≥ élevé → exiger un <strong>changement de mot de passe sécurisé</strong> (self-remediation via SSPR) ou bloquer.</li>
            </ul>

            <figure class="mermaid-container animate-on-scroll" data-mermaid-source='flowchart LR
  Signals["Signaux Microsoft<br>renseignement menaces"] --> IP["Identity Protection<br>calcul du risque"]
  IP --> R1{"Sign-in risk ?"}
  IP --> R2{"User risk ?"}
  R1 -->|moyen+| CA1["CA policy<br>exige MFA"]
  R2 -->|élevé| CA2["CA policy<br>changement de MDP<br>via SSPR"]
  CA1 --> OK["Accès<br>sous conditions"]
  CA2 --> OK
  classDef sig fill:#A5C8E4,color:#2C2438,stroke:#4A7FAF
  classDef ip fill:#A78BD9,color:#fff,stroke:#6B4FA0
  classDef q fill:#F5C7A9,stroke:#C88458,color:#2C2438
  classDef ok fill:#B8E0C8,stroke:#5DAA7A,color:#2C2438
  class Signals sig
  class IP ip
  class R1,R2 q
  class CA1,CA2,OK ok'>
              <div class="mermaid-render"><em class="text-muted">Chargement du schéma…</em></div>
              <figcaption class="mermaid-caption">Identity Protection calcule les risques ; le Conditional Access les traduit en décisions d'accès.</figcaption>
            </figure>

            <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>Activer une user risk policy « block » sans <strong>SSPR</strong> configuré : l'utilisateur à risque ne peut pas s'auto-remédier et se retrouve bloqué. Prévoir la remédiation.</p>
              </div>
            </aside>
            <p><strong>Prérequis notable :</strong> la détection <strong>« identifiants divulgués »</strong> nécessite <strong>Password Hash Sync</strong> en contexte hybride (module 03).</p>
          </div>

          <div class="content-block animate-on-scroll" data-section-id="s-cours-3">
            <h3>3. Méthodes MFA &amp; passwordless</h3>
            <div class="section-hook">
              <span class="section-hook__label">À retenir</span>
              Toutes les méthodes ne se valent pas. Le niveau de sécurité réel est celui du <strong>maillon le plus faible</strong> activé. La cible Zero Trust : passwordless résistant au phishing.
            </div>
            <div class="table-wrapper">
              <table>
                <thead><tr><th>Méthode</th><th>Niveau</th><th>Commentaire</th></tr></thead>
                <tbody>
                  <tr><td>SMS / appel téléphonique</td><td>Faible</td><td>Vulnérable au SIM swapping / interception — <strong>à éviter</strong>, à retirer</td></tr>
                  <tr><td>Authenticator (notification + numéro à saisir)</td><td>Bon</td><td><strong>Number matching</strong> obligatoire (anti-MFA fatigue)</td></tr>
                  <tr><td><strong>Windows Hello for Business</strong></td><td>Fort</td><td>Passwordless, biométrie + TPM, lié à l'appareil</td></tr>
                  <tr><td><strong>FIDO2</strong> (clés de sécurité / passkeys)</td><td>Fort</td><td>Passwordless, résistant au phishing</td></tr>
                  <tr><td>Certificat (CBA)</td><td>Fort</td><td>Authentification par certificat, cas spécifiques</td></tr>
                </tbody>
              </table>
            </div>
            <p>Objectif Zero Trust : viser le <strong>passwordless résistant au phishing</strong> (FIDO2, WHfB) et <strong>retirer</strong> progressivement le SMS.</p>
            <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>La <strong>carte à puce</strong> (smart card logon) était le passwordless historique via PKI.</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-fingerprint"/></svg> ENTRA</div>
                <div class="ad-entra-card__body"><p>FIDO2 / Windows Hello généralisent le passwordless <strong>sans PKI lourde</strong>.</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>Empiler des méthodes faibles « pour la disponibilité ». Chaque méthode faible active est un point d'entrée : le niveau réel est celui du <strong>maillon le plus faible</strong>.</p></div>
              </div>
            </div>

            <div class="quickquestion animate-on-scroll" data-id="qq-passwordless">
              <div class="quickquestion__label"><svg width="14" height="14"><use href="#icon-sparkles"/></svg> Question rapide</div>
              <p class="quickquestion__question">Vous voulez basculer votre PME en passwordless. Quelle méthode active-t-on <strong>et</strong> laquelle retire-t-on en priorité ?</p>
              <button class="btn btn--soft-violet quickquestion__btn" type="button">Voir la réponse</button>
              <div class="quickquestion__answer">
                <strong>Activer : Windows Hello for Business + FIDO2. Retirer : SMS.</strong>
                <p class="quickquestion__explanation">WHfB pour les postes gérés (biométrie + TPM lié à l'appareil), FIDO2 pour les usages sensibles ou multi-postes (clés physiques ou passkeys). Le SMS reste vulnérable au SIM swapping et à l'interception : tant qu'il est actif, il annule le bénéfice du passwordless. Retirer <em>progressivement</em>, en s'assurant que chaque utilisateur a au moins une méthode forte enrôlée.</p>
              </div>
            </div>
          </div>

          <div class="content-block animate-on-scroll" data-section-id="s-cours-4">
            <h3>4. Defender for Identity — À CONNAÎTRE, NON DÉPLOYABLE EN L'ÉTAT</h3>
            <p><strong>Microsoft Defender for Identity</strong> (MDI) est une solution qui <strong>surveille les contrôleurs de domaine on-prem</strong> (via des capteurs) pour détecter les attaques d'identité : reconnaissance, mouvement latéral, Pass-the-Hash / Ticket, DCSync, etc.</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">HORS PÉRIMÈTRE DÉPLOYABLE EN E3+P2</span>
                <p>MDI <strong>n'est pas inclus</strong> dans M365 E3 + Entra ID P2 (il relève d'E5 / add-ons de sécurité). Ici, il est traité <strong>en concept</strong>, à connaître pour le vocabulaire et les scénarios d'attaque, <strong>pas à déployer</strong>.</p>
                <p><strong>Alternative E3+P2 :</strong> s'appuyer sur <strong>Identity Protection</strong> (détections basées risque côté cloud) et sur les <strong>sign-in / audit logs</strong> d'Entra (module 09) pour la détection et l'investigation. On perd la visibilité fine sur les attaques <strong>on-prem</strong> que MDI apporterait — argument de plus pour réduire la dépendance à l'AD DS (module 08).</p>
              </div>
            </aside>
          </div>

          <div class="content-block animate-on-scroll" data-section-id="s-cours-5">
            <h3>5. Defender for Cloud Apps (aperçu)</h3>
            <p><strong>Microsoft Defender for Cloud Apps</strong> (MDA, un CASB) découvre et contrôle l'usage des apps SaaS : shadow IT, sessions à risque, DLP cloud.</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">HORS PÉRIMÈTRE DÉPLOYABLE EN L'ÉTAT</span>
                <p>Les capacités complètes de MDA relèvent d'<strong>E5 / add-ons</strong>. À <strong>connaître</strong> (vocabulaire CASB, contrôle de session).</p>
                <p><strong>Alternative E3+P2 :</strong> utiliser les <strong>signaux du Conditional Access</strong> (emplacements nommés, contrôles de session basiques) et les <strong>rapports Entra</strong> pour une gouvernance d'accès aux apps, sans les fonctions avancées de CASB.</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/security/zero-trust/zero-trust-overview" target="_blank" rel="noopener">Zero Trust <svg width="12" height="12" style="display:inline"><use href="#icon-external-link"/></svg></a></li>
              <li><a href="https://learn.microsoft.com/entra/id-protection/overview-identity-protection" target="_blank" rel="noopener">Identity Protection <svg width="12" height="12" style="display:inline"><use href="#icon-external-link"/></svg></a></li>
              <li><a href="https://learn.microsoft.com/entra/id-protection/concept-identity-protection-policies" target="_blank" rel="noopener">Politiques basées sur le risque <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/authentication/concept-authentication-methods" target="_blank" rel="noopener">Méthodes d'authentification <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/authentication/concept-authentication-passwordless" target="_blank" rel="noopener">Passwordless (FIDO2 / WHfB) <svg width="12" height="12" style="display:inline"><use href="#icon-external-link"/></svg></a></li>
              <li><a href="https://learn.microsoft.com/defender-for-identity/what-is" target="_blank" rel="noopener">Defender for Identity (à connaître) <svg width="12" height="12" style="display:inline"><use href="#icon-external-link"/></svg></a></li>
              <li><a href="https://learn.microsoft.com/defender-cloud-apps/what-is-defender-for-cloud-apps" target="_blank" rel="noopener">Defender for Cloud Apps (aperçu) <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">Risk-based policies + passwordless</h2>
              <p class="section-header__meta">2 parties · TP guidé ~1h30 · Portail : entra.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>Identity Protection + risk-based policies :</strong> <strong>Entra ID P2</strong> (cible du projet).</p>
              <p><strong>FIDO2 / Windows Hello for Business / Authenticator :</strong> inclus dès <strong>Entra ID Free / P1</strong>, méthodes de sécurité standard.</p>
              <p><strong>Defender for Identity / Defender for Cloud Apps :</strong> hors E3+P2 — non déployables, alternatives via IP + logs Entra + CA.</p>
            </div>
          </aside>

          <div class="content-block animate-on-scroll" data-section-id="s-lab-a">
            <h3>Partie A — Sign-in risk policy en report-only (45 min)</h3>
            <p><strong>Portail :</strong> <code>Entra admin center &gt; Protection &gt; Conditional Access &gt; Create new policy</code>.</p>
            <ol>
              <li><strong>Name :</strong> CA-Risk-SignIn-MFA.</li>
              <li><strong>Users :</strong> All users, <strong>exclude</strong> break-glass.</li>
              <li><strong>Cloud apps :</strong> All cloud apps.</li>
              <li><strong>Conditions &gt; Sign-in risk :</strong> <em>Medium, High</em>.</li>
              <li><strong>Grant :</strong> Require multi-factor authentication.</li>
              <li><strong>Enable policy :</strong> <strong>Report-only</strong>.</li>
            </ol>
            <p>Créer aussi <strong>CA-Risk-User-PasswordChange</strong> : <em>User risk = High</em>, Grant = <em>Require password change</em>. En report-only.</p>
            <p>Vérifier dans <code>Sign-in logs</code> les détections des jours suivants ; ajuster les seuils avant de basculer en <em>On</em>.</p>
          </div>

          <div class="content-block animate-on-scroll" data-section-id="s-lab-b">
            <h3>Partie B — Passwordless via Windows Hello for Business (45 min)</h3>
            <p><strong>Portail :</strong> <code>Entra admin center &gt; Protection &gt; Authentication methods &gt; Policies</code>.</p>
            <ol>
              <li>Activer <strong>Windows Hello for Business</strong> : Enable = Yes, Target = All users.</li>
              <li>Activer <strong>FIDO2 security key</strong> : Enable = Yes, Target = un groupe pilote (ex : <code>grp-passwordless-pilot</code>).</li>
              <li>Sur Authenticator : activer <strong>Number matching</strong> et <strong>Show additional context</strong>.</li>
              <li>Sur les postes joints Entra + Intune, WHfB s'auto-configure au 1er login (PIN + biométrie).</li>
              <li>Publier un guide utilisateur (portail <code>myaccount.microsoft.com</code> &gt; Security info) pour l'ajout d'une clé FIDO2.</li>
            </ol>
            <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>Deux risk-based policies sont en <strong>report-only</strong>, break-glass exclus.</li>
                  <li>SSPR est configuré (pré-requis pour user-risk policy en <em>On</em>).</li>
                  <li>WHfB est activé pour tous ; un groupe pilote a FIDO2 activé.</li>
                  <li>Number matching est activé sur Authenticator.</li>
                  <li>Un plan de retrait progressif du SMS est écrit (communication + jalons).</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 réflexes à corriger en sécurité</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 — CROIRE QUE ZERO TRUST EST UN PRODUIT</span>
              <p><strong>Le réflexe :</strong> « on achète la brique Zero Trust et c'est réglé ».</p>
              <p><strong>Pourquoi c'est faux :</strong> Zero Trust est une <strong>architecture</strong>, pas un SKU. On l'assemble avec CA, PIM, Intune, Identity Protection et la supervision.</p>
              <p><strong>La bonne pratique :</strong> raisonner par principes (verify / least privilege / assume breach) et mapper chaque principe sur des réglages Entra concrets.</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 — ACTIVER UNE USER RISK POLICY « BLOCK » SANS SSPR</span>
              <p><strong>Le réflexe :</strong> bloquer les comptes à risque élevé, point.</p>
              <p><strong>Pourquoi c'est faux :</strong> sans <strong>SSPR</strong>, l'utilisateur à risque ne peut pas s'auto-remédier (changer son mot de passe) et reste bloqué, générant des tickets et de la friction.</p>
              <p><strong>La bonne pratique :</strong> configurer <strong>SSPR</strong> avant, préférer « require password change » (self-remediation), et démarrer en <strong>report-only</strong>.</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 — LAISSER LE SMS COMME MFA « POUR LA DISPONIBILITÉ »</span>
              <p><strong>Le réflexe :</strong> garder le SMS actif partout, au cas où.</p>
              <p><strong>Pourquoi c'est faux :</strong> le SMS est vulnérable (SIM swapping, interception). Le niveau de sécurité réel est celui du <strong>maillon le plus faible</strong> : garder le SMS annule le bénéfice du passwordless.</p>
              <p><strong>La bonne pratique :</strong> basculer vers FIDO2 / Windows Hello, activer le number matching sur Authenticator, puis <strong>retirer le SMS</strong> (ou le réserver à un secours très encadré).</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 — TENTER DE DÉPLOYER DEFENDER FOR IDENTITY EN E3+P2</span>
              <p><strong>Le réflexe :</strong> activer MDI parce qu'on en a entendu parler.</p>
              <p><strong>Pourquoi c'est faux :</strong> MDI <strong>n'est pas</strong> inclus dans E3+P2 (E5 / add-on). On perd du temps à vouloir le configurer.</p>
              <p><strong>La bonne pratique :</strong> le <strong>connaître</strong> (détection d'attaques on-prem sur les DC), l'écarter du périmètre déployable, et utiliser l'<strong>alternative E3+P2</strong> : Identity Protection + logs Entra (module 09). Réduire la dépendance à l'AD DS diminue d'autant le besoin de MDI.</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 — ACTIVER LES POLITIQUES DE RISQUE DIRECTEMENT EN « ON »</span>
              <p><strong>Le réflexe :</strong> appliquer immédiatement les risk policies pour « être protégé ».</p>
              <p><strong>Pourquoi c'est faux :</strong> une politique de risque mal calibrée peut bloquer ou sur-solliciter les utilisateurs (faux positifs), voire les admins.</p>
              <p><strong>La bonne pratique :</strong> <strong>report-only</strong>, observer les détections dans les rapports, ajuster les seuils, exclure les break-glass, puis activer.</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-07-zero-trust">
            <h3 class="caspratique__title">
              <svg width="24" height="24"><use href="#icon-graduation-cap"/></svg>
              Cas pratique — Passer au Zero Trust
            </h3>
            <div class="caspratique__statement">
              <p><strong>Contexte :</strong> la direction veut « passer au Zero Trust » et supprimer les mots de passe. Le SI est E3 + P2, encore hybride (PHS actif).</p>
              <p><strong>Questions :</strong></p>
              <ol>
                <li>Quelles briques Entra assemblez-vous pour matérialiser les 3 principes Zero Trust ?</li>
                <li>Quelle trajectoire vers le passwordless, et quelles méthodes visez-vous ?</li>
                <li>La direction demande Defender for Identity : que répondez-vous, et quelle alternative ?</li>
                <li>Quel garde-fou avant d'activer les politiques basées sur le risque ?</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>Verify explicitly</strong> → Conditional Access (MFA, appareil conforme, signaux). <strong>Least privilege</strong> → PIM + Access Reviews (module 05). <strong>Assume breach</strong> → Identity Protection (risk policies) + supervision / alertes (module 09) + segmentation des accès.</li>
                <li><strong>Trajectoire passwordless :</strong> activer Authenticator (number matching), déployer <strong>Windows Hello for Business</strong> et <strong>FIDO2 / passkeys</strong>, communiquer, enrôler, puis <strong>retirer le SMS</strong>. Viser le passwordless <strong>résistant au phishing</strong> (FIDO2 / WHfB).</li>
                <li><strong>Defender for Identity n'est pas déployable en E3+P2</strong> (E5 / add-on). À connaître pour les scénarios d'attaque on-prem. <strong>Alternative :</strong> Identity Protection (détection basée risque côté cloud) + sign-in / audit logs Entra (module 09). Argument supplémentaire pour réduire la dépendance à l'AD DS (module 08).</li>
                <li><strong>Garde-fou :</strong> déployer les risk policies en <strong>report-only</strong> d'abord, s'assurer que <strong>SSPR</strong> est configuré (pour la remédiation user-risk) et que les <strong>break-glass</strong> sont exclus, avant toute bascule en « On ».</li>
              </ol>
              <h4>Grille d'auto-évaluation</h4>
              <ul class="caspratique__checklist">
                <li><input type="checkbox" id="cp-1"> <label for="cp-1">A mappé les <strong>3 principes ZT</strong> sur des briques Entra concrètes</label></li>
                <li><input type="checkbox" id="cp-2"> <label for="cp-2">A cité <strong>WHfB + FIDO2</strong> comme cible passwordless</label></li>
                <li><input type="checkbox" id="cp-3"> <label for="cp-3">A prévu le <strong>retrait progressif du SMS</strong></label></li>
                <li><input type="checkbox" id="cp-4"> <label for="cp-4">A refusé <strong>MDI</strong> comme non déployable en E3+P2</label></li>
                <li><input type="checkbox" id="cp-5"> <label for="cp-5">A proposé <strong>IP + logs Entra</strong> comme alternative</label></li>
                <li><input type="checkbox" id="cp-6"> <label for="cp-6">A démarré les risk policies en <strong>report-only</strong> avec break-glass exclus</label></li>
                <li><input type="checkbox" id="cp-7"> <label for="cp-7">A vérifié <strong>SSPR</strong> avant user-risk policy</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 / 11</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. Principes Zero Trust</a></li>
            <li class="module-toc__item"><a class="module-toc__link" href="#s-cours-2" data-target="s-cours-2">2. Identity Protection</a></li>
            <li class="module-toc__item"><a class="module-toc__link" href="#s-cours-3" data-target="s-cours-3">3. MFA &amp; passwordless</a></li>
            <li class="module-toc__item"><a class="module-toc__link" href="#s-cours-4" data-target="s-cours-4">4. Defender for Identity</a></li>
            <li class="module-toc__item"><a class="module-toc__link" href="#s-cours-5" data-target="s-cours-5">5. Defender for Cloud Apps</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 · Risk policies</a></li>
            <li class="module-toc__item"><a class="module-toc__link" href="#s-lab-b" data-target="s-lab-b">Lab · Passwordless</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 07 · 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 — Zero Trust &amp; Sécurité</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 = '07-securite-zero-trust';
    window.MODULE_NUM = '07';
    window.MODULE_STORAGE_KEY = 'formation-entra:module-07';
    window.MODULE_TITLE = 'Zero Trust & Sécurité';

    window.QCM_DATA = {
      module: '07-securite-zero-trust',
      titre: 'Évaluation — Zero Trust & Sécurité',
      seuils: { acquis: 60, maitrise: 80 },
      questions: [
        { id: 'q1', type: 'single', enonce: 'Quel présupposé du modèle AD classique le Zero Trust rejette-t-il ?', reference_cours: 'Section 1',
          choix: [
            { id: 'a', texte: 'Que les mots de passe existent', correct: false, feedback_si_choisi: 'Zero Trust ne rejette pas les mots de passe eux-mêmes — il pousse au passwordless, mais ce n\'est pas son présupposé de départ.' },
            { id: 'b', texte: 'Que le réseau interne est de confiance', correct: true },
            { id: 'c', texte: 'Que les utilisateurs ont des groupes', correct: false, feedback_si_choisi: 'Les groupes restent fondamentaux en Zero Trust ; ils ne sont pas remis en cause.' },
            { id: 'd', texte: 'Que le DNS fonctionne', correct: false, feedback_si_choisi: 'Le DNS n\'a aucun rapport avec le principe Zero Trust.' }
          ],
          explication: 'Zero Trust renverse la confiance implicite au périmètre réseau : dès qu\'on est sur le LAN, on n\'est plus « à l\'intérieur ». Chaque accès doit être vérifié explicitement, indépendamment de la localisation réseau.'
        },
        { id: 'q2', type: 'single', enonce: 'Les trois principes Zero Trust sont :', reference_cours: 'Section 1',
          choix: [
            { id: 'a', texte: 'Verify explicitly, least privilege, assume breach', correct: true },
            { id: 'b', texte: 'Trust, verify, forget', correct: false, feedback_si_choisi: 'Zero Trust ne « fait confiance » à rien par défaut — ce triptyque contredit sa philosophie.' },
            { id: 'c', texte: 'Push, pull, sync', correct: false, feedback_si_choisi: 'Ce sont des modèles de propagation (GPO vs Intune), pas les principes Zero Trust.' },
            { id: 'd', texte: 'Free, P1, P2', correct: false, feedback_si_choisi: 'Ce sont les niveaux de licence Entra, pas des principes.' }
          ],
          explication: 'Verify explicitly (tous les signaux, à chaque accès) + Least privilege (JIT / JEA, PIM) + Assume breach (limiter le rayon d\'explosion). Ces principes structurent le mapping vers les briques Entra.'
        },
        { id: 'q3', type: 'single', enonce: 'Le **risque de connexion** (sign-in risk) évalue :', reference_cours: 'Section 2',
          choix: [
            { id: 'a', texte: 'Si le compte est probablement compromis', correct: false, feedback_si_choisi: 'C\'est la définition du user risk (risque utilisateur), pas du sign-in risk.' },
            { id: 'b', texte: 'Si cette connexion précise est suspecte (voyage impossible, IP anonyme…)', correct: true },
            { id: 'c', texte: 'La conformité de l\'appareil', correct: false, feedback_si_choisi: 'La conformité relève d\'Intune (module 06), pas d\'Identity Protection.' },
            { id: 'd', texte: 'La licence de l\'utilisateur', correct: false, feedback_si_choisi: 'La licence n\'a aucun rapport avec le risque calculé.' }
          ],
          explication: 'Sign-in risk = « cette connexion, ici, maintenant, est-elle suspecte ? ». User risk = « ce compte est-il probablement compromis dans la durée ? ». Deux signaux distincts, deux politiques distinctes.'
        },
        { id: 'q4', type: 'single', enonce: 'Avant d\'activer une **user risk policy** qui exige un changement de mot de passe, quel prérequis ?', reference_cours: 'Section 2 + Piège 2',
          choix: [
            { id: 'a', texte: 'ADFS', correct: false, feedback_si_choisi: 'ADFS n\'a aucun rapport avec la remédiation utilisateur d\'un risque Identity Protection.' },
            { id: 'b', texte: 'SSPR configuré (self-service password reset)', correct: true },
            { id: 'c', texte: 'Une GPO', correct: false, feedback_si_choisi: 'Les GPO ne pilotent pas la remédiation Identity Protection — c\'est du cloud.' },
            { id: 'd', texte: 'Un DC supplémentaire', correct: false, feedback_si_choisi: 'Rien à voir : la remédiation est cloud, elle ne dépend pas des DC on-prem.' }
          ],
          explication: 'SSPR permet à l\'utilisateur à risque de changer lui-même son mot de passe (self-remediation) sans passer par le helpdesk. Sans SSPR, il est bloqué et génère un ticket.'
        },
        { id: 'q5', type: 'single', enonce: 'Quelle méthode d\'authentification est la plus faible et à retirer en priorité ?', reference_cours: 'Section 3 + Piège 3',
          choix: [
            { id: 'a', texte: 'FIDO2', correct: false, feedback_si_choisi: 'FIDO2 est au contraire la méthode la plus forte — résistante au phishing.' },
            { id: 'b', texte: 'Windows Hello for Business', correct: false, feedback_si_choisi: 'WHfB est passwordless fort (biométrie + TPM + lié à l\'appareil).' },
            { id: 'c', texte: 'SMS / appel téléphonique', correct: true },
            { id: 'd', texte: 'Authenticator avec number matching', correct: false, feedback_si_choisi: 'Authenticator avec number matching est une méthode de bon niveau, à conserver.' }
          ],
          explication: 'Le SMS est vulnérable au SIM swapping et à l\'interception. Il reste utile en secours très encadré, mais c\'est la méthode à retirer en priorité pour aller vers le passwordless.'
        },
        { id: 'q6', type: 'single', enonce: 'Le **number matching** dans Authenticator sert à :', reference_cours: 'Section 3',
          choix: [
            { id: 'a', texte: 'Accélérer la connexion', correct: false, feedback_si_choisi: 'Le number matching ajoute au contraire une étape (saisir le numéro affiché) — c\'est un compromis sécurité / friction délibéré.' },
            { id: 'b', texte: 'Contrer la « MFA fatigue » (approbations accidentelles / forcées)', correct: true },
            { id: 'c', texte: 'Chiffrer le disque', correct: false, feedback_si_choisi: 'Le chiffrement disque relève de BitLocker / Intune, pas d\'une méthode MFA.' },
            { id: 'd', texte: 'Synchroniser l\'AD', correct: false, feedback_si_choisi: 'La synchronisation d\'annuaire est faite par Entra Connect / Cloud Sync (module 03), sans lien avec Authenticator.' }
          ],
          explication: 'MFA fatigue : l\'attaquant qui a le mot de passe spamme des notifications push jusqu\'à ce que la victime approuve par lassitude. Le number matching force à saisir un chiffre affiché à l\'écran de connexion — impossible sans voir cet écran.'
        },
        { id: 'q7', type: 'single', enonce: 'Defender for Identity (MDI) en E3+P2 :', reference_cours: 'Section 4 + Piège 4',
          choix: [
            { id: 'a', texte: 'Est inclus et à déployer', correct: false, feedback_si_choisi: 'MDI n\'est pas inclus en E3+P2 — c\'est un piège classique de croire qu\'il l\'est.' },
            { id: 'b', texte: 'N\'est **pas** inclus (E5 / add-on) ; à connaître, non déployable ; alternative = Identity Protection + logs Entra', correct: true },
            { id: 'c', texte: 'Remplace le CA', correct: false, feedback_si_choisi: 'MDI et CA sont des briques distinctes : MDI surveille les DC on-prem, CA décide d\'accès.' },
            { id: 'd', texte: 'Est gratuit', correct: false, feedback_si_choisi: 'MDI relève d\'E5 / add-on — payant, non inclus dans E3+P2.' }
          ],
          explication: 'MDI est à connaître (vocabulaire, attaques on-prem) mais hors périmètre déployable en E3+P2. L\'alternative repose sur Identity Protection (côté cloud) et les logs Entra (module 09). Réduire l\'AD DS réduit d\'autant le besoin de MDI.'
        },
        { id: 'q8', type: 'single', enonce: 'La détection « identifiants divulgués » en contexte hybride suppose :', reference_cours: 'Section 2 + Module 03',
          choix: [
            { id: 'a', texte: 'ADFS', correct: false, feedback_si_choisi: 'ADFS ne pousse pas le hash au cloud, donc pas de comparaison possible avec les bases de fuites.' },
            { id: 'b', texte: 'Password Hash Sync', correct: true },
            { id: 'c', texte: 'PTA sans PHS', correct: false, feedback_si_choisi: 'PTA seul ne stocke pas de hash côté cloud — la détection est partielle voire impossible.' },
            { id: 'd', texte: 'Rien', correct: false, feedback_si_choisi: 'La détection dépend d\'avoir le hash exploitable côté Entra pour le comparer aux bases publiques de credentials fuités.' }
          ],
          explication: 'Identity Protection compare le hash stocké côté Entra avec des bases publiques de credentials fuités. En hybride, cela suppose PHS (module 03). Sans PHS, la détection « leaked credentials » n\'est pas pleinement opérationnelle.'
        },
        { id: 'q9', type: 'single', enonce: '« Zero Trust » est :', reference_cours: 'Section 1 + Piège 1',
          choix: [
            { id: 'a', texte: 'Un produit à acheter', correct: false, feedback_si_choisi: 'Il n\'existe pas de SKU « Zero Trust » — c\'est une architecture, pas un article de catalogue.' },
            { id: 'b', texte: 'Une architecture assemblée (CA + PIM + Intune + Identity Protection + supervision)', correct: true },
            { id: 'c', texte: 'Une licence', correct: false, feedback_si_choisi: 'Ce n\'est pas une licence — c\'est un ensemble de principes assemblés à partir de plusieurs briques.' },
            { id: 'd', texte: 'Un protocole réseau', correct: false, feedback_si_choisi: 'Ce n\'est pas un protocole ; c\'est une posture de sécurité globale.' }
          ],
          explication: 'Zero Trust s\'assemble : Conditional Access + PIM + Intune (conformité poste) + Identity Protection + supervision (logs, alertes, module 09). Aucun SKU ne le remplace ; aucune brique seule ne le fournit.'
        },
        { id: 'q10', type: 'single', enonce: 'Empiler plusieurs méthodes MFA faibles « pour la disponibilité » :', reference_cours: 'Section 3 + Piège 3',
          choix: [
            { id: 'a', texte: 'Renforce la sécurité', correct: false, feedback_si_choisi: 'Au contraire : chaque méthode faible active est un point d\'entrée supplémentaire pour un attaquant.' },
            { id: 'b', texte: 'L\'affaiblit : le niveau réel est celui du maillon le plus faible', correct: true },
            { id: 'c', texte: 'N\'a aucun effet', correct: false, feedback_si_choisi: 'L\'effet est bien réel : le SMS actif à côté de FIDO2 dégrade la sécurité effective.' },
            { id: 'd', texte: 'Est obligatoire', correct: false, feedback_si_choisi: 'Rien n\'oblige à cumuler les méthodes. La cible est au contraire de ne garder que les plus fortes.' }
          ],
          explication: 'L\'attaquant vise le maillon le plus faible : si le SMS est actif, c\'est ce qui sera attaqué, indépendamment des méthodes fortes disponibles. Retirer les méthodes faibles est aussi important qu\'ajouter les fortes.'
        }
      ]
    };
  </script>
  <script src="assets/shared.js"></script>

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