Personnaliser une configuration OAuth pour activer IAP

Cette page explique quand et comment personnaliser une configuration OAuth pour Identity-Aware Proxy (IAP).

IAP authentifie les utilisateurs à l'aide d'un client OAuth géré par Google.

Le client OAuth géré par Google limite l'accès aux utilisateurs d'une même organisation lorsqu'ils accèdent à des applications compatibles IAP via un navigateur.

Quand utiliser une configuration OAuth personnalisée ?

Vous devez utiliser une configuration OAuth personnalisée pour effectuer les opérations suivantes:

  • Pour autoriser les utilisateurs extérieurs à l'organisation à accéder aux applications compatibles IAP.
  • Pour afficher vos propres informations sur la marque lors de l'authentification
  • Pour activer l'accès programmatique à votre application,

Lorsque vous personnalisez votre configuration OAuth, vous devez configurer l'écran de consentement OAuth. Pour cette raison, les informations de branding de votre application doivent suivre la procédure de validation de Google. Pour en savoir plus sur le processus de validation, consultez Configurer votre écran de consentement OAuth.

Vous êtes responsable de la création et de la gestion des identifiants pour un client OAuth personnalisé. Cela inclut le stockage sécurisé du code secret du client et son partage avec des utilisateurs autorisés si nécessaire.

Comparaison des clients OAuth gérés par Google et des clients OAuth personnalisés

Le tableau suivant compare le client OAuth géré par Google et un client OAuth personnalisé.

Client OAuth géré par Google Client OAuth personnalisé
Utilisateurs Internes uniquement Partenaires internes et externes
Brand Marque Google Cloud Marque appartenant au client
Configuration OAuth Google configuré Configuration par le client
Identifiants OAuth Géré par Google Géré par le client
Accès aux applications Flux du navigateur uniquement Flux de navigateur et accès programmatique

Activer IAP à l'aide d'une configuration client OAuth personnalisée

App Engine

Console

Fichier d'inclusion dynamique

Si vous n'avez pas configuré l'écran de consentement OAuth de votre projet, vous êtes invité à le faire. Pour configurer votre écran de consentement OAuth, consultez la section Configurer votre écran de consentement OAuth.

Configurer l'accès à IAP

  1. Accédez à la page Identity-Aware Proxy.
    Accéder à la page "Identity-Aware Proxy"
  2. Sélectionnez le projet que vous souhaitez sécuriser avec IAP.
  3. Cochez la case à côté de la ressource à laquelle vous souhaitez accorder l'accès.
  4. Dans le panneau de droite, cliquez sur Ajouter un compte principal.
  5. Dans la boîte de dialogue Ajouter des comptes principaux qui s'affiche, saisissez les adresses e-mail des groupes ou des personnes auxquels vous souhaitez accorder le rôle Utilisateur de l'application Web sécurisée par IAP pour le projet.

    Les types de comptes principaux suivants peuvent disposer de ce rôle:

    • Compte Google : user@gmail.com
    • Groupe Google : admins@googlegroups.com
    • Compte de service : server@example.gserviceaccount.com
    • Domaine Google Workspace : example.com

    Veillez à ajouter un compte Google auquel vous avez accès.

  6. Sélectionnez Cloud IAP > Utilisateur de l'application Web sécurisée par IAP dans la liste déroulante Rôles.
  7. Cliquez sur Enregistrer.

Activer IAP

  1. Sur la page Identity-Aware Proxy, sous APPLICATIONS, recherchez l'application à laquelle vous souhaitez restreindre l'accès. Pour activer IAP pour une ressource,
  2. Dans la fenêtre Activer IAP qui s'affiche, cliquez sur Activer pour confirmer que vous souhaitez qu'IAP sécurise votre ressource. Une fois IAP activé, des identifiants de connexion sont requis pour toutes les connexions à votre équilibreur de charge. Seuls les comptes disposant du rôle Utilisateur de l'application Web sécurisée par IAP sur le projet y ont accès.

gcloud

Avant de configurer votre projet et IAP, vous devez disposer d'une version à jour de gcloud CLI. Pour savoir comment installer gcloud CLI, consultez Installer gcloud CLI.

  1. Pour vous authentifier, utilisez Google Cloud CLI et exécutez la commande suivante.
    gcloud auth login
  2. Pour vous connecter, suivez l'URL qui s'affiche.
  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 la ressource que vous souhaitez protéger avec IAP.
    gcloud config set project PROJECT_ID
  5. Suivez les instructions de la section Créer des clients OAuth pour IAP pour configurer l'écran de consentement OAuth et créer le client OAuth.
  6. Enregistrez l'ID client OAuth et le code secret.
  7. Pour activer IAP, exécutez la commande suivante.
    gcloud iap web enable \
        --oauth2-client-id=CLIENT_ID \
        --oauth2-client-secret=CLIENT_SECRET \
        --resource-type=app-engine \
        --versions=VERSION

