Authentification et sessions

Connexion OAuth, gestion des sessions et securite des cookies.

3 min de lecture

Fonctionnement de l'authentification

Le Bureau utilise OAuth 2.0 pour l'authentification. Vous vous connectez avec votre compte Google ou GitHub. Il n'y a pas de mot de passe a creer.

Flux de connexion OAuth

Lorsque vous cliquez sur "Se connecter avec Google" ou "Se connecter avec GitHub" :

  1. Vous etes redirige vers la page de connexion du provider (Google ou GitHub).
  2. Vous vous authentifiez aupres du provider et autorisez Le Bureau a acceder a votre profil de base (e-mail et nom).
  3. Le provider renvoie un code d'autorisation a Le Bureau.
  4. Le Bureau echange le code contre vos informations de profil et cree ou met a jour votre compte.
  5. Une session securisee est creee et vous etes redirige vers votre tableau de bord.

Le Bureau ne recoit ni ne stocke votre mot de passe Google ou GitHub. L'authentification est geree par le provider OAuth.

Protection nOAuth

La recherche utilisateur se fait par oauthProvider + oauthId, pas par e-mail seul. Une recherche par e-mail seul est vulnerable a l'usurpation si un provider ne verifie pas la propriete de l'adresse.

Un attaquant qui cree un compte Google ou GitHub avec votre adresse e-mail ne peut donc pas acceder a votre compte Le Bureau. Votre identite est liee a votre compte provider OAuth specifique, pas a votre e-mail.

Gestion des sessions

Apres connexion, Le Bureau cree une session cote serveur geree par NextAuth.js.

  • Duree de session -- les sessions restent actives tant que vous utilisez la plateforme regulierement. Les sessions inactives expirent automatiquement.
  • Connexion unique -- vous pouvez etre connecte sur plusieurs appareils simultanement.
  • Revocation de session -- la deconnexion invalide immediatement votre session cote serveur.

Securite des cookies

Parametres des cookies :

ParametreValeurPourquoi
Prefixe__Secure- / __Host-Garantit que les cookies ne sont definis que via HTTPS
httpOnlytrueEmpeche JavaScript de lire le cookie
securetrueLe cookie n'est envoye que via des connexions HTTPS
sameSitelaxBloque les attaques de type cross-site request forgery

Le prefixe __Host- ajoute une contrainte supplementaire : le cookie doit etre defini depuis l'hote exact, ce qui empeche les attaques par sous-domaine.

Authentification API

Pour l'acces API, l'authentification se fait par cles API au lieu d'OAuth. Voir Authentification API pour les details.

L'authentification par cle API inclut une limitation de debit : apres 10 tentatives d'authentification echouees en 60 secondes depuis la meme adresse IP, les tentatives suivantes sont temporairement bloquees pour prevenir les attaques par force brute.

Recommandations

  • Utilisez un mot de passe fort sur votre compte Google/GitHub. La securite de Le Bureau depend de celle de votre provider OAuth.
  • Activez l'authentification a deux facteurs sur votre compte Google ou GitHub.
  • Deconnectez-vous sur les appareils partages. Votre cookie de session reste valide jusqu'a deconnexion ou expiration.