Nota: este é um comportamento desejável do ponto de vista de segurança, mas podemos melhorar a experiência do usuário (UX) se isso ocorrer com um usuário
Se um usuário tiver registrado um token U2F, ele não funcionará se o nome de host do site tiver sido alterado desde o registro.
No entanto, não há feedback para o usuário de que isso pode ser devido à alteração do nome de host, pois não armazenamos essa informação no Discourse. E se o usuário não souber por que isso pode acontecer, ficará confuso.
Uma melhoria para este caso poderia ser exibida nesta tela:
Exibir uma mensagem como: “Temos uma chave de segurança registrada para esta conta, mas ela não é para o nome de host para o qual você está fazendo a solicitação (www.example.com)”
Consideração:
Se fizermos o acima, precisamos garantir que não mapeemos o nome de host antigo para o novo na tabela UserSecurityKey
Sim, precisamos adicionar algum texto aqui, @sam, para cobrir o caso de mudança de nome de domínio. Acredito que seja principalmente uma atualização de texto, como um aviso no rodapé ou algo assim?
Isso pode ser um pouco complicado, porque acho que o nome de host está armazenado dentro da chave pública, na tabela de chaves de segurança (faz um tempo que não trabalho nisso, então posso estar errado). Será necessário um pouco de ajuste para levar essa questão à interface do usuário, desabilitar o botão e mostrar a mensagem. Além disso, isso só aparecerá se todas as chaves de segurança registradas tiverem o nome de host errado — se uma coincidir, o usuário estará bem.
De forma relacionada, também preciso corrigir 2fa security key breaks when migrating to custom domain - #6 by balboah. Vou atribuir esse tópico a mim também, porque acho que, ao alterar os nomes de host, devemos provavelmente desabilitar todas as chaves de segurança existentes, pois elas se tornam efetivamente inúteis.
Muitas vezes, restauro um banco de dados de um ambiente de produção para um de staging com um nome de host diferente. Seria ótimo se o sistema pudesse, por exemplo, desativar todas as chaves inválidas e exigir que os administradores as redefinam (embora um usuário responsável já tenha chaves de backup configuradas, então isso não ajudaria muito. ).