Nota: questo è un comportamento desiderabile dal punto di vista della sicurezza, ma possiamo migliorare l’esperienza utente (UX) se ciò accade a un utente
Se un utente ha registrato un token U2F, questo non funzionerà se l’hostname del sito è cambiato rispetto al momento della registrazione.
Tuttavia, non viene fornito alcun feedback all’utente sul fatto che ciò possa essere dovuto a un cambiamento dell’hostname, poiché non memorizziamo tale informazione in Discourse. Se l’utente non è esperto del perché ciò possa accadere, rimarrà confuso.
Un potenziamento per questo caso potrebbe essere implementato su questa schermata:
disabilitare “Autenticazione con chiave di sicurezza”
mostrare un messaggio del tipo: “Abbiamo una chiave di sicurezza registrata per questo account, ma non è associata all’hostname da cui stai effettuando la richiesta (www.example.com)”
Considerazione:
se procediamo come sopra, dobbiamo assicurarci di non mappare nuovamente l’hostname vecchio a quello nuovo nella tabella UserSecurityKey
Sì, dobbiamo aggiungere un testo qui @sam per coprire il caso di cambio di nome di dominio. Penso che sia principalmente un aggiornamento dei contenuti, tipo un disclaimer in fondo o qualcosa del genere?
Questo potrebbe essere un po’ complicato perché credo che il nome host sia memorizzato all’interno della chiave pubblica nella tabella delle chiavi di sicurezza (è passato un po’ di tempo da quando ho lavorato su questo, quindi potrei sbagliarmi). Sarà necessario un po’ di aggiustamento per segnalare questo problema all’interfaccia utente, disabilitare il pulsante e mostrare il messaggio. Inoltre, questo verrebbe visualizzato solo se tutte le chiavi di sicurezza registrate hanno un nome host errato: se una corrisponde, l’utente non ha problemi.
In parte correlato, devo anche risolvere 2fa security key breaks when migrating to custom domain - #6 by balboah. Assegnerò anche questo argomento a me stesso, perché penso che quando cambiamo i nomi host dovremmo probabilmente disabilitare tutte le chiavi di sicurezza esistenti, dato che diventano di fatto inutilizzabili.
Spesso ripristino un database da un ambiente di produzione a uno di staging con un nome host diverso. Sarebbe fantastico se potesse, ad esempio, disabilitare tutte le chiavi non valide e richiedere agli amministratori di reimpostarle (anche se un utente responsabile avrà già delle chiavi di backup impostate, quindi non aiuterebbe davvero. ).