Aller au contenu principal

Authentification

BeePass utilise Supabase Auth avec des cookies SSR (Server-Side Rendering). L'authentification est gérée automatiquement par le navigateur via les cookies HttpOnly.

Inscription

Créez un compte via l'interface web ou l'API Supabase Auth :

  • Email : adresse email valide (vérification par lien)
  • Mot de passe : 8 caractères minimum, 1 chiffre, 1 caractère spécial
  • Rôles disponibles : eleveur, testeur, groupe_selection, research_center
Rôles protégés

Les rôles groupe_selection et research_center nécessitent une validation par un administrateur après l'inscription.

Connexion

La connexion via Supabase Auth (signInWithPassword) définit automatiquement les cookies de session SSR. Aucun header Authorization manuel n'est nécessaire pour les appels API depuis le navigateur.

MFA (Authentification multi-facteurs)

Lors d'une connexion depuis un nouvel appareil, un code à 6 chiffres est envoyé par email (via Brevo). Le dispositif est identifié par empreinte (Canvas + User-Agent).

  • Les appareils reconnus ne déclenchent pas le MFA
  • Le code expire après 10 minutes
  • Maximum 10 tentatives de vérification par minute

Sessions

MéthodeRouteDescription
GET/api/auth/sessionsListe des sessions actives
DELETE/api/auth/sessionsRévoquer une session (body: { session_id })

La révocation supprime le refresh token. Le JWT courant reste valide jusqu'à expiration (~1 heure).

Auth Admin

L'authentification admin est indépendante de la session éleveur. Les deux coexistent simultanément.

MéthodeRouteDescription
POST/api/admin/auth/loginConnexion admin (set cookie HMAC)
GET/api/admin/auth/sessionLire la session admin
POST/api/admin/auth/logoutDéconnexion admin (supprime le cookie)

Le cookie beepass-admin-token est un JWT signé en HMAC (HS256), HttpOnly, Secure, SameSite=Strict, avec une expiration de 8 heures.

Double session

Vous pouvez être connecté simultanément en tant qu'éleveur (cookie Supabase) et administrateur (cookie HMAC). Les deux sessions sont indépendantes.

Audit

MéthodeRouteDescription
POST/api/auth/auditEnregistrer un événement d'audit
GET/api/auth/auditHistorique des événements d'audit

Les événements d'audit tracent les connexions, déconnexions, révocations de session et actions sensibles.

Authentification TOTP (2FA)

En complément de la vérification par email (MFA), vous pouvez activer l'authentification TOTP pour renforcer la sécurité de votre compte. Cette fonctionnalité est optionnelle pour les éleveurs et obligatoire pour les administrateurs.

Lorsque le TOTP est activé, la connexion se déroule en deux temps :

  1. Saisie de votre email et mot de passe (comme d'habitude)
  2. Saisie d'un code à 6 chiffres généré par votre application d'authentification (Google Authenticator, Authy, etc.)

Après validation du code, un cookie de session beepass-totp-verified est posé. Ce cookie persiste jusqu'à la fermeture du navigateur : vous ne serez pas redemandé le code tant que votre session est active.

Codes de secours

Lors de l'activation du TOTP, 8 codes de secours (format XXXX-XXXX) vous sont fournis. Chaque code est utilisable une seule fois, en remplacement du code TOTP, en cas de perte de votre application d'authentification. Conservez-les dans un endroit sur.

Limite de tentatives

Le nombre de tentatives de validation TOTP est limité a 5 par tranche de 15 minutes. Au-dela, l'acces est temporairement bloque.

MéthodeRouteDescription
POST/api/auth/totp/setupGénérer le secret TOTP + QR code
POST/api/auth/totp/verifyConfirmer le premier code (activation)
POST/api/auth/totp/validateValider un code lors de la connexion
POST/api/auth/totp/disableDésactiver le TOTP (code courant requis)

Suppression de compte

MéthodeRouteDescription
DELETE/api/auth/delete-accountSuppression du compte (vérification MFA requise)

Voir aussi : Vue d'ensemble | Reines | Évaluations