IAP OAuth Admin API から移行する

このガイドでは、IAP OAuth Admin API が非推奨になったことと、API を使用して作成された OAuth クライアントをカスタム OAuth クライアントに移行する方法について説明します。カスタム OAuth クライアントを使用するメリット(カスタム ブランディングなど)の詳細については、OAuth 構成をカスタマイズして IAP を有効にするをご覧ください。

IAP OAuth Admin API を使用していない場合、この変更による影響はありません。

IAP は、OAuth 2.0 クライアントを手動で管理する代わりに、Google が管理する OAuth クライアントを自動的に使用します。

プロジェクトで OAuth Admin API が使用されているかどうかを確認するには、OAuth Admin API の使用状況を確認するをご覧ください。プロジェクトで OAuth Admin API を使用している場合は、このドキュメントの移行手順を使用するか、OAuth Admin API の代替手段を使用する必要があります。

変更内容

IAP OAuth Admin API は非推奨になりました。これには、OAuth クライアントとブランドの手動管理用の次の API が含まれます。

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 Admin API の使用状況を確認する

プロジェクトで IAP OAuth Admin API が使用されているかどうかを確認する手順は次のとおりです。

  1. Google Cloud コンソールで、[IAP API の使用状況] ページに移動します。

    IAP API の使用状況に移動

  2. プロジェクトを選択します。OAuth Admin API の使用状況を確認するプロジェクトを選択します。

  3. [グラフ] セクションを表示します。

  4. [グラフ] セクションで、使用可能なオプションから [API メソッド別のトラフィック量] を選択します。

  5. 次の接頭辞で始まる API メソッドを探します。

    google.cloud.iap.v1.IdentityAwareProxyOAuthService.*

この接頭辞が付いたメソッドが表示された場合、プロジェクトは IAP OAuth サービス メソッドを使用しています。

詳細な説明

2025 年 1 月 22 日をもって、IAP OAuth 2.0 クライアントの作成に使用される IAP OAuth 2.0 Admin API は非推奨となります。OAuth クライアントを構成する必要がなくなったため、IAP OAuth 2.0 Admin API は不要になりました。IAP は、ブラウザ アクセスにデフォルトで、または OAuth 2.0 クライアントが明示的に構成されていない場合に、Google が管理する OAuth クライアントを使用するようになりました。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 クライアントで構成されたアプリケーションは、引き続き動作します。アプリケーションの変更は不要です。ただし、自動化スクリプトで IAP OAuth 2.0 Admin API を使用して新しいクライアントを構成したり、既存のクライアントのクライアント シークレットを取得したりする場合は、IAP OAuth 2.0 Admin API を使用しないようにスクリプトを更新する必要があります。

アプリケーション用に Google マネージド OAuth 2.0 クライアントを構成する方法については、プログラムによるアクセスをご覧ください。

Google 管理の OAuth 2.0 クライアントで満たされない要件がある場合は、1 つの OAuth クライアントを複数の IAP アプリケーションと共有できます。これにより、新しいアプリケーションごとにクライアントを手動で作成する必要がなくなります。

Marketplace チャネルの

  • 自動化スクリプトを更新する

    Terraform などのツールを使用して IAP の構成を自動化し、IAP OAuth 2.0 Admin API を使用する場合は、事前に作成されたクライアントを使用するか、IAP で Google マネージド OAuth クライアントを使用するように自動化スクリプトを更新する必要があります。

  • 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. 表示された URL をクリックしてログインします。

  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 ファイルを更新し、次の例に示すように、以前に取得した OAuth 2.0 クライアント ID を programmaticClients に追加します。

    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. 表示された URL をクリックしてログインします。

  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 ファイルを更新し、次の例に示すように、以前に取得した OAuth 2.0 クライアント ID を programmaticClients に追加します。

    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. 次のコマンドを実行して、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_id フィールドと oauth2_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_id フィールドと oauth2_client_secret フィールドは省略可能です。新しい IAP 対応リソースを使用している場合は、無視できます。

Google Cloudで Terraform を使用する方法については、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. 表示された URL をクリックしてログインします。

  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 ファイルを更新し、前に取得した OAuth 2.0 クライアント ID を programmaticClients の下に追加します(例を参照)。

    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 を使用すると、非推奨の OAuth Admin API を使用しなくても IAP に対する認証を行うことができます。

OAuth クライアント シークレットを取得する

Google Cloud コンソールでカスタム OAuth クライアントを作成すると、クライアント シークレットはそのときにのみ表示されます。このシークレットは安全に保存する必要があります。OAuth クライアント シークレットを安全に保存するには、Secret Manager を使用することをおすすめします。

Secret Manager を使用して OAuth クライアントのシークレットを保存する場合は、シークレット バージョンにアクセスするでクライアント シークレットを取得する方法をご覧ください。

OAuth Admin API を使用しているかどうかを確認する

OAuth Admin API を使用しているかどうかを確認する手順は次のとおりです。

  1. Google Cloud コンソールで、[IAP API] ページを開き、分析するプロジェクトを選択します。

    IAP API ページに移動

  2. [グラフを選択] リストで [API メソッド別のトラフィック量] を選択し、[OK] をクリックします。

  3. [メソッド] セクションで、プレフィックス google.cloud.iap.v1.IdentityAwareProxyOAuthService が付いているメソッドを探します。これは、プロジェクトが OAuth Admin API を使用していることを示します。

OAuth Admin API の代替手段

OAuth API を使用せずに OAuth クライアント認証情報を取得する必要がある場合は、次の方法を使用できます。

  • Google Cloud コンソール: [認証情報] ページで、OAuth 認証情報を手動で取得できます。

  • Secret Manager: Secret Manager を使用してシークレットを保存、取得できます。Terraform で Secret Manager を使用する方法については、google_secret_manager_secret をご覧ください。

  • サービス アカウントの JWT: 認証にサービス アカウントの JSON Web Token(JWT)を使用します。サービス アカウントの JWT を使用する場合、OAuth クライアントを使用する必要はありません。