我想在不同的微服务之间进行通信,但出现的问题是使用jwt令牌来保护微服务,而我无法找到从第一个微服务向另一个微服务发送安全呼叫的方法。是否有一种方法可以直接与服务方法通信,因为如果我打开api,就会被误用。
或者,我必须通过api网关通过api网关发送每个请求,并在那里进行安全的通信。
发布于 2020-03-04 07:36:53
这完全取决于您的项目的确切需求。
网关API通常用于向外部用户隐藏微服务的复杂性,外部用户通常有一个端点可供交谈。
此外,网关还可以处理安全性并对用户进行身份验证(许多公司确实这样做)。
现在,当您通过网关并通过身份验证的请求到达客户端时,通常在请求上已经有了一个用户标识(网关对请求进行了哪些操作)。
所以你知道用户“约翰·史密斯”触发了这个请求。
现在,如果您需要调用另一个微服务,您应该做出决定(还是您的决定):
microservices(
- User "John Smith" contacts the service B, or...
- Service A contacts Service B on behalf of user John Smith. This is really important for authorization if you have any kind of permissions system.
在技术实现方面,
发布于 2021-05-26 08:38:34
您可以有两个api网关:
暴露在外部的令牌进行验证,并将索赔发送到用于验证路由保护的微服务。
在微服务通信之间,发送您已经拥有的与第二个网关的声明。希望这能有所帮助。如果你找到了其他的方法,请告诉我们。
https://stackoverflow.com/questions/60520398
复制相似问题