Node.js / NestJS

Autorização e RBAC

Controle de acesso baseado em roles, guards personalizados, decorators, permissões, propriedade de recursos

20 perguntas de entrevista·
Mid-Level
1

O que é RBAC (Role-Based Access Control)?

Resposta

RBAC é um sistema de controle de acesso que concede permissões aos usuários com base em seus roles. Em vez de gerenciar as permissões individualmente para cada usuário, o RBAC agrupa as permissões em roles (ex: ADMIN, USER, MANAGER) e atribui esses roles aos usuários. Isso simplifica o gerenciamento de acessos nas aplicações, especialmente útil no NestJS com guards personalizados e decorators de metadados.

2

Qual é a diferença entre autenticação e autorização?

Resposta

A autenticação verifica a identidade do usuário (quem é você?), geralmente via login/senha ou token JWT. A autorização verifica as permissões do usuário (o que você pode fazer?), controlando o acesso aos recursos com base nos roles ou permissões. No NestJS, a autenticação costuma usar um JwtAuthGuard, enquanto a autorização usa guards personalizados como RolesGuard para verificar os direitos de acesso.

3

Qual decorator NestJS permite criar um guard personalizado?

Resposta

Para criar um guard personalizado no NestJS, é preciso criar uma classe decorada com @Injectable() que implementa a interface CanActivate. Essa interface exige o método canActivate(context: ExecutionContext) que retorna um boolean ou uma Promise. O guard pode então ser aplicado às rotas com @UseGuards(). Essa arquitetura permite injetar dependências (services, repositories) no guard para realizar validações complexas.

4

No RBAC, o que representa uma 'permissão'?

5

Como vincular um guard a um controller no NestJS?

+17 perguntas de entrevista

Domine Node.js / NestJS para sua proxima entrevista

Acesse todas as perguntas, flashcards, testes tecnicos, exercicios de code review e simuladores de entrevista.

Comece gratis