Así que estoy tratando de crear y asegurar una API REST móvil en un servidor existente que ejecuta nuestra aplicación web. No vamos a abrir la API al público y escribiremos la aplicación cliente utilizando PhoneGap / Javascript / HTML. Podríamos utilizar HTTP Basic muy bien, pero quería algo un poco más avanzado y seguro. No quiero utilizar OAuth o la seguridad de AWS de Amazon, ya que parecen ser principalmente para abrir su API al público o a un tercero.
Soy realmente nuevo en las API de REST y la seguridad, pero después de investigar un poco planeo usar esto implementación tal como está escrito por Google. Resumiré la idea general:
- El usuario envía las credenciales del servidor a través de un POST seguro
- Si las credenciales coinciden. El servidor crea un token, lo guarda en la base de datos y luego lo envía al usuario. El token se basará en el UUID del usuario y una marca de tiempo.
- La base de datos almacenará la última vez que el usuario cambió su contraseña y solo validará las llamadas con tokens que se emitieron después de ese tiempo.
- El usuario envía este token en el encabezado con cada llamada a la API
¿Qué tan segura es esta implementación? ¿Cómo detengo los ataques de fuerza bruta en mi método de autenticación? Cualquier otra sugerencia o recomendación son apreciadas.