Utiliser des paramètres de requête et des en-têtes

Cette page explique comment utiliser les paramètres de requête et les en-têtes Identity-Aware Proxy (IAP) pour améliorer l'interface utilisateur de l'application de votre application ou fournir des options de dépannage.

Paramètres de requête

Vous pouvez effectuer certaines actions en définissant le paramètre gcp-iap-mode dans la chaîne de requête de l'URL. Ces paramètres de requête peuvent être inclus avec n'importe quel chemin d'accès, et pas seulement avec l'URL racine.

Transmettre l'identité de l'utilisateur

La transmission de la valeur de paramètre suivante renvoie un dictionnaire JSON avec l'identité de l'utilisateur :

YOUR_APP_URL?gcp-iap-mode=IDENTITY

Cette option est disponible à partir de n'importe quel compte Google connecté, même si le compte n'a pas accès à l'application. Vous pouvez accéder directement à l'URL, ou vous avez la possibilité de la référencer pour envoyer des requêtes à l'URL. Voici un exemple de valeur renvoyée par l'URL :

{"email":"accounts.google.com:USER_EMAIL","sub":"accounts.google.com:118133858486581853996"}

Cette valeur peut s'avérer utile pour personnaliser votre application, par exemple en affichant le nom de l'utilisateur, pour transmettre l'identité à une autre page ou pour enregistrer des données d'utilisation dans des journaux.

Effacer la connexion de l'utilisateur

La valeur du paramètre suivant efface le cookie de connexion IAP :

YOUR_APP_URL?gcp-iap-mode=CLEAR_LOGIN_COOKIE

La transmission de ce paramètre efface tous les cookies émis par IAP pour votre application et redirige le navigateur vers YOUR_APP_URL. Si votre navigateur a une session valide avec le fournisseur d'identité (IdP) de votre application, une connexion silencieuse peut se produire lorsqu'un seul compte est utilisé avec le fournisseur d'identité. Si plusieurs comptes sont utilisés, une page de sélection de compte s'ouvre pour permettre le changement de profil.

Tester la validation de jetons JWT

IAP vous aide à tester votre logique de validation de jetons JWT en transmettant des jetons JWT non valides à des pages Web de test.

Par exemple, IAP transmet un jeton JWT avec une signature non valide pour toute requête contenant les paramètres de requête gcp-iap-mode=SECURE_TOKEN_TEST et iap-secure-token-test-type=SIGNATURE. Votre logique de validation devrait intercepter la signature non valide.

Vous pouvez tester votre logique de validation sur l'un des scénarios suivants en ajoutant les paramètres appropriés à la requête.

Paramètres Scénario de test
?gcp-iap-mode=SECURE_TOKEN_TEST&iap-secure-token-test-type=NOT_SET Un jeton JWT valide.
?gcp-iap-mode=SECURE_TOKEN_TEST&iap-secure-token-test-type=FUTURE_ISSUE La date d'émission est définie dans le futur.
?gcp-iap-mode=SECURE_TOKEN_TEST&iap-secure-token-test-type=PAST_EXPIRATION La date d'expiration est définie dans le passé.
?gcp-iap-mode=SECURE_TOKEN_TEST&iap-secure-token-test-type=ISSUER Émetteur incorrect.
?gcp-iap-mode=SECURE_TOKEN_TEST&iap-secure-token-test-type=AUDIENCE Cible incorrecte.
?gcp-iap-mode=SECURE_TOKEN_TEST&iap-secure-token-test-type=SIGNATURE Signé par un signataire incorrect.

En-têtes spéciaux

Détecter les réponses d'IAP

Lorsqu'IAP génère une réponse HTTP, par exemple lorsqu'il refuse un accès (403) ou demande une authentification (302 ou 401), il ajoute l'en-tête de réponse HTTP X-Goog-IAP-Generated-Responsee. En détectant la présence de cet en-tête, vous pouvez effectuer les actions suivantes :

  • Distinguer les messages d'erreur générés par IAP et les messages d'erreur générés par votre application

  • Détecter les cas où des identifiants IAP doivent être ajoutées à une requête