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

如何通过本地.NET Core应用生成GCP Cloud Run端点调用的IAM令牌

本地.NET Core应用调用GCP Cloud Run端点的IAM认证步骤

1. 本地认证初始化

先确保已安装GCP CLI(gcloud),在终端执行以下命令完成本地应用默认凭证登录:

gcloud auth application-default login

这条命令会唤起浏览器让你登录GCP账号,成功后本地会生成凭证文件,供.NET Core应用自动读取。

2. 安装依赖NuGet包

在你的.NET Core项目中安装两个核心包:

dotnet add package Google.Cloud.Identity.Tokens
dotnet add package System.Net.Http

Google.Cloud.Identity.Tokens用于生成符合IAM要求的ID令牌,System.Net.Http负责发送HTTP请求到Cloud Run端点。

3. 生成IAM ID令牌并调用Cloud Run

以下是完整的C#代码示例,包含令牌生成与请求发送逻辑:

using Google.Cloud.Identity.Tokens;
using System.Net.Http.Headers;

// 替换为你的Cloud Run服务域名(不要带https://前缀)
string cloudRunServiceAudience = "your-cloud-run-service-xxx.a.run.app";
// 替换为你的Cloud Run完整端点URL
string cloudRunEndpoint = "https://your-cloud-run-service-xxx.a.run.app/api/your-target-endpoint";

// 创建令牌提供器,自动读取本地的应用默认凭证
var tokenProvider = new IdTokenProvider();
// 生成针对目标Cloud Run服务的ID令牌
var tokenResponse = await tokenProvider.GenerateIdTokenAsync(cloudRunServiceAudience);

// 发送HTTP请求
using var httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", tokenResponse.Token);

// 根据业务需求选择GET/POST等请求方法
var response = await httpClient.GetAsync(cloudRunEndpoint);
response.EnsureSuccessStatusCode();

var responseContent = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseContent);

4. 配置IAM权限

必须给本地登录的GCP账号分配Cloud Run Invoker角色,否则会返回403权限错误:

  • 控制台操作方式:进入Cloud Run服务详情页 → 权限 → 添加主账号,输入你的邮箱地址,选择角色Cloud Run > Cloud Run Invoker。
  • gcloud命令方式:
gcloud run services add-iam-policy-binding your-cloud-run-service-name \
  --member=user:your-email@example.com \
  --role=roles/run.invoker \
  --region=your-service-region

关键注意事项

  • 受众参数必须准确:必须是Cloud Run服务的纯域名(不带https://),填错会直接导致令牌无效。
  • 凭证有效期:本地生成的应用默认凭证有有效期限制,过期后重新执行gcloud auth application-default login即可刷新。
  • 生产环境本地应用:如果是长期运行的本地生产应用,建议使用服务账号密钥文件,通过设置环境变量GOOGLE_APPLICATION_CREDENTIALS指向密钥文件路径,代码逻辑无需修改,SDK会自动读取凭证。

内容的提问来源于stack exchange,提问作者AK47

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 10:32:43