Migrer depuis l'API Admin OAuth IAP

Cette page décrit la procédure à suivre pour passer de l'utilisation de clients OAuth 2.0 créés à l'aide de l'API Admin OAuth 2.0 du proxy Identity-Aware Proxy (IAP) à l'utilisation d'un client OAuth 2.0 géré par Google déployé par IAP.

Depuis le 22 janvier 2025, l'API IAP OAuth 2.0 Admin, qui permet de créer un client IAP OAuth 2.0, est obsolète. Le client OAuth 2.0 géré par Google, qui est automatiquement déployé avec IAP, le remplace. Ce client limite l'accès aux applications compatibles avec l'IAP aux utilisateurs de la même organisation lorsqu'ils y accèdent via un navigateur.

Si vous avez utilisé les API IAP OAuth 2.0 Admin pour créer et gérer un client OAuth 2.0 afin d'activer l'IAP sur vos applications ou sur les ressourcesGoogle Cloud , vous devez migrer ces applications et les ressourcesGoogle Cloud pour utiliser le client OAuth 2.0 géré par Google.

Si vous n'avez pas encore configuré de client OAuth 2.0 pour vos applications ou pour les ressources Google Cloud , le client OAuth 2.0 géré par Google est automatiquement déployé lorsque vous activez l'IAP sur vos applications et ressources.

Si vous utilisez l'accès programmatique pour protéger vos applications et ressources avec IAP, vous ne pouvez pas utiliser le client OAuth 2.0 géré par Google. Vous devez utiliser un compte de service.

Migrer des ressources App Engine compatibles avec les achats intégrés

Suivez les étapes de cette section pour migrer les ressources App Engine où l'IAP est activé et qu'un client OAuth 2.0 est configuré.

gcloud

Avant de continuer, assurez-vous de disposer d'une version à jour de la gcloud CLI. Pour savoir comment installer gcloud CLI, consultez Installer la CLI gcloud.

  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 l'IAP.

    gcloud config set project PROJECT_ID
    
  5. 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 préparer un fichier settings.json.

     cat << EOF > settings.json
     {
     "iap":
         {
           "enabled":true
         }
     }
     EOF
    
  2. 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/<var>PROJECT_ID</var>?updateMask=iap"
    

Migrer des ressources Compute Engine compatibles avec l'API IAP

Suivez les étapes de cette section pour migrer les ressources Compute Engine où l'IAP est activé et qu'un client OAuth 2.0 est configuré.

gcloud

Avant de continuer, assurez-vous de disposer d'une version à jour de la gcloud CLI. Pour savoir comment installer gcloud CLI, consultez Installer la CLI gcloud.

  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 l'IAP.

    gcloud config set project PROJECT_ID
    
  5. 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=" "
  6. Pour vérifier que l'ID client OAuth n'est pas défini, exécutez la commande d'étendue globale ou régionale suivante. Après avoir exécuté la commande, vérifiez la sortie 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 préparer un fichier settings.json.

    cat << EOF > settings.json
    {
    "iap":
         {
           "enabled":true,
           "oauth2ClientId": " ",
           "oauth2ClientSecret": " "
         }
    }
    EOF
    
  2. 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"

  3. Pour vérifier que l'ID client OAuth n'est pas défini, exécutez la commande d'étendue globale ou régionale suivante. Après avoir exécuté la commande, vérifiez la sortie 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 Cloud Run compatibles avec l'IAP

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

gcloud

Avant de continuer, assurez-vous de disposer d'une version à jour de la gcloud CLI. Pour savoir comment installer gcloud CLI, consultez Installer la CLI gcloud.

  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 l'IAP.

    gcloud config set project PROJECT_ID
    
  5. 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=" "

  6. Pour vérifier que l'ID client OAuth n'est pas défini, exécutez la commande d'étendue globale ou régionale suivante. Après avoir exécuté la commande, vérifiez la sortie 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 préparer un fichier settings.json.

    cat << EOF > settings.json
    {
    "iap":
         {
           "enabled":true,
           "oauth2ClientId": " ",
           "oauth2ClientSecret": " "
         }
    }
    EOF
    
  2. 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"

  3. Pour vérifier que l'ID client OAuth n'est pas défini, exécutez la commande d'étendue globale ou régionale suivante. Après avoir exécuté la commande, vérifiez la sortie 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 l'IAP

Ajoutez le bloc IAP suivant à la définition de ressources personnalisées (CRD) BackendConfig. Cela active l'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