Cómo proteger Java webservices con el inicio de sesión y la gestión de sesiones
-
23-09-2019 - |
Pregunta
Me gustaría conseguir mi (Java metro) webservice con un inicio de sesión.
Esto es lo que yo estoy planeando hacer que:
Pasos necesarios cuando se llama a un método de servicio web son:
- llamada de inicio de sesión(usuario,pwd), recibir un token de sesión 1.1 recordar el token
- llame servicemethod (token, arg1, arg2...)
- webservice comprueba si el token es conocido, si no tirar excepción de lo contrario proceder
- cierre de sesión o el tiempo de espera después de x periodos de tiempo de inactividad
mis preguntas:1.¿cuál es tu opinión sobre este enfoque?¿tiene sentido?2.hay bibliotecas que tomar la carga de la escritura de un manejo de sesiones (tal vez con la base de datos de persistencia para sobrevivir app se reinicia)
(la solución debe ser simple y fácil de utilizar con Java y .NETO de clientes)
gracias!
Solución
Esto es factible, y he visto a los servicios web con un enfoque similar.Pero no me implementar mi propia solución personalizada.En su lugar, me gustaría utilizar un Token de Seguridad de la WS-especificación de Seguridad y, más precisamente, un Token de nombre de Usuario (usted obtener esta información de la WSIT que es parte de Metro y por lo tanto es interoperable con .NETO de clientes).Eche un vistazo a este artículo para una introducción.
Actualización: Más punteros:
La aplicación de la WS-Security UsernameToken Perfil para el Metro de servicios web basados en- ¿Qué hay de Nuevo en Web Services Enhancements (WSE) 3.0
- WebService de Autenticación con UsernameToken en WSE 3.0
- La aplicación Directa de Autenticación con UsernameToken en WSE 3.0
No puedo decir que me encontré con WS-Security es muy amable, pero, aún así, mi experiencia es que el uso de WS-Security lleva menos tiempo que la implementación de una solución personalizada, es más seguro y mejor escalas (comprobación de la base de datos en cada llamada tiene un costo).
Editar:
Corregidos los dos primeros enlaces, porque estaban muertos.No podía encontrar uno por la tercera, pero creo que el segundo debe cubrir eso.
Otros consejos
Do no saltar inmediatamente en la aplicación de este mismo desde el principio. Muchos contenedores J2EE / Java marcos ofrecen apoyo para el control de acceso / acceso. Echar un vistazo a la documentación para el marco que está utilizando actualmente.
Otra alternativa simple es poner en práctica el control de acceso en un servidor web front-end; p.ej. Apache HTTPD que actúa como un proxy inverso para Tomcat.
He pensado en probar Apache Shiro , en realidad no puedo decir si su ningún bien. Se ve bien sin embargo.