No es necesariamente una mala idea, pero creo que es un poco más complicado. Por la información que nos ha proporcionado, no entiendo en absoluto la necesidad de la puerta de enlace.
En primer lugar, asumiré que tiene un servicio / servidor independiente que actúa como servidor de autenticación, que consume las credenciales de los usuarios y escupe (digamos) tokens JWT firmados que confirman el rol y la autenticidad de cada usuario. Luego, cuando el cliente desea acceder a ejecutar una consulta en uno de los microservicios, puede obtener un token JWT del servidor de autenticación si aún no tiene uno, luego pasar este token JWT en el encabezado de autenticación en una solicitud directamente a El microservicio.
El microservicio puede verificar la firma en el token JWT con el mismo algoritmo utilizado para firmarlo (por ejemplo, el algoritmo HMAC-SHA256). Si la firma es válida, el microservicio verifica la función suministrada en el token de JWT y cumple con la solicitud o la rechaza.
El problema con su método es la posibilidad de eludir la puerta de enlace y hacer solicitudes directamente al microservicio. Por ejemplo:
--------- -------------
----> Queries ----> Gateway ---- RPC ----> Microservices
--------- -------------
^
|
----> Attacker Query -------------------------
Cuando el atacante no pasa un token JWT y el microservicio seguirá cumpliendo con la solicitud.
La única buena razón para usar una puerta de enlace como usted explicó es si no hay forma de que la persona que forme la consulta sepa dónde reside este microservicio y debe usar la puerta de enlace para dirigir su consulta a la microempresa. Servicio. En cuyo caso, a menos que pueda garantizar absolutamente que ninguna solicitud, excepto las de la puerta de enlace, pueda llegar a los microservicios, deberá verificar los tokens tanto en los microservicios como en la puerta de enlace.
Espero que ayude!