Estoy tratando de encontrar una arquitectura sólida para autenticar usuarios en una base de datos. Tengo un cliente de juegos, con el que planeo atender una solicitud. El transporte realmente no importa, pero en este momento estoy pensando en http y aprovechando SSL o ws-security para garantizar el cifrado de datos a través del cable.
Me gustaría evitar los ataques de intermediarios si es posible, así que me inclino por la seguridad de Ws aunque sé que cuesta más gastos generales.
En el lado del servicio, me gustaría usar un marco de autenticación como enlace - para autenticar a los usuarios contra una base de datos mysql. No estoy seguro de si puedo aprovechar las características de la sesión o no, ya que no lo he buscado, pero sería genial si pudiera.
Probablemente será una combinación de almacenamiento de información de la sesión en la base de datos y si puedo aprovechar las características de la sesión de Shiro, eso es una ventaja.
Mi pregunta real es el apretón de manos entre el cliente y el servidor. ¿Si utilizo ws-security no me cuido todo eso? ¿Solo eso hace que valga la pena?
Si no, ¿qué debo hacer aquí? Quiero asegurarme de que todas las solicitudes del cliente estén autenticadas, pero tampoco quiero tener que saltar a través de los aros para que esto suceda. ¿Funcionaría aquí algo tan simple como la autenticación de resumen de http?
Una de las restricciones que tengo es el acceso a las bibliotecas. Si no es gratis y no se puede utilizar en un producto comercial, entonces no puedo aprovecharlo. Mi cliente se escribirá en C ++ y puedo usar el lenguaje que sea más fácil (me inclino hacia java) para que suceda en el lado del servidor.
Planeo agregar soporte para que los usuarios compren artículos en el juego a través de micropagos en el futuro, por lo que este mecanismo de saludo definitivamente debe ser seguro.
Sigo oyendo que las personas sugieren REST + SSL, y para examinar enlace
¿Es esa una alternativa viable? Si usara eso + algo como Apache Shiro, ¿tendría un ganador?
Lo que sea que use, debe ser escalable ya que el sistema crecerá con los usuarios / volumen de solicitudes a lo largo del tiempo.