Après avoir activé IAP, vous pouvez utiliser gcloud CLI pour modifier la stratégie d'accès IAP à l'aide du rôle IAM roles/iap.httpsResourceAccessor. Découvrez comment gérer les rôles et les autorisations.

API

  1. Suivez les instructions de la section Créer des clients OAuth pour IAP pour configurer l'écran de consentement OAuth et créer le client OAuth.

  2. Enregistrez l'ID client OAuth et le code secret.

  3. Exécutez la commande suivante pour préparer un fichier settings.json.

    cat << EOF > settings.json
    {
    "iap":
      {
        "enabled":true,
        "oauth2ClientId" : CLIENT_ID,
        "oauth2ClientSecret" : CLIENT_SECRET,
      }
    }
    EOF
    

  4. Exécutez la commande suivante pour activer 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://appengine.googleapis.com/v1/apps/PROJECT_ID?updateMask=iap"
    

Après avoir activé IAP, vous pouvez utiliser Google Cloud CLI pour modifier la stratégie d'accès IAP à l'aide du rôle IAM roles/iap.httpsResourceAccessor. Découvrez comment gérer les rôles et les autorisations.

Compute Engine

Console

Si vous n'avez pas configuré l'écran de consentement OAuth de votre projet, vous êtes invité à le faire. Pour configurer votre écran de consentement OAuth, consultez la section Configurer votre écran de consentement OAuth.

Configurer l'accès à IAP

  1. Accédez à la page Identity-Aware Proxy.
    Accéder à la page "Identity-Aware Proxy"
  2. Sélectionnez le projet que vous souhaitez sécuriser avec IAP.
  3. Cochez la case à côté de la ressource à laquelle vous souhaitez accorder l'accès.

    Si vous ne voyez pas une ressource, vérifiez qu'elle est créée et que le contrôleur d'entrée BackendConfig Compute Engine est synchronisé.

    Pour vérifier que le service de backend est disponible, exécutez la commande gcloud suivante:

    gcloud compute backend-services list
  4. Dans le panneau de droite, cliquez sur Ajouter un compte principal.
  5. Dans la boîte de dialogue Ajouter des comptes principaux qui s'affiche, saisissez les adresses e-mail des groupes ou des personnes auxquels vous souhaitez accorder le rôle Utilisateur de l'application Web sécurisée par IAP pour le projet.

    Les types de comptes principaux suivants peuvent disposer de ce rôle:

    • Compte Google : user@gmail.com
    • Groupe Google : admins@googlegroups.com
    • Compte de service : server@example.gserviceaccount.com
    • Domaine Google Workspace : example.com

    Veillez à ajouter un compte Google auquel vous avez accès.

  6. Sélectionnez Cloud IAP > Utilisateur de l'application Web sécurisée par IAP dans la liste déroulante Rôles.
  7. Cliquez sur Enregistrer.

gcloud

Avant de configurer votre projet et IAP, vous avez besoin d'une version à jour de gcloud CLI. Pour savoir comment installer gcloud CLI, consultez Installer gcloud CLI.

  1. Pour vous authentifier, utilisez Google Cloud CLI et exécutez la commande suivante.
    gcloud auth login
  2. Pour vous connecter, suivez l'URL qui s'affiche.
  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 la ressource que vous souhaitez protéger avec IAP.
    gcloud config set project PROJECT_ID
  5. Suivez les instructions de la section Créer des clients OAuth pour IAP pour configurer l'écran de consentement OAuth et créer le client OAuth.
  6. Enregistrez l'ID client OAuth et le code secret.
  7. Pour activer IAP, exécutez la commande globale ou régionale.

    Champ d'application global
    gcloud compute backend-services update BACKEND_SERVICE_NAME \
        --global \
        --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRET
    Champ d'application régional
    gcloud compute backend-services update BACKEND_SERVICE_NAME \
        --region REGION_NAME \
        --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRET
        

Après avoir activé IAP, vous pouvez utiliser gcloud CLI pour modifier la stratégie d'accès IAP à l'aide du rôle IAM roles/iap.httpsResourceAccessor. Découvrez comment gérer les rôles et les autorisations.

API

  1. Suivez les instructions de la section Créer des clients OAuth pour IAP pour configurer l'écran de consentement OAuth et créer le client OAuth.

  2. Enregistrez l'ID client OAuth et le code secret.

  3. Exécutez la commande suivante pour préparer un fichier settings.json.

    cat << EOF > settings.json
    {
    "iap":
      {
        "enabled":true
      }
    }
    EOF
    

  4. Exécutez la commande suivante pour activer 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/REGION/backendServices/BACKEND_SERVICE_NAME"
    

