从 IAP OAuth Admin API 迁出

Identity-Aware Proxy (IAP) OAuth Admin API 现已废弃。本指南介绍了如何选择性地将现有 OAuth 客户端迁移到 Google 管理的 OAuth 客户端。如果您不使用 IAP OAuth Admin API,则此变更不会对您产生影响。

如需查看您的项目是否使用 OAuth Admin API,请参阅检查 OAuth Admin API 的使用情况。 如果您的项目使用 OAuth Admin API,则必须按照本文档中的迁移 说明进行操作,或者使用 OAuth Admin API 的替代方案

变更内容

我们将废弃 IAP OAuth Admin API,其中包括以下用于手动 OAuth 客户端和品牌管理的 API:

您将无法再使用 IAP OAuth Admin API 创建或管理自定义 OAuth 客户端。 IAP 不再手动管理 OAuth 2.0 客户端,而是使用 Google 管理的 OAuth 客户端。这简化了 OAuth 客户端管理,减少了手动错误,并简化了部署流程。

如需继续提供自定义品牌,我们建议您配置自定义 OAuth 客户端

未变更的内容

如果您不使用 IAP OAuth Admin API,则此变更不会对您产生影响。

此废弃不会影响您使用 Compute Engine API、App Engine API 或 Google Cloud 控制台手动配置的 OAuth 客户端。

您可以使用控制台继续创建新的 OAuth 品牌和客户端配置并对其进行管理 。 Google Cloud 您无需迁移现有的 OAuth 客户端;您可以继续通过 Google Cloud 控制台(而不是 IAP OAuth Admin API)使用和管理这些客户端。

检查 IAP OAuth Admin API 的使用情况

如需检查您的项目是否使用 IAP OAuth Admin API,请执行以下操作:

  1. 在 Google Cloud 控制台中,前往 IAP API 使用情况 页面。

    前往 IAP API 使用情况

  2. 选择您要检查 IAP OAuth Admin API 使用情况的项目。

  3. 选择图表 列表中,选择流量(按 API 方法),然后 点击 OK

  4. Methods 部分中,查找任何带有前缀 google.cloud.iap.v1.IdentityAwareProxyOAuthService 的方法,这表示该项目使用 IAP OAuth Admin API。

详细说明

自 2025 年 1 月 22 日起,用于创建 IAP OAuth 2.0 客户端的 IAP OAuth 2.0 Admin API 已废弃。 IAP 现在默认使用 Google 管理的 OAuth 客户端进行浏览器访问,或者在未明确配置 OAuth 2.0 客户端时使用该客户端。Google 管理的 OAuth 2.0 客户端会限制对已启用 IAP 的应用的访问权限,只有同一组织内的用户才能通过浏览器访问这些应用。

随着 Identity-Aware Proxy (IAP) OAuth 2.0 Admin API 的废弃,您将无法再使用此 API 创建或管理 OAuth 客户端。在此废弃之前创建的 OAuth 客户端不会失效。您可以继续使用 之前创建的 OAuth 客户端,并使用 Google Cloud 控制台管理这些客户端。

如果您配置的应用使用了通过 IAP 2.0 Admin API 或其他方式创建的 OAuth 客户端,这些应用将继续正常运行。无需对应用进行任何更改。但是,如果您的自动化脚本或基础架构即代码 (IaC) 工具使用 IAP OAuth 2.0 Admin API 配置新客户端或提取现有客户端的客户端密钥,则必须更新脚本,使其不使用 IAP OAuth 2.0 Admin API。

您是继续使用现有的用户管理的客户端,还是考虑改用 Google 管理的客户端,取决于您对品牌和外部访问权限的要求。如需详细了解所有功能差异,请参阅 Google 管理的 OAuth 客户端与自定义 OAuth 客户端的比较表。如果您的应用需要自定义客户端 ID 以实现品牌或外部访问权限,请使用 Google Cloud 控制台创建客户端 ID。如需详细了解自定义 OAuth 客户端,请参阅自定义 OAuth 配置以启用 IAP

如需了解如何为您的 应用配置 Google 管理的 OAuth 2.0 客户端,请参阅以编程方式访问

如果 Google 管理的 OAuth 2.0 客户端无法满足您的要求, 您可以与多个 IAP 应用共享一个 OAuth 客户端,这样就无需为每个新应用手动创建客户端。

