Métodos de autenticación comunes que no desea conocer
Hay cuatro métodos de autenticación comunes:
Este es el método de autenticación básico implementado por el protocolo HTTP Cuando navegamos por la web, el cuadro de diálogo aparece justo encima del navegador. Cuando se nos solicita que ingresemos nuestra cuenta y contraseña, se utiliza este método de autenticación.
Después de una autenticación exitosa, cada vez que el cliente envía una solicitud con el parámetro de encabezado de Autorización, además de la expiración de la sesión, ¿cómo puede el cliente cerrar sesión activamente? Aquí hay una solución:
Primero, el servidor necesita configurar una cuenta especial dedicada al cierre de sesión. El cliente debe modificar activamente la información de Autorización en el encabezado de la solicitud. Cuando el servidor lee la cuenta dedicada al cierre de sesión. Ejecute el proceso de cierre de sesión.
Este método de autenticación tiene fallas. En primer lugar, coloca el secreto de la cuenta cifrada directamente en el encabezado de la solicitud. Además, el método de cifrado base64 es reversible, por lo que el secreto de la cuenta se filtra fácilmente. Este método de verificación se utiliza generalmente en sistemas con bajos requisitos de seguridad.
La autenticación mediante token es más flexible y adecuada para la mayoría de escenarios.
Una solución común para la autenticación de tokens es JWT, que cifra json que contiene información relevante del usuario. El método de cifrado es más flexible y se puede diseñar según las necesidades.
Ver --> sesión y cookie web java
Las sesiones generalmente están en la memoria A medida que aumenta el número de usuarios, la sobrecarga del servidor también aumenta significativamente.
Los problemas anteriores se pueden resolver aumentando adecuadamente el número de servidores, pero en este caso, el método de verificación de sesión tendrá problemas. Por ejemplo, la sesión del usuario que inició sesión existe en el servidor A, pero debido. Por razones de equilibrio de carga, la siguiente solicitud va a otro servidor B. El servidor B no guarda la sesión y luego requiere que el usuario inicie sesión nuevamente, lo que obviamente no es razonable.
El servidor Tomcat proporciona una solución para compartir sesiones entre clústeres, es decir, diferentes servidores comparten sesiones replicando sesiones actualizadas, pero si la cantidad de clústeres es grande, el comportamiento de verificación y copia ocupará ciertos recursos. por lo que este método no es ideal cuando la cantidad de servidores es grande.
Si las solicitudes de los usuarios se enrutan a un servidor mediante hash, entonces el usuario solo necesita guardar la sesión en ese servidor, lo que resuelve el problema anterior, pero también limita las capacidades de equilibrio de carga del clúster, posiblemente allí. Habrá una situación en la que una gran cantidad de solicitudes llegan a un determinado servidor durante un cierto período de tiempo, pero otros servidores están relativamente inactivos.
El último punto es que, dado que el ID de sesión se almacena en función de la cookie, si la cookie es interceptada, el usuario es vulnerable a la falsificación de solicitudes entre sitios, lo cual no es seguro.
Ver --> Cuatro modos del sistema de autenticación OAuth2.