Après avoir activé IAP, vous pouvez utiliser gcloud CLI pour modifier la stratégie d'accès IAP à l'aide du rôle IAM roles/iap.httpsResourceAccessor. Découvrez comment gérer les rôles et les autorisations.

Cloud Run

Console

Si vous n'avez pas configuré l'écran de consentement OAuth de votre projet, vous êtes invité à le faire. Pour configurer votre écran de consentement OAuth, consultez la section Configurer votre écran de consentement OAuth.

Configurer l'accès à IAP

  1. Ouvrez la page Identity-Aware Proxy.
    Accéder à Identity-Aware Proxy
  2. Sélectionnez le projet que vous souhaitez sécuriser avec IAP.
  3. Sous Applications, cochez la case à côté du service de backend d'équilibreur de charge auquel vous souhaitez ajouter des membres.
  4. Dans le panneau d'informations situé à droite, cliquez sur Ajouter un membre.
  5. Dans la boîte de dialogue Ajouter des membres, saisissez les comptes des groupes ou des individus qui doivent disposer du rôle Utilisateur de l'application Web sécurisée par IAP pour le projet. Les types de comptes suivants peuvent être ajoutés en tant que membres :

    • Compte Google : user@gmail.com : il peut également s'agir d'un compte Google Workspace, tel que user@google.com ou d'un autre domaine Google Workspace.
    • Groupe Google : admins@googlegroups.com
    • Compte de service : server@example.gserviceaccount.com
    • Domaine Google Workspace : example.com
  6. Sélectionnez Cloud IAP > Utilisateur de l'application Web sécurisée par IAP dans la liste Rôles.

  7. Cliquez sur Enregistrer.

Activer IAP

  1. Sur la page IAP, sous Applications, recherchez le service de backend d'équilibreur de charge auquel vous souhaitez restreindre l'accès. Cliquez sur le bouton d'activation IAP pour activer IAP sur une ressource.
  2. Dans la fenêtre Activer le service IAP qui s'affiche, cliquez sur Activer pour confirmer que vous souhaitez qu'IAP sécurise votre ressource. Une fois IAP activé, des identifiants de connexion sont requis pour toutes les connexions à votre équilibreur de charge. Seuls les comptes disposant du rôle Utilisateur de l'application Web sécurisée par IAP sur le projet y ont accès.
  3. Pour autoriser IAP à envoyer du trafic vers le service de backend Cloud Run, suivez les instructions de la section Ajouter des comptes principaux à un service pour ajouter le principe et le rôle suivants.

    • Compte principal: service-[PROJECT-NUMBER]@gcp-sa-iap.iam.gserviceaccount.com
    • Rôle: Demandeur Cloud Run

gcloud

  1. Suivez les instructions de la section Créer des clients OAuth pour IAP pour configurer l'écran de consentement OAuth et créer le client OAuth.
  2. Enregistrez l'ID client OAuth et le code secret.
  3. Si vous ne l'avez pas déjà fait, créez un compte de service en exécutant la commande suivante. Si vous avez déjà créé un compte de service, l'exécution de la commande ne crée pas de comptes de service en double.
    gcloud beta services identity create \
        --service=iap.googleapis.com --project=PROJECT_ID
    
  4. Accordez l'autorisation de demandeur au compte de service créé à l'étape précédente en exécutant la commande suivante :
    gcloud run services add-iam-policy-binding SERVICE-NAME \
        --member='serviceAccount:service-PROJECT-NUMBER@gcp-sa-iap.iam.gserviceaccount.com' \
        --role='roles/run.invoker'
    
  5. Activez IAP en exécutant la commande à l'échelle globale ou régionale, selon que votre service de backend d'équilibreur de charge est mondial ou régional. Utilisez l'ID client OAuth et le code secret de l'étape précédente.

    Champ d'application global

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

    Champ d'application régional

    gcloud compute backend-services update BACKEND_SERVICE_NAME \
        --region REGION_NAME \
        --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRET
    
    Remplacez les éléments suivants :

    • BACKEND_SERVICE_NAME : nom du service de backend.
    • CLIENT_ID: ID client OAuth récupéré à l'étape précédente.
    • CLIENT_SECRET: code secret du client OAuth de l'étape précédente.
    • REGION_NAME: région dans laquelle vous souhaitez activer IAP.

Après avoir activé IAP, vous pouvez utiliser Google Cloud CLI pour modifier la stratégie d'accès IAP à l'aide du rôle Identity and Access Management roles/iap.httpsResourceAccessor. Pour en savoir plus, consultez Gérer les rôles et les autorisations.