所需操作

  • 更新自动化脚本

    如果您使用 Terraform 或其他工具自动配置 IAP,并且您使用 IAP OAuth 2.0 Admin API,则必须更新自动化脚本,以使用预先创建的客户端或将 Google 管理的 OAuth 客户端与 IAP 结合使用。

  • 使用 Google 管理的 OAuth 2.0 客户端为应用配置以编程方式访问

    如果您已有一些受 IAP 保护的应用 ,并且计划使用 Google 管理的 OAuth 2.0 客户端迁移这些应用,则您 可以通过将 OAuth 2.0 客户端列入许可名单来为这些应用配置以编程方式访问。

迁移已启用 IAP 的资源

如需迁移资源以使用 Google 管理的 OAuth 2.0 客户端,请按照要迁移的资源类型(例如 Compute Engine 资源)的步骤操作。

迁移已启用 IAP 的 App Engine 资源

完成本部分中的步骤,以迁移已启用 IAP 且已配置 OAuth 2.0 客户端的 App Engine 资源。

gcloud

在继续执行这些步骤之前,请确保您拥有最新版本的 gcloud CLI。如需了解如何 安装 gcloud CLI,请参阅安装 gcloud CLI

  1. 使用 Google Cloud CLI 进行身份验证。

    gcloud auth login
    
  2. 点击显示的网址并登录。

  3. 登录后,复制显示的验证码并将其粘贴到命令行中。

  4. 运行以下命令,指定包含您要继续使用 IAP 保护的应用的项目。

    gcloud config set project PROJECT_ID
    
  5. 运行以下命令,提取已配置的 OAuth 2.0 客户端 ID。

    gcloud app describe --format="value(iap.oauth2ClientId)"
    

    如果您想允许以编程方式访问,请保存上一个命令中的客户端 ID。

  6. 如需将 OAuth 2.0 客户端列入许可名单以允许以编程方式访问,请对 IAP 设置 API 执行读取-更新-写入操作。

    gcloud iap settings get --resource-type=app-engine --project=$PROJECT > settings.yaml
    
  7. 更新 settings.yaml 文件,并在 programmaticClients 下添加之前提取的 OAuth 2.0 客户端 ID,如以下示例所示。

    accessSettings:
      oauthSettings:
        programmaticClients:
        - CLIENT_ID
    
  8. 在 App Engine 应用上应用新设置

    gcloud iap settings set settings.yaml --resource-type=app-engine --project=PROJECT_ID
    
  9. 如需迁移应用,请运行以下命令。

    gcloud iap web enable --resource-type=app-engine
    

API

  1. 运行以下命令,提取已配置的 OAuth 2.0 客户端 ID。

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    "https://appengine.googleapis.com/v1/apps/PROJECT_ID?fields=iap"
    
  2. 运行以下命令,将现有 IAP 设置提取到 settings.json 文件中。

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/appengine-PROJECT_ID:iapSettings" > settings.json
    
  3. 更新 settings.json 文件,将之前保存的 CLIENT_ID 添加为以编程方式访问的客户端。

    {
        "accessSettings": {
          "oauthSettings": {
            "programmaticClients": [
              "CLIENT_ID"
            ]
          },
        },
    }
    
  4. 运行以下命令,更新 IAP 设置。

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d "@settings.json" \
    "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/appengine-PROJECT_ID:iapSettings"
    
  5. 运行以下命令,准备 settings.json 文件。

      cat << EOF > settings.json
      {
      "iap":
          {
            "enabled":true
          }
      }
      EOF
    
  6. 运行以下命令,迁移应用。

      curl -X PATCH \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Accept: application/json" \
      -H "Content-Type: application/json" \
      -d @settings.json \
      "https://appengine.googleapis.com/v1/apps/PROJECT_ID?updateMask=iap"
    

迁移已启用 IAP 的 Compute Engine 资源

完成本部分中的步骤,以迁移已启用 IAP 且已配置 OAuth 2.0 客户端的 Compute Engine 资源。

gcloud

