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.