2
respostas

[Dúvida] Em qual camada deve ser implementada a lógica de autorização ou permissão

Em qual camada deve ser implementada a lógica de autorização ou permissão para determinar o que o usuário pode acessar?

2 respostas

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?