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 y êtes invité. Pour configurer votre écran de consentement OAuth, consultez 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 située à 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, ajoutez 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 dans le cadre du 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 pour laquelle vous souhaitez restreindre y accéder. 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 avez besoin d'une version à jour gcloud CLI. Pour savoir comment installer la CLI gcloud, consultez Installer la CLI gcloud.

  1. Pour vous authentifier, utilisez la 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 qui contient 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 les achats intégrés pour configurer l'écran de consentement OAuth et créer le client OAuth.
  6. Enregistrez l'ID client et le secret OAuth.
  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

Après avoir activé IAP, vous pouvez utiliser la gcloud CLI pour modifier le Stratégie d'accès IAP utilisant le 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 et le secret OAuth.

  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 les achats intégrés.

    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"
    

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

Compute Engine

Console

Si vous n'avez pas configuré l'écran d'autorisation OAuth de votre projet, vous êtes invité à le faire. Pour configurer votre écran d'autorisation OAuth, consultez la section Configurer l'é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 aucune ressource, assurez-vous qu'elle a été créée et que le contrôleur d'entrée Compute Engine BackendConfig 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, ajoutez 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 dans le cadre du projet.

    Les types de comptes principaux suivants peuvent avoir 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 Save.

gcloud

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

  1. Pour vous authentifier, utilisez la 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 les achats intégrés pour configurer l'écran de consentement OAuth et créer le client OAuth.
  6. Enregistrez l'ID client et le secret OAuth.
  7. Pour activer IAP, exécutez la commande à l'échelle mondiale 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 la gcloud CLI pour modifier le Stratégie d'accès IAP utilisant le 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 les achats intégrés pour configurer l'écran de consentement OAuth et créer le client OAuth.

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

  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 les achats intégrés.

    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 la gcloud CLI pour modifier le Stratégie d'accès IAP utilisant le 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 y êtes invité. Pour configurer votre écran de consentement OAuth, consultez 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 située à 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 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 suivants peuvent être ajoutés en tant que membres :

    • Compte Google: utilisateur@gmail.com - il peut également s'agir d'un compte Google Workspace, tel que utilisateur@google.com ou 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 de l'équilibreur de charge auquel vous souhaitez restreindre l'accès. Cliquez sur le bouton IAP pour activer IAP sur 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.
  3. Pour autoriser IAP à envoyer du trafic vers le service de backend Cloud Run, suivez les instructions fournies dans Ajoutez des comptes principaux à un service pour ajouter le principe et le rôle suivants.

    • 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 et le code secret OAuth.
  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 d'appelant 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 mondiale ou régionale, selon que le service de backend de votre équilibreur de charge est mondial ou régional. Utilisez l'ID client et le code secret OAuth 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 créé à 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.

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