Skip to content

Commit 6ed4115

Browse files
tulshitimcappalli
andauthored
added new sub_id related language. Modified existing language to refl… (#82)
* added new sub_id related language. Modified existing language to reflect the use of the sub_id claim * reverted to using subject in requests. Sub_id will still be used in responses * modified more request parameters back to subject from sub_id * updated text to reflect sub_id as a top-level field in verification and stream updated events * fixed typo eent->event * delete txt and html artifacts * changed SHOULD to MUST for top-level sub_id field * updated to latest main and addressed Tim\'s comments * incorporated Shayne\'s feedback * removed duplicate line --------- Co-authored-by: Tim Cappalli <tim@cloudauth.dev>
1 parent 28d7796 commit 6ed4115

File tree

1 file changed

+103
-41
lines changed

1 file changed

+103
-41
lines changed

openid-sharedsignals-framework-1_0.md

Lines changed: 103 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -146,16 +146,42 @@ normative:
146146
date: May 2021
147147
target: https://datatracker.ietf.org/doc/html/draft-ietf-secevent-subject-identifiers
148148
title: Subject Identifiers for Security Event Tokens
149-
150-
informative:
151149
CAEP:
152150
author:
153-
- ins: A. Tulshibagwale
151+
-
152+
ins: T. Cappalli
153+
name: Tim Cappalli
154+
-
155+
ins: A. Tulshibagwale
156+
name: Atul Tulshibagwale
157+
date: August 2021
158+
target: https://openid.net/specs/openid-caep-specification-1_0.html
159+
title: OpenID Continuous Access Evaluation Profile 1.0 - draft 02
160+
RISC:
161+
author:
162+
-
163+
ins: M. Scurtescu
164+
name: Marius Scurtescu
165+
-
166+
ins: A. Backman
167+
name: Annabelle Backman
168+
-
169+
ins: P. Hunt
170+
name: Phil Hunt
171+
-
172+
ins: J. Bradley
173+
name: John Bradley
174+
-
175+
ins: S. Bounev
176+
name: Stan Bounev
177+
-
178+
ins: A. Tulshibagwale
154179
name: Atul Tulshibagwale
155-
org: Google
156-
date: February 2019
157-
target: https://cloud.google.com/blog/products/identity-security/re-thinking-federated-identity-with-the-continuous-access-evaluation-protocol
158-
title: ' Re-thinking Federated Identity with the Continuous Access Evaluation Protocol '
180+
date: April 2022
181+
target: https://openid.net/specs/openid-risc-profile-specification-1_0.html
182+
title: OpenID RISC Profile Specification 1.0 - draft 02
183+
184+
informative:
159185
USECASES:
160186
author:
161187
- ins: M. Scurtescu
@@ -217,10 +243,20 @@ Subject Principals are identified by Subject Members defined below.
217243

218244
# Subject Members in SSF Events {#subject-ids}
219245

220-
A member of type Subject in an SSF event MAY have any claim name. Each Subject Member MUST
221-
refer to exactly one Subject Principal.
246+
## Subject Members {#subject-members}
247+
A Subject Member of a SSF event describes a subject of the event. A top-level claim named `sub_id` MUST be used to describe the primary subject of the event.
222248

223-
A Subject may be a "simple subject" or a "complex subject".
249+
### Existing CAEP and RISC Events
250+
Event types already defined in the CAEP ({{CAEP}}) and RISC ({{RISC}}) specifications MAY use a `subject` field within the `events` claim of the SSF event to describe the primary Subject Principal of the event. SSF Transmitters MUST include the top-level `sub_id` claim even for these existing event types.
251+
252+
### New Event Types
253+
New event types MUST use the top-level `sub_id` claim and MUST NOT use the `subject` field in the `events` claim to describe the primary Subject Principal.
254+
255+
### Additional Subject Members
256+
Specific event types MAY define additional Subject Members if required to describe additional subjects of that event type (e.g. a Transferee). These additional subject fields MAY have any field name.
257+
258+
### Subject Member Values
259+
Each Subject Member MUST refer to exactly one Subject Principal. The value of a Subject Member MAY be a "simple subject" or a "complex subject".
224260

225261
## Simple Subject Members {#simple-subjects}
226262

@@ -230,7 +266,7 @@ Identifier" as defined in the Subject Identifiers for Security Event Tokens
230266
event.
231267

232268
~~~ json
233-
"transferer": {
269+
"sub_id": {
234270
"format": "email",
235271
"email": "foo@example.com"
236272
}
@@ -278,7 +314,7 @@ appear at most once in the Complex Subject value.
278314
Below is a non-normative example of a Complex Subject claim in a SSF event.
279315

280316
~~~ json
281-
"transferee": {
317+
"sub_id": {
282318
"format": "complex",
283319
"user" : {
284320
"format": "email",
@@ -406,6 +442,10 @@ The following are hypothetical examples of SETs that conform to the Shared Signa
406442
"jti": "756E69717565206964656E746966696572",
407443
"iat": 1520364019,
408444
"aud": "636C69656E745F6964",
445+
"sub_id": {
446+
"format": "email",
447+
"email": "foo@example.com"
448+
},
409449
"events": {
410450
"https://schemas.openid.net/secevent/risc/event-type/account-enabled": {
411451
"subject": {
@@ -424,6 +464,19 @@ The following are hypothetical examples of SETs that conform to the Shared Signa
424464
"jti": "756E69717565206964656E746966696572",
425465
"iat": 1520364019,
426466
"aud": "636C69656E745F6964",
467+
"sub_id": {
468+
"format": "complex",
469+
"user": {
470+
"format": "iss_sub",
471+
"iss": "https://idp.example.com/3957ea72-1b66-44d6-a044-d805712b9288/",
472+
"sub": "jane.smith@example.com"
473+
},
474+
"device": {
475+
"format": "iss_sub",
476+
"iss": "https://idp.example.com/3957ea72-1b66-44d6-a044-d805712b9288/",
477+
"sub": "e9297990-14d2-42ec-a4a9-4036db86509a"
478+
}
479+
},
427480
"events": {
428481
"https://schemas.openid.net/secevent/caep/event-type/session-revoked": {
429482
"subject": {
@@ -455,6 +508,10 @@ The following are hypothetical examples of SETs that conform to the Shared Signa
455508
"jti": "756E69717565206964656E746966696572",
456509
"iat": 1520364019,
457510
"aud": "636C69656E745F6964",
511+
"sub_id": {
512+
"format": "email",
513+
"email": "foo@example2.com"
514+
},
458515
"events": {
459516
"https://schemas.openid.net/secevent/caep/event-type/token-claims-change": {
460517
"subject": {
@@ -477,6 +534,10 @@ The following are hypothetical examples of SETs that conform to the Shared Signa
477534
"jti": "756E69717565206964656E746966696534",
478535
"iat": 15203800012,
479536
"aud": "636C69656E745F6324",
537+
"sub_id": {
538+
"format": "catalog_item",
539+
"catalog_id": "c0384/winter/2354122"
540+
},
480541
"events": {
481542
"https://schemas.openid.net/secevent/caep/event-type/token-claims-change": {
482543
"subject": {
@@ -1527,7 +1588,7 @@ Authorization: Bearer eyJ0b2tlbiI6ImV4YW1wbGUifQo=
15271588
{
15281589
"stream_id": "f67e39a0a4d34d56b3aa1bc4cff0069f",
15291590
"status": "paused",
1530-
"reason": "Disabled by administrator action"
1591+
"reason": "Disabled by administrator action."
15311592
}
15321593
~~~
15331594
{: title="Example: Update Stream Status Request With Optional Reason" #figupdatestatuswithreasonreq}
@@ -1541,7 +1602,7 @@ Cache-Control: no-store
15411602

15421603
{
15431604
"stream_id": "f67e39a0a4d34d56b3aa1bc4cff0069f",
1544-
"status": "paused"
1605+
"status": "paused",
15451606
}
15461607
~~~
15471608
{: title="Example: Update Stream Status Response" #figupdatestatusresp}
@@ -1716,22 +1777,18 @@ An Event Transmitter MAY send a Verification Event at any time, even if one was
17161777
not requested by the Event Receiver.
17171778

17181779
#### Verification Event {#verification-event}
1719-
The Verification Event is a standard SET with the following attributes:
1720-
1721-
event type
1722-
1723-
> The Event Type URI is: "https://schemas.openid.net/secevent/ssf/event-type/verification".
1780+
The Verification Event is a SSF Event with the event type: "https://schemas.openid.net/secevent/ssf/event-type/verification". The event contains the following attribute:
17241781

17251782
state
17261783

17271784
> OPTIONAL An opaque value provided by the Event Receiver when the event is
1728-
triggered. This is a nested attribute in the event payload.
1785+
triggered.
1786+
1787+
As with any SSF event, the Verification Event has a top-level `sub_id` claim:
17291788

1730-
subject
1789+
sub_id
17311790

1732-
> REQUIRED. The value of the `subject` field in a Verification Event MUST always
1733-
be set to have a simple value of type `opaque`. The `id` of the value MUST be
1734-
the `stream_id` of the stream being verified.
1791+
> REQUIRED. The value of the top-level `sub_id` claim in a Verification Event MUST always be set to have a simple value of type `opaque`. The `id` of the value MUST be the `stream_id` of the stream being verified.
17351792

17361793
> Note that the subject that identifies a stream itself is always implicitly
17371794
added to the stream and MAY NOT be removed from the stream.
@@ -1818,12 +1875,12 @@ Event Receiver as a result of the above request:
18181875
"iss": "https://transmitter.example.com",
18191876
"aud": "receiver.example.com",
18201877
"iat": 1493856000,
1878+
"sub_id": {
1879+
"format": "opaque",
1880+
"id": "f67e39a0a4d34d56b3aa1bc4cff0069f"
1881+
},
18211882
"events": {
18221883
"https://schemas.openid.net/secevent/ssf/event-type/verification":{
1823-
"subject": {
1824-
"format": "opaque",
1825-
"id": "f67e39a0a4d34d56b3aa1bc4cff0069f"
1826-
},
18271884
"state": "VGhpcyBpcyBhbiBleGFtcGxlIHN0YXRlIHZhbHVlLgo="
18281885
}
18291886
}
@@ -1855,13 +1912,12 @@ reason
18551912

18561913
> OPTIONAL. Provides a short description of why the Transmitter has updated the
18571914
status.
1915+
1916+
As with any SSF Event, this event has a top-level `sub_id` claim:
18581917

1859-
subject
1918+
sub_id
18601919

1861-
> REQUIRED. Specifies the stream whose status has been updated.
1862-
The value of the `subject` field
1863-
MUST be of format `opaque`, and its `id` value MUST be the unique ID of the
1864-
stream.
1920+
> REQUIRED. The top-level `sub_id` claim specifies the Stream Id for which the status has been updated. The value of the `sub_id` field MUST be of format `opaque`, and its `id` value MUST be the unique ID of the stream.
18651921

18661922
> Note that the subject that identifies a stream itself is always implicitly
18671923
added to the stream and MAY NOT be removed from the stream.
@@ -1874,19 +1930,19 @@ subject
18741930
"iss": "https://transmitter.example.com",
18751931
"aud": "receiver.example.com",
18761932
"iat": 1493856000,
1933+
"sub_id": {
1934+
"format": "opaque",
1935+
"id" : "f67e39a0a4d34d56b3aa1bc4cff0069f"
1936+
},
18771937
"events": {
18781938
"https://schemas.openid.net/secevent/ssf/event-type/stream-updated": {
1879-
"subject": {
1880-
"format": "opaque",
1881-
"id" : "f67e39a0a4d34d56b3aa1bc4cff0069f"
1882-
},
18831939
"status": "paused",
18841940
"reason": "Internal error"
18851941
}
18861942
}
18871943
}
18881944
~~~
1889-
{: title="Example: Stream Updated SET with stream as the subject of single-stream Transmitter" #figstreamupdatedstreamset}
1945+
{: title="Example: Stream Updated SET" #figstreamupdatedset}
18901946

18911947
# Authorization {#management-api-auth}
18921948
HTTP API calls from a Receiver to a Transmitter SHOULD be authorized by
@@ -2003,9 +2059,7 @@ This section provides SSF profiling specifications for the Security Event Token
20032059
The signature key can be obtained through "jwks_uri", see {{discovery}}.
20042060

20052061
### SSF Event Subject {#event-subjects}
2006-
The subject of a SSF event is identified by the "subject" claim within the event
2007-
payload, whose value is a Subject Identifier. The "subject" claim is REQUIRED
2008-
for all SSF events. The JWT "sub" claim MUST NOT be present in any SET containing
2062+
The primary Subject Member of SSF events is described in the "Subject Members" section ({{subject-ids}}). The JWT "sub" claim MUST NOT be present in any SET containing
20092063
a SSF event.
20102064

20112065
### SSF Event Properties {#event-properties}
@@ -2018,6 +2072,10 @@ specific to the event type.
20182072
"jti": "756E69717565206964656E746966696572",
20192073
"iat": 1520364019,
20202074
"aud": "636C69656E745F6964",
2075+
"sub_id": {
2076+
"format": "phone",
2077+
"phone_number": "+1 206 555 0123"
2078+
},
20212079
"events": {
20222080
"https://schemas.openid.net/secevent/risc/event-type/account-disabled": {
20232081
"subject": {
@@ -2038,6 +2096,10 @@ specific to the event type.
20382096
"jti": "756E69717565206964656E746966696572",
20392097
"iat": 1520364019,
20402098
"aud": "636C69656E745F6964",
2099+
"sub_id": {
2100+
"format": "email",
2101+
"email": "user@example.com"
2102+
},
20412103
"events": {
20422104
"https://schemas.openid.net/secevent/caep/event-type/token-claims-changed": {
20432105
"subject": {

0 commit comments

Comments
 (0)