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
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
| Metodo | Rotta | Descrizione |
|---|---|---|
GET | /api/auth/sessions | Elenco delle sessioni attive |
DELETE | /api/auth/sessions | Revocare 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.
| Metodo | Rotta | Descrizione |
|---|---|---|
POST | /api/admin/auth/login | Accesso admin (imposta cookie HMAC) |
GET | /api/admin/auth/session | Leggere la sessione admin |
POST | /api/admin/auth/logout | Disconnessione admin (elimina il cookie) |
Il cookie beepass-admin-token è un JWT firmato in HMAC (HS256), HttpOnly, Secure, SameSite=Strict, con scadenza di 8 ore.
Potete essere connessi simultaneamente come allevatore (cookie Supabase) e amministratore (cookie HMAC). Le due sessioni sono indipendenti.
Audit
| Metodo | Rotta | Descrizione |
|---|---|---|
POST | /api/auth/audit | Registrare un evento di audit |
GET | /api/auth/audit | Storico 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:
- Inserimento di email e password (come di consueto)
- 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.
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.
Il numero di tentativi di validazione TOTP è limitato a 5 per intervallo di 15 minuti. Oltre tale limite, l'accesso viene temporaneamente bloccato.
| Metodo | Rotta | Descrizione |
|---|---|---|
POST | /api/auth/totp/setup | Generare il segreto TOTP + QR code |
POST | /api/auth/totp/verify | Confermare il primo codice (attivazione) |
POST | /api/auth/totp/validate | Validare un codice durante l'accesso |
POST | /api/auth/totp/disable | Disattivare il TOTP (codice corrente richiesto) |
Eliminazione dell'account
| Metodo | Rotta | Descrizione |
|---|---|---|
DELETE | /api/auth/delete-account | Eliminazione dell'account (verifica MFA richiesta) |
Vedi anche: Panoramica | Regine | Valutazioni