Dépannage et questions fréquentes

Ce document fournit des conseils de dépannage et des réponses aux questions fréquentes sur Identity-Aware Proxy (IAP).

Résoudre les problèmes de connexion Web

Si vous rencontrez des erreurs lors de la connexion ou de l'accès à votre application, l'inspection du trafic réseau de votre navigateur peut vous aider à diagnostiquer le problème.

Inspecter le trafic réseau

  1. Ouvrez une nouvelle fenêtre de navigation privée (Chrome) ou privée dans votre navigateur.
  2. Ouvrez les outils pour les développeurs de votre navigateur et accédez à l'onglet Réseau.
  3. Sélectionnez l'option Conserver le journal pour capturer toutes les requêtes lors des redirections.
  4. Reproduisez le problème en accédant à l'URL où vous rencontrez des problèmes.
  5. Examinez les requêtes réseau dans le journal pour identifier l'emplacement de l'erreur.

Analyser le trafic réseau

Lorsque vous accédez à une application sécurisée par IAP, vous êtes redirigé vers la page de connexion. Une fois l'authentification réussie auprès du fournisseur d'identité, une requête est envoyée au domaine https://iap.googleapis.com pour terminer l'authentification avant qu'un cookie IAP ne soit émis et que vous ne soyez redirigé vers l'application.

Vous pouvez résoudre les erreurs en fonction du domaine dans lequel elles se produisent :

  • Erreurs sur iap.googleapis.com : si une erreur se produit sur le iap.googleapis.com domaine, un message d'erreur détaillé est affiché sur la page. Si l'erreur est liée à vos paramètres IAP, par exemple à des problèmes de client OAuth, ajustez vos paramètres. Si vous rencontrez des erreurs client que vous ne savez pas comment résoudre ou si vous voyez des erreurs de serveur, ouvrez un Google Cloud ticket d'assistance.
  • Erreurs sur le domaine de votre application : si une erreur se produit après que vous avez été redirigé vers le domaine de votre application sécurisée par IAP, un code d'erreur s'affiche. Reportez-vous à la section Codes d'erreur pour en savoir plus sur les erreurs courantes. Si vous ne parvenez pas à résoudre le problème, ouvrez un Google Cloud ticket d'assistance.

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 ;
  • les instances Compute Engine avec des services de backend d'équilibrage de charge HTTP(S) ;
  • les conteneurs Google Kubernetes Engine ;
  • les 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 à la session, consultez la page Gérer les sessions IAP.

Pourquoi est-ce que je reçois une erreur HTTP 401 Unauthorized au lieu d'une 302 Redirect ?

IAP n'envoie une 302 Redirect que 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. Au lieu de cela, IAP renvoie 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 des conseils, 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 ?

IAP utilise les domaines appartenant à Google suivants :

Pourquoi est-ce que je reçois une erreur Server Error ?

Si vous voyez le message suivant :

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 atteindre 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 est-ce que je reçois des erreurs de serveur internes intermittentes ?

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 corriger les erreurs Identity Platform (code d'erreur 38)

Le code d'erreur 38 indique que l'URL d'authentification Identity Platform pour votre identité externe n'est pas configurée correctement dans IAP.

Pour trouver l'URL, procédez comme suit :

  1. Accédez à la page IAP.

    Accéder à IAP

  2. Cliquez sur l'onglet Applications.

  3. Dans la colonne Ressource, recherchez votre application et cochez la case.

  4. Dans URL d'authentification ou URL de connexion, assurez-vous que l'URL est correcte.

Pour savoir comment utiliser des identités externes avec IAP, consultez Authentifier les utilisateurs avec des identités externes.

Comment résoudre les erreurs de dépassement de quota (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 un 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 AUTHORIZATION ou PROXY-AUTHORIZATION en-tête 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 collectivement à toutes les ressources protégées par IAP dans votre projet.

Si vous rencontrez des erreurs liées au quota, essayez les solutions suivantes :

  • Évitez les tests de charge en production. Utilisez plutôt des chemins réseau alternatifs qui contournent IAP.
  • Pour le trafic de service à service, mettez en œuvre un intervalle exponentiel entre les tentatives afin de gérer les erreurs 429 de manière fluide.
  • Répartissez les applications à fort trafic sur plusieurs projets.
  • Utilisez Apigee ou des solutions de passerelle API similaires pour les applications basées sur des API.
  • Contactez l'Google Cloud assistance pour augmenter votre quota si le problème est dû à une croissance organique.

Problèmes de connexion ou comportement inattendu avec IAP à l'aide d'Identity Platform

Lorsque vous utilisez un fournisseur d'identité tiers avec Identity Platform, des données de revendication volumineuses dans le jeton d'ID peuvent entraîner le dépassement des limites de taille du navigateur par le cookie de session IAP (généralement autour de 4 Ko). IAP stocke les informations de session, y compris ces revendications, dans les cookies du navigateur.

Le dépassement de la limite de taille des cookies de session peut entraîner des échecs de connexion ou des boucles de connexion infinies. Pour éviter ces problèmes, envisagez les actions suivantes :

  • Réduire les revendications : configurez votre fournisseur d'identité tiers pour qu'il n'envoie que les revendications essentielles à Identity Platform. Réduisez la taille et le nombre de revendications incluses dans le jeton.

  • Inspecter la taille des cookies : utilisez les outils pour les développeurs du navigateur pour vérifier la taille des cookies définis sur le domaine de votre application. Recherchez les avertissements liés à la taille des cookies, en particulier pour les cookies liés à IAP.

  • Tester les revendications minimales : configurez temporairement le fournisseur d'identité pour qu'il envoie le plus petit ensemble de revendications possible. Si cela résout le problème, cela confirme que la limitation de la taille des cookies est la cause première.

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 vide Accédez à la page Identifiants pour vérifier votre ID client et votre code secret. S'ils semblent corrects, mais ne fonctionnent pas, utilisez les méthodes 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 de 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 de votre équilibreur de charge utilisent des ID client OAuth identiques. Vous pouvez mettre à jour cette valeur à l'aide de la commande gcloud compute backend-services update.
9 (avec règles de routage de chemin) Échec de la redirection OAuth Créez des variantes de règles de chemin pour les deux versions de chaque chemin (avec et sans barre oblique finale) et dirigez-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 ID client et votre code secret sur la page Identifiants. S'ils semblent corrects, mais ne fonctionnent pas, utilisez les méthodes API pour vérifier les paramètres (GET pour Compute Engine, GET pour App Engine) et réinitialisez-les avec PATCH.
13 Jeton OIDC incorrect Accédez à la page Identifiants pour vérifier que votre ID client n'a pas été supprimé ou modifié de manière incorrecte.
51 Le navigateur ne prend pas en charge 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 obtenir des conseils, consultez Restreindre l'accès aux ressources.
52 (avec 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 des conseils, consultez Créer une entrée de mappage de certificat.
53 Nom d'hôte non autorisé dans les domaines 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, de mettre en œuvre une limitation des requêtes côté client ou de contacter l'assistance pour augmenter votre quota si cela est nécessaire pour une croissance légitime.
551 IAP activé à 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 au fournisseur de pool d'employés Configurez exactement un fournisseur pour votre pool d'employés. Consultez les limites des pools d'employés pour connaître les exigences détaillées.
705 ID client OAuth manquant pour l'identité des employés Suivez l'intégralité du processus de configuration : 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 format correct : 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 sur 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 le problème persiste, 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 via la page IAP, et 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 terminée.

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