In che modo SAML risolve il problema del single sign-on interdominio?

10

Diciamo che ho due siti web che vivono su domini separati e che i loro fornitori di servizi parlano allo stesso provider di identità su un terzo dominio. Accedo al primo sito Web e autentichi e ora decido di visitare il secondo sito Web. Il secondo sito web comunica con il provider di identità quindi non è necessario accedere nuovamente per accedere al mio account. Come viene realizzato utilizzando SAML? È possibile utilizzare i cookie in questo caso?

    
posta Shurmajee 12.07.2013 - 02:00
fonte

3 risposte

13

In realtà può essere un cookie, perché non è necessario che sia associato al fornitore di servizi, ma solo al provider di identità. Tutti i due service provider stanno per fare la richiesta di autenticazione al provider di identità, quindi il processo per un utente non autenticato sarà lo stesso per sp.example1.com come per sp.example2.com.

Tuttavia, quando viene eseguita la prima richiesta da sp.example1.com e l'utente viene reindirizzato a sso.example3.com, l'utente accederà a sso.example3.com e potrà quindi impostare un cookie per sso.example3. com.

Quindi, quando l'utente visita sp.example2.com, anch'esso reindirizzerà l'utente non autenticato a sso.example3.com, ma questa volta, il browser avrà un cookie da inviare insieme alla richiesta dall'ultima volta che il l'utente ha visitato sso.example3.com, anche se tale visita è stata avviata da un altro fornitore di servizi.

Pertanto, il cookie di sso.example3.com può identificare l'utente come già autenticato e il provider di identità può continuare il processo di rilascio di un'asserzione per l'utente a sp.example2.com senza richiedere all'utente di completare il login di nuovo il flusso di lavoro.

    
risposta data 12.07.2013 - 03:47
fonte
4

È possibile utilizzare i cookie.

I cookie non sono altro che piccole porzioni di dati (coppie nome-valore) memorizzate nel browser dall'applicazione Web con la quale si sta comunicando. Ogni cookie ha un dominio ad esso associato e un cookie appartenente a example.com non è accessibile da abc.com. È importante notare che ogni volta che il browser invia una richiesta HTTP a un determinato dominio, tutti i cookie associati a quel dominio vengono inviati insieme alla richiesta al server.

Nella terminologia SAML

Provider di identità (IdP) - Fornisce l'autenticazione come servizio

Fornitore di servizi (SP) - si affida a IdP per l'autenticazione dei suoi utenti

SSO utilizzando SAML : diciamo che ci sono due servizi SP1 e SP2 a cui l'utente desidera accedere.

  1. L'utente visita SP1 e tenta di accedere. SP1 invia una richiesta di autenticazione a IdP e il browser dell'utente viene reindirizzato a IdP dove inserisce le sue credenziali. Dopo l'autenticazione riuscita, l'utente viene nuovamente reindirizzato a SP1 e IdP invia una assertion a SP1 che contiene le informazioni di autenticazione. Ora l'utente è autenticato e può utilizzare i servizi di SP1. In questo caso la risposta proveniente da IdP contiene anche un cookie per identificare l'utente. Questo cookie è memorizzato nel browser.

  2. Ora l'utente apre un'altra scheda nel browser e tenta di accedere al sito Web di SP2. Ancora una volta mentre tenta di accedere al browser viene reindirizzato a IdP e con questo reindirizzamento vengono inviati anche i cookie impostati dall'IdP. L'IdP riceve il cookie e invia un'asserzione che reindirizza il browser a SP2. L'utente è connesso a SP2 senza dover inserire nuovamente le sue credenziali.

risposta data 12.07.2013 - 07:56
fonte
0

la sfida è il cookie di sessione, poiché sappiamo che imposteremo cookie di sessione o cookie basati sul tempo nel sito Web SSO, ma come di solito l'utente visita il sito SP1 e SP2, sia il cookie di sessione che il cookie temporale saranno scaduti durante la visita . come manteniamo lo stato di accesso? prova una chiamata ajax al sito web SSO al back-end? questo è l'unico modo in cui riesco a pensare.

    
risposta data 29.10.2016 - 07:01
fonte

Leggi altre domande sui tag