Using special URLs and headers

This page describes how to use Identity-Aware Proxy (IAP) special URLs and headers to enhance your application UI or provide troubleshooting options.

Special URLs

Passing user identity

The following URL returns a JSON dictionary with the user's identity:


This URL is available from any signed-in Google account, even if the account doesn't have access to the app. You can navigate to the URL directly or you can reference it to make requests to the URL. Following is an example value returned by the URL:


You might find this value useful to personalize your app, such as by displaying the user's name, to pass identity to another page, or capture usage data in logs.

Clearing user login

The following URL clears the IAP login cookie:


By default, this URL is linked from the 403 page to help users who might be signed in to the wrong place. You can also provide the URL to a user who gets stuck, or use it to enable profile switching in your application.

Testing JWT verification

IAP helps you test your JWT verification logic by passing invalid JWTs to testing webpages.

For example, IAP passes a JWT with an invalid signature for any request to a webpage that ends with /_gcp_iap/secure_token_test/SIGNATURE. Your verification logic should catch the invalid signature.

Create a webpage for each of the following scenarios you want to test for under DOMAIN/FILE_PATH/_gcp_iap/secure_token_test/TEST_TYPE.

URL Test case
/_gcp_iap/secure_token_test/NOT_SET A valid JWT.
/_gcp_iap/secure_token_test/FUTURE_ISSUE Issue date is set in the future.
/_gcp_iap/secure_token_test/PAST_EXPIRATION Expiration date is set in the past.
/_gcp_iap/secure_token_test/ISSUER Incorrect issuer.
/_gcp_iap/secure_token_test/AUDIENCE Incorrect audience.
/_gcp_iap/secure_token_test/SIGNATURE Signed using an incorrect signer.

Special headers

Detecting responses from IAP

When IAP generates an HTTP response, such as when it denies access (403) or requests authentication (302 or 401), it adds the X-Goog-IAP-Generated-Response HTTP response header. By detecting the presence of this header, you can perform actions like:

  • Distinguish between error messages generated by IAP and error messages generated by your application.

  • Detect when IAP credentials need to be added to a request.