OAuth
¿Qué es OAuth?
OAuth es un protocolo utilizado para intercambiar información de autorización, lo que permite que varios servicios en línea interactúen con el permiso del usuario. «OAuth 1.0» se publicó como RFC 5849 en abril de 2010, y «OAuth 2.0» le siguió como RFC 6749 en octubre de 2012.
Imagina que quieres publicar una foto en Instagram y compartirla automáticamente en Twitter. Acceder manualmente a ambos servicios para realizar la misma publicación puede resultar tedioso. Para evitarlo, Instagram ofrece una función denominada publicación cruzada, que permite compartir automáticamente tus publicaciones de Instagram en otras redes sociales, como Twitter, mediante sus API. OAuth facilita este proceso.
Para publicar en Twitter, la autenticación habitual requiere un identificador de usuario y una contraseña, lo que se conoce como autenticación básica. Sin embargo, compartir estas credenciales confidenciales con otro servicio conlleva riesgos. OAuth resuelve este problema intercambiando información de autorización en lugar de credenciales de autenticación y concediendo permisos limitados para realizar la tarea.
En la terminología de OAuth:
- El servicio que recibe la autorización (por ejemplo, Instagram) se denomina cliente OAuth.
- El servicio que concede la autorización (por ejemplo, Twitter) se denomina servidor OAuth.
- El usuario se denomina propietario del recurso.
Para iniciar el proceso, el cliente OAuth debe registrarse primero en el servidor OAuth proporcionando datos como el nombre y el dominio de la aplicación. Si el servidor OAuth considera que el cliente es de confianza, le asigna un ID de cliente.
Cuando el usuario (propietario del recurso) concede la autorización, el cliente OAuth lo redirige al servidor OAuth. El servidor OAuth autentica al usuario y le pregunta si desea conceder al cliente OAuth los permisos indicados. Tras la aprobación del usuario, el servidor lo redirige de nuevo al cliente OAuth y le proporciona un token de acceso. Este token sirve como prueba de autorización y permite al cliente OAuth acceder a la API del servidor OAuth. El token sigue siendo válido hasta que caduca o se revoca explícitamente.

