Il mio servizio web è un'applicazione a pagina singola basata su API. Una volta che l'utente effettua il login, gli viene assegnato un token temporaneo da utilizzare per il resto della sessione, che viene inviato insieme a ciascuna richiesta API. Il token è ovviamente legato all'indirizzo IP che ha eseguito la richiesta di accesso. Ciò significa che anche se una terza parte riesce in qualche modo a catturare un token nonostante TLS, probabilmente non potrebbero usarla e non sarebbe utilizzabile da nessuno dopo che la sessione corrente è terminata.
Ma di recente mi sono imbattuto in un utente il cui indirizzo IP cambia con estrema frequenza (con frequenza ogni 30 minuti), causandogli spesso la necessità di ripetere l'accesso durante l'utilizzo del servizio. La modifica dell'indirizzo è causata dall'accesso al dormitorio di un campus che ricicla un pool di indirizzi IP molto limitato che l'utente finale, naturalmente, non ha alcun controllo.
Come posso riconciliarmi mantenendo la sicurezza della mia attuale configurazione, senza tuttavia causare problemi agli utenti in questa situazione? Il miglior "middle-ground" che ho ottenuto finora è quello di allentare il requisito IP affinché corrisponda solo al primo ottetto dell'indirizzo, ma è tutt'altro che ideale.