Cómo funciona

OAuth es un protocolo de autorización que permite que una aplicación acceda a recursos de un usuario en un servicio, sin que se comparta la contraseña del usuario. El flujo clásico de código de autorización comienza cuando el usuario hace clic en "Entrar con X". La aplicación redirige al usuario al proveedor, que solicita confirmación. Con la autenticación, un código se intercambia por un token de acceso. Ese token permite a la aplicación llamar a la API del servicio para las acciones autorizadas, por un tiempo limitado. Cada aplicación solicita solo los alcances necesarios, lo que limita lo que puede leer, y el usuario decide si acepta la solicitud. La revisión de los permisos se puede hacer en cualquier momento en el panel del proveedor, y el token de actualización permite que el acceso continúe sin una nueva contraseña.

Ejemplo práctico

Un sitio de agendamiento pide permiso para leer el nombre y el correo del usuario de un servicio de correo. El usuario confirma, el sitio recibe un token y puede mostrar el correo, sin ver nunca la contraseña del servicio. Si el sitio es revocado, el token pierde validez y el acceso se cierra. El usuario puede revocar el acceso en cualquier momento en el panel del proveedor, sin cambiar la contraseña de otros servicios. El token de acceso tiene validez limitada, y un token de actualización permite que el acceso continúe sin pedir la contraseña nuevamente.

Para qué sirve

OAuth sirve para que aplicaciones y servicios compartan datos con seguridad, permitiendo granularidad en los accesos, revocación de sesiones y buenas prácticas de seguridad, en lugar de compartir credenciales entre sistemas. Los tokens tienen validez limitada y alcances definidos, lo que reduce el daño en caso de que un token se filtre. La revocación rápida también hace que el flujo sea más seguro que compartir la contraseña con cada aplicación, especialmente en entornos corporativos donde el control de acceso es obligatorio.

Diferencia entre X e Y

OAuth autoriza el acceso a recursos; no confirma la identidad del usuario. La autenticación suele hacerse con OpenID Connect, que puede usarse junto con OAuth en el mismo flujo.