OAuth2 est un protocole d'autorisation standard qui permet à une application d'accéder aux ressources d'un utilisateur sur un autre service, sans que celui-ci ait à partager ses identifiants. C'est le mécanisme derrière les boutons « Se connecter avec Google / GitHub / Microsoft » et l'accès sécurisé aux API tierces.
OAuth2 définit plusieurs flux (ou « grants ») adaptés à différents contextes : Authorization Code (pour les applications web classiques), PKCE (pour les applications front-end et mobiles), Client Credentials (pour les échanges machine-to-machine). Chaque flux offre un niveau de sécurité adapté à son cas d'usage.
L'authentification d'une application web combine généralement OAuth2 avec des JWT (JSON Web Tokens) pour les API stateless, ou des sessions serveur pour les applications Twig/SSR. Symfony fournit un système de sécurité complet (firewall, authenticators, voters) qui s'intègre nativement avec ces standards et simplifie la mise en œuvre d'une authentification robuste.