本页介绍了从使用使用 Identity-Aware Proxy (IAP) OAuth 2.0 管理 API 创建的 OAuth 2.0 客户端迁移到使用由 IAP 部署的 Google 管理的 OAuth 2.0 客户端的步骤。
自 2025 年 1 月 22 日起,用于创建 IAP OAuth 2.0 客户端的 IAP OAuth 2.0 Admin API 已弃用。替代方案是随 IAP 自动部署的 Google 管理的 OAuth 2.0 客户端。当用户通过浏览器访问启用了 IAP 的应用时,此客户端会限制同一组织中的用户访问这些应用。
如果您使用 IAP OAuth 2.0 管理 API 创建和管理 OAuth 2.0 客户端,以便在应用或Google Cloud 资源上启用 IAP,则必须迁移这些应用和Google Cloud 资源,才能使用 Google 管理的 OAuth 2.0 客户端。
如果您之前未为应用或 Google Cloud 资源配置 OAuth 2.0 客户端,则在您为应用和资源启用 IAP 时,系统会自动部署 Google 管理的 OAuth 2.0 客户端。
如果您使用程序化访问通过 IAP 保护应用和资源,则无法使用 Google 管理的 OAuth 2.0 客户端。您必须使用服务账号。
迁移启用了 IAP 的 App Engine 资源
请完成本部分中的步骤,以迁移已启用 IAP 且配置了 OAuth 2.0 客户端的 App Engine 资源。
gcloud
在继续执行步骤之前,请确保您使用的是最新版本的 gcloud CLI。如需了解如何安装 gcloud CLI,请参阅安装 gcloud CLI。
使用 Google Cloud CLI 进行身份验证。
gcloud auth login
点击显示的网址,然后登录。
登录后,复制显示的验证码并将其粘贴到命令行中。
运行以下命令,指定包含您要继续使用 IAP 保护的应用的项目。
gcloud config set project PROJECT_ID
如需迁移应用,请运行以下命令。
gcloud iap web enable --resource-type=app-engine
API
运行以下命令以准备
settings.json
文件。cat << EOF > settings.json { "iap": { "enabled":true } } EOF
运行以下命令以迁移您的应用。
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/<var>PROJECT_ID</var>?updateMask=iap"
迁移启用了 IAP 的 Compute Engine 资源
完成本部分中的步骤,即可迁移已启用 IAP 且配置了 OAuth 2.0 客户端的 Compute Engine 资源。
gcloud
在继续执行步骤之前,请确保您使用的是最新版本的 gcloud CLI。如需了解如何安装 gcloud CLI,请参阅安装 gcloud CLI。
使用 Google Cloud CLI 进行身份验证。
gcloud auth login
点击显示的网址,然后登录。
登录后,复制显示的验证码并将其粘贴到命令行中。
运行以下命令,指定包含您要继续使用 IAP 保护的应用的项目。
gcloud config set project PROJECT_ID
如需迁移应用,请运行全局范围或区域范围的命令。
全局范围
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=" "
如需确认未设置 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
运行以下命令以准备
settings.json
文件。cat << EOF > settings.json { "iap": { "enabled":true, "oauth2ClientId": " ", "oauth2ClientSecret": " " } } EOF
运行以下命令以迁移您的 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"如需确认未设置 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 的 Cloud Run 资源
完成本部分中的步骤,即可迁移已启用 IAP 并配置了 OAuth 2.0 客户端的 Cloud Run 资源。
gcloud
在继续执行步骤之前,请确保您使用的是最新版本的 gcloud CLI。如需了解如何安装 gcloud CLI,请参阅安装 gcloud CLI。
如需进行身份验证,请使用 Google Cloud CLI 并运行以下命令。
gcloud auth login
点击显示的网址,然后登录。
登录后,复制显示的验证码并将其粘贴到命令行中。
运行以下命令,指定包含您要继续使用 IAP 保护的应用的项目。
gcloud config set project PROJECT_ID
如需迁移资源,请运行全局范围或区域范围的命令。
全局范围
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=" "
如需确认未设置 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
运行以下命令以准备
settings.json
文件。cat << EOF > settings.json { "iap": { "enabled":true, "oauth2ClientId": " ", "oauth2ClientSecret": " " } } EOF
运行以下命令以迁移资源。
全局范围
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"如需确认未设置 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