OAuth2中资源和客户端之间的区别

时间:2019-11-07 11:48:45

标签: oauth-2.0 microservices

我正在Node Js中为基于微服务的应用程序开发身份验证/授权系统。

我阅读了一些有关OAuth2标准的文章和文档,但是我需要对用例进行一些说明。 基本上,OAuth2有一些参与者,例如:

  • 资源所有者(用户)
  • 客户端应用(某些OAuth2授予​​流程中的Web应用,例如授权码,隐式,密码)
  • 授权服务器
  • 资源服务器(我要访问的服务)

因此,在数据库中,我存储了一个客户端(Web应用程序)及其client_id和client_secret。

让我们假设我的一个微服务需要从另一个微服务访问数据。他们两个都使用REST Api。 没有与用户的交互,所有操作都在后台完成。在这种情况下,我将使用客户端凭证流。 遵循OAuth2规则,它们都是资源服务器,但同时看起来它们也是客户端应用程序。

那么我应该使用客户端ID,密码等在客户端数据库表/集合中注册它们还是出现一些错误?

谢谢

1 个答案:

答案 0 :(得分:0)

如果我正确理解了您的问题,则调用者微服务是您的客户端,被调用的微服务是您的资源。在很大程度上取决于您实现了哪种类型的微服务通信模式。如果您要实现“ API网关”模式,则网关始终是客户端,所有其他微服务都可以视为资源。但是,如果您的微服务可以互相调用,那么就像您提到的那样,它们中的每一个都必须同时注册为客户端和资源。