12 de julio de 2011

El protocolo de autenticación OAuth. ¿Qué es? (I)

Hoy comienzo una serie de entradas que van tienen como objetivo presentar el protocolo de autenticación OAuth.

¿Qué es OAuth? (Necesidad de OAuth)

Como ya he dicho, es un protocolo de autenticación. Es decir, se utiliza para que una entidad (normalmente un servidor Web) sea capaz de identificar a otra entidad que intenta acceder a sus recursos (normalmente un usuario).

En este punto, podríamos estar pensando en un formulario de login de Usuario y Contraseña y prácticamente viene a ser eso pero con una diferencia que voy a explicar con un ejemplo.

A día de hoy, tenemos cientos de aplicaciones para nuestros dispositivos móviles, extensiones de navegadores, servicios Web, etc. que nos ofrecen acceder a recursos como Facebook, MSN, Gmail, twitter... y nos piden que introduzcamos nuestras credenciales en estos servicios para que las aplicaciones puedan conectarse y acceder a nuestro muro, nuestras fotos, para permitirnos publicar tweets desde la aplicación, etc.

Pero, ¿nos podemos fiar de estas aplicaciones? Si introducimos nuestras credenciales en una aplicación, no sólo le estamos dando acceso a nuestros datos, estamos dándole la oportunidad de "robarnos" la cuenta porque podría tratar de cambiar nuestra contraseña.

¿Quién no ha tenido algún amigo que le pregunte: "me metí en una de esas aplicaciones para comprobar quién me ha borrado del Messenger y ahora no puedo entrar. ¿Qué hago?"?

Pues bien, OAuth es la solución a esto ya que permite a las aplicaciones de terceros acceder a la información que tú quieras compartir con ellas pero sin que introduzcas tus credenciales directamente en las aplicaciones.

El flujo de la autenticación a través de OAuth lo presentaré en la próxima entrada de la serie, pero adelanto que la manera de realizarlo es haciendo que el usuario se autentique directamente en el servicio final (Facebook, twitter...) y pasándole unos "identificadores de sesión" a la aplicación.

Bueno, para no alargar más esta entrada lo dejo aquí. Las siguientes serán más técnicas pero he creído oportuno escribir ésta en plan introducción.

¡Hasta la próxima entrada!