Questions fréquentes et dépannage

Ce document contient des questions fréquentes à propos d'Identity-Aware Proxy (IAP).

Quelles applications puis-je sécuriser avec IAP ?

IAP peut être utilisé avec les éléments suivants :

  • les applications dans les environnements standard et flexible App Engine ;
  • Instances Compute Engine avec des services de backend d'équilibrage de charge HTTP(S)
  • Les conteneurs Google Kubernetes Engine
  • Applications Cloud Run avec des services de backend d'équilibrage de charge HTTP(S)
  • Cloud Run en un clic et sans services de backend d'équilibrage de charge

IAP n'est pas compatible avec Cloud CDN.

Pourquoi y a-t-il un symbole "#" à la fin de mon URL après la connexion à mon application ?

Dans certains navigateurs et dans certaines conditions, un symbole # peut s'ajouter à l'URL après l'authentification. Ceci est normal et ne pose aucun problème lors de la connexion.

Pourquoi mes requêtes échouent-elles et renvoient-elles 405 Method Not Allowed ?

Cela se produit généralement lorsque les cookies ne sont pas joints à vos requêtes. Par défaut, les méthodes JavaScript ne joignent pas les cookies.

Différentes méthodes de requête nécessitent des approches différentes :

  • Pour XMLHttpRequest, définissez withCredentials sur true
  • Pour l'API Fetch, définissez credentials sur include ou same-origin.

Pour gérer les erreurs liées aux sessions, consultez Gérer les sessions IAP.

Pourquoi ai-je reçu un HTTP 401 Unauthorized au lieu d'un 302 Redirect ?

IAP envoie un 302 Redirect uniquement lorsque votre client est configuré pour gérer les redirections.

Ajoutez HTTP Accept="text/html,*/*" à vos en-têtes de requête pour indiquer la compatibilité avec les redirections.

Pourquoi les requêtes POST ne déclenchent-elles pas de redirections ?

Les navigateurs n'effectuent pas de redirections en réponse aux requêtes POST. IAP renvoie plutôt un code d'état 401 Unauthorized.

Pour les requêtes POST adressées à des ressources sécurisées par IAP, incluez l'un des éléments suivants :

Puis-je utiliser IAP si j'ai désactivé l'API ?

Oui. Les ressources sécurisées par IAP restent accessibles lorsque l'API est désactivée, mais vous ne pouvez pas modifier les autorisations IAM.

Comment puis-je empêcher les utilisateurs disposant du rôle "Propriétaire" d'utiliser IAP pour TCP ?

Dans l'idéal, limitez l'utilisation du rôle Propriétaire (roles/owner) au profit d'autorisations plus précises. Pour obtenir de l'aide, consultez les bonnes pratiques IAM.

Si cela n'est pas possible, vous pouvez bloquer IAP pour TCP à l'aide de règles de pare-feu.

Quel domaine utilise IAP pour TCP ?

L'IAP utilise les domaines Google suivants :

Pourquoi ai-je reçu Server Error ?

Si vous voyez :

The server encountered a temporary error and could not complete your request. Please try again in 30 seconds.

Il est possible que votre pare-feu bloque les adresses IP de l'équilibreur de charge.

Vérifiez que votre pare-feu autorise le trafic provenant de 130.211.0.0/22 et 35.191.0.0/16. Si ces adresses IP ne peuvent pas accéder à votre backend, vos applications seront inaccessibles.

Pour les connexions TCP IAP à des VM spécifiques, assurez-vous également que la VM accepte les connexions provenant de la plage 35.235.240.0/20.

Pourquoi des erreurs internes du serveur s'affichent-elles par intermittence ?

Les messages tels que An internal server error occurred while authorizing your request. Error code X indiquent des échecs de backend.

Les codes d'erreur 1, 30, 62, 63, 64 ou 703 reflètent généralement des problèmes temporaires. Mettez en œuvre un intervalle exponentiel entre les tentatives.

