Desarrollador Full-stack: pregunta de entrevista
¿Cuál es la diferencia entre autenticación y autorización?
La autenticación prueba quién es el usuario; la autorización decide qué puede hacer esa identidad sobre un recurso. Autentica primero y aplica autorización de mínimo privilegio en el servidor para cada operación protegida.
Respuesta directa
Qué debe cubrir una buena respuesta
Cómo funciona
La autenticación responde quién hace la solicitud, establecida una vez mediante contraseña, login federado, passkey o token firmado, y transportada en las siguientes solicitudes por una cookie de sesión o un token bearer. La autorización responde si esa identidad puede realizar esta acción sobre este recurso, y debe evaluarse en cada solicitud, cerca de los datos, con roles, permisos o reglas de propiedad. Las comprobaciones del cliente solo dan forma a la interfaz; el servidor decide. Confundir ambas produce sistemas en los que cualquiera autenticado puede leer los datos de otros.
Ejemplo
Un usuario inicia sesión con Google y recibe una sesión; eso es autenticación. Cuando llama a GET /invoices/42, el servidor carga la factura 42 y comprueba que su owner_id coincide con el usuario de la sesión o que el usuario tiene el rol de administrador financiero; eso es autorización, y ocurre aunque la interfaz nunca mostrara un enlace a la factura de otro usuario.
Errores frecuentes
- Tratar un token válido como permiso para acceder a cualquier ID de recurso pasado en la URL.
- Ocultar botones en el frontend y llamar a eso control de acceso.
- Comprobar roles en el enrutador pero no en endpoints anidados o por lotes.
Una estructura útil para responder
Responde desde tu propia experiencia.
No memorices un guion: usa solo ejemplos que puedas explicar con honestidad en preguntas posteriores.
Abre el espacio de trabajo de escritorio y ensaya una respuesta clara con tus propias palabras.