You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cloud Functions OAuth2.0认证401错误排查及自动化调用需求

Cloud Functions OAuth2.0调用401未授权问题解决指南

问题概述

尝试调用Cloud Functions的uploadBase64File HTTP函数:

functions.http('uploadBase64File', async (req, res) => {...});

通过Postman的OAuth2.0流程获取Access Token并添加到请求头后,返回401未授权错误:

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>401 Unauthorized</title>
</head>
<body text=#000000 bgcolor=#ffffff>
<h1>Error: Unauthorized</h1>
<h2>Your client does not have permission to the requested URL <code>/</code>.</h2>
</body>
</html>

临时开启「允许未认证调用」可正常访问,但不符合安全规范。

已做配置

  • IAM中为Owner角色添加了cloudfunctions.functions.invoke权限
  • 个人Gmail账号及函数服务主体已分配以下角色:
    • Cloud Functions Admin
    • Cloud Functions Invoker
    • Cloud Run Admin
    • Cloud Run Invoker
    • Cloud Run Service Invoker
  • 通过gcloud auth print-identity-token手动获取的Bearer Token可正常调用函数

需求

需要在Make(原Integromat)中实现自动化调用,且无需手动刷新过期Token。

Postman OAuth2.0配置

  • 回调URL: https://oauth.pstmn.io/v1/callback
  • 授权URL: https://accounts.google.com/o/oauth2/v2/auth
  • Access Token URL: https://oauth2.googleapis.com/token
  • 客户端ID/密钥: 来自IAM OAuth 2.0客户端
  • 权限范围: https://www.googleapis.com/auth/cloud-platform
  • 客户端认证方式: 以Basic Auth请求头发送

解决步骤

1. 修正Token受众(Audience)

手动通过gcloud获取的Token默认将Cloud Functions的URL作为受众,而Postman OAuth流程获取的Token受众是https://www.googleapis.com/auth/cloud-platform,不符合Cloud Functions的认证要求。

在Postman的OAuth2.0配置中,添加自定义参数:

  • 键: audience
  • 值: 函数的完整URL(例如https://us-central1-your-project.cloudfunctions.net/uploadBase64File)

2. 优化权限范围

将宽泛的https://www.googleapis.com/auth/cloud-platform权限替换为更精准的https://www.googleapis.com/auth/cloudfunctions,既满足调用需求,又降低权限风险。

3. 配置Make平台的自动Token刷新

在Make中创建OAuth2.0连接时,按以下配置:

  • 授权类型选择「授权码流(Authorization Code)」
  • 使用Make提供的专属回调URL(在连接设置中可直接复制)
  • 授权URL: https://accounts.google.com/o/oauth2/v2/auth
  • Token URL: https://oauth2.googleapis.com/token
  • 客户端ID/密钥: 与Postman一致
  • 权限范围: https://www.googleapis.com/auth/cloudfunctions
  • 客户端认证方式选择「以Basic Auth头发送」

Make会自动处理Token的过期检测与刷新,无需手动干预。

4. 验证IAM绑定

确保函数的IAM权限中,已将Cloud Functions Invoker角色分配给:

  • 若使用个人账号授权:直接分配给你的Gmail账号
  • 若使用服务账号:分配给OAuth2.0客户端关联的服务账号

内容的提问来源于stack exchange,提问作者Paweł Ostromecki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 21:46:08