Autenticación y autorización son dos procesos distintos y consecutivos. La autenticación verifica quién sos; la autorización define qué podés hacer. Confundirlas o descuidar la segunda es origen de fallos graves de control de acceso.
Autenticación — "¿quién sos?"
Proceso de verificar la identidad de un usuario. El caso típico es el inicio de sesión.
Factores de autenticación:
| Factor | Ejemplo |
|---|---|
| Algo que sabés | Contraseña, PIN |
| Algo que tenés | Teléfono, token, llave física |
| Algo que sos | Huella, rostro (biometría) |
Combinar dos o más = MFA (autenticación multifactor), mucho más resistente al robo de credenciales.
Autorización — "¿qué podés hacer?"
Una vez autenticado, determina qué recursos y acciones tiene permitidos el usuario, normalmente según su rol (usuario, editor, administrador).
- Modelos comunes: RBAC (basado en roles), ABAC (basado en atributos).
- Ejemplo: usuario y admin se autentican igual, pero solo el admin está autorizado a borrar cuentas.
Analogía del edificio:
- Autenticación = el guardia que verifica tu identificación al entrar.
- Autorización = qué puertas abre tu tarjeta una vez dentro.
Errores frecuentes (y peligrosos):
| Fallo | Qué ocurre |
|---|---|
| Broken Access Control | No se valida bien qué puede hacer el usuario |
| IDOR | Acceder a datos de otro cambiando un ID en la URL/petición |
| Confiar solo en el cliente | Ocultar un botón ≠ impedir la acción en el servidor |
| Escalada de privilegios | Un usuario obtiene permisos que no le corresponden |
La autorización siempre debe validarse en el servidor, nunca solo en la interfaz.
Este tema se apoya en cookies/sesiones/tokens (cómo se mantiene la identidad) y conecta directamente con Control de acceso roto / IDOR del pilar Hacking Web.