Migrer depuis l'API Admin OAuth IAP

Ce guide explique que l'API OAuth IAP Admin est obsolète et comment migrer éventuellement les clients OAuth créés à l'aide de l'API vers des clients OAuth personnalisés. Pour en savoir plus sur les avantages de l'utilisation de clients OAuth personnalisés, y compris le branding personnalisé, consultez Personnaliser une configuration OAuth pour activer IAP.

Si vous n'utilisez pas l'API Admin OAuth IAP, ce changement ne vous concerne pas.

Au lieu de gérer manuellement les clients OAuth 2.0, IAP utilise automatiquement un client OAuth géré par Google.

Pour vérifier si votre projet utilise des API Admin OAuth, consultez Vérifier l'utilisation des API Admin OAuth. Si votre projet utilise des API Admin OAuth, vous devez suivre les instructions de migration de ce document ou utiliser des alternatives à l'API Admin OAuth.

Qu'est-ce qui change ?

Nous abandonnons l'API IAP OAuth Admin, qui inclut les API suivantes pour la gestion manuelle des clients et des marques OAuth :

Au lieu de gérer manuellement les clients OAuth 2.0, IAP utilise un client OAuth géré par Google, ce qui simplifie la gestion des clients OAuth, réduit les erreurs manuelles et rationalise vos processus de déploiement.

Pour continuer à proposer un branding personnalisé, nous vous recommandons de configurer des clients OAuth personnalisés.

Ce qui ne change pas

Si vous n'utilisez pas l'API Admin OAuth IAP, ce changement n'aura aucune incidence sur vous.

Cette obsolescence n'affecte pas les clients OAuth que vous configurez manuellement à l'aide de l'API Compute Engine, de l'API App Engine ou de la console Google Cloud .

Vous pouvez continuer à créer des configurations de marque et de client OAuth, et à les gérer à l'aide de la console Google Cloud . Les configurations existantes continueront d'être entièrement compatibles.

Vérifier l'utilisation des API d'administration OAuth

Pour déterminer si votre projet utilise les API IAP OAuth Admin, procédez comme suit :

  1. Dans la console Google Cloud , accédez à la page Utilisation de l'API IAP.

    Accéder à l'utilisation de l'API IAP

  2. Sélectionnez votre projet. Sélectionnez le projet pour lequel vous souhaitez vérifier l'utilisation de l'API OAuth Admin.

  3. Consultez la section Graphiques.

  4. Dans la section "Graphiques", sélectionnez Trafic par méthode API parmi les options disponibles.

  5. Recherchez les méthodes d'API qui commencent par le préfixe suivant :

    google.cloud.iap.v1.IdentityAwareProxyOAuthService.*

Si vous voyez des méthodes avec ce préfixe, cela signifie que le projet utilise des méthodes de service OAuth IAP.

Description détaillée

Depuis le 22 janvier 2025, l'API Admin OAuth 2.0 IAP, qui permet de créer un client OAuth 2.0 IAP, est obsolète. L'API Admin IAP OAuth 2.0 n'est plus requise, car vous n'avez plus besoin de configurer les clients OAuth. IAP utilise désormais un client OAuth géré par Google pour l'accès au navigateur par défaut ou lorsqu'aucun client OAuth 2.0 n'est configuré explicitement. Le client OAuth 2.0 géré par Google limite l'accès aux applications compatibles avec IAP aux utilisateurs de la même organisation lorsqu'ils accèdent à ces applications via un navigateur.

L'API Admin OAuth 2.0 Identity-Aware Proxy (IAP) étant obsolète, vous ne pouvez plus l'utiliser pour créer ni gérer des clients OAuth. Les clients OAuth créés avant cette obsolescence ne seront pas invalidés. Vous pouvez continuer à utiliser les clients OAuth que vous avez créés précédemment et les gérer à l'aide de la consoleGoogle Cloud .

