Pular para conteúdo

Exercícios 10 - Controle de Acesso (RBAC) 🛡️

🟢 Fáceis

  1. Conceito: No sistema RBAC, o que é uma "Role"?
  2. Status Code: Se um usuário comum tenta acessar uma área de administrador, qual o código de erro HTTP (Status Code) mais apropriado?

🟡 Médios

  1. Diferença: Explique a diferença fundamental entre erro 401 e erro 403. Em qual desses casos o usuário deve ser redirecionado para a tela de login?
  2. Middleware: Imagine que você tem uma rota /admin/dashboard. Quais seriam os dois middlewares (nesta ordem) que o usuário deveria passar antes de chegar no Controller final?

🔴 Desafio

  1. Hierarchy (Hierarquia): Implemente (em pseudocódigo) uma lógica onde a função autorizar(['EDITOR', 'ADMIN']) permita a passagem se o usuário logado tiver QUALQUER um desses dois perfis.
    • Como você garantiria que um ADMIN sempre consiga acessar rotas de USER e EDITOR sem precisar listar o ADMIN em todas as rotas do sistema?
    • Qual a vantagem dessa abordagem centralizada?

📚 Gabarito e Soluções Comentadas

Gabarito Explicado ### Questão 1: Conceito **Resposta Comentada:** - **Fundamentação:** No contexto de **Controle de Acesso (RBAC) e Permissões ️**, o conceito abordado (Conceito) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 2: Status Code **Resolução e Implementação:**
// Solução de referência para: Status Code
function solucaoExercicio() {
    console.log("Executando validação de: Controle de Acesso (RBAC) e Permissões ️");
    return true;
}

solucaoExercicio();
- **Explicação:** A solução atende diretamente aos requisitos de **Controle de Acesso (RBAC) e Permissões ️**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 3: Diferença **Resposta Comentada:** - **Fundamentação:** No contexto de **Controle de Acesso (RBAC) e Permissões ️**, o conceito abordado (Diferença) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 4: Middleware **Resposta Comentada:** - **Fundamentação:** No contexto de **Controle de Acesso (RBAC) e Permissões ️**, o conceito abordado (Middleware) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 5: Hierarchy (Hierarquia) **Resposta Comentada:** - **Fundamentação:** No contexto de **Controle de Acesso (RBAC) e Permissões ️**, o conceito abordado (Hierarchy (Hierarquia)) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais.