Node.js / NestJS

Autorisierung und RBAC

Rollenbasierte Zugriffskontrolle, benutzerdefinierte Guards, Dekoratoren, Berechtigungen, Ressourcenbesitz

20 Interview-Fragen·
Mid-Level
1

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.

2

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.

3

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.

4

Was stellt im RBAC eine 'Berechtigung' dar?

5

Wie hängt man einen Guard an einen Controller in NestJS an?

+17 Interview-Fragen

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