Esta es una de esas situaciones en las que "ni siquiera sé lo que no sé". Lo siento si suena confundido o cometo errores de novato. Cualquier ayuda, incluyendo material de lectura, sería apreciada.
Estoy intentando crear un servicio que se basa en datos confidenciales de otro servicio.
Supongamos que un usuario ha iniciado sesión en service1
. El usuario hace clic en un enlace a service2
.
service2
debe conocer los datos confidenciales almacenados en los servidores service1
. Además, service2
permite a los usuarios consumir los créditos que pagaron con dinero y que podrían ser útiles para los atacantes, por lo que debe estar seguro de la identidad de los usuarios, según lo proporcionado por service1
.
Es un requisito que service1
y service2
vivan en diferentes servidores y usen diferentes dominios. También es un requisito que el usuario pase de service1
a service2
haciendo clic en un enlace. Afaik, esto significa que la única información que service2
puede obtener está en la propia URL.
Mi solución propuesta:
1) El usuario hace clic para ir de service1
a service2
2) service1
genera una clave de uso único y se agrega a la URL. Javascript abre esta URL.
3) service2
recibe esta clave y la envía a service1
. Service1
envía los datos directamente a service2
Por lo que puedo decir, los datos son (por definición) seguros. Pero sigue existiendo el problema de que un atacante podría obtener la clave única y utilizarla en su lugar.
Pero hay mucho que no entiendo, y ni siquiera sé qué buscar.
Cualquier ayuda / comentario / material de lectura apreciado.