6

是否有必要在 AppEngine 标准 Python 3.7 运行时中验证来自 IAP 的签名标头?

IAP 文档没有提及 Python 3.7 运行时的细节。

IAP文档说:

  • AppEngine 标准版应使用用户 API
  • 需要验证才能保护 AppEngine Flex 中的应用程序

用户 API 不适用于 Standard 3.7。签名的标题是。验证标题是可能的。

我可以看到 AppEngine 环境添加了一些标头。我想知道是否可以隐式信任 X-Appengine- 值(即,AppEngine 在验证 IAP 的标头后是否附加这些值)?

X-Appengine-User-Id: <user id>
X-Appengine-Auth-Domain: <domain>
X-Appengine-User-Email: <user email>
...
X-Goog-Iap-Jwt-Assertion: <assertion>
X-Goog-Authenticated-User-Email: accounts.google.com:<user email> 
X-Goog-Authenticated-User-Id: accounts.google.com:<user id>
4

1 回答 1

1

来自App Engine 特定的标头

对于login:adminlogin:required中指定的处理程序 app.yaml,App Engine 还提供以下一组标头:

  • X-AppEngine-User-Email,带有示例标题:“ange@example.com”
  • X-AppEngine-Auth-Domain,带有示例标题:“example.com”
  • X-AppEngine-User-ID,例如标题:“100979712376541954724”

因此,可以相信他们不会来自 GAE 外部。但我不确定它们与 IAP 基础设施有何关系。

由于不支持用户 API,我会遵循灵活环境的建议,从这个角度来看,它似乎更接近 Python3 运行时——我会验证签名的标头。

于 2018-09-07T01:43:12.133 回答