Inicie sesión desde una aplicación de escritorio a una aplicación web

1

Tengo una aplicación de escritorio y una aplicación web. El usuario ha iniciado sesión en la aplicación de escritorio. Con un clic en un botón o algo, el navegador debería abrirse y el usuario debería estar conectado.

Ahora estoy un poco confundido sobre cómo implementar esto de manera segura. Mi primer pensamiento sería generar un nonce en el servidor, pasarlo a la aplicación que a su vez genera una URL para el navegador. (Toda la comunicación es sobre HTTPS). Pero dado que el nonce estaría en la URL, ¿no podría un MITM simplemente agarrarlo y luego iniciar sesión como este usuario? Supongo que el navegador mostraría un problema de certificado en caso de un ataque MITM, pero algunos de los usuarios no son muy inteligentes, así que asumí que simplemente descartarían cualquier error de certificado.

Esto es un problema porque algunos de estos usuarios son una especie de administrador (crear usuarios), por lo que sería muy malo si un atacante puede iniciar sesión.

¿Es posible iniciar sesión automáticamente en un usuario desde una aplicación de escritorio a una aplicación web de forma segura?

    
pregunta morpheus05 04.06.2015 - 14:54
fuente

1 respuesta

1

Tuve esta problemática hace unas semanas. Simplemente lo resolví haciendo un servicio web accesible a través de Https.

El inicio de sesión del usuario desde una aplicación cliente local a través de un formulario de inicio de sesión / contraseña que se envía por https. El servidor obtiene los datos y envía un token al cliente.

El token se almacena en la aplicación para fines de inicio de sesión y caduca después de 2 semanas. Cuando el token caduque, mi cliente tiene que iniciar sesión de nuevo.

Mi solicitud se basa en https, por lo que se encarga de los acuerdos, el cifrado, etc.

Una gran cantidad de WebAPI utiliza este método para realizar transacciones seguras.

Si observa una gran cantidad de intentos de inicio de sesión fallidos en el lado del servidor, bloquee cualquier tentativo próximo del cliente por un período de tiempo determinado, que aumentará después de futuros intentos fallidos.

    
respondido por el Fortune 09.06.2015 - 15:40
fuente

Lea otras preguntas en las etiquetas