Portfolio/Authentification AWS Cognito

Authentification simplifiée avec AWS Cognito

Implémentation d'une solution d'authentification flexible avec AWS Cognito pour Wooskill, permettant la connexion en un clic via Google, Apple et Facebook, tout en gérant la migration transparente des utilisateurs existants.

Intégration AWS Cognito pour Wooskill

La problématique

Wooskill souhaitait simplifier le processus d'authentification de sa plateforme de formation, tout en résolvant plusieurs défis critiques :

  • La nécessité de s'authentifier avant paiement créait une friction qui réduisait potentiellement les taux de conversion
  • L'absence d'options de connexion rapide via des identités sociales (Google, Apple, Facebook)
  • Le besoin de migrer les utilisateurs existants dont les mots de passe étaient stockés avec un chiffrement sécurisé irréversible
  • La nécessité d'un haut niveau de sécurité compte tenu des flux de paiement impliqués

Tous ces défis devaient être relevés sans perturber l'expérience des utilisateurs existants, tout en améliorant considérablement celle des nouveaux utilisateurs.

La solution

Approche Globale

J'ai conçu et implémenté une solution complète basée sur AWS Cognito, offrant à la fois flexibilité, sécurité et une expérience utilisateur optimisée, tout en assurant une transition en douceur pour la base d'utilisateurs existante.

1Architecture d'authentification unifiée

L'intégration d'AWS Cognito a permis de créer un système d'authentification centralisé offrant :

  • Connexion traditionnelle via email/mot de passe
  • Connexion en un clic via Google, Apple et Facebook
  • Gestion unifiée des identités quelle que soit la méthode d'authentification

2Stratégie de migration intelligente

Pour assurer une transition transparente pour les utilisateurs existants, j'ai développé un mécanisme innovant utilisant les triggers Lambda Cognito :

  1. Détection d'utilisateur pré-existant : Lors d'une tentative de connexion, vérification si l'utilisateur existe dans l'ancien système

  2. Validation du mot de passe : Vérification du mot de passe contre l'ancien système de stockage sécurisé

  3. Migration automatique : En cas de succès, création d'un compte Cognito avec les mêmes identifiants

  4. Expérience transparente : L'utilisateur n'a pas conscience du processus de migration et peut immédiatement utiliser les nouvelles fonctionnalités

3Intégration avec l'écosystème Wooskill

Pour assurer le bon fonctionnement de la solution dans l'écosystème existant, j'ai créé plusieurs fonctions Lambda déclenchées par les événements Cognito :

Gestion des données

  • Création d'utilisateur en base de données
  • Synchronisation des attributs utilisateur
  • Envoi d'email de bienvenue personnalisé
  • Association des comptes liés à plusieurs identités

Sécurité & Personnalisation

  • Personnalisation du jeton JWT avec attributs métier
  • Gestion des rôles et autorisations
  • Validation des données utilisateur
  • Politique de mot de passe personnalisée

Optimisation du parcours d'achat

Avec l'intégration des fournisseurs d'identité sociaux, les nouveaux utilisateurs peuvent désormais s'inscrire et payer en quelques clics, sans avoir à créer et mémoriser de nouveaux identifiants. Cette fluidité a considérablement amélioré les taux de conversion du parcours d'achat.

4Architecture technique AWS

La solution s'appuie sur une architecture AWS robuste et sécurisée :

  • AWS Cognito pour la gestion centralisée des utilisateurs et identités
  • AWS Lambda pour la logique métier et les triggers de personnalisation
  • AWS CloudWatch pour la surveillance et les alertes
  • Librairie Amplify pour l'intégration client simplifiée

Les résultats

L'implémentation de cette solution d'authentification avec AWS Cognito a eu un impact significatif sur l'expérience utilisateur et les performances commerciales de Wooskill.

Les principaux bénéfices incluent :

  • Expérience utilisateur améliorée avec des options d'authentification flexibles et rapides
  • Sécurité renforcée bénéficiant de l'infrastructure robuste d'AWS Cognito
  • Réduction des abandons pendant le processus d'inscription et d'achat
  • Migration transparente des utilisateurs existants sans interruption de service
  • Base solide pour l'avenir avec une solution hautement évolutive

La solution d'authentification AWS Cognito a permis à Wooskill d'offrir une expérience d'authentification moderne, sécurisée et conviviale, contribuant directement à l'amélioration de ses performances commerciales tout en posant des bases solides pour les futures évolutions de la plateforme.

Aspects techniques

Architecture de la solution

Configuration d'AWS Cognito

  • Mise en place d'un User Pool dédié avec attributs personnalisés
  • Configuration des politiques de sécurité (complexité des mots de passe, MFA)
  • Intégration des fournisseurs d'identité tiers (Google, Facebook, Apple)
  • Personnalisation de l'interface utilisateur conforme à la charte graphique Wooskill

Triggers Lambda

J'ai implémenté plusieurs fonctions Lambda attachées à des événements spécifiques du cycle d'authentification :

  • Pre Sign-up : Vérification de l'existence préalable et validation des données
  • Pre Authentication : Déclenchement du processus de migration si nécessaire
  • Post Authentication : Enrichissement du JWT avec des attributs métier
  • Post Confirmation : Création ou mise à jour de l'utilisateur en base de données
  • Custom Message : Personnalisation des emails et SMS envoyés aux utilisateurs

Intégration côté client

Pour le frontend, j'ai utilisé la bibliothèque Amplify qui offre une interface simple pour interagir avec Cognito :

  • Composants React pour les formulaires d'authentification
  • Gestion des jetons JWT et du rafraîchissement automatique
  • Hooks pour la détection de l'état d'authentification
  • Intercepteurs HTTP pour attacher automatiquement les tokens aux requêtes API

Algorithme de migration

Le processus de migration a été particulièrement délicat à mettre en place pour garantir une expérience fluide :

  1. L'utilisateur tente de se connecter avec son email et mot de passe
  2. Cognito ne trouve pas l'utilisateur et déclenche la fonction Lambda de migration
  3. La fonction vérifie l'existence de l'utilisateur dans l'ancien système
  4. Si trouvé, vérification du mot de passe avec l'ancien algorithme de hachage
  5. En cas de succès, création automatique d'un utilisateur Cognito avec les mêmes identifiants
  6. L'utilisateur est authentifié sans interruption ni besoin de créer un nouveau compte
Architecture d'authentification AWS Cognito pour Wooskill

Architecture d'authentification AWS Cognito

Cliquez pour agrandir l'image

Recommandation

Sophie Kerob - CEO & Fondatrice chez Wooskill

Sophie Kerob

CEO & Fondatrice chez Wooskill

Ca a toujours été un bonheur de travailler avec Damien. Tout d'abord pour ses compétences : étant passionné par la tech et particulièrement talentueux, Damien est très investi dans ses projets, son cerveau fourmille d'idées, il est très orienté "solutions" et créatif dans la façon de lever les freins. Mais plus encore, je tiens à souligner sa personnalité rare, il est solaire, engagé, loyal et très attachant. Toujours enjoué, avec un excellent esprit d'équipe, Damien est apprécié de tous. Une pépite, tout simplement.

Sophie Kerob sur LinkedIn
Philippe Isaac - COO & Co-fondateur chez Wooskill

Philippe Isaac

COO & Co-fondateur chez Wooskill

Très fort techniquement, passionné, hyper social , devient vite le chouchou d'une équipe entière. Je recommande

Philippe Isaac sur LinkedIn

Autres réalisations