Skip to content

Implicit client authentication in JWT bearer flow #339

@sfnuser

Description

@sfnuser

Problem description
The JWT Bearer flow treats the JWT authorization grant assertion as implicit client authentication, based on successful signature validation using the public key associated with the iss claim (client_id).

Traditionally, Authorization Server (AS) implementations follow a token endpoint processing model in which:

  • the client is treated as a confidential client, and
  • explicit client authentication (e.g. private_key_jwt, mTLS, or client_secret) is performed prior to grant evaluation

It is currently unclear:

  • whether there are known AS implementations that support this JWT Bearer flow — where the authorization grant assertion itself serves as client authentication — without requiring customization or non-standard extensions. In practice, the token endpoint is shared across multiple grant types (e.g. authorization_code, jwt-bearer, client_credentials, CIBA), and AS implementations typically apply authentication, policy, audit, and logging uniformly at the token endpoint level. It is therefore unclear how processing the grant prior to client authentication only for the jwt-bearer grant is expected to be implemented.
  • how such implementations handle token endpoint processing for unauthenticated or malicious requests;
  • and how error handling is achieved consistently in this model. For e.g, when an iss corresponds to a valid but incorrectly configured client_id, it is unclear whether the appropriate error should be invalid_client or invalid_grant, and whether this behavior is intentional or implementation-dependent.

This lack of clarity may lead to inconsistent implementations & interoperability issues

Expected action
Provide additional clarification or guidance in the documentation to address the practical implementation aspects of the JWT Bearer flow, including:

  • Document known or recommended implementation patterns for Authorization Servers, including whether explicit client authentication in addition to the JWT Bearer grant is acceptable, optional, or discouraged in CAMARA-compliant deployments, with the goal of supporting interoperability across common AS products.
  • May have to acknowledge that JWT Bearer flows require the AS to process untrusted input at the token endpoint. Should we provide some recommendations (e.g. rate limiting, request size limits, algorithm restrictions, early rejection rules) to mitigate denial-of-service or resource exhaustion risks?
  • Clarify expected error semantics (invalid_client vs invalid_grant) when failures occur during JWT Bearer token request processing, particularly when failures occur before or during grant validation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions