Google App Engine模块间通信授权

时间:2015-05-14 12:54:53

标签: python google-app-engine

Google Docs中说

  

您可以将任何手动或基本扩展模块配置为接受来自应用程序中其他模块的请求,方法是将其处理程序限制为仅允许管理员帐户,为模块配置文件中的相应处理程序指定login:admin。有了这个限制,App Engine中的任何其他模块的任何URLFetch都将由App Engine自动验证,并且任何非来自应用程序的请求都将被拒绝。

所以我这样做了,但遗憾的是它不起作用。我在模块B上请求模块A的URL,该模块受login: admin属性

的保护

我可以在浏览器中获取该网址,向我显示登录页面,在我继续作为管理员后,我可以获取我的路线。

它应该如何运作?据我所知,它应该在请求中添加一个标头,其中包含某种授权令牌。

如果我在模块A的请求中获取相同的url,我将获得相同的重定向。 urllib2默认遵循302状态代码,结果是登录页面。

我使用gcloud preview app run命令运行环境。模块A是默认模块,模块B是Managed VM容器,这可能是问题吗?

1 个答案:

答案 0 :(得分:1)

我可以确认这种情况正在发生,我已经复制了这个问题。问题正在App Engine public issue tracker中进行跟踪。关注任何更新。

目前,我认为手动检查X-Appengine-Inbound-Appid标头要好得多,因为这是由基础设施管理的,不能被欺骗。

您还可以实施OAuth,但这会增加您在小应用上可能不需要或不需要的开销。

相关问题