Soy bastante nuevo en el concepto de microservicios y puertas de enlace API en general. Estoy tratando de comprender el papel que desempeña una puerta de enlace api en una aplicación web moderna que utiliza muchos microservicios. He estado leyendo la documentación y los tutoriales de express-gateway, pero estoy un poco confundido sobre cómo una aplicación web realizaría la autenticación con una puerta de enlace api configurada como express-gateway.
Mi aplicación web tendría múltiples microservicios con los que hablaría. Pensé que poner una puerta de enlace API delante de todos mis microservicios haría que cada microservicio no tuviera que preocuparse por si un usuario/solicitud está autenticado o no, porque si se estaba hablando con el microservicio significaba que la puerta de enlace api había verificado que la solicitud era un usuario válido. ¿Es correcto mi entendimiento de esto?
Suponiendo que mi idea de que la puerta de enlace api sirva como guardián de otros microservicios sea correcta, mi pregunta de seguimiento es con los detalles de cómo se realiza.
¿Significa esto que la puerta de enlace API realiza toda la creación y autenticación de usuarios? ¿Significa que no tendría microservicios personalizados de creación/inicio de sesión de usuario? ¿O tendría un microservicio de creación de usuarios personalizado accesible públicamente a través de la puerta de enlace api que, al crearse, crearía las cuentas de usuario dentro de la puerta de enlace api? ¿Mi microservicio ahora duplica la información del usuario en una base de datos en algún lugar y en el propio almacenamiento de Express-Gateway? Supongo que mi confusión general es si una puerta de enlace api toma el papel de autenticación/creación de usuarios completamente lejos de los propios microservicios de una aplicación web, o ¿todavía necesita ambas partes?
Pensé que mi propio microservicio de autenticación primero validaría a un usuario y luego trabajaría con la puerta de enlace api para generar un token válido de corta duración, pero leer sobre la creación de cuentas de usuario o de aplicaciones para la autenticación en la puerta de enlace exprés me confundió sobre los roles que cada uno juega.
Para tener una visión general de la función de una API Gateway en una solución basada en microservicios, le sugiero que eche un vistazo a esta presentación que hice hace un par de meses. Eso debería aclarar un poco las cosas.
¿Es correcto mi entendimiento de esto?
Sí, lo tienes. Si echas un vistazo al video, también puedes ver ese concepto en la práctica.
Para el almacenamiento, ese tipo de depende.
Express Gateway ofrece un subconjunto de servicios de identidad como usuarios, aplicaciones y credenciales. Son lo suficientemente buenos para la mayoría de los usos de las aplicaciones, pero es posible que necesite usar un servicio externo, como Auth0.
Ahora, dejando a un lado las características: el lugar donde almacena los datos, depende de usted. Puede conservar algunos de los datos en Express Gateway y otros en su propia base de datos, o en su totalidad en Express Gateway. No hay una estrategia buena o mala aquí.