Si vous avez configuré des applications avec des clients OAuth créés à l'aide de l'API Admin IAP 2.0 ou d'une autre méthode, ces applications continueront de fonctionner. Aucune modification n'est requise pour les applications. Toutefois, si vos scripts d'automatisation utilisent l'API Admin IAP OAuth 2.0 pour configurer de nouveaux clients ou récupérer des secrets client pour des clients existants, vous devez mettre à jour les scripts afin qu'ils n'utilisent pas l'API Admin IAP OAuth 2.0.

Pour savoir comment configurer des clients OAuth 2.0 gérés par Google pour vos applications, consultez Accès programmatique.

Si vous avez une exigence qui n'est pas satisfaite par le client OAuth 2.0 géré par Google, vous pouvez partager un seul client OAuth avec plusieurs applications IAP. Vous n'aurez ainsi pas besoin de créer manuellement un client pour chaque nouvelle application.

Actions requises

  • Mettre à jour les scripts d'automatisation

    Si vous utilisez Terraform ou d'autres outils pour automatiser la configuration d'IAP, et que vous utilisez l'API Admin OAuth 2.0 d'IAP, vous devez mettre à jour les scripts d'automatisation pour utiliser un client précréé ou utiliser le client OAuth géré par Google avec IAP.

  • Configurer l'accès programmatique pour les applications à l'aide des clients OAuth 2.0 gérés par Google

    Si vous disposez déjà d'applications protégées par IAP et que vous prévoyez de les migrer à l'aide du client OAuth 2.0 géré par Google, vous pouvez configurer l'accès programmatique pour ces applications en ajoutant des clients OAuth 2.0 à la liste d'autorisation.

Migrer les ressources compatibles avec IAP

Pour migrer vos ressources afin qu'elles utilisent le client OAuth 2.0 géré par Google, suivez les étapes correspondant au type de ressource que vous souhaitez migrer (par exemple, une ressource Compute Engine).

Migrer les ressources App Engine compatibles avec IAP

Suivez les étapes de cette section pour migrer les ressources App Engine pour lesquelles IAP est activé et un client OAuth 2.0 est configuré.

gcloud

Avant de passer aux étapes suivantes, assurez-vous de disposer d'une version à jour de la gcloud CLI. Pour savoir comment installer la gcloud CLI, consultez Installer la gcloud CLI.

  1. Utilisez Google Cloud CLI pour vous authentifier.

    gcloud auth login
    
  2. Cliquez sur l'URL qui s'affiche, puis connectez-vous.

  3. Une fois la connexion effectuée, copiez le code de validation qui s'affiche et collez-le dans la ligne de commande.

  4. Exécutez la commande suivante pour spécifier le projet contenant les applications que vous souhaitez continuer à protéger avec IAP.

    gcloud config set project PROJECT_ID
    
  5. Exécutez la commande suivante pour récupérer l'ID client OAuth 2.0 configuré.

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

    Enregistrez l'ID client de la commande précédente si vous souhaitez autoriser l'accès programmatique.

  6. Pour ajouter le client OAuth 2.0 à la liste d'autorisation pour l'accès programmatique, effectuez une opération de lecture-mise à jour-écriture sur l'API des paramètres IAP.

    gcloud iap settings get --resource-type=app-engine --project=$PROJECT > settings.yaml
    
  7. Mettez à jour le fichier settings.yaml et ajoutez l'ID client OAuth 2.0 récupéré précédemment sous programmaticClients, comme indiqué dans l'exemple suivant.

    accessSettings:
      oauthSettings:
        programmaticClients:
        - CLIENT_ID
    
  8. Appliquer les nouveaux paramètres à l'application App Engine

    gcloud iap settings set settings.yaml --resource-type=app-engine --project=PROJECT_ID
    
  9. Pour migrer vos applications, exécutez la commande suivante.

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

API

  1. Exécutez la commande suivante pour récupérer l'ID client OAuth 2.0 configuré.

    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. Exécutez la commande suivante pour récupérer les paramètres d'achats via l'IAP existants dans un fichier 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. Mettez à jour le fichier settings.json pour ajouter CLIENT_ID précédemment enregistré en tant que client programmatique.

    {
        "accessSettings": {
          "oauthSettings": {
            "programmaticClients": [
              "CLIENT_ID"
            ]
          },
        },
    }
    
  4. Exécutez la commande suivante pour mettre à jour les paramètres d'IAP;application.

    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. Exécutez la commande suivante pour préparer un fichier settings.json.

      cat << EOF > settings.json
      {
      "iap":
          {
            "enabled":true
          }
      }
      EOF
    
  6. Exécutez la commande suivante pour migrer vos applications.

      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"
    

