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.
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
issclaim (client_id).Traditionally, Authorization Server (AS) implementations follow a token endpoint processing model in which:
It is currently unclear:
jwt-bearergrant is expected to be implemented.isscorresponds to a valid but incorrectly configuredclient_id, it is unclear whether the appropriate error should beinvalid_clientorinvalid_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:
invalid_clientvsinvalid_grant) when failures occur during JWT Bearer token request processing, particularly when failures occur before or during grant validation.