
Autorisation et RBAC
Role-based access control, custom guards, decorators, permissions, resource ownership
1Qu'est-ce que RBAC (Role-Based Access Control) ?
Qu'est-ce que RBAC (Role-Based Access Control) ?
Réponse
RBAC est un système de contrôle d'accès qui attribue des permissions aux utilisateurs en fonction de leurs rôles. Au lieu de gérer les permissions individuellement pour chaque utilisateur, RBAC regroupe les permissions dans des rôles (ex: ADMIN, USER, MANAGER) et attribue ces rôles aux utilisateurs. Cela simplifie la gestion des accès dans les applications, particulièrement utile dans NestJS avec les guards personnalisés et les décorateurs de métadonnées.
2Quelle est la différence entre authentification et autorisation ?
Quelle est la différence entre authentification et autorisation ?
Réponse
L'authentification vérifie l'identité de l'utilisateur (qui êtes-vous ?), généralement via un login/mot de passe ou un token JWT. L'autorisation vérifie les permissions de l'utilisateur (que pouvez-vous faire ?), en contrôlant l'accès aux ressources selon les rôles ou permissions. Dans NestJS, l'authentification utilise souvent un JwtAuthGuard, tandis que l'autorisation utilise des guards personnalisés comme RolesGuard pour vérifier les droits d'accès.
3Quel décorateur NestJS permet de créer un guard personnalisé ?
Quel décorateur NestJS permet de créer un guard personnalisé ?
Réponse
Pour créer un guard personnalisé dans NestJS, il faut créer une classe décorée avec @Injectable() qui implémente l'interface CanActivate. Cette interface impose la méthode canActivate(context: ExecutionContext) qui retourne un boolean ou une Promise. Le guard peut ensuite être appliqué sur des routes avec @UseGuards(). Cette architecture permet d'injecter des dépendances (services, repositories) dans le guard pour effectuer des vérifications complexes.
Dans RBAC, que représente une 'permission' ?
Comment attacher un guard à un controller dans NestJS ?
+17 questions d'entretien
Autres sujets d'entretien Node.js / NestJS
Fondamentaux Node.js
APIs Core Node.js
Programmation asynchrone
Bases Express.js
Fondamentaux NestJS
Conception d'API REST
Validation et DTO
Documentation d'API
Gestion des erreurs
Tests unitaires
Planification de tâches
Modules et DI NestJS
Configuration et environnements
Authentification JWT
Base de données avec TypeORM
Prisma ORM
Middleware et Interceptors
Upload de fichiers
WebSockets
GraphQL avec NestJS
Tests end-to-end
Cache avec Redis
Files d'attente avec Bull
DevOps, Logging et CI/CD
Docker et Containerization
Microservices
Bonnes pratiques de sécurité
Performance et Déploiement Cloud
Maîtrise Node.js / NestJS pour ton prochain entretien
Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.
Commencer gratuitement