微服务互通与权限

Microservice intercommunication and authority

这更像是一个架构问题,与任何特定技术无关。假设我有 2 个休息微服务。用户有权访问 service1,但无权访问 service2。但是,service1 需要访问 service2 以产生一些副作用。

在我的情况下,service1 实际上是 public,您不需要 JWT 即可访问它。 Service2 需要经过身份验证的用户。

我正在考虑的一个选项是 service2 允许来自 service1 的调用,但不允许来自用户的调用。这可以通过通用 JWT 来完成。

有人有什么建议吗? TIA!

在这种情况下,服务 A 应该有权通过服务用户而不是最终用户调用服务 B。如果您使用的是 oauth2.0,则应使用客户端凭据。它是一种授权类型,用于使用客户端 ID 和客户端密码作为凭据向授权应用程序颁发令牌。

通过这种方法,服务 A 将向 OAuth 服务器请求一个令牌以访问服务 B 的端点并传递其客户端 ID 和客户端密码,OAuth 服务器将提供一个有效令牌供服务 A 使用服务 B