Ad esempio:
- Stiamo eseguendo due siti di community su due domini (chiamali
example.com
eexample.net
). - Vogliamo poterlo espandere ad altri domini più tardi.
- Vogliamo consentire più tipi di accesso (OpenID, Facebook, Twitter, nome utente / password standard).
- Vogliamo che qualcuno che ha effettuato l'accesso a un sito venga automaticamente registrato nell'altro (i).
In altre parole, è un po 'simile alla rete StackExchange.
In questo caso, questo piano funzionerebbe?
- Imposta
example.com
eexample.net
(e qualsiasi aggiunta successiva) come parti di supporto OpenID, che accettano l'accesso OpenID solo daid.example.org
. - Configura
example.com
eexample.net
per fare una richiesta OpenID di risposta immediata la prima volta che li visiti, in modo che se hai effettuato l'accesso aid.example.org
, sei immediatamente e automaticamente connesso al sito tu ' ri visitare. Dovrebbero impostare un cookie se non sei loggato, per salvarlo facendo questo su ogni richiesta di pagina. - Imposta
id.example.org
come fornitore OpenID e consumatore. Dovrebbe anche utilizzare Facebook e altri provider di identità e consentire l'accesso standard a nome utente e password. (Metodi di accesso multipli possono essere collegati a un account.) - Al logout, è sufficiente modificare i token di autenticazione nel database. L'utente avrà ancora i cookie, ma saranno privi di significato. Quindi l'utente può essere disconnesso da tutti i siti contemporaneamente. I token di autenticazione multipli possono essere archiviati su un utente contemporaneamente (e dovrebbero essere diversi per ogni sito), in modo che l'utente possa uscire da un browser ma aver effettuato l'accesso in un altro. La disconnessione è sempre valida per tutti i siti.
L'unico problema che posso vedere con quanto sopra è questo:
- Qualcuno visita
example.com
. Un cookie "non registrato" è impostato. - Zie va quindi a
example.net
. Idem. - Zie quindi esegue l'accesso e continua a navigare su
example.net
. - Zie torna quindi a
example.com
e, a causa del cookie "not-logged-in", non viene confrontato conid.example.org
e pertanto non è connesso. - Tuttavia, non appena zie fa clic sul pulsante "accedi", zie ha effettuato l'accesso.
Non penso che questo sia un problema grave.
Nel complesso, penso che sia un buon sistema. Mi piacerebbe vederlo rivisto. Ci sono problemi che non ho previsto? Sarebbe buggy o lento? StackExchange utilizza un metodo molto diverso. Presumo che abbiano una buona ragione per questo?