OAuth
Autenticacao
Seguranca
APIs
Login Social
Desenvolvimento

OAuth ¿Qué es?

OAuth ¿Qué es?

OAuth es un protocolo de autorización que se utiliza para permitir que una aplicación acceda a recursos de otro servicio sin compartir una contraseña. Está detrás de funciones habituales como "iniciar sesión con Google" o "iniciar sesión con Facebook". En productos digitales, OAuth mejora la experiencia, aumenta la conversión y reduce los riesgos de seguridad. Esta guía explica qué es OAuth, cómo funciona, qué flujos existen, cuándo usarlo y qué errores evitar.

El objetivo es proporcionar una explicación clara para los equipos técnicos y de productos, con un enfoque en una implementación segura y alineada con el negocio.

¿Qué es OAuth?

OAuth (Autorización abierta) es un estándar abierto que le permite delegar el acceso. En lugar de que el usuario proporcione su contraseña a una aplicación de terceros, autoriza el acceso directamente desde el proveedor (Google, Apple, GitHub). La aplicación recibe un token con permisos limitados.

Esto protege los datos, mejora la experiencia de usuario y le brinda control sobre a qué puede acceder la aplicación.

Diferencia entre autenticación y autorización

Mucha gente confunde:

  • Autenticación: comprueba quién es el usuario.
  • Autorización: define a qué puede acceder.

OAuth es un protocolo de autorización. Para la autenticación, normalmente se utiliza OpenID Connect, que funciona sobre OAuth.

Cómo funciona el flujo de OAuth

En forma simplificada:

  1. El usuario hace clic en "iniciar sesión con".
  2. La aplicación redirige al proveedor.
  3. El usuario autoriza.
  4. El proveedor devuelve un token.
  5. La aplicación utiliza el token para acceder a los recursos permitidos.

Este proceso impide compartir contraseñas.

Flujos principales de OAuth

Código de autorización

Más seguro. Utilizado en aplicaciones web y móviles con backend.

Implícito

Mayores, menos seguros. Hoy en desuso.

Credenciales de cliente

Se utiliza para la comunicación entre servidores.

Código de dispositivo

Se utiliza en dispositivos sin un navegador completo.

La elección depende del tipo de aplicación.

Tokens y alcances

OAuth utiliza tokens de acceso. Cada token tiene alcances que definen permisos. Ejemplo: acceso al correo electrónico, perfil o lista de contactos. La app sólo debe pedir lo necesario, para evitar el rechazo del usuario.

Los tokens pueden caducar y renovarse mediante tokens de actualización, lo que garantiza la seguridad sin necesidad de iniciar sesión constantemente.

OAuth e inicio de sesión social

El inicio de sesión social aumenta la conversión porque reduce la fricción. En lugar de crear una contraseña, el usuario utiliza un proveedor de confianza. Esto mejora la UX y reduce las contraseñas olvidadas.

Por otro lado, la aplicación depende del proveedor. Por lo tanto, se recomienda tener una opción de inicio de sesión tradicional como alternativa.

Riesgos y vulnerabilidades

Si no se implementa correctamente, OAuth puede generar riesgos:

  • Redirecciones maliciosas.
  • Fichas filtradas.
  • Alcances excesivos.
  • Falta de validación estatal.

Las buenas prácticas reducen estos riesgos.

##Buenas prácticas de seguridad

  • Utilice el código de autorización con PKCE en aplicaciones móviles.
  • Validar siempre el estado para evitar CSRF.
  • Utilice HTTPS en todas las etapas.
  • Almacene tokens de forma segura.
  • Ordene sólo los alcances necesarios.

OAuth en aplicaciones móviles

En aplicaciones móviles, la recomendación es utilizar PKCE, que protege contra la interceptación de código. El inicio de sesión debe abrir el navegador del sistema para mayor seguridad.

OAuth en API

Las API utilizan OAuth para controlar el acceso. Esto permite tokens con alcances limitados y revocación rápida. Una API bien protegida mejora la confiabilidad y la escalabilidad.

Cuándo utilizar OAuth

Utilice OAuth cuando:

  • Quieres iniciar sesión social.
  • Necesidad de acceder a datos de otros servicios.
  • Quiere delegar el acceso seguro.

No utilice OAuth si el sistema es completamente interno y está controlado.

Lista de verificación rápida

  • Elija el flujo correcto.
  • Implementar PKCE.
  • Definir alcances mínimos.
  • Validar estado.
  • Utilice HTTPS.
  • Monitorear tokens.

Conclusión

OAuth es un estándar esencial para el inicio de sesión social y el acceso seguro a datos de terceros. Cuando se implementa bien, mejora la experiencia del usuario y aumenta la seguridad. La clave es elegir el flujo correcto, limitar el alcance y proteger los tokens. Esto garantiza la confianza y reduce los riesgos a largo plazo.

##Preguntas frecuentes

1) ¿OAuth e iniciar sesión?
No. Él es autorización. Para iniciar sesión, utilice OpenID Connect.

2) ¿OAuth es seguro?
Sí, si se implementa correctamente.

3) ¿Necesito OAuth en mi aplicación?
Solo si utiliza inicio de sesión social o accede a datos de terceros.

4) ¿Es obligatorio el PKCE?
Sí, en aplicaciones móviles y muy recomendable en aplicaciones web.

5) ¿OAuth reemplaza la contraseña?
No. Puede reducir el uso de contraseñas, pero no lo elimina por completo.

Lea también