Migrer des ressources Compute Engine compatibles avec IAP

Suivez les étapes de cette section pour migrer les ressources Compute Engine pour lesquelles IAP est activé et un client OAuth 2.0 est configuré.

gcloud

Avant de passer aux étapes suivantes, assurez-vous de disposer d'une version à jour de la gcloud CLI. Pour savoir comment installer la gcloud CLI, consultez Installer la gcloud CLI.

  1. Utilisez Google Cloud CLI pour vous authentifier.

    gcloud auth login
    
  2. Cliquez sur l'URL qui s'affiche, puis connectez-vous.

  3. Une fois la connexion effectuée, copiez le code de validation qui s'affiche et collez-le dans la ligne de commande.

  4. Exécutez la commande suivante pour spécifier le projet contenant les applications que vous souhaitez continuer à protéger avec IAP.

    gcloud config set project PROJECT_ID
    
  5. Exécutez la commande suivante pour récupérer l'ID client OAuth 2.0 configuré.

    Champ d'application global

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

    Champ d'application régional

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

    Enregistrez l'ID client de la commande précédente si vous souhaitez autoriser l'accès programmatique.

  6. Pour autoriser le client OAuth 2.0 à accéder par programmation, effectuez une opération de lecture-mise à jour-écriture sur l'API des paramètres IAP.

    Champ d'application global

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

    Champ d'application régional

    gcloud iap settings get \
        --resource-type=compute \
        --project=PROJECT_ID \
        --service=BACKEND_SERVICE_NAME \
        --region=REGION_NAME > settings.yaml
    
  7. Mettez à jour le fichier settings.yaml et ajoutez l'ID client OAuth 2.0 récupéré précédemment sous programmaticClients, comme indiqué dans l'exemple suivant :

    accessSettings:
      oauthSettings:
        programmaticClients:
        - CLIENT_ID
    
  8. Appliquez les nouveaux paramètres à l'application Compute Engine :

    Champ d'application global

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

    Champ d'application régional

    gcloud iap settings set settings.yaml \
        --resource-type=compute \
        --project=PROJECT_ID \
        --service=BACKEND_SERVICE_NAME \
        --region=REGION_NAME
  9. Pour migrer vos applications, exécutez la commande à portée mondiale ou régionale.

    Champ d'application global

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

    Champ d'application régional

    gcloud compute backend-services update BACKEND_SERVICE_NAME \
        --region REGION_NAME \
        --iap=enabled,oauth2-client-id=" ",oauth2-client-secret=" "
    
  10. Pour vérifier que l'ID client OAuth n'est pas défini, exécutez la commande à portée globale ou régionale suivante. Après avoir exécuté la commande, vérifiez le résultat pour vous assurer que le champ de l'ID client OAuth est vide.

    Champ d'application global

    gcloud compute backend-services describe BACKEND_SERVICE_NAME \
        --global
    

    Champ d'application régional

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

API

  1. Exécutez la commande suivante pour récupérer l'ID client OAuth 2.0 configuré.

    Champ d'application global

    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"
    

    Champ d'application régional

    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. Exécutez la commande suivante pour récupérer les paramètres d'achats via l'IAP existants dans un fichier settings.json.

    Champ d'application global

    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
    

    Champ d'application régional

    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. Mettez à jour le fichier settings.json pour ajouter CLIENT_ID précédemment enregistré en tant que client programmatique.

    {
        "accessSettings": {
          "oauthSettings": {
            "programmaticClients": [
              "CLIENT_ID"
            ]
          },
        },
    }
    
  4. Exécutez la commande suivante pour mettre à jour les paramètres d'IAP;application.

    Champ d'application global

    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"
    

    Champ d'application régional

    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. Exécutez la commande suivante pour préparer un fichier settings.json.

    cat << EOF > settings.json
    {
    "iap":
          {
            "enabled":true,
            "oauth2ClientId": " ",
            "oauth2ClientSecret": " "
          }
    }
    EOF
    
  6. Exécutez la commande suivante pour migrer vos ressources IAP.

    Champ d'application global

    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"
    

    Champ d'application régional

    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. Pour vérifier que l'ID client OAuth n'est pas défini, exécutez la commande à portée globale ou régionale suivante. Après avoir exécuté la commande, vérifiez le résultat pour vous assurer que le champ de l'ID client OAuth est vide.

    Champ d'application global

    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"
    

    Champ d'application régional

    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

