用于服务查询的appengine服务不起作用

时间:2017-06-05 18:41:19

标签: python-2.7 google-app-engine urlfetch google-iap

我关注了那些instructions

我有一个appengine,其中部署了2个服务(让我们称之为AB)。 appengine配置了IAP。 (身份识别代理)

我无法B查询A。如果我只是使用urlfetch.fetch来调用它,则呼叫会被302重定向到似乎是登录页面的内容。该呼叫未记录在A中,因此似乎在其他地方被截获。

根据我的理解,这应该有用......

无论如何,我尝试使用Authorization标头,就像我们想要查询谷歌API时需要做的那样。仍然没有运气,然后我得到401 {'www-authenticate': 'Bearer error="invalid id token"'}

我该怎么办?我必须使用钥匙吗?在某处激活API交换机以允许服务间通信?

另外,他们提到X-Appengine-Inbound-Appid需要在那里。我怎么知道它是否自动添加?我将follow_redirects设置为false,因为文档提到了它,但我不知道如何查看传出流量以确认它是否正常工作。

1 个答案:

答案 0 :(得分:0)

需要做两件事。

  1. 在IAP配置页面中,您需要允许应用程序本身。因此,在右侧窗格中,单击“添加”,然后添加应用程序。 (像<app-id>@appspot.gserviceaccount.com
  2. 之类的东西
  3. 您需要在请求中添加正确的"Authorization" : "Bearer <>"标头。您可以按Authenticating from a service accounttoken_response['id_token']放入标题中。是的,这是相当多的代码。
  4. 请注意,即使我添加了新访问权限,它仍然没有显示在右侧窗格中。这可能与IAP仍处于测试阶段的事实有关。