Skip to Content
SymfonyPartie 10 — Sécurité & authentificationVue d'ensemble de la partie

Partie 10 — Sécurité & authentification

Public : BookLab a un back-office et des formulaires (Parties 7-9). Avant d’ouvrir l’API au front Next.js (Partie 11), il faut sécuriser : qui est l’utilisateur, et a-t-il le droit de faire ceci ? Objectif de la partie : maîtriser le composant Security : firewalls et authenticators, authentification (utilisateur, hachage, login form), autorisation (rôles, voters), JWT pour l’API stateless (le pont vers Next.js), OAuth (connexion sociale) et le durcissement (2FA, bonnes pratiques).

Ce que vous saurez faire à la fin de cette partie

  • Comprendre la distinction authentification (qui es-tu ?) / autorisation (as-tu le droit ?).
  • Configurer des firewalls distincts (back-office par session, API par JWT).
  • Créer un User, hacher les mots de passe, mettre en place un login form.
  • Écrire des voters pour des permissions fines (« cet utilisateur peut-il annuler CETTE réservation ? »).
  • Sécuriser l’API avec des JWT (+ refresh tokens) — la base de l’auth du front Next.js.
  • Ajouter OAuth (Google/GitHub) et la 2FA, et appliquer une checklist de durcissement.

L’enjeu double de BookLab

BookLab a deux entrées avec deux modèles d’auth, gérés par deux firewalls :

Le back-office utilise une session (cookie, login form, CSRF) ; l’API est stateless (JWT, pas de session). Le composant Security gère les deux sur le même modèle utilisateur et les mêmes voters. C’est exactement l’architecture premium du cours.

Chapitres de cette partie

  1. Firewalls & authenticators — le pipeline de sécurité, les firewalls, access_control, plusieurs firewalls.
  2. Rôles & voters — hiérarchie de rôles, isGranted, voters pour des permissions fines.
  3. Login form & hachage — l’entité User, hachage des mots de passe, formulaire de connexion, remember me.
  4. JWT pour l’API — LexikJWTAuthenticationBundle, tokens, refresh tokens, firewall stateless — l’auth du front Next.js.
  5. OAuth & connexion sociale — se connecter via Google/GitHub (HWIOAuth / OAuth2 client).
  6. 2FA & durcissement — double authentification, rate limiting, bonnes pratiques et checklist OWASP.

Prochain chapitre : 10.1 — Firewalls & authenticators.