Skip to content

New connector: Google Cloud Identity-Aware Proxy (IAP) JWT authentication and group membership integration #4567

@alessandro-verzicco

Description

@alessandro-verzicco

Preflight Checklist

  • I agree to follow the Code of Conduct that this project adheres to.
  • I have searched the issue tracker for an issue that matches the one I want to file, without success.

Problem Description

Dex currently supports various OIDC connectors, including Google, but does not natively support Google Cloud Identity-Aware Proxy (IAP) JWT authentication. Google Cloud IAP issues JWT tokens that are signed by Google; these include user identity and can be used for application authentication and authorization. However, Dex does not provide a connector able to:

  • Validate and verify IAP JWT signatures against Google's JWKS endpoint
  • Retrieve user group memberships from the Google Workspace Directory API in the context of IAP-identified users

This makes it difficult to integrate Dex in setups where authentication flows rely on Google Cloud IAP. Existing connectors (OIDC, Google, generic JWT) are not sufficient to address this, and there is no established workaround.

Proposed Solution

I propose the addition of a new connector for Google Cloud Identity-Aware Proxy (IAP). Main features would include:

  • The connector should accept JWT tokens as provided by Google Cloud IAP
  • The connector must verify the signature of the JWT against Google's JWKS endpoint (https://www.googleapis.com/oauth2/v3/certs), honor claims such as email, sub, iss, and validate expiration
  • After identity extraction, the connector will use Google Workspace Directory API to retrieve group memberships for the authenticated user, similar to what the Google connector does
  • Mapping of JWT claims to Dex identity fields and group claims should be configurable

I have already implemented and tested such a connector in a real-world deployment, and I'm willing to submit a PR for review.

Alternatives Considered

Additional Information

I am happy to take feedback, incorporate suggestions from maintainers, and contribute both code and tests. Please advise on design or review workflow.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions