首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从经过身份验证的请求转发OAuth 2凭据(特别是在GCP中)

从经过身份验证的请求转发OAuth 2凭据(特别是在GCP中)
EN

Stack Overflow用户
提问于 2021-02-15 23:31:52
回答 1查看 107关注 0票数 0

我有一个位于IAP (身份感知代理)后面的AppEngine应用程序,因此它接收经过身份验证的请求,并包含一个JWT令牌。在AppEngine应用程序中,我想向Google Sheets API发出一个请求。这也需要一个经过身份验证的连接,但是如果我希望该连接是在通过IAP访问应用程序的同一用户下进行的,那么有谁知道如何从AppEngine应用程序内部创建一个将令牌转发到Google Sheets的请求吗?找不到有关该主题的任何信息...我使用的是Java,所以任何Java指针都将不胜感激,但通用/其他语言的帮助也很好

..。

EN

回答 1

Stack Overflow用户

发布于 2021-02-21 03:29:21

我将描述评论中提出的2种方法

因为您从IAP接收身份令牌(至少请求者/浏览器向IAP发送身份令牌),并且您需要访问令牌来请求Sheet APIs.

  • Dangerous,因为如果您能够重用IAP令牌来请求
  1. ,这意味着用户有权访问Google Sheet。我敢肯定,您构建了一个应用程序来阻止对Google API的任何直接访问/修改。第二个是使用技术帐户(通常是服务帐户)并生成访问令牌来访问工作表Sheet.
    1. The。

第二种方法是最好的方法(不要忘记在AppEngine应用程序中正确地记录用户请求和后续的sheet调用,以获得端到端的可追溯性)。但是,这就是你问这个问题的原因,使用应用程序引擎的默认服务帐户是不可能的。

实际上,要访问工作表API,您需要使用工作表API来确定访问令牌的范围。遗憾的是,你不能用App Engine做到这一点。您可以使用Cloud Run、Cloud Functions、Compute Engine (没有默认服务帐户,否则您需要额外的配置才能使用Compute Engine默认服务帐户)来完成此操作。但不是App Engine。

因此,您有两种解决方案:

  1. 您可以使用另一个托管平台(例如Cloud Run ),但您失去了IAP容量(目前)
  2. 您可以继续使用App Engine,但您需要请求另一个服务帐户的访问令牌(不需要有服务帐户密钥文件)。为此,您可以使用Service Account Credential API。I wrote an article on本接口

注意:2021年晚些时候,App Engine应该可以接受自定义服务账号,因此这个问题应该可以解决

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66210826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档