Modello di Autenticazione & Sicurezza
SalernOS adotta un modello di sicurezza a tre livelli basato sul principio del minimo privilegio. Non esistono chiavi API sintetiche: la consultazione civica è completamente aperta e protetta da rate-limiting all'edge, mentre le operazioni riservate richiedono token di sessione firmati.
Livello 1: Pubblico Anonimo
Nessuna credenziale richiesta. Accesso immediato a POI, eventi, orari mobilità e fonti dati aperte.
Accept: application/jsonLivello 2: Partner Merchant
Token di sessione per esercenti accreditati. Consente pubblicazione sulla lavagnetta e verifica crittografica dei voucher.
Authorization: Bearer <token>Livello 3: Operatore Holding
Sessione governativa protetta da HMAC (er0s_session). Riservata al cockpit amministrativo di backoffice.
HttpOnly, Secure, SameSite=LaxAutenticazione Esercenti (Partner API)
Gli esercenti ottengono un token inviando le proprie credenziali all'endpoint di autenticazione:
curl -X POST "https://salernos.it/api/salernos/partner/auth" \
-H "Content-Type: application/json" \
-d '{
"email": "[email protected]",
"password": "PasswordMinimo12Caratteri!"
}'Esempio Risposta con Token:
{
"ok": true,
"session": {
"token": "salernos_ptk_9f8a2bc4...",
"email": "[email protected]",
"name": "Osteria Vicolo della Neve",
"category": "ristorante"
}
}Sicurezza & Difesa CSRF
Il middleware Edge di SalernOS applica una difesa CSRF centralizzata (negaCsrf) su tutti i percorsi che modificano lo stato. Le chiamate provenienti da browser con intestazione Origindiscordante rispetto alla allowlist autorizzata vengono automaticamente respinte con HTTP 403 Forbidden.
I tentativi di brute-force sugli endpoint di autenticazione sono limitati in memoria a una finestra temporale fissa per indirizzo IP: il superamento della soglia attiva un blocco temporaneo con risposta HTTP 429 Too Many Requests.