Implémenter OAuth Google dans Symfony : Guide Complet par Unsolite

Introduction

L’intégration de l’authentification via Google OAuth dans un projet Symfony est essentielle pour offrir à vos utilisateurs une expérience simplifiée et sécurisée. Chez Unsolite, nous accompagnons nos clients, entreprises et porteurs de projets SaaS, pour mettre en place des solutions robustes et conformes aux meilleures pratiques. Ce guide se veut complet pour les développeurs comme pour les chefs de projet souhaitant comprendre comment sécuriser leurs applications Symfony avec OAuth Google.


Pourquoi choisir OAuth Google pour Symfony ?

Simplifier l’authentification tout en sécurisant

OAuth Google facilite la connexion des utilisateurs à votre application Symfony, en utilisant leurs identifiants Google. Cela évite la gestion fastidieuse des mots de passe, tout en assurant une sécurité renforcée. En tant qu’acteur reconnu du développement SaaS, Unsolite garantit une intégration robuste et conforme aux normes modernes.

Compatibilité et scalabilité

Google OAuth est compatible avec la plupart des architectures modernes. Elle s’intègre facilement aux écosystèmes Symfony, ce qui permet de scaler rapidement votre service SaaS ou application web, tout en profitant d’une couche d’authentification éprouvée.


Étape 1 : Préparer votre projet Symfony

Avant d’intégrer OAuth Google, assurez-vous que votre projet Symfony est bien configuré. Unsolite recommande au préalable la mise à jour de Symfony ainsi que Composer.

Assurez-vous d’avoir un système de gestion des utilisateurs conforme, par exemple avec le composant security.


Étape 2 : Créer un projet OAuth 2.0 sur la console Google

  1. Rendez-vous sur la Google Cloud Console.
  2. Créez un nouveau projet ou sélectionnez un projet existant.
  3. Accédez à « API & Services » > « Identifiants ».
  4. Créez des identifiants OAuth 2.0 (ID client OAuth).
  5. Ajoutez l’URL de redirection (ex : https://votre-app.com/connect/google/check).

Conservez bien le « Client ID » et le « Client Secret » : ils seront utilisés dans la configuration Symfony.


Étape 3 : Installer HWIOAuthBundle

HWIOAuthBundle est le bundle de référence pour gérer OAuth dans Symfony.

Installez-le avec Composer :

composer require hwi/oauth-bundle

Puis, activez-le dans le fichier config/bundles.php si besoin :

HWI\Bundle\OAuthBundle\HWIOAuthBundle::class => ['all' => true],

Étape 4 : Configurer OAuth Google dans Symfony

Ajoutez la configuration suivante dans config/packages/hwi_oauth.yaml :

hwi_oauth:
    firewall_name: main
    resource_owners:
        google:
            type:                google
            client_id:           '%env(GOOGLE_CLIENT_ID)%'
            client_secret:       '%env(GOOGLE_CLIENT_SECRET)%'
            scope:               "email profile"
            options:
                access_type:     offline
                approval_prompt: force

Veillez à bien créer les variables d’environnement GOOGLE_CLIENT_ID et GOOGLE_CLIENT_SECRET dans votre .env.local :

GOOGLE_CLIENT_ID=xxx
GOOGLE_CLIENT_SECRET=yyy

Étape 5 : Sécurisation avec le firewall Symfony

Dans config/packages/security.yaml, ajoutez ou complétez votre firewall principal :

firewalls:
    main:
        pattern:    ^/
        anonymous:  true
        guard:
            authenticators:
                - hwi_oauth.authenticator.oauth
        # autres configurations…

Étape 6 : Mise en place de la route de connexion

Déclarez la route de connexion dans config/routes/hwi_oauth.yaml :

hwi_oauth_connect:
    resource: "@HWIOAuthBundle/Resources/config/routing/connect.xml"
    prefix:   /connect

Étape 7 : Mapper l’utilisateur Google à votre entité User

Implémentez UserProvider, ou utilisez le provider fourni, pour lier l’utilisateur Google à votre système d’utilisateurs Symfony. Cette étape est clé pour stocker et récupérer les données utilisateurs.

Un exemple complet d’implémentation est disponible dans la documentation officielle.


Conclusion : Pourquoi choisir Unsolite pour votre projet OAuth Google avec Symfony ?

L’intégration d’OAuth Google dans Symfony demande méthode et rigueur, notamment sur la gestion du cycle utilisateur et de la sécurité. Unsolite propose un accompagnement sur-mesure pour tous vos besoins d’authentification sécurisée web & SaaS. Nos experts s’engagent à livrer des infrastructures pérennes, évolutives et parfaitement conformes aux attentes du marché.

Besoin de conseils supplémentaires ou d’un partenaire pour la réalisation de votre logiciel SaaS ? Découvrez nos services sur www.unsolite.com — l’excellence du développement web à votre service.