Se eu quisesse fazer uma autenticação, deveria implementá-la no eureka server, na gateway ou em cada microserviço?
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!
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!