服务到服务通信的授权码授予类型

Authorization code grant type for service to service communication

我有两个服务:服务 A 和服务 B

我有一个用于颁发和验证令牌的中央身份服务器。

我需要服务 B 的一些资源只能由服务 A 访问。

  1. 我如何验证观众,或者我如何确保 ex。 服务 A 的客户端凭据令牌在调用时有效 服务 B,以及来自其他服务的令牌无效。
  2. 这是一种不好的做法还是使用授权有任何问题 服务到服务授权的代码授权类型?
  1. 当您为客户端凭据颁发令牌时,该令牌的主题应该是服务 A。它将在 JWT 的 sub 声明中(如果您使用 JWT用于访问令牌),或者您将能够从内省端点获取该信息(如果您使用不透明的访问令牌)。服务 B 可以使用该信息拒绝任何主题不是服务 A 的带有令牌的请求。

  2. 授权码授予类型假定有资源所有者(用户)和可用的浏览器。在您的情况下,似乎无法实现授权代码流,因为您有两个直接相互通信的服务。无论如何,客户端凭据应该足以满足您的需求。