在继续执行这些步骤之前,请确保您拥有最新版本的 gcloud CLI。如需了解如何 安装 gcloud CLI,请参阅安装 gcloud CLI

  1. 使用 Google Cloud CLI 进行身份验证。

    gcloud auth login
    
  2. 点击显示的网址并登录。

  3. 登录后,复制显示的验证码并将其粘贴到命令行中。

  4. 运行以下命令,指定包含您要继续使用 IAP 保护的应用的项目。

    gcloud config set project PROJECT_ID
    
  5. 运行以下命令,提取已配置的 OAuth 2.0 客户端 ID。

    全球范围

    
    gcloud compute backend-services describe BACKEND_SERVICE_NAME \
    --global \
    --format="value(iap.oauth2ClientId)"
    

    区域范围

    
    gcloud compute backend-services describe BACKEND_SERVICE_NAME \
    --region REGION_NAME \
    --format="value(iap.oauth2ClientId)"
    

    如果您想允许以编程方式访问,请保存上一个命令中的客户端 ID。

  6. 如需向 OAuth 2.0 客户端授予以编程方式访问权限,请对 IAP 设置 API 执行读取-更新-写入操作。

    全球范围

    gcloud iap settings get \
        --resource-type=compute \
        --project=PROJECT_ID \
        --service=BACKEND_SERVICE_NAME > settings.yaml
    

    区域范围

    gcloud iap settings get \
        --resource-type=compute \
        --project=PROJECT_ID \
        --service=BACKEND_SERVICE_NAME \
        --region=REGION_NAME > settings.yaml
    
  7. 更新 settings.yaml 文件,并在 programmaticClients 下添加之前提取的 OAuth 2.0 客户端 ID,如以下示例所示:

    accessSettings:
      oauthSettings:
        programmaticClients:
        - CLIENT_ID
    
  8. 在 Compute Engine 应用上应用新设置:

    全球范围

    gcloud iap settings set settings.yaml \
        --resource-type=compute \
        --project=PROJECT_ID \
        --service=BACKEND_SERVICE_NAME

    区域范围

    gcloud iap settings set settings.yaml \
        --resource-type=compute \
        --project=PROJECT_ID \
        --service=BACKEND_SERVICE_NAME \
        --region=REGION_NAME
  9. 如需迁移应用,请运行以下命令。如需清除 OAuth 客户端 ID 和 OAuth secret,请在命令中传递带引号的单个空格 (" ")。后端服务使用 Google 管理的 OAuth 客户端。

    全球范围

    gcloud compute backend-services update BACKEND_SERVICE_NAME \
        --global \
        --iap=enabled,oauth2-client-id=" ",oauth2-client-secret=" "
    

    区域范围

    gcloud compute backend-services update BACKEND_SERVICE_NAME \
        --region REGION_NAME \
        --iap=enabled,oauth2-client-id=" ",oauth2-client-secret=" "
    
  10. 如需确认您已移除 OAuth 客户端 ID 和 OAuth 客户端 密钥,并且后端服务正在使用 Google 管理的 OAuth 客户端,请运行 gcloud compute backend-services describe。如需在迁移期间清除这些 字段,gcloud compute backend-services update 命令会使用单个空格 (" "),Compute Engine API 会将其解读 为移除 oauth2ClientIdoauth2ClientSecret 值的指令。

    全球范围

    gcloud compute backend-services describe BACKEND_SERVICE_NAME \
        --global
    

    区域范围

    gcloud compute backend-services describe BACKEND_SERVICE_NAME \
        --region REGION_NAME
    

    运行 describe 命令后,检查输出的 iap 部分。 当 oauth2ClientId 字段显示 单个空格 (' '),并且 oauth2ClientSecret 字段包含 单个空格的 SHA256 哈希值 (36a9e7f1c95b82ffb99743e0c5c4ce95d83c9a430aac59f84ef3cbfab6145068) 时,表示迁移成功。

API

  1. 运行以下命令,提取已配置的 OAuth 2.0 客户端 ID。

    全球范围

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE_NAME?fields=iap.oauth2ClientId"
    

    区域范围

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/backendServices/BACKEND_SERVICE_NAME?fields=iap.oauth2ClientId"
    
  2. 运行以下命令,将现有 IAP 设置提取到 settings.json 文件中。

    全球范围

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/compute/services/BACKEND_SERVICE_NAME:iapSettings" > settings.json
    

    区域范围

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/compute-REGION_NAME/services/BACKEND_SERVICE_NAME:iapSettings" > settings.json
    
  3. 更新 settings.json 文件,将之前保存的 CLIENT_ID 添加为以编程方式访问的客户端。

    {
        "accessSettings": {
          "oauthSettings": {
            "programmaticClients": [
              "CLIENT_ID"
            ]
          },
        },
    }
    
  4. 运行以下命令,更新 IAP 设置。

    全球范围

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d "@settings.json" \
    "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/compute/services/BACKEND_SERVICE_NAME:iapSettings"
    

    区域范围

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d "@settings.json" \
    "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/compute-REGION_NAME/services/BACKEND_SERVICE_NAME:iapSettings"
    
  5. 运行以下命令,准备 settings.json 文件。

    cat << EOF > settings.json
    {
    "iap":
          {
            "enabled":true,
            "oauth2ClientId": " ",
            "oauth2ClientSecret": " "
          }
    }
    EOF
    
  6. 运行以下命令,迁移 IAP 资源。

    全球范围

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d @settings.json \
    "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE_NAME"
    

    区域范围

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d @settings.json \
    "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/backendServices/BACKEND_SERVICE_NAME"
    
  7. 如需确认 OAuth 客户端 ID 未设置,请运行以下全局范围或区域范围的命令。运行该命令后,检查输出以确保 OAuth 客户端 ID 字段为空。

    全球范围

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE_NAME"
    

    区域范围

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/backendServices/BACKEND_SERVICE_NAME"
    

