Cómo hacer una autenticación entre la API REST en una aplicación dividida en muchos microservicios

La mejor manera de hacerlo sería con token (preferiblemente JWT). Aquí están las piezas que necesitas:

  1. cree un servicio de autenticación donde sus usuarios se registren e inicien sesión; ese servicio es responsable de distribuir tokens y, si se solicita, verificarlos; la administración de permisos también va aquí (a menos que se vuelva enorme y complicado)
  2. crear middleware que extraiga el token del encabezado de Autorización en solicitudes HTTP y lo valide; con JWT puede simplemente usar la firma para verificarlo o llamar a uno de los puntos finales en el servicio de autenticación para verificar ese token por usted (generalmente GET / auth / tokeninfo)
  3. conecte ese middleware a sus otros servicios y haga que acepten o rechacen solicitudes basadas en lo que tiene en el token

No dude en comunicarse conmigo si necesita más información: https://appoint.ly/s/ggwozdz/quo…

No estoy seguro de seguir completamente tu pregunta, pero lo intentaré. Según tengo entendido, desea saber cómo compartir la autenticación de credenciales con diferentes llamadas a la API.

Si ese es el caso, probablemente hay un par de formas diferentes de abordar esto. Su objetivo sería descubrir cómo acceder a la fuente centralizada que contiene la información del usuario para autenticar. ¿Los diferentes micro servicios estarán en el mismo servidor? Si es así, probablemente no sería demasiado difícil. De lo contrario, es posible que deba crear una clave en el punto de autenticación del usuario, que pueda transmitirse a los otros servicios. Que luego recibiría la clave y la verificaría antes de seguir adelante.

Usaría un token de autenticación que se genera / devuelve en una API específica en el servidor primario.

Luego, cada llamada REST pasa el token a cada llamada hasta que se invalida.

Token JWT

Use esto para la autenticación … lo tenemos en un proyecto similar implementado