我想在不同的微服务之间进行通信,但是出现的问题是,微服务已通过jwt令牌进行了保护,我无法找到一种方法来从第一个微服务向另一个微服务发送安全呼叫。有没有一种方法可以直接与service方法通信,因为如果我打开api,它将被滥用。
或者我必须通过api网关来通过api gate方式发送每个请求并从那里进行安全的通信。
而且网关也可以处理安全性并验证用户身份(许多公司的确如此)。>>
现在,当您通过网关并且经过身份验证的请求到达客户端时,通常您已经在该请求上拥有了一个用户身份(网关在请求中所放置的身份)。
所以您知道用户“ John Smith”已经触发了请求。
现在,如果您需要调用另一个微服务,则应该决定(并再次决定):
如果您确实需要微服务之间的身份验证,谁会对请求进行身份验证?如果它是网关,则所有身份验证逻辑都存在,但是您必须为每个请求进行额外的跃点,这可能会增加成本或者,如果它是直接调用,则每个微服务必须实现一个authenticatat逻辑。当然,有诸如Spring Security之类的东西,其他语言/生态系统也有类似的解决方案,但是总的来说这很难实现。
如果您确实进行了从微服务A到微服务B的经过身份验证的调用,并且该流是由触发对服务A的请求的用户John Smith发起的,则应确定该调用的语义是否为:
用户“ John Smith”与服务B联系,或...
而且网关也可以处理安全性并验证用户身份(许多公司的确如此)。>>
现在,当您通过网关并且经过身份验证的请求到达客户端时,通常您已经在请求上拥有了用户身份(网关在请求上添加了用户身份)。
所以您知道用户“ John Smith”已经触发了请求。
现在,如果您需要调用另一个微服务,则应该决定(并再次决定):
如果您确实需要微服务之间的身份验证,谁会对请求进行身份验证?如果它是网关,则所有身份验证逻辑都存在,但是您必须为每个请求进行额外的跃点,这可能会增加成本或者,如果它是直接调用,则每个微服务必须实现一个authenticatat逻辑。当然,有诸如Spring Security之类的东西,其他语言/生态系统也有类似的解决方案,但是总的来说这很难实现。
如果您确实进行了从微服务A到微服务B的身份验证调用,并且该流是由触发了对服务A的请求的用户John Smith发起的,则应确定该调用的语义是否为:
用户“ John Smith”与服务B联系,或...