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

能否在Google Cloud .NET客户端库中用OAuth2凭证替代服务账号/ADC?

在Google Cloud .NET客户端库中使用自定义OAuth访问令牌认证

完全可以直接用你已获取的OAuth访问令牌来完成认证,不需要额外的客户端库。核心思路是通过自定义凭证类实现ICredential接口,将令牌注入到客户端库中,具体操作如下:

  • 自定义凭证类,封装你的访问令牌:
using Google.Apis.Auth.OAuth2;
using System.Threading;
using System.Threading.Tasks;

public class AccessTokenCredential : ICredential
{
    private readonly string _accessToken;

    public AccessTokenCredential(string accessToken)
    {
        _accessToken = accessToken;
    }

    public Task<string> GetAccessTokenForRequestAsync(string authUri = null, CancellationToken cancellationToken = default)
    {
        // 直接返回已有的访问令牌
        return Task.FromResult(_accessToken);
    }
}
  • 用这个凭证初始化ProjectsClient:
using Google.Cloud.ResourceManager.V3;

// 替换成你实际的访问令牌
var accessToken = "你的OAuth访问令牌";
var credential = new AccessTokenCredential(accessToken);

var client = new ProjectsClientBuilder
{
    Credential = credential
}.Build();

// 调用资源管理器API创建项目示例
var createRequest = new CreateProjectRequest
{
    Project = new Project
    {
        ProjectId = "your-project-id-123",
        Name = "你的项目名称"
    }
};
var operation = await client.CreateProjectAsync(createRequest);
await operation.PollUntilCompletedAsync();

需要注意的细节:

  • 确保你的访问令牌包含Resource Manager API所需的权限范围,比如https://www.googleapis.com/auth/cloud-platform或更具体的https://www.googleapis.com/auth/resourcemanager.projects.create
  • 访问令牌有有效期,过期后需要自行处理令牌刷新逻辑,再更新AccessTokenCredential中的令牌值
  • 确认获取令牌的授权用户拥有对应操作权限,比如创建项目需要Organization Administrator或Project Creator角色

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 09:25:44