我正在Node Js中为基于微服务的应用程序开发身份验证/授权系统。
我阅读了一些有关OAuth2标准的文章和文档,但是我需要对用例进行一些说明。 基本上,OAuth2有一些参与者,例如:
因此,在数据库中,我存储了一个客户端(Web应用程序)及其client_id和client_secret。
让我们假设我的一个微服务需要从另一个微服务访问数据。他们两个都使用REST Api。 没有与用户的交互,所有操作都在后台完成。在这种情况下,我将使用客户端凭证流。 遵循OAuth2规则,它们都是资源服务器,但同时看起来它们也是客户端应用程序。
那么我应该使用客户端ID,密码等在客户端数据库表/集合中注册它们还是出现一些错误?
谢谢
答案 0 :(得分:0)
如果我正确理解了您的问题,则调用者微服务是您的客户端,被调用的微服务是您的资源。在很大程度上取决于您实现了哪种类型的微服务通信模式。如果您要实现“ API网关”模式,则网关始终是客户端,所有其他微服务都可以视为资源。但是,如果您的微服务可以互相调用,那么就像您提到的那样,它们中的每一个都必须同时注册为客户端和资源。