Si vous migrez des ressources existantes compatibles avec IAP pour utiliser un client OAuth géré par Google, vous devez explicitement annuler la définition des champs oauth2_client_id et oauth2_client_secret. Pour annuler la définition des champs en mettant à jour les valeurs sur un seul caractère d'espace blanc, comme indiqué dans l'exemple suivant :

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 = " "
  }
}

Les champs oauth2_client_id et oauth2_client_secret sont facultatifs. Si vous utilisez de nouvelles ressources compatibles avec IAP, vous pouvez les ignorer.

Pour en savoir plus sur l'utilisation de Terraform avec Google Cloud, consultez la documentation Terraform.

Migrer des ressources Cloud Run compatibles avec IAP

Suivez les étapes de cette section pour migrer les ressources Cloud Run pour lesquelles IAP est activé et un client OAuth 2.0 est configuré.

gcloud

Avant de passer aux étapes suivantes, assurez-vous de disposer d'une version à jour de la gcloud CLI. Pour obtenir des instructions sur l'installation de la gcloud CLI, consultez Installer la gcloud CLI.

  1. Pour vous authentifier, utilisez la Google Cloud CLI et exécutez la commande suivante.

    gcloud auth login
    
  2. Cliquez sur l'URL qui s'affiche, puis connectez-vous.

  3. Une fois la connexion effectuée, copiez le code de validation qui s'affiche et collez-le dans la ligne de commande.

  4. Exécutez la commande suivante pour spécifier le projet contenant les applications que vous souhaitez continuer à protéger avec IAP.

    gcloud config set project PROJECT_ID
    
  5. Exécutez la commande suivante pour récupérer l'ID client OAuth 2.0 configuré.

    Champ d'application global

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

    Champ d'application régional

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

    Enregistrez l'ID client de la commande précédente si vous souhaitez autoriser l'accès programmatique.

  6. Pour ajouter un client OAuth 2.0 à la liste d'autorisation pour l'accès par programmation, effectuez une opération de lecture-mise à jour-écriture sur l'API des paramètres IAP.

    Champ d'application global

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

    Champ d'application régional

    gcloud iap settings get \
        --resource-type=compute \
        --project=PROJECT_ID \
        --service=BACKEND_SERVICE_NAME \
        --region=REGION_NAME > settings.yaml
    
  7. Mettez à jour le fichier settings.yaml et ajoutez l'ID client OAuth 2.0 récupéré précédemment sous programmaticClients, comme dans l'exemple ci-dessous.

    accessSettings:
      oauthSettings:
        programmaticClients:
        - CLIENT_ID
    
  8. Appliquez les nouveaux paramètres à l'application Compute Engine.

    Champ d'application global

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

    Champ d'application régional

    gcloud iap settings set settings.yaml \
        --resource-type=compute \
        --project=PROJECT_ID \
        --service=BACKEND_SERVICE_NAME \
        --region=REGION_NAME
    
  9. Pour migrer vos ressources, exécutez la commande à portée globale ou régionale.

    Champ d'application global

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

    Champ d'application régional

    gcloud compute backend-services update BACKEND_SERVICE_NAME \
        --region REGION_NAME \
        --iap=enabled,oauth2-client-id=" ",oauth2-client-secret=" "
    
  10. Pour vérifier que l'ID client OAuth n'est pas défini, exécutez la commande à portée globale ou régionale suivante. Après avoir exécuté la commande, vérifiez le résultat pour vous assurer que le champ de l'ID client OAuth est vide.

    Champ d'application global

    gcloud compute backend-services describe BACKEND_SERVICE_NAME \
        --global
    

    Champ d'application régional

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

