Ce document contient des questions fréquentes sur Identity-Aware Proxy (IAP).
Quelles applications puis-je sécuriser avec IAP ?
Les produits intégrés peuvent être utilisés 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)
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. Les méthodes JavaScript ne joignent pas les cookies par défaut.
Les différentes méthodes de requête nécessitent des approches différentes:
- Pour
XMLHttpRequest
, définissezwithCredentials
surtrue
. - Pour l'API Fetch, définissez
credentials
surinclude
ousame-origin
.
Pour gérer les erreurs liées aux sessions, consultez la section Gérer les sessions IAP.
Pourquoi reçois-je un HTTP 401 Unauthorized
au lieu d'un 302 Redirect
?
IAP n'envoie un 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 prise en charge des 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. À la place, IAP renvoie un code d'état 401 Unauthorized
.
Pour les requêtes POST envoyé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: Bearer
- Cookies valides (voir la section 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 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 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 ?
L'IAP utilise les domaines appartenant à Google suivants:
tunnel.cloudproxy.app
mtls.tunnel.cloudproxy.app
(lorsque l'accès basé sur des certificats est activé)
Pourquoi Server Error
s'affiche-t-il ?
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 de 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 de la plage 35.235.240.0/20
.
Pourquoi des erreurs internes du serveur s'affichent-elles de manière intermittente ?
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. Implémentez un intervalle exponentiel entre les tentatives.
Comment résoudre les erreurs liées à un quota dépassé (code d'erreur 429) ?
Le code d'erreur 429 se produit lorsque votre application dépasse les limites de requête de l'IAP. Le service applique des quotas distincts:
- Requêtes basées sur le navigateur:360 000 requêtes par minute et par projet
- Requêtes programmatiques:360 000 requêtes par minute et par projet
Une requête programmatique inclut un en-tête AUTHORIZATION
ou PROXY-AUTHORIZATION
, mais pas de 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 d'autres chemins réseau qui contournent l'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'Google Cloud assistance pour demander une augmentation de quota si la croissance organique est à l'origine du problème.
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 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 d'API pour vérifier les paramètres (GET pour Compute Engine, GET pour App Engine) et les réinitialiser 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 des règles de réécriture de chemin d'accès) | Échec de la redirection OAuth | Les règles de réécriture de chemin de votre équilibreur de charge empêchent l'OAuth d'aboutir. 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 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 configuré de manière incorrecte | 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 d'API pour vérifier les paramètres (GET pour Compute Engine, GET pour App Engine) et les réinitialiser avec PATCH . |
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 leurs navigateurs vers les versions actuelles. Pour en savoir plus sur les exigences de connexion, consultez la section Limiter l'accès aux ressources. |
52 | Non-correspondance du nom d'hôte/du 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) | Non-correspondance du nom d'hôte/du certificat SSL | L'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 conseils, consultez Créer une entrée de mappage de certificat. |
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. |
429 | Quota de requêtes dépassé | Vous avez atteint la limite de requêtes (360 000 requêtes/min pour chaque type de requête). Envisagez de répartir les charges de travail sur plusieurs projets, d'implémenter le débit limité des requêtes côté client ou de contacter l'assistance pour demander une augmentation de quota si nécessaire pour une croissance légitime. |
551 | Accès aux achats intégrés activé à plusieurs endroits | Vous ne pouvez pas activer l'IAP à la fois pour la règle de transfert et le service de backend. Désactivez-la dans un emplacement 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 en savoir plus, consultez la section Limites des pools de travailleurs. |
705 | ID client OAuth manquant pour l'identité des collaborateurs | Suivez la procédure de configuration complète: commencez par créer un ID client OAuth, puis modifiez vos paramètres d'IAP. |
708 | Nom du pool d'employés non valide | Vérifiez que votre pool de travailleurs 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 votre processus de 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 s'exécute. |
4047 | Instance inexistante ou 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 votre erreur ne figure pas sur cette page, contactez le service client Cloud. Décrivez-lui l'erreur rencontrée et la réponse obtenue lors d'un appel GET
à l'API. Assurez-vous de supprimer votre code secret client de la réponse.