Vai al contenuto principale

Autenticazione

BeePass utilizza Supabase Auth con cookie SSR (Server-Side Rendering). L'autenticazione viene gestita automaticamente dal browser tramite cookie HttpOnly.

Registrazione

Create un account tramite l'interfaccia web o l'API Supabase Auth:

  • Email: indirizzo email valido (verifica tramite link)
  • Password: minimo 8 caratteri, 1 cifra, 1 carattere speciale
  • Ruoli disponibili: eleveur, testeur, groupe_selection, research_center
Ruoli protetti

I ruoli groupe_selection e research_center richiedono la validazione da parte di un amministratore dopo la registrazione.

Accesso

L'accesso tramite Supabase Auth (signInWithPassword) imposta automaticamente i cookie di sessione SSR. Non è necessario alcun header Authorization manuale per le chiamate API dal browser.

MFA (Autenticazione multi-fattore)

Quando si accede da un nuovo dispositivo, un codice a 6 cifre viene inviato via email (tramite Brevo). Il dispositivo è identificato tramite impronta digitale (Canvas + User-Agent).

  • I dispositivi riconosciuti non attivano l'MFA
  • Il codice scade dopo 10 minuti
  • Massimo 10 tentativi di verifica al minuto

Sessioni

MetodoRottaDescrizione
GET/api/auth/sessionsElenco delle sessioni attive
DELETE/api/auth/sessionsRevocare una sessione (body: { session_id })

La revoca elimina il refresh token. Il JWT corrente resta valido fino alla scadenza (~1 ora).

Auth Admin

L'autenticazione admin è indipendente dalla sessione allevatore. Le due coesistono simultaneamente.

MetodoRottaDescrizione
POST/api/admin/auth/loginAccesso admin (imposta cookie HMAC)
GET/api/admin/auth/sessionLeggere la sessione admin
POST/api/admin/auth/logoutDisconnessione admin (elimina il cookie)

Il cookie beepass-admin-token è un JWT firmato in HMAC (HS256), HttpOnly, Secure, SameSite=Strict, con scadenza di 8 ore.

Doppia sessione

Potete essere connessi simultaneamente come allevatore (cookie Supabase) e amministratore (cookie HMAC). Le due sessioni sono indipendenti.

Audit

MetodoRottaDescrizione
POST/api/auth/auditRegistrare un evento di audit
GET/api/auth/auditStorico degli eventi di audit

Gli eventi di audit tracciano gli accessi, le disconnessioni, le revoche di sessione e le azioni sensibili.

Autenticazione TOTP (2FA)

In aggiunta alla verifica via email (MFA), potete attivare l'autenticazione TOTP per rafforzare la sicurezza del vostro account. Questa funzionalità è facoltativa per gli allevatori e obbligatoria per gli amministratori.

Quando il TOTP è attivato, l'accesso avviene in due fasi:

  1. Inserimento di email e password (come di consueto)
  2. Inserimento di un codice a 6 cifre generato dalla vostra app di autenticazione (Google Authenticator, Authy, ecc.)

Dopo la validazione del codice, viene impostato un cookie di sessione beepass-totp-verified. Questo cookie persiste fino alla chiusura del browser: non vi verrà richiesto nuovamente il codice finché la sessione è attiva.

Codici di recupero

All'attivazione del TOTP, vi vengono forniti 8 codici di recupero (formato XXXX-XXXX). Ogni codice è utilizzabile una sola volta, in sostituzione del codice TOTP, in caso di smarrimento della vostra app di autenticazione. Conservateli in un luogo sicuro.

Limite di tentativi

Il numero di tentativi di validazione TOTP è limitato a 5 per intervallo di 15 minuti. Oltre tale limite, l'accesso viene temporaneamente bloccato.

MetodoRottaDescrizione
POST/api/auth/totp/setupGenerare il segreto TOTP + QR code
POST/api/auth/totp/verifyConfermare il primo codice (attivazione)
POST/api/auth/totp/validateValidare un codice durante l'accesso
POST/api/auth/totp/disableDisattivare il TOTP (codice corrente richiesto)

Eliminazione dell'account

MetodoRottaDescrizione
DELETE/api/auth/delete-accountEliminazione dell'account (verifica MFA richiesta)

Vedi anche: Panoramica | Regine | Valutazioni