Cette page explique quand et comment personnaliser une configuration OAuth pour Identity-Aware Proxy (IAP).
IAP utilise un client OAuth géré par Google pour authentifier les utilisateurs.
Le client OAuth géré par Google limite l'accès aux utilisateurs de la même organisation lorsqu'ils accèdent à des applications compatibles avec les achats intégrés via un navigateur.
Quand utiliser une configuration OAuth personnalisée ?
Vous devez utiliser une configuration OAuth personnalisée pour effectuer les opérations suivantes:
- Autoriser l'accès aux applications compatibles avec l'IAP pour les utilisateurs externes à l'organisation.
- Pour afficher les informations sur votre propre 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 cela, les informations sur la marque de votre application doivent être soumises au processus de validation de Google. Pour en savoir plus sur le processus de validation, consultez la section Configurer votre écran de consentement OAuth.
Vous êtes responsable de la création et de la gestion des identifiants d'un client OAuth personnalisé. Cela inclut le stockage sécurisé du code secret du client et son partage avec les utilisateurs autorisés si nécessaire.
Comparaison entre le client OAuth géré par Google et le client OAuth personnalisé
Le tableau suivant compare le client OAuth géré par Google à un client OAuth personnalisé.
Client OAuth géré par Google | Client OAuth personnalisé | |
---|---|---|
Utilisateurs | Interne uniquement | Partenaires internes et externes |
Brand | Marque Google Cloud | Marque appartenant au client |
Configuration OAuth | Google configuré | Configuration client |
Identifiants OAuth | Géré par Google | Géré par le client |
Accès des applications | Flux du navigateur uniquement | Flux du navigateur et accès programmatique |
Activer l'IAP à l'aide d'une configuration client OAuth personnalisée
App 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
-
Accédez à la page Identity-Aware Proxy.
Accéder à la page "Identity-Aware Proxy" - Sélectionnez le projet que vous souhaitez sécuriser avec IAP.
- Cochez la case située à côté de la ressource à laquelle vous souhaitez accorder l'accès.
- Dans le panneau de droite, cliquez sur Ajouter un compte principal.
-
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.
- Sélectionnez Cloud IAP > Utilisateur de l'application Web sécurisée par IAP dans la liste déroulante Rôles.
- Cliquez sur Enregistrer.
Activer IAP
-
Sur la page Identity-Aware Proxy, sous APPLICATIONS (APPLICATIONS), recherchez l'application à laquelle vous souhaitez restreindre l'accès. Pour activer IAP pour une ressource,
- 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 votre IAP, vous devez disposer d'une version à jour de la gcloud CLI. Pour savoir comment installer gcloud CLI, consultez Installer la CLI gcloud.
-
Pour vous authentifier, utilisez la Google Cloud CLI et exécutez la commande suivante.
gcloud auth login
- Pour vous connecter, suivez l'URL qui s'affiche.
- Une fois la connexion effectuée, copiez le code de validation qui s'affiche et collez-le dans la ligne de commande.
-
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
- 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.
- Enregistrez l'ID client et le secret OAuth.
-
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
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 gcloud CLI. Découvrez comment gérer les rôles et les autorisations.
API
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.
Enregistrez l'ID client et le secret OAuth.
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
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"
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
-
Accédez à la page Identity-Aware Proxy.
Accéder à la page "Identity-Aware Proxy" - Sélectionnez le projet que vous souhaitez sécuriser avec IAP.
-
Cochez la case située à 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
- Dans le panneau de droite, cliquez sur Ajouter un compte principal.
-
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.
- Sélectionnez Cloud IAP > Utilisateur de l'application Web sécurisée par IAP dans la liste déroulante Rôles.
- Cliquez sur Save.
gcloud
Avant de configurer votre projet et votre IAP, vous devez disposer d'une version à jour de gcloud CLI. Pour savoir comment installer gcloud CLI, consultez Installer la CLI gcloud.
-
Pour vous authentifier, utilisez la Google Cloud CLI et exécutez la commande suivante.
gcloud auth login
- Pour vous connecter, suivez l'URL qui s'affiche.
- Une fois la connexion effectuée, copiez le code de validation qui s'affiche et collez-le dans la ligne de commande.
-
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
- 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.
- Enregistrez l'ID client et le secret OAuth.
-
Pour activer l'IAP, exécutez la commande à portée globale ou régionale.
Champ d'application global Champ d'application régionalgcloud compute backend-services update BACKEND_SERVICE_NAME \ --global \ --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRET
gcloud compute backend-services update BACKEND_SERVICE_NAME \ --region REGION_NAME \ --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRET
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 gcloud CLI. Découvrez comment gérer les rôles et les autorisations.
API
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.
Enregistrez l'ID client et le secret OAuth.
Exécutez la commande suivante pour préparer un fichier
settings.json
.cat << EOF > settings.json { "iap": { "enabled":true } } EOF
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"
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 gcloud CLI. 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 Configurer l'écran de consentement OAuth.
Configurer l'accès à IAP
- Ouvrez la page Identity-Aware Proxy.
Accéder à Identity-Aware Proxy - Sélectionnez le projet que vous souhaitez sécuriser avec IAP.
- Sous Applications, cochez la case à côté du service de backend de l'équilibreur de charge auquel vous souhaitez ajouter des membres.
- Dans le panneau d'informations situé à droite, cliquez sur Ajouter un membre.
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
Sélectionnez Cloud IAP > Utilisateur de l'application Web sécurisée par IAP dans la liste Rôles.
Cliquez sur Enregistrer.
Activer IAP
- 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.
- 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.
Pour autoriser l'IAP à envoyer du trafic au service Cloud Run backend, suivez les instructions de la section Ajouter des comptes principaux à un service pour ajouter le compte principal et le rôle suivants.
- Principal:
service-[PROJECT-NUMBER]@gcp-sa-iap.iam.gserviceaccount.com
- Rôle: Demandeur Cloud Run
- Principal:
gcloud
- 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.
- Enregistrez l'ID client et le secret OAuth.
- 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
- 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'
Activez l'IAP en exécutant la commande à portée globale ou régionale, selon que votre service de backend d'équilibreur de charge est global 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
Remplacez les éléments suivants :gcloud compute backend-services update BACKEND_SERVICE_NAME \ --region REGION_NAME \ --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRET
- BACKEND_SERVICE_NAME : nom du service de backend.
- CLIENT_ID: ID client OAuth de 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.