Hola chicos, ¿como están? hace tiempo que no comento nada (ya saben, mucho trabajo, estudios, pereza...). Y bueno, reinicio actividad con una pregunta, que seguro esta en google, pero no se como expresarla adecuadamente. Así que acudo a ustedes:
Necesito hacer una plataforma que maneje todo el aspecto de registro, administración e identificación de usuarios por separado (se me ocurre hacer un webservice o api, pero me falta un detalle...) Me explico mejor con un ejemplo:
Google maneja un único sistema de administración de usuarios, esta se utiliza para Gmail, Youtube y otros. Necesito hacer algo similar: que si un usuario accede a la plataforma A, también este logueado en la B, aunque éstas estén separadas y su código no tenga nada que ver.
Se me ocurre que puedo hacer lo siguiente: Crear una API REST consultable únicamente desde los servidores que manejo yo, haciendo uso de un token y validando la IP. Cuando un usuario acceda a la plataforma A, el servidor de la misma enviara los datos del usuario hacia al webservice, para que posteriormente este le conteste con los datos del usuario si es true. En caso de ser false solo contestara con un false. Pero hay un problema: Si el usuario entra mediante la plataforma B tendrá que loguear otra vez (cosa que no quiero). Lo ideal es que si ya esta logueado en la plataforma A, también lo este en la B... Se me ocurre hacer un par de re-direcciones extrañas para que la cookie quede en el servidor de Administración de usuarios y que luego esta informe a los otros sistemas mediante POST... pero se me hace muy engorroso e inseguro. Lo otro es utilizar un identificador que tenga el browser pero también me parece mala idea... la IP ni hablar.
De verdad no se que hacer, cuales son los protocolos adecuados ni nada. Quiero hacerlo lo mas profesional posible.
¿Que se les ocurre?
EDITO:
He busco mas y he encontrado algo... mas o menos como lo que pensé, pero aun así me resulta complejo y difícil de mantener:
https://stackoverflow.com/questions/4306728/how-to-create-a-shared-login-service-across-multiple-domains
Se me ocurren formas de mejorar un poco el concepto y hacerlo mas seguro y sencillo encapsulando código en una librería utilizada por todas las aplicaciones vinculadas. ¿pero es la respuesta optima? ¿que opinan?