Skip to content

Commit 97ba0e6

Browse files
authored
Change 'jwt-id' to 'jwt_id' to match style of other subject formats (#63)
1 parent ae0cf79 commit 97ba0e6

File tree

3 files changed

+61
-63
lines changed

3 files changed

+61
-63
lines changed

openid-sharedsignals-framework-1_0.html

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -33,25 +33,23 @@
3333
Poll-Based SET Token Delivery Using HTTP
3434
3535
" name="description">
36-
<meta content="xml2rfc 3.15.3" name="generator">
36+
<meta content="xml2rfc 3.17.1" name="generator">
3737
<meta content="openid-sharedsignals-framework-1_0" name="ietf.draft">
3838
<!-- Generator version information:
39-
xml2rfc 3.15.3
39+
xml2rfc 3.17.1
4040
Python 3.9.6
4141
appdirs 1.4.4
4242
ConfigArgParse 1.5.3
4343
google-i18n-address 2.5.2
44-
html5lib 1.1
4544
intervaltree 3.1.0
4645
Jinja2 3.1.2
47-
lxml 4.9.1
48-
MarkupSafe 2.1.1
46+
lxml 4.9.2
4947
pycountry 22.3.5
5048
PyYAML 6.0
51-
requests 2.28.1
52-
setuptools 58.0.4
53-
six 1.15.0
54-
wcwidth 0.2.5
49+
requests 2.30.0
50+
setuptools 58.3.0
51+
six 1.16.0
52+
wcwidth 0.2.6
5553
-->
5654
<link href="openid-sharedsignals-framework-1_0.xml" rel="alternate" type="application/rfc+xml">
5755
<link href="#copyright" rel="license">
@@ -81,7 +79,6 @@
8179

8280
@viewport {
8381
zoom: 1.0;
84-
width: extend-to-zoom;
8582
}
8683
@-ms-viewport {
8784
width: extend-to-zoom;
@@ -277,7 +274,8 @@
277274
background-color: #f2f2f2;
278275
}
279276
figcaption a[href],
280-
a[href].selfRef {
277+
a[href].selfRef,
278+
.iref + a[href].internal {
281279
color: #222;
282280
}
283281
/* XXX probably not this:
@@ -1728,22 +1726,22 @@ <h4 id="name-jwt-id-subject-identifier-f">
17281726
in <span>[<a href="#RFC7519" class="cite xref">RFC7519</a>]</span><a href="#section-3.4.1-5.1.1" class="pilcrow"></a></p>
17291727
</li>
17301728
</ul>
1731-
<p id="section-3.4.1-6">The "JWT ID" Subject Identifier Format is identified by the name "jwt-id".<a href="#section-3.4.1-6" class="pilcrow"></a></p>
1732-
<p id="section-3.4.1-7">Below is a non-normative example of Subject Identifier for the "jwt-id" Subject
1729+
<p id="section-3.4.1-6">The "JWT ID" Subject Identifier Format is identified by the name "jwt_id".<a href="#section-3.4.1-6" class="pilcrow"></a></p>
1730+
<p id="section-3.4.1-7">Below is a non-normative example of Subject Identifier for the "jwt_id" Subject
17331731
Identifier Format.<a href="#section-3.4.1-7" class="pilcrow"></a></p>
1734-
<span id="name-example-jwt-id-subject-iden"></span><div id="sub-id-jwtid">
1732+
<span id="name-example-jwt_id-subject-iden"></span><div id="sub-id-jwtid">
17351733
<figure id="figure-3">
17361734
<div class="lang-json sourcecode" id="section-3.4.1-8.1">
17371735
<pre>
17381736
{
1739-
"format": "jwt-id",
1737+
"format": "jwt_id",
17401738
"iss": "https://idp.example.com/123456789/",
17411739
"jti": "B70BA622-9515-4353-A866-823539EECBC8"
17421740
}
17431741
</pre>
17441742
</div>
17451743
<figcaption><a href="#figure-3" class="selfRef">Figure 3</a>:
1746-
<a href="#name-example-jwt-id-subject-iden" class="selfRef">Example: 'jwt-id' Subject Identifier</a>
1744+
<a href="#name-example-jwt_id-subject-iden" class="selfRef">Example: 'jwt_id' Subject Identifier</a>
17471745
</figcaption></figure>
17481746
</div>
17491747
</section>
@@ -1817,7 +1815,7 @@ <h2 id="name-event-properties">
18171815
of these members are required and specified as such in the respective event
18181816
types specs. If a Transmitter determines that it needs to include additional
18191817
members that are not specified in the event types spec, then the name of such
1820-
members MUST be a URI. The discoverability of all additional members is
1818+
members MUST be a URI. The discoverability of all additional members is
18211819
specified in the Discovery <a href="#discovery" class="auto internal xref">Section 6</a> section.<a href="#section-4-1" class="pilcrow"></a></p>
18221820
</section>
18231821
</div>

openid-sharedsignals-framework-1_0.md

Lines changed: 41 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -198,8 +198,8 @@ This spec also directly profiles several IETF Security Events drafts:
198198

199199
* Security Event Token (SET) {{RFC8417}}
200200
* Subject Identifiers for Security Event Tokens {{SUBIDS}}
201-
* Push-Based SET Token Delivery Using HTTP {{DELIVERYPUSH}}
202-
* Poll-Based SET Token Delivery Using HTTP {{DELIVERYPOLL}}
201+
* Push-Based SET Token Delivery Using HTTP {{DELIVERYPUSH}}
202+
* Poll-Based SET Token Delivery Using HTTP {{DELIVERYPOLL}}
203203

204204
--- middle
205205

@@ -302,7 +302,7 @@ Below is a non-normative example of a Complex Subject claim in a SSF event.
302302
"sub" : "1234"
303303
}
304304
}
305-
~~~
305+
~~~
306306
{: #complex-subject-ex title="Example: Complex Subject"}
307307

308308
### Complex Subject Interpretation {#complex-subject-interpretation}
@@ -327,7 +327,7 @@ scope of this specification.
327327

328328
## Additional Subject Identifier Formats {#additional-subject-id-formats}
329329

330-
The following new subject identifier formats are defined:
330+
The following new subject identifier formats are defined:
331331

332332
### JWT ID Subject Identifier Format {#sub-id-jwt-id}
333333

@@ -345,21 +345,21 @@ jti
345345
> REQUIRED. The "jti" (JWT token ID) claim of the JWT being identified, defined
346346
in {{RFC7519}}
347347

348-
The "JWT ID" Subject Identifier Format is identified by the name "jwt-id".
348+
The "JWT ID" Subject Identifier Format is identified by the name "jwt_id".
349349

350-
Below is a non-normative example of Subject Identifier for the "jwt-id" Subject
350+
Below is a non-normative example of Subject Identifier for the "jwt_id" Subject
351351
Identifier Format.
352352

353353
~~~ json
354354
{
355-
"format": "jwt-id",
355+
"format": "jwt_id",
356356
"iss": "https://idp.example.com/123456789/",
357357
"jti": "B70BA622-9515-4353-A866-823539EECBC8"
358358
}
359359
~~~
360-
{: #sub-id-jwtid title="Example: 'jwt-id' Subject Identifier"}
360+
{: #sub-id-jwtid title="Example: 'jwt_id' Subject Identifier"}
361361

362-
### SAML Assertion ID Subject Identifier Format {#sub-id-saml-assertion-id}
362+
### SAML Assertion ID Subject Identifier Format {#sub-id-saml-assertion-id}
363363

364364
The "SAML Assertion ID" Subject Identifier Format specifies a SAML 2.0
365365
{{OASIS.saml-core-2.0-os}} assertion identifier. Subject Identifiers of this
@@ -405,7 +405,7 @@ Additional members about an event may be included in the "events" claim. Some
405405
of these members are required and specified as such in the respective event
406406
types specs. If a Transmitter determines that it needs to include additional
407407
members that are not specified in the event types spec, then the name of such
408-
members MUST be a URI. The discoverability of all additional members is
408+
members MUST be a URI. The discoverability of all additional members is
409409
specified in the Discovery {{discovery}} section.
410410

411411
# Example SETs that conform to the Shared Signals Framework {#events-examples}
@@ -1118,7 +1118,7 @@ Errors are signaled with HTTP status codes as follows:
11181118
| 403 | if the Event Receiver is not allowed to read the stream configuration |
11191119
| 404 | if there is no Event Stream with the given "stream_id" for this Event Receiver |
11201120
{: title="Read Stream Configuration Errors" #tabreadconfig}
1121-
1121+
11221122
#### Updating a Stream’s Configuration {#updating-a-streams-configuration}
11231123
An Event Receiver updates the current configuration of a stream by making an
11241124
HTTP PATCH request to the Configuration Endpoint. The PATCH body contains a
@@ -1662,14 +1662,14 @@ identified by a Phone Number Subject Identifier:
16621662
POST /ssf/subjects:remove HTTP/1.1
16631663
Host: transmitter.example.com
16641664
Authorization: Bearer eyJ0b2tlbiI6ImV4YW1wbGUifQo=
1665-
1665+
16661666
{
16671667
"stream_id": "f67e39a0a4d34d56b3aa1bc4cff0069f",
16681668
"subject": {
16691669
"format": "phone",
16701670
"phone_number": "+12065550123"
16711671
}
1672-
}
1672+
}
16731673
~~~
16741674
{: title="Example: Remove Subject Request" #figremovereq}
16751675

@@ -1693,7 +1693,7 @@ Errors are signaled with HTTP status codes as follows:
16931693
| 429 | if the Event Receiver is sending too many requests in a given amount of time |
16941694
{: title="Remove Subject Errors" #tabremoveerr}
16951695

1696-
### Verification {#verification}
1696+
### Verification {#verification}
16971697
In some cases, the frequency of event transmission on an Event Stream will be
16981698
very low, making it difficult for an Event Receiver to tell the difference
16991699
between expected behavior and event transmission failure due to a misconfigured
@@ -1706,7 +1706,7 @@ delivery is working, including signature verification and encryption.
17061706
An Event Transmitter MAY send a Verification Event at any time, even if one was
17071707
not requested by the Event Receiver.
17081708

1709-
#### Verification Event {#verification-event}
1709+
#### Verification Event {#verification-event}
17101710
The Verification Event is a standard SET with the following attributes:
17111711

17121712
event type
@@ -1855,11 +1855,11 @@ subject
18551855
"format": "iss_sub",
18561856
"iss" : "http://example.com/idp1",
18571857
"sub" : "1234"
1858-
}
1859-
},
1858+
}
1859+
},
18601860
"status": "paused",
18611861
"reason": "License is not valid"
1862-
}
1862+
}
18631863
}
18641864
}
18651865
~~~
@@ -1873,9 +1873,9 @@ The receiver may obtain an access token using the Client
18731873
Credential Grant {{CLIENTCRED}}, or any other method suitable for the Receiver and the
18741874
Transmitter.
18751875

1876-
# Security Considerations {#management-sec}
1876+
# Security Considerations {#management-sec}
18771877

1878-
## Subject Probing {#management-sec-subject-probing}
1878+
## Subject Probing {#management-sec-subject-probing}
18791879
It may be possible for an Event Transmitter to leak information about subjects
18801880
through their responses to add subject requests. A "404" response may indicate
18811881
to the Event Receiver that the subject does not exist, which may inadvertently
@@ -1889,7 +1889,7 @@ to the subject, and Event Receivers MUST NOT assume that a 204 response means
18891889
that they will receive events related to the subject.
18901890

18911891

1892-
## Information Harvesting {#management-sec-information-harvesting}
1892+
## Information Harvesting {#management-sec-information-harvesting}
18931893
SETs may contain personally identifiable information (PII) or other non-public
18941894
information about the event transmitter, the subject (of an event in the SET),
18951895
or the relationship between the two. It is important for Event Transmitters to
@@ -1907,7 +1907,7 @@ transmitting the event. The mechanisms by which such validation is performed
19071907
are outside the scope of this specification.
19081908

19091909

1910-
## Malicious Subject Removal {#management-sec-malicious-subject-removal}
1910+
## Malicious Subject Removal {#management-sec-malicious-subject-removal}
19111911
A malicious party may find it advantageous to remove a particular subject from a
19121912
stream, in order to reduce the Event Receiver’s ability to detect malicious
19131913
activity related to the subject, inconvenience the subject, or for other reasons.
@@ -1922,9 +1922,9 @@ from the stream, and MUST NOT report these events as errors to the Event
19221922
Transmitter.
19231923

19241924

1925-
# Privacy Considerations {#privacy-considerations}
1925+
# Privacy Considerations {#privacy-considerations}
19261926

1927-
## Subject Information Leakage {#sub-info-leakage}
1927+
## Subject Information Leakage {#sub-info-leakage}
19281928
Event issuers and recipients SHOULD take precautions to ensure that they do not
19291929
leak information about subjects via Subject Identifiers, and choose appropriate
19301930
Subject Identifier Types accordingly. Parties SHOULD NOT identify a subject
@@ -1935,34 +1935,34 @@ Identifier Type and the same claim values to identify a given subject when
19351935
communicating with a given party in order to reduce the possibility of
19361936
information leakage.
19371937

1938-
## Previously Consented Data {#previously-consented-data}
1938+
## Previously Consented Data {#previously-consented-data}
19391939
If SSF events contain new values for attributes of Subject Principals that were
19401940
previously exchanged between the Transmitter and Receiver, then there are no
19411941
additional privacy considerations introduced by providing the updated values in
19421942
the SSF events, unless the attribute was exchanged under a one-time consent
19431943
obtained from the user.
19441944

1945-
## New Data {#new-data}
1945+
## New Data {#new-data}
19461946
Data that was not previously exchanged between the Transmitter and the Receiver,
19471947
or data whose consent to exchange has expired has the following considerations:
19481948

1949-
### Organizational Data {#organizational-data}
1949+
### Organizational Data {#organizational-data}
19501950
If a user has previously agreed with a Transmitter that they agree to release
19511951
certain data to third-parties, then the Transmitter MAY send such data in SSF
19521952
events without additional consent of the user. Such data MAY include
19531953
organizational data about the Subject Principal that was generated by the
19541954
Transmitter.
19551955

1956-
### Consentable Data {#consentable-data}
1956+
### Consentable Data {#consentable-data}
19571957
If a Transmitter intends to include data in SSF events that is not previously
19581958
consented to be released by the user, then the Transmitter MUST obtain consent
19591959
to release such data from the user in accordance with the Transmitter's privacy
19601960
policy.
19611961

1962-
# Profiles {#profiles}
1962+
# Profiles {#profiles}
19631963
This section is a profile of the following IETF SecEvent specifications:
19641964

1965-
* Security Event Token (SET) {{RFC8417}}
1965+
* Security Event Token (SET) {{RFC8417}}
19661966
* Push-Based SET Token Delivery Using HTTP {{DELIVERYPUSH}}
19671967
* Poll-Based SET Token Delivery Using HTTP {{DELIVERYPOLL}}
19681968

@@ -1972,20 +1972,20 @@ RISC Use Cases {{USECASES}}.
19721972
The CAEP use cases that set the requirements are described in CAEP Use Cases (TODO: Add
19731973
reference when file is added to repository.)
19741974

1975-
## Security Event Token Profile {#set-profle}
1975+
## Security Event Token Profile {#set-profle}
19761976
This section provides SSF profiling specifications for the Security Event Token (SET)
19771977
{{RFC8417}} spec.
19781978

1979-
### Signature Key Resolution {#signature-key-resolution}
1979+
### Signature Key Resolution {#signature-key-resolution}
19801980
The signature key can be obtained through "jwks_uri", see {{discovery}}.
19811981

1982-
### SSF Event Subject {#event-subjects}
1982+
### SSF Event Subject {#event-subjects}
19831983
The subject of a SSF event is identified by the "subject" claim within the event
19841984
payload, whose value is a Subject Identifier. The "subject" claim is REQUIRED
19851985
for all SSF events. The JWT "sub" claim MUST NOT be present in any SET containing
19861986
a SSF event.
19871987

1988-
### SSF Event Properties {#event-properties}
1988+
### SSF Event Properties {#event-properties}
19891989
The SSF event MAY contain additional claims within the event payload that are
19901990
specific to the event type.
19911991

@@ -2028,7 +2028,7 @@ specific to the event type.
20282028
~~~
20292029
{: #caep-event-properties-example title="Example: SET Containing a CAEP Event with Properties"}
20302030

2031-
### Explicit Typing of SETs {#explicit-typing}
2031+
### Explicit Typing of SETs {#explicit-typing}
20322032
SSF events MUST use explicit typing as defined in Section 2.3 of {{RFC8417}}.
20332033

20342034
~~~ json
@@ -2044,13 +2044,13 @@ Sections 4.5, 4.6 and 4.7 of {{RFC8417}}. While current Id Token {{IDTOKEN}}
20442044
validators may not be using the "typ" header parameter, by requiring it for SSF
20452045
SETs a distinct value is guaranteed for future validators.
20462046

2047-
### The "exp" Claim {#exp-claim}
2047+
### The "exp" Claim {#exp-claim}
20482048
The "exp" claim MUST NOT be used in SSF SETs.
20492049

20502050
The purpose is defense in depth against confusion with other JWTs, as described
20512051
in Sections 4.5 and 4.6 of {{RFC8417}}.
20522052

2053-
### The "aud" Claim {#aud-claim}
2053+
### The "aud" Claim {#aud-claim}
20542054
The "aud" claim can be a single value or an array. Each value SHOULD be the
20552055
OAuth 2.0 client ID. Other values that uniquely identifies the Receiver to the
20562056
Transmitter MAY be used, if the two parties have agreement on the format.
@@ -2082,7 +2082,7 @@ multiple Receivers would lead to unintended data disclosure.
20822082
~~~
20832083
{: title="Example: SET with array 'aud' claim" #figarrayaud}
20842084

2085-
### The "events" claim {#events-claim}
2085+
### The "events" claim {#events-claim}
20862086
The "events" claim SHOULD contain only one event. Multiple event type URIs are
20872087
permitted only if they are alternative URIs defining the exact same event type.
20882088

@@ -2101,7 +2101,7 @@ on this subject. The Shared Signals Framework is asking for further restrictions
21012101
This section provides SSF profiling specifications for the {{DELIVERYPUSH}} and
21022102
{{DELIVERYPOLL}} specs.
21032103

2104-
### Stream Configuration Metadata {#delivery-meta}
2104+
### Stream Configuration Metadata {#delivery-meta}
21052105
Each delivery method is identified by a URI, specified below by the "method"
21062106
metadata.
21072107

@@ -2124,7 +2124,7 @@ authorization_header
21242124
> The HTTP Authorization header that the Transmitter MUST set with each event
21252125
delivery, if the configuration is present. The value is optional and it is set
21262126
by the Receiver.
2127-
2127+
21282128
#### Polling Delivery using HTTP
21292129
This section provides SSF profiling specifications for the {{DELIVERYPOLL}} spec.
21302130

@@ -2138,7 +2138,7 @@ url
21382138
Transmitter. These URLs MAY be reused across Receivers, but MUST be unique per
21392139
stream for a given Receiver.
21402140

2141-
# IANA Considerations {#iana}
2141+
# IANA Considerations {#iana}
21422142
Subject Identifiers defined in this document will be added to the "Security
21432143
Events Subject Identifier Types" registry. This registry is defined in the
21442144
Subject Identifiers for Security Event Tokens {{SUBIDS}} specification.

0 commit comments

Comments
 (0)