Terraform

如果您要迁移现有的已启用 IAP 的资源以使用 Google 管理的 OAuth 客户端,则必须明确取消设置 oauth2_client_idoauth2_client_secret 字段。如需取消设置这些字段,请将这些字段的值更新为单个空格字符,如以下示例所示:

resource "google_compute_backend_service" "default" {
  name                  = "tf-test-backend-service-external"
  protocol              = "HTTP"
  load_balancing_scheme = "EXTERNAL"
  iap {
    oauth2_client_id     = " "
    oauth2_client_secret = " "
  }
}

oauth2_client_idoauth2_client_secret 字段是可选字段,如果您使用的是新的已启用 IAP 的资源,则可以忽略这些字段。

如需详细了解如何将 Terraform 与 Google Cloud搭配使用,请参阅 Terraform 文档

迁移已启用 IAP 的 Cloud Run 资源

完成本部分中的步骤,以迁移已启用 IAP 且已配置 OAuth 2.0 客户端的 Cloud Run 资源。

gcloud

在继续执行这些步骤之前,请确保您拥有最新版本的 gcloud CLI。如需了解如何安装 gcloud CLI,请参阅安装 gcloud CLI

  1. 如需进行身份验证,请使用 Google Cloud CLI 并运行以下命令。

    gcloud auth login
    
  2. 点击显示的网址并登录。

  3. 登录后,复制显示的验证码并将其粘贴到命令行中。

  4. 运行以下命令,指定包含您要继续使用 IAP 保护的应用的项目。

    gcloud config set project PROJECT_ID
    
  5. 运行以下命令,提取已配置的 OAuth 2.0 客户端 ID。

    全球范围

    
    gcloud compute backend-services describe BACKEND_SERVICE_NAME \
        --global \
        --format="value(iap.oauth2ClientId)"
    

    区域范围

    
    gcloud compute backend-services describe BACKEND_SERVICE_NAME \
      --region REGION_NAME \
      --format="value(iap.oauth2ClientId)"
    

    如果您想允许以编程方式访问,请保存上一个命令中的客户端 ID。

  6. 如需将 OAuth 2.0 客户端列入许可名单以允许以编程方式访问,请对 IAP 设置 API 执行读取-更新-写入操作。

    全球范围

    gcloud iap settings get \
        --resource-type=compute \
        --project=PROJECT_ID \
        --service=BACKEND_SERVICE_NAME > settings.yaml
    

    区域范围

    gcloud iap settings get \
        --resource-type=compute \
        --project=PROJECT_ID \
        --service=BACKEND_SERVICE_NAME \
        --region=REGION_NAME > settings.yaml
    
  7. 更新 settings.yaml 文件,并在 programmaticClients 下添加之前提取的 OAuth 2.0 客户端 ID,如示例所示。

    accessSettings:
      oauthSettings:
        programmaticClients:
        - CLIENT_ID
    
  8. 在 Compute Engine 应用上应用新设置。

    全球范围

    gcloud iap settings set settings.yaml \
        --resource-type=compute \
        --project=PROJECT_ID \
        --service=BACKEND_SERVICE_NAME
    

    区域范围

    gcloud iap settings set settings.yaml \
        --resource-type=compute \
        --project=PROJECT_ID \
        --service=BACKEND_SERVICE_NAME \
        --region=REGION_NAME
    
  9. 如需迁移资源,请运行全球范围或区域范围的命令。

    全球范围

    gcloud compute backend-services update BACKEND_SERVICE_NAME \
        --global \
        --iap=enabled,oauth2-client-id=" ",oauth2-client-secret=" "
    

    区域范围

    gcloud compute backend-services update BACKEND_SERVICE_NAME \
        --region REGION_NAME \
        --iap=enabled,oauth2-client-id=" ",oauth2-client-secret=" "
    
  10. 如需确认 OAuth 客户端 ID 未设置,请运行以下全局范围或区域范围的命令。运行该命令后,检查输出以确保 OAuth 客户端 ID 字段为空。

    全球范围

    gcloud compute backend-services describe BACKEND_SERVICE_NAME \
        --global
    

    区域范围

    gcloud compute backend-services describe BACKEND_SERVICE_NAME \
        --region REGION_NAME
    

