Migrated password hashes support

Grazie @pfaffman

Ho effettuato alcuni test e posso confermare che non funziona con Drupal 7, che apparentemente utilizza SHA-512, come indicato in Drupal 7: Secure password storage by default at last | Jon Cave

Creerò una PR se riesco ad aggiungerne una compatibile.

Rich

3 Mi Piace

Ciao :waving_hand:

Ho migrato un sacco di contenuti da bbPress alla mia installazione di Discourse. Posso vedere tutti i post, gli utenti e altro. Ma i miei utenti non riescono ad accedere utilizzando i loro “vecchi” dati della password dal mio sito WP. Ho installato il plugin, che è elencato nella sezione dei plugin della mia area di amministrazione. Ho spuntato tutte le opzioni disponibili.

Tuttavia: nessuno riesce ad accedere!
Inoltre, non ho idea di dove applicare il codice fornito nel readme del plugin:

user = User.find_by(username: 'user')
user.custom_fields['import_pass'] = '5f4dcc3b5aa765d61d8327deb882cf99'
user.save

Inoltre, non ho idea di cosa si intenda esattamente per “hash di password alternativi” menzionati nel readme.

@michaeld, potresti fornire ulteriori indicazioni su come utilizzare il plugin?

Per quanto mi ricordi, l’importatore bbPress supporta il plugin, quindi hai fatto tutto correttamente e non c’è bisogno di fare altro.

1 Mi Piace

Oddio, dopo ulteriori test è risultato che ha funzionato davvero. Il problema era una password modificata quando l’ho testato :man_facepalming: Scusa! Grazie per l’ottimo plugin! Mi ha reso la vita molto più facile!

2 Mi Piace

Ciao, sto avendo problemi a far funzionare questa cosa. Ho creato un campo personalizzato chiamato import_pass e ho installato il plugin. Ho eseguito di nuovo lo script di importazione sul mio database SMF, ma senza successo: dopo, nessuno riesce a accedere. Nel campo personalizzato vedo solo un “-” invece di un hash.

Come hanno già segnalato altri utenti, non sono sicuro di cosa fare con questo:

user = User.find_by(username: 'user')
user.custom_fields['import_pass'] = '5f4dcc3b5aa765d61d8327deb882cf99'
user.save

Apprezzo qualsiasi indicazione. Questo codice va inserito nel file dello script di importazione smf2.rb o cosa?

Questo non funzionerà. Tuttavia, non è necessario installare il plugin durante l’importazione né creare manualmente un campo personalizzato. Dovrebbe già essere gestito dallo script SMF2. Quindi c’è qualcos’altro che non va.

Il codice è presente come esempio per gli autori degli script. È già incluso nello script SMF2.

3 Mi Piace

Grazie. Ottimo. Quindi intendi dire che, se rimuovo il campo personalizzato creato manualmente e lascio semplicemente il plugin attivo, dovrebbe funzionare autonomamente e recuperare gli hash delle password quando necessario.

Esiste un registro che possiamo controllare per capire perché il plugin non sta facendo ciò che dovrebbe?

Il plugin si occupa di interpretare e utilizzare i campi personalizzati impostati dall’importatore. Se i campi personalizzati sono vuoti o non presenti, il problema non è del plugin, ma dell’importatore.

2 Mi Piace

Il plugin deve essere installato prima o dopo la migrazione? O non cambia nulla?

TL;DR: dopo.

Dovresti installare il plugin sull’istanza che esegue effettivamente il forum migrato.

Abbiamo riscontrato casi in cui il plugin ha causato problemi quando era installato su un’istanza che eseguiva effettivamente lo script di migrazione, quindi sconsigliamo di installarlo lì.

4 Mi Piace

Ciao,

Qualcuno ha già testato con gli hash delle password di Auth0?

Non posso fare un test diretto perché l’esportazione degli hash delle password è un servizio a pagamento riservato ai clienti; volevo solo sapere se qualcuno l’ha già provato prima di intraprendere questa strada.

Sembra che le loro password siano crittografate con bcrypt e 10 round di salatura.

Grazie.

2 Mi Piace

Ciao, per caso è cambiato qualcosa riguardo al supporto per Drupal 7?

Oops, domanda di 2 anni fa che mi sono perso!

bcrypt dovrebbe essere supportato indipendentemente dal numero di round, purché i round siano codificati nel solito modo ($2a$10$...)

No, quel codice non è stato toccato per oltre 3 anni.

1 Mi Piace

Abbiamo migrato un forum a Discourse alcuni anni fa utilizzando il plugin migratepassword. C’è un modo per verificare quanti dei nostri utenti stanno ancora utilizzando gli hash delle password legacy del nostro vecchio forum?

Tecnicamente, un utente non sta “utilizzando” l’hash della password legacy.

Quando un utente effettua il login per la prima volta dopo una migrazione e la password non corrisponde a quella di Discourse (che inizialmente sarà una stringa casuale di caratteri), il plugin esegue la sua funzione.

  • verifica se la password inserita corrisponde al campo personalizzato import_pass utilizzando tutti i metodi di hash conosciuti;
  • se trova una corrispondenza, salva la password per l’utente e rimuove quindi il campo personalizzato import_pass.

Quindi, dopo alcuni anni, solo gli utenti che non hanno “utilizzato” la password migrata per accedere avranno ancora il campo personalizzato import_pass.

a) non hanno mai effettuato il login (puoi verificare ciò controllando la data dell’ultimo accesso)
b) non hanno utilizzato la password migrata ma hanno effettuato il login tramite email, un metodo di autenticazione diverso, oppure hanno reimpostato la propria password

:warning: Mi sono appena reso conto che la situazione b può introdurre un problema di sicurezza. Se un utente non ricorda la propria password e la cambia, o se utilizza un altro metodo di autenticazione, l’hash della password migrata rimarrà presente e potrà ancora essere utilizzato insieme alla nuova password. Ho appena rilasciato un aggiornamento per il plugin in modo che cancelli il campo personalizzato import_pass ad ogni accesso riuscito.

Quindi d’ora in poi, il campo personalizzato import_pass sarà presente solo per gli utenti che non hanno mai effettuato il login.

2 Mi Piace