Como proteger os microservicos de acesso direto
[Finalizado Pelo Aluno]
Entendi o conceito do gateway, mas como faz para proteger o acesso direito do microserviço? Se alguém descobrir a url de um microserviço vai poder fazer uma requidição direta.
Olá, Márcio!
Tudo bem?
Existem algumas soluções, umas fáceis, e outras nem tanto.
1) A mais fácil:
Criar um token no microsserviço, e ao acessar este microsserviço você valida se o token enviado bate com o de acesso, se bater permite o acesso (basta criar um middleware global para fazer essa validação);
Ainda nessa mesma pegada, você pode ter um microsserviço específico, só para armazenar em um banco os tokens de acesso de cada microsserviço.
2) Usar o Keycloack (ainda vou fazer um curso sobre), porque com o Keycloack é possível trabalhar com troca de chaves publicas e privadas, e ainda diminui essa dupla latência (de toda hora ter que validar o acesso de microsserviço de autenticação).
3) Trabalhar com contratos de microsserviços, esse é mais complexo, bem mais complexo, para explicar aqui caberia um capitulo de um livro hehehee
Acha que a opção 1 ou 2 te atende?
Se tiver alguma dúvida para implementar, me pergunte, estou sempre à disposição.
Obrigado! Vou estudar sobre essas abordagens.
Carlos, sobe esta abordagem .
você poderia tbem criar um passport personal client neh ? algo desse tipo -
artisan passport:client --personal
ai vai criar uma chave e um secret -
PASSPORT_CLIENT_ID="9c813dbb-9e09-4216-8499-d459ccb2670f"
PASSPORT_CLIENT_SECRET="RQKcI1wZdg5SeMl9ghtNmcNYs0bq1WpkmDt3BPrF"
com esta chave vc poderia proteger a sua rota tbem .
Route::group(['middleware' => ['auth:my-personal-client', 'scope:my-scope']] , function () {
e quando fazer o request , do gatway para o serviço usar o header com o token .
tbem daria neh ?
Precisa estar logado para conseguir responder a este ticket!
Clique Aqui Para Entrar!