Sto tentando di progettare un sistema Single Sign-On per l'utilizzo in un'architettura distribuita. Nello specifico, devo fornire un modo per un sito Web del cliente (ovvero un sito web su un dominio / server / rete diverso) per consentire agli utenti di registrare account sul mio sistema centrale.
Quindi, quando l'utente intraprende un'azione su un sito Web del cliente e si ritiene che l'azione richieda un account, il cliente produrrà una pagina (sul proprio sito / dominio) in cui l'utente può registrarsi per un nuovo account fornendo un indirizzo email e una password.
Il client deve quindi inviare queste informazioni a un servizio web, che registrerà l'account e restituirà alcuni valori del tipo di token di sessione.
Il client dovrà hash la password prima di inviarlo attraverso il filo, e il webservice richiederà https, ma questo non sembra abbastanza sicuro e ho bisogno di alcuni consigli su come posso implementarlo nel modo più sicuro modo possibile.
Alcuni altri bit di informazioni rilevanti:
- Idealmente preferiremmo non condividere alcun codice con il cliente
- Abbiamo considerato di reindirizzare l'utente a una pagina protetta sullo stesso server del servizio web, ma è probabile che venga rifiutato per motivi non tecnici.
- Abbiamo quasi sicuramente bisogno di salare la password prima dell'hashing e di passarla sopra, ma ciò richiede che il client sia a) generare il sale e comunicarcelo, oppure b) vieni a chiederci il sale - entrambi si sentono sporchi .
Qualsiasi aiuto o consiglio è più apprezzato.