我有一个位于IAP (身份感知代理)后面的AppEngine应用程序,因此它接收经过身份验证的请求,并包含一个JWT令牌。在AppEngine应用程序中,我想向Google Sheets API发出一个请求。这也需要一个经过身份验证的连接,但是如果我希望该连接是在通过IAP访问应用程序的同一用户下进行的,那么有谁知道如何从AppEngine应用程序内部创建一个将令牌转发到Google Sheets的请求吗?找不到有关该主题的任何信息...我使用的是Java,所以任何Java指针都将不胜感激,但通用/其他语言的帮助也很好
..。
发布于 2021-02-21 03:29:21
我将描述评论中提出的2种方法
因为您从IAP接收身份令牌(至少请求者/浏览器向IAP发送身份令牌),并且您需要访问令牌来请求Sheet APIs.
第二种方法是最好的方法(不要忘记在AppEngine应用程序中正确地记录用户请求和后续的sheet调用,以获得端到端的可追溯性)。但是,这就是你问这个问题的原因,使用应用程序引擎的默认服务帐户是不可能的。
实际上,要访问工作表API,您需要使用工作表API来确定访问令牌的范围。遗憾的是,你不能用App Engine做到这一点。您可以使用Cloud Run、Cloud Functions、Compute Engine (没有默认服务帐户,否则您需要额外的配置才能使用Compute Engine默认服务帐户)来完成此操作。但不是App Engine。
因此,您有两种解决方案:
注意:2021年晚些时候,App Engine应该可以接受自定义服务账号,因此这个问题应该可以解决
https://stackoverflow.com/questions/66210826
复制相似问题