Foro sobre Java EE > JSON Web Token
Hola, la verdad que no soy un experto en seguridad ni en JEE pero te daré mi opinión.
Bueno pues en mi opinión, no creo que estés haciéndolo mal, ya que, usas HTTPS, tienes un tiempo de expiración del token, y ademas si vas a ir migrando a un nuevo esquema supongo que será algo temporal hasta que todo este migrado. Normalmente los ataques de suplantación, se basan en obtener los paquetes http y de ahi obtener el token, normalmente mediante un hijack, pero al estar trabajando en https, pues no hay problema.
Otra cosa es que el usuario lo puede ver, bueno, es absurdo pensar que el propio usuario vaya a adueñarse de su propio token... Otra cosa es alguien que acceda físicamente a ese pc, donde tienes una sesion abierta, pero en ese caso, nada esta seguro, y bueno si alguien lo apuntara, tienes el extra del tiempo de expiración.
Por tanto no lo considero una mala practica.
Otra forma de hacerlo... Bueno, quizá en lugar de usar un iframe, mediante ajax, puedes inyectar directamente código en la página, aunque es mas engorroso. Siendo algo temporal y con las reglas que has establecido, esta bien.
Bueno a ver si alguien con mas experiencia opina y aprendemos todos. Bueno un saludo.
Hola!
- Se tiene un API REST con SpringBoot como Back end y la autenticación está por BASIC sobre HTTPS (ya se, deberia ser tambien por token pero ya está así).
- Se tiene un Front End con tapestry que se comunica con el back end.
- Se tiene una aplicación principal que usa Struts y EJBs 3, a esta aplicación es a la que los usuarios ingresan. Esta aplicación se quiere ir migrando paulatinamente desarrollando los nuevos requerimientos sobre los dos esquemas arriba descritos (api rest y tapestry).
La idea es que desde la aplicación principal que tiene Struts y EJB's ya existe un login y se me ocurre que los nuevos desarrollos embeberlos con un iframe, por lo tanto la idea sería que desde la aplicación principal generar y firmar el token con un periodo de expiración de unos 20 minutos y envíarlo en la URL que se pasa al iframe:
iframe src="https://misitio.com?jwt=23878913hvasdasd.fss2323423423dfsdf.sdfsdfsertet
Por lo tanto, el nuevo front end de tapestry se encargaría de validar el token.
Las preguntas obligatorias?... Es buena idea hacerlo de esta forma? De que otra manera se puede hacer? Es inseguro usar el iframe y pasarle ahi el JSON Web Token?, yo pienso que al usar la llave privada no importa que el token esté expuesto y adicional al tiempo de expiración de 20 minutos...
¿Qué opinan?