Migrer depuis l'API Admin OAuth IAP

L'API OAuth Admin d'Identity-Aware Proxy (IAP) est désormais obsolète. Ce guide explique comment migrer des clients OAuth existants vers des clients OAuth gérés par Google. Si vous n'utilisez pas l'API IAP OAuth Admin, ce changement ne vous concerne pas.

Pour vérifier si votre projet utilise les API Admin OAuth, consultez Vérifier l'utilisation des API Admin OAuth. Si votre projet utilise les 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 et les groupes de commandes gcloud CLI suivants pour la gestion manuelle des clients et des marques OAuth :

Vous ne pouvez plus créer ni gérer de clients OAuth personnalisés à l'aide de l'API IAP OAuth Admin. Au lieu de gérer manuellement les clients OAuth 2.0, IAP utilise un client OAuth géré par Google. Cela simplifie la gestion des clients OAuth, réduit les erreurs manuelles et rationalise vos processus de déploiement.

Pour continuer à proposer une image de marque personnalisée, nous vous recommandons de configurer des clients OAuth personnalisés.

Ce qui ne change pas

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

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 . Cela n'affecte pas non plus les autres API IAP ni les groupes de commandes gcloud CLI (y compris leurs canaux de publication alpha et beta) qui gèrent les règles d'accès, les paramètres ou le transfert TCP d'IAP, tels que gcloud iap web (par exemple, get-iam-policy et remove-iam-policy-binding), gcloud iap settings et gcloud iap tcp, car ces commandes utilisent l'API IdentityAwareProxyAdminService plutôt que l'API IdentityAwareProxyOAuthService obsolète.

Vous pouvez continuer à créer des configurations de marque et de client OAuth, et à les gérer à l'aide de la console Google Cloud . Vous n'êtes pas obligé de migrer vos clients OAuth existants. Vous pouvez continuer à les utiliser et à les gérer via la consoleGoogle Cloud au lieu de l'API Admin IAP OAuth.

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

Pour vérifier si votre projet utilise les API d'administration OAuth IAP, 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 le projet pour lequel vous souhaitez vérifier l'utilisation de l'API Admin IAP OAuth.

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

  4. 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 d'IAP.

Description détaillée

Depuis le 22 janvier 2025, l'API Admin IAP OAuth 2.0, qui permet de créer un client IAP OAuth 2.0, est obsolète. 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 explicitement configuré. 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 d'Identity-Aware Proxy (IAP) ayant été abandonnée, vous ne pouvez plus l'utiliser pour créer ou 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 console Google 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 manière, ces applications continueront de fonctionner. Aucune modification n'est requise pour les applications. Toutefois, si vos scripts d'automatisation ou vos outils d'infrastructure as code (IaC) utilisent l'API Admin IAP OAuth 2.0 pour configurer de nouveaux clients ou récupérer des codes secrets du client pour des clients existants, vous devez mettre à jour les scripts afin qu'ils n'utilisent pas l'API Admin IAP OAuth 2.0.

Le choix de continuer à utiliser votre client géré par l'utilisateur existant ou d'envisager de passer à l'option gérée par Google dépend de vos exigences en matière de branding et d'accès externe. Pour obtenir une présentation détaillée de toutes les différences fonctionnelles, consultez le tableau de comparaison des clients OAuth gérés par Google et personnalisés. Si votre application nécessite un ID client personnalisé pour l'image de marque ou l'accès externe, utilisez la console Google Cloud pour créer l'ID client. Pour en savoir plus sur les clients OAuth personnalisés, consultez Personnaliser une configuration OAuth pour activer IAP.

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

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, ce qui évite d'avoir à créer manuellement un client pour chaque nouvelle application.

Actions requises

  • Mettre à jour les scripts d'automatisation

    Si vous utilisez Terraform, la gcloud CLI (gcloud iap oauth-brands ou gcloud iap oauth-clients, y compris alpha et beta) ou d'autres outils pour automatiser la configuration d'IAP, et que vous utilisez l'API Admin IAP OAuth 2.0, vous devez mettre à jour les scripts d'automatisation pour utiliser un client précréé ou le client OAuth géré par Google avec IAP.

  • Configurer l'accès par programmation 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 automatisé pour ces applications en ajoutant des clients OAuth 2.0 à la liste d'autorisation.

Migrer des ressources compatibles avec IAP

Pour migrer vos ressources afin d'utiliser 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 des 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 la Google Cloud CLI pour vous authentifier.

    gcloud auth login
    
  2. Cliquez sur l'URL qui s'affiche et 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 par programmation.

  6. Pour ajouter le 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.

    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 précédemment récupéré sous programmaticClients, comme illustré 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 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 le 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 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. 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 la Google Cloud CLI pour vous authentifier.

    gcloud auth login
    
  2. Cliquez sur l'URL qui s'affiche et 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 par programmation.

  6. Pour accorder un accès programmatique au client OAuth 2.0, 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 précédemment récupéré sous programmaticClients, comme illustré 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 suivante. Pour effacer l'ID client OAuth et le secret OAuth, transmettez un espace entre guillemets (" ") dans la commande. Le service de backend utilise le client OAuth géré par Google.

    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 confirmer que vous avez supprimé l'ID client OAuth et le code secret du client OAuth, et que le service de backend utilise un client OAuth géré par Google, exécutez gcloud compute backend-services describe. Pour effacer ces champs lors de la migration, la commande gcloud compute backend-services update utilise un seul espace (" "), que l'API Compute Engine interprète comme une instruction de suppression des valeurs oauth2ClientId et oauth2ClientSecret.

    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
    

    Après avoir exécuté la commande describe, examinez la section iap du résultat. Une migration réussie est indiquée lorsque le champ oauth2ClientId affiche un seul espace (' ') et que le champ oauth2ClientSecret contient le hachage SHA256 (36a9e7f1c95b82ffb99743e0c5c4ce95d83c9a430aac59f84ef3cbfab6145068) d'un seul espace.

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 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 le 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 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://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 de champ d'application global ou régional 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 pour lesquelles IAP est activé afin d'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, mettez à jour les valeurs en les remplaçant par un seul espace, comme illustré 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 savoir comment installer 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 et 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 par programmation.

  6. Pour ajouter un client OAuth 2.0 à la liste d'autorisation pour l'accès automatisé, 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 précédemment récupéré sous programmaticClients, comme illustré dans l'exemple.

    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 à l'échelle 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 de champ d'application global ou régional 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 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 le 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 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://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 vérifier que l'ID client OAuth n'est pas défini, exécutez la commande suivante au niveau du champ d'application global ou régional. 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"
    

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 d'administration 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 ne s'affiche qu'à ce moment-là. Vous êtes responsable du stockage sécurisé de ce secret. Secret Manager est le service recommandé pour stocker de manière sécurisée les codes secrets du client OAuth.

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

Vérifier si vous utilisez l'API Admin OAuth d'IAP

Pour vérifier si votre projet utilise les API Admin OAuth d'IAP, consultez Vérifier l'utilisation des 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 des 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.

  • Jetons 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.