我们在谷歌应用引擎(java)上发现了两个应用程序,我们需要在那之间建立安全通信。基本上我们有:
APP1 “公共”APP,根据JSON格式的请求以JSON格式提供数据。数据是私有的,仅受特定请求的限制。
APP2:“内部/非公开”APP以JSON格式向APP1请求数据,需要以JSON格式接收响应。
上面的场景工作正常,我们让两个应用程序相互通信。但是,我们需要这种通信是安全的,我们需要识别(授权和认证过程),这实际上是APP2向APP1请求数据。
我们已经考虑了很多方法,但我们没有遇到最终的解决方案,我希望有人实现了类似的东西。
1)我们考虑使用oAuth,构建“提供商APP”并让APP2通过此提供商订阅我们的APP1。我们看看这个解决方案的原因是,未来我们可能允许第三方应用程序(APP3)在订阅模式下使用APP1中的数据。
问候。
答案 0 :(得分:7)
从一个应用程序到另一个应用程序的请求始终将X-AppEngine-Inbound-AppId
标头设置为原始应用程序的AppID。此标头不能由其他应用程序或外部服务伪造 - 它由App Engine系统清理。
但是,作为编辑说明,将您的应用分成两个独立的应用程序并不是一个好主意,除非您确实拥有可以被外部服务同样使用的API。在内部组织您的应用程序的职责通常更有效,并且在分离问题方面同样有效。
答案 1 :(得分:2)
此功能现已内置于App Engine API中。应用可以安全地向其他应用声明自己的身份。