Qual sua opinião sobre autenteticação de sessões com microsserviços?
Imagine o seguinte cenário, você tem uma aplicação front-end (basicamente, uma dashboard administrativa) e uma porção de microsserviços. Existirá um load balance para distribuição da carga nesses microsserviços.
Para que a aplicação front-end tenha acesso aos requisitos que ela precisa internamente, é necessário um controle de sessão. Afinal, essas sessões precisam sofrer um processo de logout quando necessário ou podem ser revogadas.
Em um contexto de MVP, pensando no mínimo que funciona, o que você faz?
a) Faz um microsserviço com uma API interna para o front que implementa autenticação e sessões e essa API que se comunica com os demais microsserviços, trata e retorna os dados;
b) Faz um microsserviço de autenticação para gerenciar as sessões, mas faz com que o front-end chame os microsserviços carregando os cookies de sessão e cada microsserviço que fica responsável por ler o cookie de sessão, validar essa sessão (para saber se está ativa no microsserviço de autenticação) e retorna os dados para o front-end?
Considerações:
- A meta inicial como MVP é o menor custo possível, soluções que envolvam um custo por requisição muito alto como API Gateways deveriam ser evitados.
Ou você simplesmente não usaria sessões e optaria por JWTs. Nesse caso, como você lidaria com:
- Revogações;
- Logout;
- Armazenamento do estado de acesso, como IP/Localização.