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-Response
e. 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