Se eu quisesse fazer uma autenticação, deveria implementá-la no eureka server, na gateway ou em cada microserviço?
Se eu quisesse fazer uma autenticação, deveria implementá-la no eureka server, na gateway ou em cada microserviço?
Olá, Mauro! Tudo joia?
A sua pergunta é muito relevante, pois a autenticação é uma parte crucial da segurança em qualquer aplicação.
Em uma arquitetura de microsserviços, a autenticação pode ser implementada de várias maneiras, dependendo das necessidades específicas do seu projeto. No entanto, uma prática comum é implementar a autenticação no gateway.
O gateway atua como um ponto único de entrada para todas as solicitações que vêm de clientes e, portanto, é um local lógico para a implementação de autenticação. Isso significa que cada solicitação é autenticada antes de ser encaminhada para o microsserviço apropriado. Isso também tem a vantagem de reduzir a duplicação de código, pois a lógica de autenticação não precisa ser implementada em cada microsserviço individualmente.
Por exemplo, você pode usar o Spring Security no seu gateway para implementar a autenticação. Quando uma solicitação chega, o Spring Security pode verificar se o pedido contém um token de autenticação válido. Se o token for válido, a solicitação é encaminhada para o microsserviço apropriado. Se o token for inválido, o Spring Security pode enviar uma resposta com um código de status HTTP 401 (Não autorizado).
Porém, isso não significa que a autenticação no nível do microsserviço seja completamente descartada. Em alguns casos, pode ser útil implementar algum nível de autenticação no microsserviço, por exemplo, para verificar se o usuário tem permissão para acessar um recurso específico.
Espero ter ajudado e bons estudos!