首页 > 解决方案 > OAuth2中资源和客户端的区别

问题描述

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

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

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

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

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

谢谢

标签: oauth-2.0microservices

解决方案


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


推荐阅读