
Autorisierung und RBAC
Rollenbasierte Zugriffskontrolle, benutzerdefinierte Guards, Dekoratoren, Berechtigungen, Ressourcenbesitz
1Was ist RBAC (Role-Based Access Control)?
Was ist RBAC (Role-Based Access Control)?
Antwort
RBAC ist ein Zugriffskontrollsystem, das Benutzern Berechtigungen basierend auf ihren Rollen gewährt. Anstatt Berechtigungen für jeden Benutzer einzeln zu verwalten, gruppiert RBAC Berechtigungen in Rollen (z. B. ADMIN, USER, MANAGER) und weist diese Rollen den Benutzern zu. Dies vereinfacht die Zugriffsverwaltung in Anwendungen und ist in NestJS mit benutzerdefinierten Guards und Metadaten-Dekoratoren besonders nützlich.
2Was ist der Unterschied zwischen Authentifizierung und Autorisierung?
Was ist der Unterschied zwischen Authentifizierung und Autorisierung?
Antwort
Die Authentifizierung überprüft die Identität des Benutzers (Wer sind Sie?), typischerweise über Login/Passwort oder ein JWT-Token. Die Autorisierung überprüft die Berechtigungen des Benutzers (Was dürfen Sie tun?) und steuert den Zugriff auf Ressourcen basierend auf Rollen oder Berechtigungen. In NestJS verwendet die Authentifizierung häufig einen JwtAuthGuard, während die Autorisierung benutzerdefinierte Guards wie RolesGuard verwendet, um die Zugriffsrechte zu prüfen.
3Welcher NestJS-Dekorator ermöglicht das Erstellen eines benutzerdefinierten Guards?
Welcher NestJS-Dekorator ermöglicht das Erstellen eines benutzerdefinierten Guards?
Antwort
Um einen benutzerdefinierten Guard in NestJS zu erstellen, erstellt man eine mit @Injectable() dekorierte Klasse, die die CanActivate-Schnittstelle implementiert. Diese Schnittstelle erfordert die Methode canActivate(context: ExecutionContext), die einen boolean oder ein Promise zurückgibt. Der Guard kann dann mit @UseGuards() auf Routen angewendet werden. Diese Architektur ermöglicht das Injizieren von Abhängigkeiten (Services, Repositories) in den Guard, um komplexe Prüfungen durchzuführen.
Was stellt im RBAC eine 'Berechtigung' dar?
Wie hängt man einen Guard an einen Controller in NestJS an?
+17 Interview-Fragen
Weitere Node.js / NestJS-Interviewthemen
Node.js-Grundlagen
Node.js Core-APIs
Asynchrone Programmierung
Express.js-Grundlagen
NestJS-Grundlagen
REST-API-Design
Validierung & DTO
API-Dokumentation & Verträge
Fehlerbehandlung
Unit-Testing
Aufgabenplanung
NestJS-Module & DI
Konfiguration und Umgebungsverwaltung
JWT-Authentifizierung
Datenbank mit TypeORM
Prisma ORM
Middleware und Interceptors
Datei-Upload
WebSockets
GraphQL mit NestJS
End-to-End-Tests
Caching mit Redis
Warteschlangen mit Bull
DevOps, Logging & CI/CD
Docker und Containerisierung
Microservices
Best Practices für Sicherheit
Performance und Cloud-Deployment
Meistere Node.js / NestJS für dein nächstes Interview
Zugang zu allen Fragen, Flashcards, technischen Tests, Code-Review-Übungen und Interview-Simulatoren.
Kostenlos starten