Ce document explique comment personnaliser les paramètres Identity-Aware Proxy (IAP). Ces paramètres vous permettent de contrôler divers comportements, y compris :
- Compatibilité avec Cloud Service Mesh et Istio sur Google Kubernetes Engine.
- le traitement des requêtes CORS préliminaires ;
- la façon dont les utilisateurs sont authentifiés.
- la page d'erreur affichée aux utilisateurs lorsque l'accès est refusé.
Gérer les paramètres
Vous pouvez afficher et modifier les paramètres IAP sur les équilibreurs de charge et les applications App Engine à l'aide de la console Google Cloud , de l'API IAP ou de la Google Cloud CLI.
Pour mettre à jour les paramètres IAP sur toutes les ressources, y compris les dossiers, les projets et les organisations, utilisez Google Cloud CLI ou l'API.
Pour gérer les paramètres dans IAP :
Console
Pour afficher et modifier les paramètres à l'aide de la console Google Cloud :
- Accédez à la page Identity-Aware Proxy.
Accéder à la page "Identity-Aware Proxy" - Recherchez votre ressource dans l'onglet APPLICATIONS.
- Ouvrez le menu Autres actions , puis cliquez sur Paramètres.
- Cliquez sur Enregistrer.
gcloud
Pour obtenir et modifier les paramètres à l'aide de Google Cloud CLI, utilisez les commandes gcloud iap settings get et gcloud iap settings set comme suit :
- Pour obtenir les paramètres d'un projet, d'un dossier ou d'une organisation, utilisez les commandes suivantes. Pour configurer les paramètres IAP à l'aide de la console Google Cloud ou de gcloud CLI, consultez Personnaliser IAP.
gcloud iap settings get --project=PROJECT-ID
gcloud iap settings get --folder=FOLDER-ID
gcloud iap settings get --organization=ORGANIZATION-ID
- Pour obtenir les paramètres d'un type de ressource IAP spécifique dans un projet :
gcloud iap settings get --project=PROJECT-ID \ --resource-type=RESOURCE-TYPE-NAME
- Pour définir les paramètres d'un projet, d'un dossier ou d'une organisation, ou d'un type de ressource IAP sous un projet, créez un fichier JSON ou YAML contenant les nouveaux paramètres souhaités et spécifiez le chemin d'accès au fichier. Consultez la rubrique
gcloud iap settings setpour en savoir plus :
gcloud iap settings set SETTING_FILE --project=PROJECT-ID \ --resource-type=RESOURCE-TYPE-NAME
API
Pour obtenir et modifier des paramètres à l'aide de l'API IAP, envoyez des requêtes à l'aide des verbes HTTP GET ou PATCH au point de terminaison de ressource sélectionné dans Google Cloud. Combinez le suffixe de chemin d'accès :iapSettings, un chemin d'accès à une ressource (comme indiqué dans Ressources et autorisations) et une méthode HTTP appropriée pour obtenir ou modifier un paramètre. Pour en savoir plus, consultez getIapSettings() et updateIapSettings() :
- Pour obtenir ou définir des paramètres pour un type de ressource IAP spécifique dans un projet :
https://iap.googleapis.com/v1/projects/PROJECT-ID/iap_web/appengine-APP-ID/services/SERVICE-ID/versions/VERSION-ID:iapSettings
- Pour obtenir ou définir les paramètres d'un projet :
https://iap.googleapis.com/v1/projects/PROJECT-ID:iapSettings
- Pour obtenir ou définir les paramètres d'un dossier :
https://iap.googleapis.com/v1/folders/FOLDER-ID:iapSettings
- Pour obtenir ou définir des paramètres pour une organisation :
https://iap.googleapis.com/v1/organizations/ORGANIZATION-ID:iapSettings
Rôles et autorisations des paramètres IAP
Cette section décrit les rôles et les autorisations requis pour afficher et modifier les paramètres IAP.
Rôles associés aux paramètres
Vous pouvez attribuer le rôle Administrateur des paramètres IAP (roles/iap.settingsAdmin) au niveau de l'organisation, du dossier et du projet. Pour connaître les autorisations accordées par le rôle "Administrateur des paramètres IAP", consultez Autorisations liées aux paramètres.
Pour en savoir plus sur les rôles et les autorisations pour IAP, consultez Rôles et autorisations Identity-Aware Proxy.
Les rôles de base suivants fournissent ces autorisations :
Le rôle Lecteur du projet (
roles/viewer) accorde toutes les autorisationsgetSettings.Le rôle Éditeur (
roles/editor) accorde toutes les autorisations décrites dans le tableau.
Autorisations des paramètres
Le tableau suivant liste les autorisations IAM requises pour lire et modifier les paramètres de chaque type de ressource. Pour une description des différents types de ressources, consultez Ressources et autorisations.
| Ressource | Autorisation d'affichage des paramètres | Autorisation de modification des paramètres |
|---|---|---|
| Organisation | iap.organizations.getSettings |
iap.organizations.updateSettings |
| Dossier | iap.folders.getSettings |
iap.folders.updateSettings |
| Projet | iap.projects.getSettings |
iap.projects.updateSettings |
| Tous les services Web | iap.web.getSettings |
iap.web.updateSettings |
| Types de sites Web | iap.webTypes.getSettings |
iap.webTypes.updateSettings |
| Services Web | iap.webServices.getSettings |
iap.webServices.updateSettings |
| Versions du service Web | iap.webServiceVersions.getSettings |
iap.webServiceVersions.updateSettings |
| Types de sites Web | iap.webTypes.getSettings |
iap.webTypes.updateSettings |
Pour en savoir plus sur l'attribution de rôles IAM, consultez Accorder, modifier et révoquer les accès.
Personnaliser les paramètres des achats via l'application
IAP fournit les paramètres de personnalisation suivants :
| Champ | Description |
|---|---|
access_settings.cors_settings.allow_http_options |
Permet de contrôler la requête HTTP OPTIONS (requête CORS préliminaire). |
access_settings.oauth_settings.login_hint |
Simplifier la connexion pour les utilisateurs d'un domaine Google Workspace |
application_settings.access_denied_page_settings.access_denied_page_uri |
Affiche une page d'erreur personnalisée lorsque l'accès est refusé. |
application_settings.csm_settings.rctoken_aud |
Émettre des RCTokens Cloud Service Mesh et Istio |
access_settings.gcip_settings |
S'authentifie avec Identity Platform. |
access_settings.ReauthSettings |
Définissez une règle de réauthentification. Pour en savoir plus, consultez Configurer la réauthentification. |
Vous pouvez appliquer les paramètres au niveau du projet ou à n'importe quel niveau de ressource IAP inférieur.
Vous pouvez configurer les paramètres des ressources IAP Web, mais pas les ressources accessibles à l'aide du service IAP pour le transfert TCP.
En utilisant access_settings.cors_settings.allow_http_options comme exemple, vous pouvez configurer les paramètres de personnalisation comme suit :
YAML
access_settings:
cors_settings:
allow_http_options: "false"JSON
{
"access_settings": {
"cors_settings": {
"allow_http_options": "false"
}
}
}Les sections suivantes fournissent plus d'informations sur chaque paramètre.
Autoriser les requêtes HTTP OPTIONS (CORS préliminaire)
| Champ | Valeur par défaut |
|---|---|
access_settings.cors_settings.allow_http_options |
false |
Les règles de même origine du Web empêche les navigateurs d'envoyer des requêtes AJAX entre des sites Web. Par défaut, le code JavaScript d'une page diffusée depuis une origine ne peut pas utiliser AJAX pour envoyer une requête à une application sécurisée avec IAP hébergée sur une origine différente.
Dans certains cas, les navigateurs essaient automatiquement d'exécuter une requête, mais ils suppriment le contenu de la réponse s'il n'inclut pas d'en-tête Access-Control-Allow-Origin. Pour autoriser ce type de requête, incluez cet en-tête dans les réponses de votre application.
Dans d'autres cas, les navigateurs envoient une requête CORS préliminaire, un type de requête HTTP OPTIONS, avant d'envoyer la requête d'origines multiples. Si votre application ne répond pas avec une réponse préliminaire appropriée (contenant les en-têtes de réponse Access-Control-* requis), le navigateur bloquera la requête avec une erreur. En outre, étant donné que les requêtes préliminaires ne sont pas envoyées avec des identifiants d'authentification (par exemple, un cookie de session IAP), IAP répond également par une erreur.
Pour autoriser ces requêtes :
Ajoutez du code à l'application qui répond aux requêtes
OPTIONS.Définissez le paramètre
access_settings.cors_settings.allow_http_optionssurtruepour qu'IAP transmette les requêtesOPTIONSà votre application.
S'authentifier à l'aide d'un domaine Google Workspace
| Champ | Valeur par défaut |
|---|---|
access_settings.oauth_settings.login_hint |
"" |
Si seuls les membres d'un domaine Google Workspace spécifique utilisent votre application, vous pouvez configurer IAP pour optimiser le flux d'authentification. Cela présente plusieurs avantages :
Si un utilisateur est connecté avec plusieurs comptes, tels qu'un compte professionnel et un compte personnel, le système sélectionne automatiquement son compte professionnel au lieu d'afficher l'UI de sélection du compte.
Si un utilisateur n'est pas connecté à son compte Google, l'interface utilisateur de connexion remplira automatiquement la partie domaine de son adresse e-mail (ce qui signifie que l'utilisateur n'aura qu'à saisir
aliceau lieu dealice@example.com, par exemple).Si votre domaine Google Workspace est configuré pour utiliser un fournisseur d'authentification unique tiers, le système affiche cette page de connexion personnalisée au lieu de celle de Google.
Pour activer ce comportement, définissez la valeur de access_settings.oauth_settings.login_hint sur le nom de domaine de votre compte Google Workspace (par exemple, example.com). La propriété du domaine doit avoir été validée : vous ne pouvez pas utiliser de domaines DNS Internet arbitraires qui vous appartiennent. (Les domaines qui ont été ajoutés en tant que domaine principal ou secondaire Google Workspace sont validés et peuvent donc être utilisés ici.)
Si vous devez authentifier des utilisateurs en dehors du domaine, vous pouvez utiliser l'authentification programmatique.
Pour plus d'informations, consultez la documentation OpenID Connect.
Définir une page d'erreur "Accès refusé" personnalisée
| Champ | Valeur par défaut |
|---|---|
application_settings.access_denied_page_settings.access_denied_page_uri |
"" |
Vous pouvez définir une URL dans ce champ qui redirige les utilisateurs vers une page personnalisée au lieu de la page d'erreur IAP par défaut lorsque l'accès est refusé par une stratégie.
Vous pouvez également intégrer l'URL de dépannage avec cette fonctionnalité. Pour en savoir plus, consultez Activer l'URL de dépannage pour votre page d'erreur "Accès refusé" personnalisée.
Émettre des ID de maillage RCToken Cloud Service Mesh et Istio
| Champ | Valeur par défaut |
|---|---|
application_settings.csm_settings.rctoken_aud |
"" |
Si vous utilisez Istio sur GKE, vous pouvez configurer IAP pour produire un jeton RCToken compatible avec Istio. Si ce champ est défini sur une chaîne non vide, IAP ajoute un en-tête HTTP Ingress-Authorization contenant un jeton RCToken. La revendication aud est définie sur la valeur du champ.
S'authentifie avec Identity Platform.
| Champ | Valeur par défaut |
|---|---|
access_settings.gcip_settings |
null |
Par défaut, IAP utilise le système d'identité intégré de Google. Si ce champ est défini, IAP utilise Identity Platform à la place pour authentifier les utilisateurs.
Comprendre l'héritage des paramètres dans la hiérarchie des ressources
IAP évalue toujours les requêtes pour une version de service Web spécifique. Ce type de ressource se trouve au niveau le plus bas de la hiérarchie des ressources, qui se présente comme suit :
- Organization
- Folder
- Project
- All web services
- Web service type
- Web service
- Web service version
Pour déterminer les paramètres à appliquer à une version de service Web, IAP commence par un ensemble de valeurs par défaut, puis parcourt la hiérarchie de haut en bas. Les paramètres sont appliqués tels qu'ils sont trouvés. Par conséquent, les valeurs définies à un niveau inférieur remplacent celles définies à un niveau supérieur.
Par exemple, si access_settings.cors_settings.allow_http_options est défini sur true au niveau du projet, mais sur false au niveau du service, la valeur effective est false.
Pour en savoir plus sur la hiérarchie des ressources IAP, consultez la section Ressources et autorisations.