Set one application policy and exclude JWTs
05Applications choose consistent encoding behavior, multiple signatures must agree, and JWTs cannot use the unencoded option.
JWTs MUST NOT use b64:false. A generic JWS application’s ability to use the option does not make it legal for JWTs.
Source for this drawing: RFC 7797 · Read RFC section 7 ↗
New to this? Start hereA quick picture + helpful background
A message needs an address.
Think of a packet as a small addressed envelope. Devices pass it onward; transport protocols decide what delivery promises an application gets.
Helpful first, if these ideas are unfamiliar
These pictures are analogies to help you learn. The linked RFC explains the actual rules.
Terms in this drawing
- JWT
- JSON Web Token: a claims format with its own restrictions.
- Application profile
- Rules defining how a protocol option is used in a particular context.
- Multiple signatures
- More than one signature or MAC protecting a shared JWS payload.
Related RFCs and changes
“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.
An optional JWS feature is not automatically a valid JWT feature.
- Application profiles should specify whether false b64 is used in each context. Dynamically varying it for different payloads in the same context is NOT RECOMMENDED.
- Explicit true is legal, but omitting b64 for that default behavior is RECOMMENDED. If the parameter is present, its protection and critical-marker requirements still apply.
- If a JWS has multiple signatures or MACs, b64 MUST have the same value for all of them.
- For interoperability, JSON Web Tokens MUST NOT use b64:false. RFC7797 formally Updates RFC7519 for this restriction; it does not formally update RFC7515.
A general JWS is not necessarily a JWT. This guide illustrates the option for a suitable non-JWT application context, not a change to existing token-validation rules. All normal JWS algorithm, key, validation and application-policy requirements still apply. Preserving bytes, parsing correctly and checking critical extensions remain necessary whether the payload is attached or detached.
Read the RFC section ↗