Standardizzazione delle sessioni tra domini

2

Sto esaminando le sessioni tra domini. Queste sono sessioni condivise tra due domini come google.com e spotify.com. Non cerco informazioni relative alle sessioni tra domini secondari tra domini secondari poiché possono essere condivise estendendo l'ambito dei cookie che portano l'identificativo di sessione. play.google.com e mail.google.com possono quindi condividere facilmente la stessa sessione e questa sessione di condivisione non richiede un reindirizzamento e / o chiamate ajax complesse.

Vorrei sapere se esiste uno standard formale nell'impostazione di una tale sessione interdominio. Sembra che ogni framework abbia il proprio meccanismo, molti usano reindirizzamenti, altri usano JavaScript. Come parte della ricerca in questo settore, sto cercando qualcosa che possa essere visto come uno standard ampiamente utilizzato per realizzare queste sessioni tra domini. Anche le informazioni relative agli standard informali (meccanismi ampiamente utilizzati) sono molto apprezzate.

Modifica basata sulla risposta di Neil: Mi rendo conto ora di aver fatto degli errori nel mio ragionamento. Non è una sessione interdominio richiesta per SSO ma in realtà uno stato interdominio. Correggere il mio se ho torto ma, se un server è in grado di fornire una whitelist di domini per i quali un cookie è valido, SSO diventerebbe molto più semplice senza che si tratti di un problema di sicurezza. Dovresti semplicemente creare un cookie con tutte le informazioni di autenticazione (uid, ruoli, idp, ecc.) E rendere questo cookie condiviso tra tutti i domini che desideri includere nella soluzione SSO. È necessario creare un meccanismo che controlli con gli altri domini nella whitelist, se consentono al primo dominio di impostare i cookie per questo dominio.

    
posta Silver 15.05.2016 - 21:10
fonte

1 risposta

5

Sono un po 'confuso riguardo al tuo volgare. Ma ci proverò.

Credo che stai usando la parola "sessione" per fare riferimento a single sign-on (SSO). Questa è la funzionalità che consente di accedere a un sito e fare in modo che l'accesso venga propagato ad altri siti senza richiedere la nuova autenticazione. Ci sono diversi standard per questo. Includono OAuth 1 , SAML e OpenID Connect .

SSO non è la stessa cosa di una sessione condivisa. Una sessione condivisa implica uno stato condiviso oltre l'autenticazione mentre l'SSO influisce solo sull'autenticazione. Lo stato di condivisione su più siti Web tende a essere difficile a causa delle funzionalità di sicurezza nel browser, probabilmente la politica della stessa origine il più grande. Funzionalità come supercookies e i cookie Flash vengono talvolta utilizzati per implementare sessioni condivise, ma tendono ad avere funzionalità molto limitate a causa alle protezioni di sicurezza del browser.

Riguardo all'esempio che hai dato di Google e Spotify, non condividono una sessione. Al contrario, utilizzano OAuth per consentire l'utilizzo di un account di accesso Google per creare un nuovo account Spotify. Una volta creati, gli account vengono disconnessi. Ad esempio, la disconnessione da un servizio non ti disconnette dall'altro.

1 Tecnicamente, OAuth è un protocollo di autorizzazione, ma spesso assomiglia a un SSO.

    
risposta data 16.05.2016 - 01:22
fonte

Leggi altre domande sui tag