Skip to content

Commit bdc125d

Browse files
authored
Merge pull request #202 from oauth-wg/tl/ttl-guidance
Add further guidance around ttl
2 parents 2159cc0 + 91ac824 commit bdc125d

File tree

1 file changed

+29
-7
lines changed

1 file changed

+29
-7
lines changed

draft-ietf-oauth-status-list.md

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -677,6 +677,8 @@ In the case of "application/statuslist+cwt", the response MUST be of type CWT an
677677

678678
The HTTP response SHOULD use gzip Content-Encoding as defined in {{RFC9110}}.
679679

680+
If caching-related HTTP headers are present in the HTTP response, Relying Parties SHOULD prioritize the exp and ttl claims within the Status List Token over the HTTP headers for determining caching behavior.
681+
680682
## Validation Rules
681683

682684
Upon receiving a Referenced Token, a Relying Party MUST first perform the validation of the Referenced Token - e.g., checking for expected attributes, valid signature, expiration time. The processing rules for JWT or CWT precede any evaluation of a Referenced Token's status. For example, if a token is evaluated as being expired through the "exp" (Expiration Time) but also has a status of 0x00 ("VALID"), the token is considered expired. As this is out of scope of this document, this validation is not be described here, but is expected to be done according to the format of the Referenced Token.
@@ -830,12 +832,33 @@ A Status List Token in the JWT format should follow the security considerations
830832

831833
A Status List Token in the CWT format should follow the security considerations of {{RFC8392}}.
832834

833-
## Cached and Stale Status Lists
835+
## Status List Caching
836+
837+
When fetching a Status List Token, Relying Parties must carefully evaluate how long a Status List is cached for. Collectively the `iat`, `exp` and `ttl` claims when present in a Status List Token communicate how long a Status List should be cached and should be considered valid for. The following diagram illustrates the relationship between these claims and how they are designed to influence caching.
834838

835-
When Relying Parties fetch the Status List, they need to be aware of its up-to-date status. The 'ttl' (time-to-live) claim
836-
in the Status List Token provides one mechanism for setting a maximum cache time for the fetched data. This property permits distribution of
837-
a Status List to a CDN or other distribution mechanism while giving guidance to consumers of the Status List on how often they need to fetch
838-
a fresh copy of the Status List even if that Status List is not expired.
839+
~~~ ascii-art
840+
Time of fetching
841+
842+
843+
│ Check for Check for Check for
844+
│ updates updates updates
845+
846+
iat │ │ │ │ exp
847+
│ │ │ │
848+
│ │ │ │ │ │
849+
│ │ │ │ │ │
850+
│ │ │ │ │ │
851+
│ │ │ │ │ │
852+
│ │ ttl │ ttl │ ttl │ │
853+
│ │ ─────────────► │ ─────────────► │ ─────────────► │ ──► │
854+
│ │ │ │ │ │
855+
│ │ │ │ │ │
856+
│ │
857+
──┼───────────────────────────────────────────────────────────────┼─►
858+
│ │
859+
~~~
860+
861+
It is essential to understand the distinct purposes of the `ttl` and `exp` claims. The `ttl` claim represents a duration to be interpreted relative to the time the Status List is fetched, indicating when a new version of the Status List may be available. In contrast, the `exp` claim specifies an absolute timestamp, marking the point in time when the Status List expires and MUST NOT be relied upon any longer. Together, these claims provide guidance on when to check for updates (`ttl` claim) and when the Status List must be refreshed or replaced (`exp` claim).
839862

840863
# Privacy Considerations
841864

@@ -931,11 +954,9 @@ The Status List Issuer may chunk its Referenced Tokens into multiple Status List
931954
- JWT
932955
- CWT
933956

934-
935957
This specification states no requirements to not mix different formats like a CBOR based Referenced Token using a JWT for the Status List, but the expectation is that within an ecosystem, a choice for specific formats is made.
936958
Within such an ecosystem, only support for those selected variants is required and implementations should know what to expect via a profile.
937959

938-
939960
# IANA Considerations
940961

941962
## JSON Web Token Claims Registration
@@ -1225,6 +1246,7 @@ for their valuable contributions, discussions and feedback to this specification
12251246
* remove unsigned options (json/cbor) of status list
12261247
* add section about mixing status list formats and media type
12271248
* fixes from IETF review
1249+
* update guidance around ttl
12281250
* add guidance around aggregation endpoint
12291251

12301252
-05

0 commit comments

Comments
 (0)