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
- Ouvrez une nouvelle fenêtre de navigation privée dans votre navigateur.
- Ouvrez les outils pour les développeurs de votre navigateur et accédez à l'onglet Réseau.
- Sélectionnez l'option Conserver le journal pour capturer toutes les requêtes lors des redirections.
- Reproduisez le problème en accédant à l'URL où vous rencontrez des problèmes.
- Examinez les requêtes réseau dans le journal pour identifier l'origine 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 problèmes en fonction du domaine dans lequel l'erreur se produit :
- Erreurs sur
iap.googleapis.com: si une erreur se produit sur le domaineiap.googleapis.com, un message d'erreur détaillé s'affiche 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 du serveur, ouvrez une demande d'assistanceGoogle Cloud . - Erreurs sur le domaine de votre application : si une erreur se produit après votre redirection vers le domaine de votre application sécurisée par IAP, un code d'erreur s'affiche. Consultez la section Codes d'erreur pour en savoir plus sur les erreurs courantes. Si vous ne parvenez pas à résoudre le problème, ouvrez une demande d'assistanceGoogle Cloud .
Quelles applications puis-je sécuriser avec IAP ?
IAP peut être utilisé avec les éléments suivants :
Applications de l'environnement standard App Engine et de l'environnement 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 aucun service de backend d'équilibrage de charge
IAP ne peut pas être utilisé 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 sous certaines conditions, un
#peut être ajouté à 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 associés à vos requêtes. Les méthodes JavaScript n'associent pas de cookies par défaut.
Les différentes méthodes de requête nécessitent des approches différentes :
Pour
XMLHttpRequest, définissezwithCredentialssurtrue.Pour l'API Fetch, définissez
credentialssurincludeousame-origin.
Pourquoi est-ce que je reçois un
HTTP 401 Unauthorizedau lieu d'un302 Redirect?IAP n'envoie un code
302 Redirectque lorsque votre client est configuré pour gérer les redirections.Ajoutez
HTTP Accept="text/html,*/*"aux en-têtes de votre 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 redirection en réponse aux requêtes POST. À la place, 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 :
Un jeton d'ID dans un en-tête
Authorization: BearerCookies valides (voir Actualiser les sessions)
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 pourrez pas modifier les autorisations IAM.
Comment puis-je empêcher les utilisateurs disposant du rôle "Propriétaire" d'utiliser IAP pour TCP ?
Idéalement, limitez l'utilisation du rôle Propriétaire (
roles/owner) au profit d'autorisations plus précises. Pour obtenir des conseils, consultez Bonnes pratiques IAM.Si ce 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 suivants appartenant à Google :tunnel.cloudproxy.appmtls.tunnel.cloudproxy.app(lorsque l'accès basé sur des certificats est activé)
Pourquoi est-ce que je reçois
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/22et35.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 de la plage
35.235.240.0/20.Pourquoi est-ce que je reçois des erreurs internes du serveur par intermittence ?
Les messages tels que
An internal server error occurred while authorizing your request. Error code Xindiquent des défaillances du backend.Les codes d'erreur
1,30,62,63,64ou703reflè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
38indique 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 :
Accédez à la page IAP.
Cliquez sur l'onglet Applications.
Dans la colonne Ressource, recherchez votre application et cochez la case correspondante.
Dans URL d'authentification ou URL de connexion, vérifiez 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 inclut un en-tête
AUTHORIZATIONouPROXY-AUTHORIZATIONet 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 aux quotas, essayez les solutions suivantes :
Évitez d'effectuer des tests de charge en production. Utilisez plutôt d'autres chemins réseau qui contournent IAP.
Pour le trafic de service à service, implémentez un intervalle exponentiel entre les tentatives pour gérer correctement les erreurs 429.
Répartissez les applications à fort trafic sur plusieurs projets.
Utilisez Apigee ou des solutions API Gateway similaires pour les applications basées sur des API.
Contactez l'assistanceGoogle Cloud pour augmenter les quotas si le problème est dû à une croissance organique.
Problèmes de connexion ou comportement inattendu avec IAP utilisant Identity Platform
Lorsque vous utilisez un fournisseur d'identité (IdP) tiers avec Identity Platform, les données de revendications volumineuses dans le jeton d'ID peuvent entraîner le dépassement des limites de taille du navigateur (généralement environ 4 Ko) par le cookie de session IAP. 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, vous pouvez prendre les mesures suivantes :
Réduire les revendications : configurez votre IdP 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 l'IdP pour qu'il envoie l'ensemble de revendications le plus petit possible. Si cela résout le problème, cela confirme que la limitation de la taille des cookies en est la cause.
Pourquoi est-ce que je reçois une erreur HTTP 502 avec le message "ID client/codes secrets OAuth du compte Google vides" ?
Si vous accédez à votre application sécurisée par IAP et que vous recevez une erreur
HTTP 502 Bad Gatewayavec le messageEmpty Google Account OAuth client ID(s)/secret(s)., cela signifie qu'IAP ne trouve pas d'identifiants OAuth pour votre application.Cette erreur se produit généralement dans les scénarios suivants :
- Le projet n'appartient pas à une organisation : le client OAuth par défaut géré par Google n'est disponible que pour les projets appartenant à une organisationGoogle Cloud . Si votre projet n'appartient pas à une organisation, vous devez configurer des identifiants OAuth personnalisés pour App Engine ou pour votre plate-forme respective.
- Les identifiants OAuth ont été supprimés ou n'ont pas été configurés : si vous avez déjà configuré des identifiants OAuth personnalisés et que le client OAuth a été supprimé, recréez les identifiants sur la page Identifiants et mettez à jour vos paramètres IAP comme décrit dans Utiliser des clients OAuth personnalisés avec IAP.
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, HTTP 502 ID client ou code secret OAuth vide ( Empty Google Account OAuth client ID(s)/secret(s).)Si votre projet n'appartient pas à une organisation, configurez des identifiants OAuth personnalisés. Sinon, accédez à la page Identifiants pour vérifier votre ID client et votre code secret, ou vérifiez les paramètres à l'aide des méthodes API ( GETpour Compute Engine,GETpour App Engine) et réinitialisez-les avecPATCH. Pour en savoir plus, consultez Erreur HTTP 502.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 des 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 l'exécution d'OAuth. Assurez-vous que tous les backends derrière votre équilibreur de charge utilisent des ID client OAuth identiques. Vous pouvez modifier ce paramètre à 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 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. Si elles semblent correctes, mais ne fonctionnent pas, utilisez les méthodes d'API pour vérifier les paramètres ( GETpour Compute Engine,GETpour App Engine) et les réinitialiser avecPATCH.13 Jeton OIDC non valide 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 n'est pas compatible avec le regroupement de connexions Demandez aux utilisateurs finaux de mettre à jour leur navigateur vers la version actuelle. Pour en savoir plus sur les exigences de connexion, consultez Limiter 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 entrée de mappage de certificat principale) Incompatibilité entre le nom d'hôte et le certificat SSL IAP n'est pas compatible avec les entrées de mappage de certificats principaux. Utilisez des entrées distinctes pour mapper chaque certificat au nom d'hôte approprié. Pour obtenir des instructions, consultez Créer une entrée de mappage de certificats. 53 Le nom d'hôte ne figure 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 une limitation des requêtes côté client ou de contacter l'assistance pour augmenter les quotas si 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 dans l'un des emplacements 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 un seul 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é de personnel 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 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 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 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 d'utilisateur de tunnel vous est attribué pour la ressource sur 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 qu'elle a terminé sa séquence de démarrage. 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 que vous obtenez d'un appel
GETà l'API. Veillez à supprimer votre code secret du client de la réponse.