Estoy construyendo un servicio web tranquilo basado en Spring. Estoy usando Spring Security. Solo se accederá mediante aplicaciones de escritorio. Básicamente, un servicio web de máquina a máquina.Autenticación en un servicio web RESTful
Quiero un servicio personalizado que realice la autenticación. A continuación, realice otras operaciones más confidenciales basadas en el resultado de la autenticación.
Otra opción es enviar las credenciales en el cuerpo de cada solicitud y básicamente hacer la autenticación cada vez.
La lógica dice que el primer enfoque sería el más eficiente porque no es bastante cierta sobrecarga en la autenticación de cada uno y cada una.
¿Qué sugieres relacionado con esto? Para ir sin estado o con estado? ¿Hay grandes desventajas para el enfoque con estado?
Hasta este momento he leído algunos capítulos del Java Web Services Up and Running y también varias preguntas de SO como this.
Esto es más como un patrón de diseño para la seguridad dentro de los servicios web REST. Mi pregunta es: ¿no es esto más lento, menos eficiente? En un servicio web basado en SOAP, no conozco ninguna recomendación para evitar las sesiones. ¿Hay claras ventajas de ser totalmente apátrida? ¡Gracias! –
En cuanto al rendimiento: Diría que las pocas instrucciones necesarias para calcular un hash, o los pocos bytes transmitidos para la información de autenticación, son irrelevantes en comparación con la transmisión general y el tiempo de procesamiento de solicitud. – jmclem
Sí, el tiempo de procesamiento de solicitud puede ser un problema. Quiero decir, cada vez que se pasan las credenciales, se debe realizar una búsqueda en la base de datos para autenticar al usuario. –