
Autorización y RBAC
Control de acceso basado en roles, guards personalizados, decoradores, permisos, propiedad de recursos
1¿Qué es RBAC (Role-Based Access Control)?
¿Qué es RBAC (Role-Based Access Control)?
Respuesta
RBAC es un sistema de control de acceso que otorga permisos a los usuarios según sus roles. En lugar de gestionar los permisos individualmente para cada usuario, RBAC agrupa los permisos en roles (ej: ADMIN, USER, MANAGER) y asigna estos roles a los usuarios. Esto simplifica la gestión de accesos en las aplicaciones, especialmente útil en NestJS con guards personalizados y decoradores de metadatos.
2¿Cuál es la diferencia entre autenticación y autorización?
¿Cuál es la diferencia entre autenticación y autorización?
Respuesta
La autenticación verifica la identidad del usuario (¿quién eres?), generalmente mediante login/contraseña o un token JWT. La autorización verifica los permisos del usuario (¿qué puedes hacer?), controlando el acceso a los recursos según los roles o permisos. En NestJS, la autenticación suele usar un JwtAuthGuard, mientras que la autorización usa guards personalizados como RolesGuard para verificar los derechos de acceso.
3¿Qué decorador NestJS permite crear un guard personalizado?
¿Qué decorador NestJS permite crear un guard personalizado?
Respuesta
Para crear un guard personalizado en NestJS, hay que crear una clase decorada con @Injectable() que implemente la interfaz CanActivate. Esta interfaz exige el método canActivate(context: ExecutionContext) que retorna un boolean o una Promise. El guard puede luego aplicarse a las rutas con @UseGuards(). Esta arquitectura permite inyectar dependencias (servicios, repositorios) en el guard para realizar validaciones complejas.
En RBAC, ¿qué representa un 'permiso'?
¿Cómo asociar un guard a un controller en NestJS?
+17 preguntas de entrevista
Otros temas de entrevista Node.js / NestJS
Fundamentos de Node.js
APIs Core de Node.js
Programación asíncrona
Fundamentos de Express.js
Fundamentos de NestJS
Diseño de API REST
Validación y DTO
Documentación de API y contratos
Manejo de errores
Pruebas unitarias
Planificación de tareas
Módulos y DI de NestJS
Configuración y gestión de entornos
Autenticación JWT
Base de datos con TypeORM
Prisma ORM
Middleware e Interceptors
Subida de archivos
WebSockets
GraphQL con NestJS
Pruebas end-to-end
Caché con Redis
Colas con Bull
DevOps, Logging y CI/CD
Docker y Containerización
Microservices
Mejores prácticas de seguridad
Rendimiento y despliegue en la nube
Domina Node.js / NestJS para tu próxima entrevista
Accede a todas las preguntas, flashcards, tests técnicos, ejercicios de code review y simuladores de entrevista.
Empieza gratis