You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: draft-ietf-oauth-status-list.md
+51-14Lines changed: 51 additions & 14 deletions
Original file line number
Diff line number
Diff line change
@@ -33,9 +33,11 @@ normative:
33
33
RFC6125: RFC6125
34
34
RFC9110: RFC9110
35
35
RFC9111: RFC9111
36
+
IANA.JWT: IANA.JWT
36
37
informative:
37
38
RFC6749: RFC6749
38
39
RFC7662: RFC7662
40
+
RFC7800: RFC7800
39
41
40
42
--- abstract
41
43
@@ -81,6 +83,8 @@ Revocation mechanisms are an essential part for most identity ecosystems. In the
81
83
82
84
This specification seeks to find a balance between scalability, security, and privacy by minimizing the status information to mere bits (often a single bit) and compressing the resulting binary data. Thereby, a Status List may contain statuses of many thousands or millions Referenced Tokens while remaining as small as possible. Placing large amounts of Referenced Tokens into the same list also enables herd privacy relative to the Issuer.
83
85
86
+
This specification establishes the IANA "Status Mechanism Methods" registry for status mechanism and registers the members defined by this specification. Other specifications can register other members used for status retrieval.
87
+
84
88
## Design Considerations
85
89
86
90
The decisions taken in this specification aim to achieve the following design goals:
@@ -92,6 +96,7 @@ The decisions taken in this specification aim to achieve the following design go
92
96
* the Status List shall enable caching policies and offline support
93
97
* the specification shall support JSON and CBOR based tokens
94
98
* the specification shall not specify key resolution or trust frameworks
99
+
* the specification shall design an extension point to convey information about the status of a token that can be re-used by other mechanisms
95
100
96
101
# Conventions and Definitions
97
102
@@ -196,7 +201,7 @@ The following content applies to the JWT Header:
196
201
The following content applies to the JWT Claims Set:
197
202
198
203
* `iss`: REQUIRED. The `iss` (issuer) claim MUST specify a unique string identifier for the entity that issued the Status List Token. In the absence of an application profile specifying otherwise, compliant applications MUST compare issuer values using the Simple String Comparison method defined in Section 6.2.1 of {{RFC3986}}. The value MUST be equal to that of the `iss` claim contained within the Referenced Token.
199
-
* `sub`: REQUIRED. The `sub` (subject) claim MUST specify a unique string identifier for that Status List Token. The value MUST be equal to that of the `uri` claim contained in the `status` claim of the Referenced Token.
204
+
* `sub`: REQUIRED. The `sub` (subject) claim MUST specify a unique string identifier for that Status List Token. The value MUST be equal to that of the `uri` claim contained in the `status_list` claim of the Referenced Token.
200
205
* `iat`: REQUIRED. The `iat` (issued at) claim MUST specify the time at which the Status List Token was issued.
201
206
* `exp`: OPTIONAL. The `exp` (expiration time) claim MAY convey the time at which it is considered expired by its issuer.
202
207
* `status_list`: REQUIRED. The `status_list` (status list) claim MUST specify the Status List conforming to the rules outlined in [](#status-list-json).
@@ -223,16 +228,21 @@ TBD
223
228
224
229
# Referenced Token {#referenced-token}
225
230
231
+
## Status Claim {#status-claim}
232
+
233
+
By including a "status" claim in a Referenced Token, the issuer is referencing a mechanism to retrieve status information about this Referenced Token. The claim contains members used to reference to a status list as defined in this specification. Other members of the "status" object may be defined by other specifications. This is analogous to "cnf" claim in Section 3.1 of {{RFC7800}} in which different authenticity confirmation methods can be included.
234
+
226
235
## Referenced Token in JWT Format {#referenced-token-jwt}
227
236
228
237
The Referenced Token MUST be encoded as a "JSON Web Token (JWT)" according to {{RFC7519}}.
229
238
230
239
The following content applies to the JWT Claims Set:
231
240
232
241
* `iss`: REQUIRED. The `iss` (issuer) claim MUST specify a unique string identifier for the entity that issued the Referenced Token. In the absence of an application profile specifying otherwise, compliant applications MUST compare issuer values using the Simple String Comparison method defined in Section 6.2.1 of {{RFC3986}}. The value MUST be equal to that of the `iss` claim contained within the referenced Status List Token.
233
-
* `status`: REQUIRED. The `status` (status) claim MUST specify a JSON Object that contains a reference to a status of a Status List or Status List Token. The object contains exactly two claims:
234
-
* `idx`: REQUIRED. The `idx` (index) claim MUST specify an Integer that represents the index to check for status information in the Status List for the current Referenced Token. The value of `idx` MUST be a non-negative number, containing a value of zero or greater.
235
-
* `uri`: REQUIRED. The `uri` (URI) claim MUST specify a String value that identifies the Status List or Status List Token containing the status information for the Referenced Token. The value of `uri` MUST be a URI conforming to {{RFC3986}}.
242
+
* `status`: REQUIRED. The `status` (status) claim MUST specify a JSON Object that contains at least one reference to a status mechanism.
243
+
* `status_list`: REQUIRED when the status list mechanism defined in this specification is used. It contains a reference to a Status List or Status List Token. The object contains exactly two claims:
244
+
* `idx`: REQUIRED. The `idx` (index) claim MUST specify an Integer that represents the index to check for status information in the Status List for the current Referenced Token. The value of `idx` MUST be a non-negative number, containing a value of zero or greater.
245
+
* `uri`: REQUIRED. The `uri` (URI) claim MUST specify a String value that identifies the Status List or Status List Token containing the status information for the Referenced Token. The value of `uri` MUST be a URI conforming to {{RFC3986}}.
236
246
237
247
Application of additional restrictions and policy are at the discretion of the verifying party.
238
248
@@ -248,8 +258,10 @@ The following is a non-normative example for a decoded header and payload of a R
248
258
{
249
259
"iss": "https://example.com",
250
260
"status": {
251
-
"idx": 0,
252
-
"uri": "https://example.com/statuslists/1"
261
+
"status_list": {
262
+
"idx": 0,
263
+
"uri": "https://example.com/statuslists/1"
264
+
}
253
265
}
254
266
}
255
267
~~~
@@ -421,19 +433,43 @@ TBD Declare whether JWT and CWT representations can be used interchangeably by t
421
433
## JSON Web Token Claims Registration
422
434
423
435
This specification requests registration of the following Claims in the
424
-
IANA "JSON Web Token Claims" registry [@IANA.JWT] established by [@!RFC7519].
436
+
IANA "JSON Web Token Claims" registry {{IANA.JWT}} established by {{RFC7519}}.
437
+
438
+
### Registry Contents
425
439
426
440
* Claim Name: `status`
427
-
* Claim Description: Reference to a status list containing up-to-date status information on the JWT.
441
+
* Claim Description: Reference to a status or validity mechanism containing up-to-date status information on the JWT.
428
442
* Change Controller: IETF
429
-
* Specification Document(s): [[ (#referenced-token-jwt) of this specification ]]
443
+
* Specification Document(s): [](#status-claim) of this specification
444
+
445
+
## JWT Status Mechanism Methods Registry {#iana-registry}
446
+
447
+
This specification establishes the IANA "Status Mechanism Methods" registry for JWT "status" member values. The registry records the status mechanism method member and a reference to the specification that defines it.
448
+
449
+
### Registration Template
450
+
451
+
Status Method Value:
452
+
453
+
> The name requested (e.g., "status_list"). The name is case sensitive. Names may not match other registered names in a case-insensitive manner unless the Designated Experts state that there is a compelling reason to allow an exception.
454
+
455
+
Status Method Description:
456
+
457
+
> Brief description of the status mechanism method.
458
+
459
+
Change Controller:
460
+
461
+
> For Standards Track RFCs, list the "IESG". For others, give the name of the responsible party. Other details (e.g., postal address, email address, home page URI) may also be included.
462
+
463
+
Specification Document(s):
464
+
465
+
> Reference to the document or documents that specify the parameter, preferably including URIs that can be used to retrieve copies of the documents. An indication of the relevant sections may also be included but is not required.
430
466
431
-
<br/>
467
+
### Initial Registry Contents
432
468
433
-
* Claim Name: `status_list`
434
-
* Claim Description: A status list containing up-to-date status information on multiple other JWTs encoded as a bitarray.
469
+
* Status Method Value: `status_list`
470
+
* Status Method Description: A status list containing up-to-date status information on multiple other JWTs encoded as a bitarray.
435
471
* Change Controller: IETF
436
-
* Specification Document(s): [[ (#status-list-json) of this specification ]]
472
+
* Specification Document(s): [](#referenced-token-jwt) of this specification
437
473
438
474
## Media Type Registration
439
475
@@ -555,6 +591,7 @@ for their valuable contributions, discussions and feedback to this specification
555
591
-01
556
592
557
593
* add design consideration to the introduction
594
+
* Change status claim to in referenced token to allow re-use for other mechanisms
558
595
* restructure the sections of this document
559
596
* add option to return an unsigned Status List
560
597
* Changing compression from gzip to zlib
@@ -568,7 +605,7 @@ for their valuable contributions, discussions and feedback to this specification
0 commit comments