Estoy creando una aplicación móvil que necesita interactuar por usuario con una API. Después de haber trabajado en varios proyectos como cliente de API de terceros, mi idea inicial fue ir con OAuth. Sin embargo, he estado pensando en ello y no planeo abrir la API públicamente a otros consumidores: el único consumidor siempre será mi aplicación móvil, así que ¿pensé si OAuth es la mejor opción? ¿O es una exageración?
Luego leí este artículo que asesora sobre un proceso de Google, que sugiere el siguiente enfoque para este escenario. :
- Incruste una vista web en su aplicación con un formulario de inicio de sesión basado en web normal
- en el inicio de sesión exitoso, pase una cookie segura a la aplicación móvil que tiene un token seguro
- usar el token en futuras solicitudes de API
(asumiendo todo https etc)
Esto parece mucho más simple que cualquier implementación de OAuth, y se podría hacer fácilmente usando el filtro de seguridad / cadena de autenticación de Spring (el código del lado de mi servidor es Java & Spring MVC / Secutiry, etc.). Parece interesante que sea el enfoque recomendado por Google, que en mi opinión ha agregado cierta credibilidad a la solución.
Suponiendo que con la solución anterior también incluí una clave de aplicación móvil, etc. (solo para evitar que cualquier dispositivo móvil llegue al formulario / API), parece que tendría el mismo problema que OAuth en tanto que tengo que incluir mi aplicación clave incrustada en el código móvil (que podría ser descompilado, etc.).
También leí este artículo sobre el enfoque de Amazon ( aparentemente similar a una implementación de OAuth 1), lo que parece que podría ser una extensión razonable de la solución propuesta por Google que aparece más arriba y, en lugar de enviar el token al servidor, utilícelo como la clave para codificar los datos de solicitud.
Soy bastante nuevo en implementar cualquier cosa en seguridad más allá de la seguridad de usuario / contraseña basada en la web normal, por lo que agradecería tener ideas sobre cuándo usar OAuth para aplicaciones móviles y si las dos soluciones anteriores (amazon y amp; google) son adecuadas para el propósito de si han sido reemplazados por OAuth 2.