2

我按照这些指示

我有一个应用引擎,其中部署了 2 个服务(我们称它们为A和)。Bappengine 配置了 IAP。(身份感知代理)

我无法B查询A。如果我简单地用 调用它urlfetch.fetch,调用 get 会用 a 重定向302到似乎是登录页面的地方。该呼叫未登录,A因此似乎在其他地方被截获。

据我了解,这应该可行...

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

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

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

4

1 回答 1

0

需要做两件事。

  1. 在 IAP 配置页面中,您需要允许应用程序本身。因此,在右侧窗格中,单击“添加”,然后添加应用程序。(有点像<app-id>@appspot.gserviceaccount.com
  2. 您需要"Authorization" : "Bearer <>"在请求中添加正确的标头。您可以按照来自服务帐户的身份验证来获取token_response['id_token']要放入标头的内容。是的,这是相当多的代码。

请注意,即使我添加了新访问权限,它仍然没有显示在右窗格中。这可能与 IAP 仍处于测试阶段有关。

于 2017-06-05T20:05:06.377 回答