Estamos intentando permitir que una aplicación web de terceros de confianza autentique automáticamente a los usuarios en nuestra propia aplicación. Pensamos en utilizar auth2 para esa materia.
En nuestro escenario, proporcionaríamos un servidor oauth2 y el saludo inicial se vería de esta manera (que es el mecanismo habitual de 3 patas de oauth2). Digamos que acme
es el nombre de nuestro servicio.
- La aplicación de terceros tiene un botón
connect to acme
- El usuario hace clic en ese botón y se redirige al servicio ACME
- El usuario inicia sesión a través del inicio de sesión basado en formulario en el sitio acme
- El servicio Acme presenta al usuario el diálogo
3rd party wants to access your account
- El usuario hace clic en
accept
- El servicio Acme genera un token oauth2 y redirige a terceros
- el tercero almacena el token generado para futuras interacciones con el servicio acme
Ahora, si la sesión en el sitio web de acme ha caducado, la aplicación de terceros podría volver a autenticar automáticamente al usuario en la aplicación web de acme enviando una solicitud ajax a un punto final de autenticación en el servidor de acme.
Enviará el token previamente almacenado a través de https como un encabezado http al punto final acme, donde el servidor oauth2 validará el token y autentificará al usuario asociado en la aplicación web.
Nos preguntamos si esto implica algún problema de seguridad o si se trata de un patrón seguro auth2 para volver a autenticar automáticamente tokens oauth2 existentes con un sitio web de proveedores oauth2.