Node.js / NestJS

Autorizzazione e RBAC

Controllo degli accessi basato sui ruoli, guard personalizzati, decoratori, permessi, proprietà delle risorse

20 domande da colloquio·
Mid-Level
1

Cos'è RBAC (Role-Based Access Control)?

Risposta

RBAC è un sistema di controllo degli accessi che concede permessi agli utenti in base ai loro ruoli. Invece di gestire i permessi individualmente per ogni utente, RBAC raggruppa i permessi in ruoli (es: ADMIN, USER, MANAGER) e assegna questi ruoli agli utenti. Questo semplifica la gestione degli accessi nelle applicazioni, particolarmente utile in NestJS con guard personalizzati e decoratori di metadati.

2

Qual è la differenza tra autenticazione e autorizzazione?

Risposta

L'autenticazione verifica l'identità dell'utente (chi sei?), tipicamente tramite login/password o token JWT. L'autorizzazione verifica i permessi dell'utente (cosa puoi fare?), controllando l'accesso alle risorse in base a ruoli o permessi. In NestJS, l'autenticazione usa spesso un JwtAuthGuard, mentre l'autorizzazione usa guard personalizzati come RolesGuard per verificare i diritti di accesso.

3

Quale decoratore NestJS permette di creare un guard personalizzato?

Risposta

Per creare un guard personalizzato in NestJS, occorre creare una classe decorata con @Injectable() che implementa l'interfaccia CanActivate. Questa interfaccia richiede il metodo canActivate(context: ExecutionContext) che restituisce un boolean o una Promise. Il guard può poi essere applicato alle rotte con @UseGuards(). Questa architettura consente di iniettare dipendenze (servizi, repository) nel guard per eseguire validazioni complesse.

4

In RBAC, cosa rappresenta un 'permesso'?

5

Come si associa un guard a un controller in NestJS?

+17 domande da colloquio

Padroneggia Node.js / NestJS per il tuo prossimo colloquio

Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.

Inizia gratis