Asegurar la API REST para su uso en aplicaciones móviles

3

Desarrollé una API REST cuyos clientes son aplicaciones móviles / sitios web bajo mi control (la API no está abierta para nadie). Los usuarios inician sesión en mi aplicación móvil / sitio web con su cuenta de Facebook o g +. Me gustaría asegurar la API para que:

(a) los usuarios pueden acceder a él solo después de iniciar sesión correctamente en fb / g + a través de mi aplicación / sitio web

o

(b) solo mis aplicaciones / sitios web pueden acceder a él.

Se me ocurrió lo siguiente para (a) y agradecería cualquier comentario sobre cualquier debilidad o mejora:

  1. Todos los datos entre la aplicación móvil y la API REST están cifrados con TLS.
  2. El usuario inicia sesión en mi aplicación con sus credenciales de Facebook / g +.
  3. La aplicación recibe el token de fb / g + y recupera la información del usuario.
  4. La aplicación envía la información del usuario (nombre de usuario / correo electrónico / identificación única) y el token a la API REST (por ejemplo, / login).
  5. La API REST usa el identificador único y el token para realizar una llamada de prueba a la API fb / g + para garantizar que el combo y el combo de información del usuario sean válidos.
  6. La API REST emite su propio token para la aplicación y almacena en caché el token con clave de identificación única.
  7. La aplicación envía una identificación y token únicos con cada acceso posterior a la API REST.
  8. La API REST busca el identificador único y el token en el caché. Si existe, se otorga acceso a la API a esa solicitud.

Me gustaría deshacerme del paso 5, pero no veo cómo verificar las credenciales otorgadas a la API de REST.

También pensé en usar la autenticación HTTP básica y TLS para (b), y esto estaría bien para un cliente de sitio web, pero para las aplicaciones móviles, significa que la contraseña debería estar almacenada en la aplicación móvil de alguna forma y susceptibles a la exposición, ¿no? De lo que reconozco, asegurar una API con Basic Auth y TLS es muy común y puedo ver cómo puede funcionar para los sitios web, pero no conozco una forma de lograr (b) para las aplicaciones móviles sin correr el riesgo de la exposición de la contraseña .

    
pregunta dcr 05.12.2013 - 05:37
fuente

1 respuesta

-1
  1. su API puede no ser tan pública como pensaba. Uno puede oler todo el tráfico del móvil y obtener todos los datos enviados desde la aplicación móvil a su servidor.

  2. incluso con htpps o autenticación básica, uno puede oler los datos.

enlace

    
respondido por el keithics 18.09.2018 - 16:42
fuente

Lea otras preguntas en las etiquetas