Em qual camada deve ser implementada a lógica de autorização ou permissão para determinar o que o usuário pode acessar?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Em qual camada deve ser implementada a lógica de autorização ou permissão para determinar o que o usuário pode acessar?
Oi Antonio! Tudo bem?
A lógica de autorização e permissão geralmente é implementada na camada de aplicação. Essa abordagem garante que as regras de acesso sejam centralizadas e desacopladas da lógica de domínio e da camada de persistência, o que ajuda a manter o sistema mais organizado e seguro. No contexto de Domain Driven Design (DDD), as verificações de autorização podem ser feitas em: Application Services: para garantir que apenas usuários autorizados acessem determinadas funcionalidades. Domain Services ou Entidades: caso as regras de permissão sejam altamente específicas para o domínio. Além disso, é importante lembrar que a segurança deve ser reforçada em camadas adicionais, como a API (para endpoints externos) e o banco de dados (com controle de acessos).
Caso tenha alguma dúvida ou não tenha ficado tãoooo claro assim, só avisar!
No livro Implementando DDD de Vaughn Vernon, ele menciona colocar a autorização no contexto delimitado de Identidade e Acesso. Esse contexto pode ser utilizado por outros contextos delimitados por meio de comunicação HTTP. Pelo que entendi, ele sugere que a verificação de autorização fique centralizada no contexto delimitado de Identidade e Acesso, enquanto os outros contextos delimitados fazem chamadas a esse contexto via comunicação HTTP. Qual é a sua opinião sobre isso?