Estandarización de sesiones entre dominios

2

Estoy buscando sesiones de dominios cruzados. Estas son sesiones que se comparten entre dos dominios como google.com y spotify.com. No busco información sobre las sesiones de dominios cruzados entre subdominios, ya que pueden compartirse ampliando el alcance de las cookies que llevan el identificador de sesión. play.google.com y mail.google.com pueden compartir fácilmente la misma sesión y esta sesión compartida no requiere un conjunto complejo de redirecciones y / o llamadas ajax.

Me gustaría saber si existe un estándar formal para configurar una sesión de este tipo entre dominios. Parece como si cada marco tuviera su propio mecanismo, muchos de ellos usando redirecciones, otros usando JavaScript. Como parte de la investigación en este dominio, estoy buscando cualquier cosa que pueda verse como un estándar ampliamente utilizado para lograr estas sesiones de dominios cruzados. También la información sobre estándares informales (mecanismos ampliamente utilizados) es muy apreciada.

Edición basada en la respuesta de Neil: Ahora me doy cuenta de que efectivamente he cometido algunos errores en mi razonamiento. No es una sesión de dominio cruzado que se requiere para el SSO, pero en realidad es un estado de dominio cruzado. Corríjame si me equivoco, pero, si un servidor puede proporcionar una lista blanca de dominios para los cuales una cookie es válida, el SSO sería mucho más sencillo sin que sea un problema de seguridad. Solo creará una cookie con toda la información de autenticación (uid, roles, idp, etc.) y hará que esta cookie se comparta entre todos los dominios que desee incluir en el ámbito de SSO. Debe crear un mecanismo que verifique con los otros dominios en la lista blanca, si permiten que el primer dominio establezca cookies para este dominio.

    
pregunta Silver 15.05.2016 - 21:10
fuente

1 respuesta

5

Estoy un poco confundido acerca de tu lengua vernácula. Pero lo intentaré.

Creo que está utilizando la palabra "sesión" para referirse a inicio de sesión único (SSO). Esta es una funcionalidad que le permite iniciar sesión en un sitio y hacer que el inicio de sesión se propague a otros sitios sin que sea necesario volver a autenticarse. Hay varias normas para esto. Incluyen OAuth 1 , SAML y OpenID Connect .

SSO no es lo mismo que una sesión compartida. Una sesión compartida implica cierto estado compartido más allá de la autenticación, mientras que SSO solo afecta la autenticación. Compartir el estado en múltiples sitios web tiende a ser difícil debido a las características de seguridad del navegador, la política del mismo origen probablemente sea el mas grande Funciones como supercookies y las cookies de Flash a veces se usan para implementar sesiones compartidas, pero tienden a ser muy limitadas en cuanto a funcionalidad. a las protecciones de seguridad del navegador.

En cuanto al ejemplo que dio de Google y Spotify, no comparten una sesión. En su lugar, utilizan OAuth para permitir que un inicio de sesión de Google se utilice para crear una nueva cuenta de Spotify. Una vez creadas, las cuentas se desconectan. Por ejemplo, el cierre de sesión de un servicio no lo desconectará del otro.

1 Técnicamente, OAuth es un protocolo de autorización, pero con frecuencia parece un SSO.

    
respondido por el Neil Smithline 16.05.2016 - 01:22
fuente

Lea otras preguntas en las etiquetas