beh, nel caso i domini fossero tanti e/o su macchine separate un'alternativa potrebbe essere quella di mettere su un webservice che gestisca le autenticazioni oltre ad una serie di pagine che effettuino l'autenticazione
In questo modo:
- L'utente accede al sito
- Il sito, vede che l'utente non ha un cookie per una sessione, quindi, tramite webservice, richiede una nuova sessione (cosi il server dell'autenticazione fa il suo lavoro) ed il sito infine in posta il cookie
- l'utente accede ad un'area riservata
- il sito verifica se la sessione è autenticata o meno e se no lo reindirizza ad una pagina di login sul server dell'autenticazione inviandogli anche la pagina di ritorno (praticamente la pagina richiesta)
- il server dell'autenticazione fa il suo lavoro e rimanda indietro l'utente alla pagina di ritorno
- a questo punto il sito riverifica che la sessione dell'utente sia valida e che quindi l'utente sia loggato e lo fa andare avanti
A questi webservice devi aggiungerne altri per la gestione del profilo condiviso dell'utente (per leggere e scrivere le informazioni), ovviamente poi conviene che il sito ne abbia una copia in locale sul database con le sue informazioni aggiuntive (specifiche di quel sito).
A questo punto è utile un webservice "inverso", ovvero il server di autenticazione contatta i vari siti per avvisarli di aggiornare le informazioni sull'utente perché sono cambiate cosi che quando arriva questa richiesta possano aggiornare le informazioni sull'utente. Se poi, proprio, vuoi farla pulita puoi anche fare dei webservice "inversi" per gestire il logout o l'eventuale cancellazione della sessione cosi che ogni sito si possa "clonare" le informazioni in locale ed aggiornarle quando si verificano specifici eventi cosi da evitare, per ogni accesso, di fare varie richieste via soap/xmlrpc
I vari siti li registri sull'autentication server cosi che quando scattano gli eventi vengono aggiornato