背景
我正在从事一个项目,我们正在建立一个集成平台/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向后端API中介OAuth流,并将API管理产品作为一个外观,在该外观中管理身份验证和其他方面以调用应用程序。
问题
发布于 2017-09-29 06:58:13
有两种方案是非常共有的
⌐---------------> internal services
consumer --> gateway --> esb --> gateway --> external services和
⌐---------------> internal services
consumer --> gateway --> esb --------------> external services如果网关具有OAuth功能(在您的情况下),则首选第一种方法,因为通常将网关用作安全执行点,在这两种思想中,封装提供者的复杂性并使其功能可供ESB中的其他服务/消费者使用。
顺便说一句,在云中,您应该考虑一种微服务方法,而不是ESB,因为ESB不能很好地扩展。
https://stackoverflow.com/questions/46478219
复制相似问题