Devo implementare una soluzione SSO con i seguenti requisiti:
-
Cross-domain: supponiamo di avere
a.com
,b.com
esso.com
. Se effettuo il login tramitea.com
, non dovrei effettuare il login quando visitob.com
. -
Centralizzato: utente non loggato facendo clic su "Login" su
a.com
viene mostrata una schermata di accesso ospitata susso.com
. Le credenziali sono controllate dasso.com
nell'origine dati accessibile solo ad essa. -
Accesso automatico: se l'utente ha eseguito l'accesso a
a.com
e successivamente visitab.com
, verrà eseguito immediatamente il login. Cioè, sub.com
, invece di un collegamento "Login" , vogliamo mostrare subito il loro nome utente, ecc. senza la necessità di cliccare nulla. -
Nessun reindirizzamento per utenti anonimi: un'ampia maggioranza dei miei utenti utilizzerà i siti senza avere un account. Pertanto, quando arrivano per la prima volta a
a.com
ob.com
, non ci deve essere un reindirizzamento rapido dell'intera pagina asso.com
e ritorno per controllare se sono connessi. Un tale reindirizzamento sarebbe negativo per SEO e latenza.
Per i pochi utenti che hanno effettuato l'accesso a a.com
e poi vai a b.com
(o viceversa), un reindirizzamento è accettabile.
Ci sono molti esempi sul web per SSO, specialmente con OAuth2, OpenID Connect e CAS, ma non sono riuscito a trovare una ricetta per questi requisiti specifici. La più vicina è la guida StackOverflow SSO ( qui ), ma hanno alcuni requisiti extra che non possiedo (ad es. l'accesso dovrebbe funzionare anche se il server SSO non funziona)