Oauth 2.0 当后端API存在于internet上并且由OAuth2保护时,API管理产品的用例

Oauth 2.0 当后端API存在于internet上并且由OAuth2保护时,API管理产品的用例,oauth-2.0,integration,api-design,eai,api-management,Oauth 2.0,Integration,Api Design,Eai,Api Management,背景 我正在从事一个项目,在这个项目中,我们正在建立一个集成平台/ESB,并同时开发一个API管理产品 策略是有一个集成层,通过该层处理大部分集成。这将分离各个系统,使其能够在一个地方控制访问和监视 我对API管理也有点陌生,但在企业应用程序集成方面工作了几年 场景 在第一次集成中,我们将通过API管理平台公开后端API。后端API和调用应用程序都存在于internet上,并且后端API由OAuth 2(授权类型=密码)保护。但是,没有发送任何最终用户凭据。这是一种机器到机器的流程 我们已经获得

背景

我正在从事一个项目,在这个项目中,我们正在建立一个集成平台/ESB,并同时开发一个API管理产品

策略是有一个集成层,通过该层处理大部分集成。这将分离各个系统,使其能够在一个地方控制访问和监视

我对API管理也有点陌生,但在企业应用程序集成方面工作了几年

场景

在第一次集成中,我们将通过API管理平台公开后端API。后端API和调用应用程序都存在于internet上,并且后端API由OAuth 2(授权类型=密码)保护。但是,没有发送任何最终用户凭据。这是一种机器到机器的流程

我们已经获得了客户机和用户凭据,我们的想法是将其从应用程序中抽象出来,而应用程序将根据API管理产品进行身份验证

问题

然而,这个场景很难在API管理产品中实现,它似乎需要中介,因为API网关不能只将请求发送到后端API,它首先需要获取令牌才能调用API

我已经发布了另一个问题(),它更关注于产品,但我想从更广泛的角度平行询问这个场景

可能的解决方案

使用ESB将OAuth流调停到后端API,并将API管理产品作为门面,在门面中为调用应用程序管理身份验证和其他方面

问题

  • 由于API管理产品不支持使用OAuth 2对后端API进行身份验证,我想知道这种情况是否不同寻常?即,在使用OAuth时抽象掉后端API身份验证
  • 这是API管理产品的用例吗
  • 可能的解决方案合理吗

有两种情况非常常见

                           ⌐---------------> internal services
consumer --> gateway --> esb --> gateway --> external services

如果您的网关具有OAuth功能(在您的情况下),则首选第一种,因为网关通常用作安全实施点,并且在这两种想法中都是相同的,即封装提供者的复杂性,并使其功能可用于ESB中的其余服务/使用者


顺便说一下,在云计算中,你应该考虑一种微服务方法,而不是ESB,因为ESB没有很好地扩展。

< P>有两种情况,它们是很好的共享空间

                           ⌐---------------> internal services
consumer --> gateway --> esb --> gateway --> external services

如果您的网关具有OAuth功能(在您的情况下),则首选第一种,因为网关通常用作安全实施点,并且在这两种想法中都是相同的,即封装提供者的复杂性,并使其功能可用于ESB中的其余服务/使用者

顺便说一下,在云计算中,你应该考虑一种微服务方法而不是ESB,因为ESB没有很好的扩展。