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

如何使用Pulumi管理GCP OAuth2.0 Client ID及Redirect URI资源

GCP OAuth2.0 Client 基于Pulumi全生命周期管理的可行方案

你需要管理的GCP「APIs and Services」板块下的OAuth2.0客户端(包含重定向URI等关联配置),目前有3种成熟的Pulumi实现方案,均支持资源的创建、配置更新、删除全生命周期操作,和控制台操作逻辑完全对齐:

方案1:使用Pulumi Classic GCP Provider原生资源

这是最常用的方案,成熟稳定,配置门槛低:

  • 对应Pulumi资源为gcp.oauth2.ClientId,原生支持配置所有核心参数:客户端名称、应用类型(Web/桌面端/移动端等)、重定向URI列表、JavaScript来源列表等
  • 客户端密钥会被Pulumi自动标记为敏感值,默认加密存储,不会明文泄露
  • 参考代码示例(TypeScript版本,其他语言语法逻辑一致):
import * as gcp from "@pulumi/gcp";

// 创建Web类型OAuth2.0客户端
const webOAuthClient = new gcp.oauth2.ClientId("business-web-oauth", {
    displayName: "业务系统Web客户端",
    // 可选值:WEB、DESKTOP、ANDROID、IOS等,和控制台选项完全对应
    type: "WEB",
    // 配置重定向URI
    redirectUris: [
        "https://prod.example.com/login/callback",
        "https://staging.example.com/login/callback"
    ],
    // 配置JavaScript授权来源(Web类型必填)
    javascriptOrigins: [
        "https://prod.example.com",
        "https://staging.example.com"
    ]
});

// 输出客户端ID和密钥(密钥为加密敏感值)
export const oauthClientId = webOAuthClient.clientId;
export const oauthClientSecret = webOAuthClient.secret;

方案2:使用Pulumi Google Native Provider资源

适合需要配置高级OAuth参数的场景:

  • Google Native Provider直接基于GCP官方OpenAPI定义生成,资源字段和GCP底层API完全对齐,支持所有OAuth客户端的高级配置项,比如授权域限制、自定义OAuth范围、内部应用标识等
  • 对应资源为google-native:oauth2/v2:Client,配置逻辑和Classic Provider基本一致,字段覆盖更全面

方案3:自定义Pulumi动态资源Provider

适合有特殊定制需求的场景:

  • 当你需要实现自定义逻辑,比如自动同步关联Cloud Run、App Engine的域名到重定向URI、批量创建多环境客户端、绑定组织级权限策略时,可以自己封装Pulumi动态Provider
  • 只需自行实现GCP OAuth API的增删改查逻辑即可,灵活度最高,但需要自行维护Provider代码

注意:使用上述所有方案前,需要确保Pulumi身份凭证关联的账号拥有 OAuth 配置编辑器 角色权限,才能正常操作OAuth客户端资源。OAuth客户端密钥属于 高敏感信息,请勿明文提交到代码仓库。

控制台对应页面对照:
GCP APIs and Services凭证页截图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 00:15:00