Ho un'applicazione web in esecuzione su node.js, supportata da un database MongoDB che memorizza i dati degli utenti, ecc ... Vorrei offrire ai miei utenti un account e-mail, quindi ho configurato un server di posta usando Postfix , dovecot, ecc ... Il mio problema è che mi piacerebbe collegare i due database degli utenti. Attualmente ho postfix e dovecot configurati per utilizzare gli utenti virtuali memorizzati in un database mysql (in realtà MariaDB), e questo funziona perfettamente (posso accedere e inviare email su IMAP ecc ...). Tuttavia, voglio che i miei utenti siano in grado di utilizzare la stessa password per IMAP come per accedere all'applicazione web. Sono felice di scrivere una API PHP per creare utenti sul server di posta, ecc., Ma il mio problema è come gestire le password. Per come la vedo, ci sono due opzioni;
- Posso trasmettere le password in formato testo dal mio server di applicazioni Web al mio server di posta quando un utente si registra o modifica la password. Ciò ovviamente verrebbe sottoposto a hash sul server di posta e archiviato nel database mysql e sottoposto ad hashing sul server delle applicazioni e archiviato nel database MongoDB. Questo mi sembra in qualche modo sbagliato - trasmettere una password in testo semplice in due hop simili.
- Posso trasmettere le password con hash dal server delle applicazioni al server di posta e archiviarle di nuovo senza . Di nuovo, questo sembra piuttosto azzardato, dal punto di vista del server di posta, accetta le password e le archivia in testo in chiaro.
Esistono altre opzioni per consentire ai miei utenti di accedere a entrambi i server con le stesse credenziali? Quali sono i problemi di sicurezza con le due opzioni che ho pensato sopra?