背景
我正在开发一个项目,我们正在建立一个集成平台/ ESB,并且这是一个API管理产品。
策略是拥有一个集成层,通过该集成层可以处理大部分集成。这使各个系统分离,可以在一个地方控制访问和监控。
我对API管理也很陌生,但多年来一直致力于企业应用程序集成。
方案
在第一次集成中,我们将通过API管理平台公开后端API。后端API以及调用应用程序存在于Internet上,后端API使用OAuth 2(授权类型=密码)进行保护。但是,没有任何最终用户凭证被发送,这是一种机器对机器流程。
我们已经获得了客户端以及用户凭据,我们的想法是从应用程序中抽象出来,而不是对API管理产品进行身份验证。
问题
然而,这个场景很难在API管理产品中实现,它似乎需要调解,因为API网关不能将请求发送到它首先需要获得令牌以便能够调用的后端API API。
我发布了另一个问题(WSO2 APIM - Backend service uses OAuth 2 with Password Grant),该问题更侧重于产品,但我想从更广泛的角度并行询问这种情况。
可能的解决方案
使用ESB调整OAuth流向后端API,并将API管理产品作为外观,其中为调用应用程序管理身份验证和其他方面。
问题
答案 0 :(得分:0)
有两种情况是非常公共
⌐---------------> internal services
consumer --> gateway --> esb --> gateway --> external services
和
⌐---------------> internal services
consumer --> gateway --> esb --------------> external services
如果您的网关具有OAuth功能(在您的情况下),则首选第一个,因为通常网关用作安全执行点,并且两者的想法相同,封装了提供程序的复杂性并使其功能可用于ESB中的其他服务/消费者。
顺便说一下,在云中你应该考虑使用微服务方法而不是ESB,因为ESB不能很好地扩展。