Authentification et sessions
Connexion OAuth, gestion des sessions et securite des cookies.
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" :
- Vous etes redirige vers la page de connexion du provider (Google ou GitHub).
- Vous vous authentifiez aupres du provider et autorisez Le Bureau a acceder a votre profil de base (e-mail et nom).
- Le provider renvoie un code d'autorisation a Le Bureau.
- Le Bureau echange le code contre vos informations de profil et cree ou met a jour votre compte.
- 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 :
| Parametre | Valeur | Pourquoi |
|---|---|---|
| Prefixe | __Secure- / __Host- | Garantit que les cookies ne sont definis que via HTTPS |
httpOnly | true | Empeche JavaScript de lire le cookie |
secure | true | Le cookie n'est envoye que via des connexions HTTPS |
sameSite | lax | Bloque 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.
Articles connexes
Donnees et confidentialite
Ou sont stockees vos donnees, ce qui est chiffre, et comment Le Bureau gere la confidentialite.
Authentification API
Deux methodes d'authentification pour l'API : cookies de session pour le navigateur et cles API pour l'acces programmatique.
Securite reseau
Comment Le Bureau securise les connexions avec les headers CSP, la limitation de debit, TLS et l'authentification WebSocket.