¿Por qué las APIs no deberían usar el modelo de autenticación login/password?

¿Por qué las APIs no deberían usar el modelo de autenticación login/password?
Facebook Twitter Flipboard E-mail

Cada vez es más común que las aplicaciones móviles o clientes externos usen las APIs para acceder e interactuar con los datos de un usuario. Para permitir este acceso, existen varias alternativas. Quizás la que con más fuerza se está imponiendo es usar OAuth para conceder acceso, pero aún quedan muchas APIs que sigue usando el modelo de solicitar un login y password en los métodos de autenticación que ofrecen a los desarrolladores interesados en crear alguna aplicación.

Este modelo de solicitar login y password conlleva una serie de inconvenientes y problemas, tanto para el usuario como para los desarrolladores que tienen que trabajar con la API, y posteriormente enviar estos datos al servicio de la API.

  • Confianza. Por supuesto, esta es la más obvia. ¿Confiarías en una aplicación que te solicita tu login y password de tu cuenta de correo? Este quizás sea el ejemplo más extremo, pero por qué debería confiar en ceder esos datos a un desarrollador que hace uso de la API del servicio del que tengo cuenta de usuario.

  • Phishing. Incluso si el usuario se siente cómodo proporcionando su contraseña a la aplicación podría sufrir suplantación de la identidad cediendo los datos a aplicaciones de terceros que no son tales. Por ejemplo, un cliente falso de Twitter (Ojo, Twitter usa OAuth así que no deberías acceder directamente con tu contraseña desde una aplicación de tercero)

  • Acceso total a la cuenta de usuario. Al darle nuestra clave de acceso le estamos dando acceso total a nuestra cuenta. Si usáramos el modelo de tokens de oAuth la API podría gestionar distintos privilegios y acceso limitado a funcionalidades.

  • Si el usuario cambia la contraseña no se puede acceder a sus datos. Multiplica esto si el usuario tiene esa cuenta en distintos dispositivos.

  • Por otro lado, si el usuario quiere revocar el acceso a una aplicación no le queda otra alternativa que cambiar de contraseña de acceso. Con OAuth, podríamos revocar el acceso a una aplicación en concreto sin afectar al resto.

  • Dificultad para implementar una autenticación fuerte. La API puede sufrir fácilmente ataques para acceder a los datos de un usuario a través de la llamadas de login/password. Para evitarlo se complica el acceso teniendo que usar CAPTCHAs.

Alternativas como OAuth 2.0 permite a las aplicaciones que usen la API acceder de forma segura, sin requerir ni el usuario ni el passord del usuario. Además su expansión hace que sea fácilmente utilizado por los desarrolladores, ya que se está convirtiendo en un método estándar de seguridad, según Programmable Web en Febrero de 2012 ya hay más de 300 APIs en la web que usan OAuth como método de autenticación.

Más información | OAuth En Genbeta Dev | El crecimiento imparable de las APIs, fundamentales en el desarrollo de webs y aplicaciones móviles actualmente

Comentarios cerrados
Inicio