API

  1. Exécutez la commande suivante pour récupérer l'ID client OAuth 2.0 configuré.

    Champ d'application global

    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"
    

    Champ d'application régional

    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. Exécutez la commande suivante pour récupérer les paramètres d'achat via l'IAP existants dans un fichier settings.json.

    Champ d'application global

    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
    

    Champ d'application régional

    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. Mettez à jour le fichier settings.json pour ajouter CLIENT_ID précédemment enregistré en tant que client programmatique.

    {
        "accessSettings": {
          "oauthSettings": {
            "programmaticClients": [
              "CLIENT_ID"
            ]
          },
        },
    }
    
  4. Exécutez la commande suivante pour mettre à jour les paramètres d'IAP;application.

    Champ d'application global

    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"
    

    Champ d'application régional

    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. Exécutez la commande suivante pour préparer un fichier settings.json.

    cat << EOF > settings.json
    {
    "iap":
          {
            "enabled":true,
            "oauth2ClientId": " ",
            "oauth2ClientSecret": " "
          }
    }
    EOF
    
  6. Exécutez la commande suivante pour migrer vos ressources.

    Champ d'application global

    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"
    

    Champ d'application régional

    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. Pour confirmer que l'ID client OAuth n'est pas défini, exécutez la commande à portée globale ou régionale suivante. Après avoir exécuté la commande, vérifiez le résultat pour vous assurer que le champ "ID client OAuth" est vide.

    Champ d'application global

    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"
    

    Champ d'application régional

    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"
    

Migrer des ressources Google Kubernetes Engine compatibles avec IAP

Ajoutez le bloc IAP suivant à la définition de ressource personnalisée (CRD) BackendConfig. Cela active IAP avec le client OAuth 2.0 géré par Google.

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

Utiliser un jeton JWT de compte de service pour s'authentifier auprès d'IAP

Vous pouvez vous authentifier auprès d'IAP sans avoir à utiliser l'API Admin OAuth obsolète en utilisant un jeton JWT de compte de service.

Obtenir un code secret du client OAuth

Lorsque vous créez un client OAuth personnalisé dans la console Google Cloud , le code secret du client n'est affiché qu'à ce moment-là. Il vous incombe de stocker ce secret de manière sécurisée. Secret Manager est le service recommandé pour stocker de manière sécurisée les codes secrets des clients OAuth.

Si vous utilisez Secret Manager pour stocker le code secret de votre client OAuth, consultez Accéder à une version secrète pour savoir comment obtenir le code secret du client.

Déterminer si vous utilisez l'API Admin OAuth

Pour vérifier si vous utilisez l'API OAuth Admin, procédez comme suit.

  1. Dans la console Google Cloud , ouvrez la page des API IAP, puis sélectionnez le projet que vous souhaitez analyser.

    Accéder à la page des API IAP

  2. Dans la liste Sélectionner des graphiques, sélectionnez Trafic par méthode API, puis cliquez sur OK.

  3. Dans la section Méthodes, recherchez les méthodes avec le préfixe google.cloud.iap.v1.IdentityAwareProxyOAuthService, qui indique que le projet utilise l'API Admin OAuth.

Alternatives à l'utilisation de l'API Admin OAuth

Si vous devez obtenir des identifiants client OAuth sans utiliser l'API OAuth, vous pouvez utiliser les méthodes suivantes :

  • Google Cloud console : vous pouvez obtenir manuellement les identifiants OAuth sur la page Identifiants.

  • Secret Manager : vous pouvez stocker et récupérer le secret à l'aide de Secret Manager. Pour savoir comment utiliser Secret Manager avec Terraform, consultez google_secret_manager_secret.

  • Jeton Web JSON (JWT) de compte de service : utilisez des jetons Web JSON (JWT) de compte de service pour l'authentification. Avec les jetons JWT de compte de service, vous n'avez pas besoin d'utiliser de clients OAuth.