API

  1. 运行以下命令,提取已配置的 OAuth 2.0 客户端 ID。

    全球范围

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE_NAME?fields=iap.oauth2ClientId"
    

    区域范围

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/backendServices/BACKEND_SERVICE_NAME?fields=iap.oauth2ClientId"
    
  2. 运行以下命令,将现有 IAP 设置提取到 settings.json 文件中。

    全球范围

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/compute/services/BACKEND_SERVICE_NAME:iapSettings" > settings.json
    

    区域范围

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/compute-REGION_NAME/services/BACKEND_SERVICE_NAME:iapSettings" > settings.json
    
  3. 更新 settings.json 文件,将之前保存的 CLIENT_ID 添加为以编程方式访问的客户端。

    {
        "accessSettings": {
          "oauthSettings": {
            "programmaticClients": [
              "CLIENT_ID"
            ]
          },
        },
    }
    
  4. 运行以下命令,更新 IAP 设置。

    全球范围

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d "@settings.json" \
    "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/compute/services/BACKEND_SERVICE_NAME:iapSettings"
    

    区域范围

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d "@settings.json" \
    "https://iap.googleapis.com/v1/projects/PROJECT_ID/iap_web/compute-REGION_NAME/services/BACKEND_SERVICE_NAME:iapSettings"
    
  5. 运行以下命令,准备 settings.json 文件。

    cat << EOF > settings.json
    {
    "iap":
          {
            "enabled":true,
            "oauth2ClientId": " ",
            "oauth2ClientSecret": " "
          }
    }
    EOF
    
  6. 运行以下命令,迁移资源。

    全球范围

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d @settings.json \
    "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE_NAME"
    

    区域范围

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d @settings.json \
    "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/backendServices/BACKEND_SERVICE_NAME"
    
  7. 如需确认 OAuth 客户端 ID 未设置,请运行以下全局范围或区域范围的命令。 运行该命令后,检查输出以确保 OAuth 客户端 ID 字段为空。

    全球范围

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE_NAME"
    

    区域范围

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_NAME/backendServices/BACKEND_SERVICE_NAME"
    

迁移已启用 IAP 的 Google Kubernetes Engine 资源

将以下 IAP 块添加到 BackendConfig 自定义资源定义 (CRD)。这会使用 Google 管理的 OAuth 2.0 客户端启用 IAP。

apiVersion: cloud.google.com/v1
kind: BackendConfig
metadata:
  name: config-default
  namespace: my-namespace
spec:
  iap:
    enabled: true

使用服务帐号 JWT 向 IAP 进行身份验证

您可以使用服务账号 JWT向 IAP 进行身份验证,而无需使用已废弃的 OAuth Admin API。

获取 OAuth 客户端密钥

在 Google Cloud 控制台中创建自定义 OAuth 客户端时,客户端 密钥仅在该时间显示。您负责安全存储此密钥。建议使用 Secret Manager 安全地存储 OAuth 客户端密钥。

如果您使用 Secret Manager 存储 OAuth 客户端密钥,请参阅 访问 Secret 版本 ,了解如何获取客户端密钥。

验证您是否在使用 IAP OAuth Admin API

如需查看您的项目是否使用 IAP OAuth Admin API,请参阅 检查 OAuth Admin API 的使用情况

使用 OAuth Admin API 的替代方案

如果您需要在不使用 OAuth API 的情况下获取 OAuth 客户端凭据,可以使用以下方法:

  • Google Cloud 控制台:您可以通过 凭据页面手动获取 OAuth 凭据。

  • Secret Manager:您可以使用 Secret Manager 存储和检索密钥。如需了解如何将 Secret Manager 与 Terraform 结合使用,请参阅 google_secret_manager_secret

  • 服务账号 JWT:使用服务帐号 JSON Web 令牌 (JWT) 进行身份验证。使用服务帐号 JWT,您无需使用 OAuth 客户端。