Node.js / NestJS

Autorización y RBAC

Control de acceso basado en roles, guards personalizados, decoradores, permisos, propiedad de recursos

20 preguntas de entrevista·
Mid-Level
1

¿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?

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?

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.

4

En RBAC, ¿qué representa un 'permiso'?

5

¿Cómo asociar un guard a un controller en NestJS?

+17 preguntas de entrevista

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