Devo implementare una soluzione SSO con i seguenti requisiti:
-
Cross-domain: supponiamo di avere
a.com,b.comesso.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.comviene mostrata una schermata di accesso ospitata susso.com. Le credenziali sono controllate dasso.comnell'origine dati accessibile solo ad essa. -
Accesso automatico: se l'utente ha eseguito l'accesso a
a.come 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.comob.com, non ci deve essere un reindirizzamento rapido dell'intera pagina asso.come 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)