Comment résoudre les erreurs de quota dépassé (code d'erreur 429) ?

Le code d'erreur 429 se produit lorsque votre application dépasse les limites de requêtes d'IAP. Le service applique des quotas distincts :

  • Requêtes basées sur le navigateur : 360 000 par minute et par projet
  • Requêtes programmatiques : 360 000 par minute et par projet

Une requête programmatique est une requête qui inclut un en-tête AUTHORIZATION ou PROXY-AUTHORIZATION et aucun cookie IAP. Toutes les autres requêtes (y compris celles sans identifiants) sont considérées comme des requêtes de navigateur.

Ces limites s'appliquent de façon collective à toutes les ressources protégées par IAP de votre projet.

Si vous rencontrez des erreurs liées aux quotas, essayez les solutions suivantes :

  • Évitez les tests de charge en production. Utilisez des chemins réseau alternatifs qui contournent IAP.
  • Pour le trafic de service à service, implémentez un intervalle exponentiel entre les tentatives pour gérer les erreurs 429 de manière élégante.
  • Distribuer les applications à fort trafic sur plusieurs projets
  • Utiliser Apigee ou des solutions de passerelle API similaires pour les applications basées sur des API
  • Contactez l'assistanceGoogle Cloud pour augmenter votre quota si le problème est dû à une croissance naturelle.

Codes d'erreur

Le tableau suivant répertorie les codes d'erreur et les messages courants qui s'affichent lors de la configuration et de l'utilisation d'IAP.

Code d'erreur Description Dépannage
7 ID client ou code secret OAuth vides Accédez à la page Identifiants pour vérifier votre ID client et votre code secret. Si elles semblent correctes, mais ne fonctionnent pas, utilisez les méthodes d'API pour vérifier les paramètres (GET pour Compute Engine, GET pour App Engine) et réinitialisez-les avec PATCH.
9 Échec de la redirection OAuth Il s'agit d'une erreur interne qui a été enregistrée automatiquement. Aucune action n'est requise de votre part.
9 (avec règles de réécriture du chemin) Échec de la redirection OAuth Les règles de réécriture de chemin de votre équilibreur de charge empêchent la finalisation d'OAuth. Assurez-vous que tous les backends derrière votre équilibreur de charge utilisent des ID client OAuth identiques. Vous pouvez le modifier à l'aide de la commande gcloud compute backend-services update.
9 (avec des règles de routage de chemin d'accès) Échec de la redirection OAuth Créez des variantes de règles de chemin d'accès pour les deux versions de chaque chemin d'accès (avec et sans barre oblique finale) et redirigez-les vers le même backend. Par exemple, incluez des règles pour /path/ et /path.
11 ID client OAuth mal configuré Vérifiez votre code secret et votre ID client sur la page Identifiants. Si elles semblent correctes, mais ne fonctionnent pas, utilisez les méthodes d'API pour vérifier les paramètres (GET pour Compute Engine, GET pour App Engine) et réinitialisez-les avec PATCH.
13 Jeton OIDC non valide Accédez à la page Identifiants pour vérifier que votre ID client n'a pas été supprimé ni modifié de manière incorrecte.
51 Le navigateur n'est pas compatible avec le regroupement de connexions Demandez aux utilisateurs finaux de mettre à jour leur navigateur vers la dernière version. Pour en savoir plus sur les exigences de connexion, consultez Restreindre l'accès aux ressources.
52 Incompatibilité entre le nom d'hôte et le certificat SSL Votre administrateur système doit mettre à jour le certificat SSL pour qu'il corresponde au nom d'hôte. Pour en savoir plus, consultez Restreindre l'accès aux ressources.
52 (avec une entrée de mappage de certificat principal) Incompatibilité entre le nom d'hôte et le certificat SSL IAP n'est pas compatible avec les entrées de mappage de certificat principal. Utilisez des entrées distinctes pour mapper chaque certificat au nom d'hôte approprié. Pour obtenir de l'aide, consultez Créer une entrée de mappage de certificat.
53 Nom d'hôte ne figurant pas dans les domaines autorisés Un administrateur doit ajouter votre nom d'hôte à la liste des domaines autorisés. Pour obtenir des instructions, consultez Restreindre l'accès aux ressources.
253, HTTP 429 Quota de requêtes dépassé Vous avez atteint les limites de requêtes (360 000/min pour chaque type de requête). Envisagez de répartir les charges de travail sur plusieurs projets, d'implémenter la limitation des requêtes côté client ou de contacter l'assistance pour augmenter les quotas si cela est nécessaire pour une croissance légitime.
551 Achats via IAP activés à plusieurs endroits Vous ne pouvez pas activer IAP à la fois sur la règle de transfert et sur le service de backend. Désactivez-le à un seul endroit en suivant les instructions de la section Activer pour Compute Engine.
700, 701 Problèmes liés aux fournisseurs de pools d'employés Configurez un seul fournisseur pour votre pool d'employés. Pour connaître les exigences détaillées, consultez Limites des pools d'identités de charge de travail.
705 ID client OAuth manquant pour l'identité du personnel Suivez la procédure de configuration complète : commencez par créer un ID client OAuth, puis mettez à jour vos paramètres IAP.
708 Nom de pool d'employés non valide Vérifiez que votre pool d'employés existe et qu'il utilise le bon format : locations/global/workforcePools/WORKFORCE_POOL_ID.
4003 Problème de connexion ou de pare-feu Vérifiez que le processus de votre VM est en cours d'exécution et qu'il écoute le port attendu. Vérifiez également que vos règles de pare-feu autorisent les connexions sur ce port.
4010 Connexion fermée par la destination Réinitialisez la VM. Si les problèmes persistent, examinez auth.log (généralement dans /var/log/) ou utilisez la console série pour obtenir des diagnostics plus détaillés.
4033 Problème d'autorisation, d'existence ou d'état de la VM Vérifiez que le rôle "Utilisateur de tunnels" est attribué à la ressource sur la page IAP, et assurez-vous que la VM existe et est en cours d'exécution.
4047 L'instance n'existe pas ou est arrêtée Assurez-vous que votre VM est allumée et que sa séquence de démarrage est entièrement terminée.

Si vous ne parvenez pas à résoudre votre problème ou si l'erreur que vous rencontrez ne figure pas sur cette page, contactez Cloud Customer Care en décrivant l'erreur et la réponse obtenue lors d'un appel GET à l'API. Assurez-vous de supprimer votre code secret du client de la réponse.