JWT para autenticación, autorización y protección de una API. Es factible / seguro?

0

Estoy desarrollando una aplicación web que administra la seguridad y la higiene en el trabajo para que los clientes puedan acceder a información sobre temas médicos, como exámenes, informes, accidentes, capacidad para trabajar, y cosas por el estilo.

La información como esta es bastante sensible, así que realmente quiero asegurarme de que cada pieza de información esté segura de la mejor manera posible. La aplicación web se desarrolló en Angular 5 y la API se desarrolló en Asp.Net Core 2.0, estoy usando JWT para autenticar y autorizar a un usuario.

Hasta ahora, en mi investigación, he encontrado muchos artículos que desalientan el uso de JWT y otros que afirman que JWT no tiene nada de malo si se usa correctamente .

Pros

Contras

Por qué JWTS apesta como tokens de sesión

Cosas que usar en lugar de JWT

Estoy almacenando el token en una cookie (sé sobre XSS y CSRF ) y ahora mismo he hecho esto:

  • Mecanismo de contraseña segura (hash y sal con un algoritmo fuerte)
  • tabla de lista negra JWT en la base de datos (para revocar tokens)
  • Los datos dentro del token están en hash (incluso si el token es robado, no tienen información del token en sí)

Y lo haré en el futuro:

  • La API acepta solicitudes solo desde la URL del cliente (no 'AllowAnyOrigin')

Entonces, ¿estoy en el camino correcto? ¿Debo parar ahora mismo? He hecho algo mal? Cualquier ayuda es apreciada.

    
pregunta LuisMorais 02.07.2018 - 17:51
fuente

1 respuesta

0

Utilice JWT solo si va a utilizar las características únicas de JWT. Utilice cookies de sesión normal si tiene sesiones normales.

Los JWT son tokens firmados. Esto es útil si se autentica en un servidor y usa el JWT en otro servicio. Luego, los tokens firmados proporcionan algún beneficio, ya que los dos servidores no tienen que compartir ningún dato de usuario. Si tiene el servidor de autenticación separado del servicio que usa la autenticación, los JWT pueden ser una solución.

Si está creando una aplicación web, donde se puede acceder a los datos de la sesión a través de la aplicación, no hay un beneficio real para los JWT y las cookies de sesión funcionan mejor. ASP.NET tiene un excelente soporte para las sesiones con cookies, y creo que haría que el software fuera un poco más sencillo si lo hicieras.

    
respondido por el Sjoerd 03.07.2018 - 11:29
fuente

Lea otras preguntas en las etiquetas