Pasar datos críticos de manera segura a otro dominio

1

Mi empresa posee un dominio A.com, y la filial está en B.com

B.com redirige a sus usuarios a A.com para el registro de cuentas. Después de un registro exitoso, A.com inicia sesión en ese usuario (el Usuario no lo sabe), crea un token y necesita pasar ese token a B.com para que B.com muestre que el usuario inició sesión.

¿Cuál debería ser la forma correcta de pasar esta información a B.com ya que no podemos escribir una cookie para ellos?

Estaba pensando en cifrar el token, y A.com y B.com deciden qué cifrado usar. Pero, ¿hay otros enfoques mejores para tratar este problema?

    
pregunta Novice User 15.12.2013 - 09:50
fuente

2 respuestas

2

Puede hacer que A.com cree un token de N bits aleatorio utilizado como clave en un almacén de claves. Luego, A.com envía al usuario un enlace a B.com que contiene este token en claro. El usuario accede a B.com con ese token, y B.com puede ponerse en contacto con A.com "de forma privada" y recuperar los datos asociados, por lo que A.com puede invalidar el token para que no pueda ser reutilizado.

Dado el corto tiempo de viaje de ida y vuelta (todos los enlaces son redirecciones que deben ser manejadas automáticamente por el navegador del usuario), A.com podría justificarse al rechazar solicitudes de token de tokens más antiguas que, digamos, 30 segundos:

user  --> B.com "log me in"
B.com --> user  "Go to A.com/logmein/$RANDOM1" { cookie B.com:RANDOM1 }
user  --> A.com "log me in"
(login procedure)
A.com --> user  "Go to B.com/loggedin/$RANDOM2" [START "A" TIMER]
user  --> B.com "my token is $RANDOM2 (and my cookie is $RANDOM1)"
B.com --> A.com "What about $RANDOM2:$RANDOM1?" [STOP "A" TIMER]

Ahora A.com ha almacenado $ RANDOM1 en la primera solicitud, reconoce $ RANDOM2 como de su propia creación, la marca de tiempo es válida, por lo que en el enlace AB puede transmitir todo tipo de información secreta sin que el usuario lo sepa.

    
respondido por el LSerni 15.12.2013 - 12:02
fuente
1

Parece que podría usar algo como el marco de autorización de OAuth. El marco de autorización de OAuth permite que las aplicaciones de terceros obtengan un acceso limitado a un servicio HTTP y hay muchas bibliotecas disponibles, por lo que realmente no necesita implementar todo por sí mismo.

Consulte enlace

    
respondido por el jingyang 15.12.2013 - 15:42
fuente

Lea otras preguntas en las etiquetas