Skip to content

Commit 5a96517

Browse files
authored
fix: entity_statements claims to subordinate_statements and normative lang about it
1 parent d7f61d8 commit 5a96517

File tree

1 file changed

+23
-23
lines changed

1 file changed

+23
-23
lines changed

openid-federation-extended-listing-1_0.md

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ organization="Self-Issued Consulting"
4747

4848
.# Abstract
4949

50-
This specification acts as an extension to the [@!OpenID.Federation]. It defines methods to interact with a given Federation with a potentially large number of registered Entities, as well as mechanisms to retrieve multiple Entity Statements along with associated details in a single request.
50+
This specification acts as an extension to the [@!OpenID.Federation]. It defines methods to interact with a given Federation with a potentially large number of registered Entities, as well as mechanisms to retrieve multiple Subordinate Statements along with associated details in a single request.
5151

5252
{mainmatter}
5353

@@ -57,11 +57,11 @@ The Federation Extended Subordinate Listing endpoint has been created to address
5757

5858
## Response Size
5959

60-
The standard `federation_list_endpoint` has limitations when Entities are able to issue Entity Statements for an exceptionally large number of Entities. Limitations can be encountered both when attempting to process receiving such a large response as well as more technical limitations such as response sizes of infrastructure. Pagination has been proposed as a solution for this.
60+
The standard `federation_list_endpoint` has limitations when Entities are able to issue Subordinate Statements for an exceptionally large number of Entities. Limitations can be encountered both when attempting to process receiving such a large response as well as more technical limitations such as response sizes of infrastructure. Pagination has been proposed as a solution for this.
6161

6262
## Bulk Retrieval
6363

64-
For certain usecases, such as mass registration, consumers may encounter challenges when attempting to retrieve information on multiple Entities. A flow with the standard `federation_list_endpoint` may involve a request to the list endpoint followed by a series of subsequent requests to retrieve an Entity Statement for each listed Entity resulting in an N+1 operation. The Federation Extended Subordinate Listing endpoint seeks to solve this by providing a mechanism to include additional metadata for Entities in the provided list.
64+
For certain usecases, such as mass registration, consumers may encounter challenges when attempting to retrieve information on multiple Entities. A flow with the standard `federation_list_endpoint` may involve a request to the list endpoint followed by a series of subsequent requests to retrieve a Subordinate Statement for each listed Entity resulting in an N+1 operation. The Federation Extended Subordinate Listing endpoint seeks to solve this by providing a mechanism to include additional metadata for Entities in the provided list.
6565

6666
## Requirements Notation and Conventions
6767

@@ -97,7 +97,7 @@ The endpoint accepts all parameters defined in the `federation_list_endpoint` in
9797
| limit | OPTIONAL | Positive Integer | Requested number of results included in the response.<br><br> If this parameter is present, the number of results in the returned list SHOULD NOT be greater than the minimum of the server's upper limit and the value of this parameter.<br><br>If this parameter is not present the server MUST fall back on the upper limit. |
9898
| updated_after | OPTIONAL | NumericDate | Epoch time constraining the response to include only Entity identifiers with updates at or after this time. <br><br>When absent, there is no cutoff for how long ago updates occurred to Entities being listed.<br><br>When present the `registered`, `updated`, `revoked` MUST be included in the response unless the `audit_timestamps` parameter is set to `false`. ||
9999
| updated_before | OPTIONAL | NumericDate | Epoch time constraining the response to include only Entity identifiers with updates at or before this time.<br><br>When absent, there is no cutoff before which updates occurred to listed Entities.<br><br>When present the `registered`, `updated`, `revoked` MUST be included in the response unless the `audit_timestamps` parameter is set to `false`. ||
100-
| claims | OPTIONAL | Array | List of claims to be included in the response for each returned Immediate Subordinate Entity.<br><br> If this parameter is NOT present or it is an empty array, the Entity Statement MUST be the only claim for each Immediate Subordinate Entity<br><br>If this parameter is present and it is NOT an empty array each JSON object that represents the Immediate Subordinate Entity MUST include the requested claims for a Subordinate Entity Statement if available.<br><br>Entities that expose the Federation Extended Subordinate Listing endpoint MUST support all top level statement claims defined in [@!OpenID.Federation]. TBD: Support of requests for discrete Entity metadata attributes. ||
100+
| claims | OPTIONAL | Array | List of claims to be included in the response for each returned Immediate Subordinate Entity.<br><br> If this parameter is NOT present or it is an empty array, the response SHOULD NOT contain any claims for a Subordinate Statement.<br><br>If this parameter is present and it is NOT an empty array each JSON object that represents the Immediate Subordinate Entity MUST include the requested claims for a Subordinate Statement if available.<br><br>Entities that expose the Federation Extended Subordinate Listing endpoint MUST support all top level statement claims defined in [@!OpenID.Federation]. TBD: Support of requests for discrete Entity metadata attributes. ||
101101
| audit_timestamps | OPTIONAL | Boolean | Request parameter to control presence of the `registered`, `updated`, `revoked` audit timestamps attributes for all returned Immediate Subordiates.<br><br>If this parameter absent the audit timestamp attributes mentioned above MUST NOT be present unless `updated_after` and/or `updated_before` parameters are present.<br><br>If this parameter is present and set to `true` the response MUST include the above mentioned audit timestamp attributes for each Immediate Subordinate Entity included in the response.<br><br>If this parameter is present and set to `false` the response MUST NOT include the above mentioned audit timestamp attributes for each Immediate Subordinate Entity included in the response, even irrespective whether the `updated_after` and/or `updated_before` request parameters are present.<br><br>
102102

103103
*Table 1: Additional request parameters accepted by the Federation Extended Subordinate Listing endpoint in addition to the those specified by the `federation_list_endpoint`*
@@ -148,7 +148,7 @@ Each JSON object in the returned `immediate_subordinate_entities` array MAY cont
148148
| **Attribute** | **Availability** | **Type** | **Value** |
149149
|---------------------------------------------------------------|------------------|-------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
150150
| id | REQUIRED | Entity Identifier | Entity Identifier for the subject entity of the current record. |
151-
| entity_statement | OPTIONAL | String | Signed entity statement for the Subordinate Entity as issued by the Entity that exposes the Federation Extended Subordinate Listing endpoint.<br><br>This `entity_statement` attribute SHOULD be returned if the `claims` parameter is NOT present in the request or it is present but the array is empty.<br><br>This `entity_statement` attribute MUST NOT be returned if the `claims` parameter is NOT present in the request or it is present but the array is empty. |
151+
| subordinate_statement | OPTIONAL | String | Subordinate Statement for the Immediate Subordinate Entity as issued by the Entity that exposes the Federation Extended Subordinate Listing endpoint.<br><br>This `subordinate_statement` attribute MUST be returned if the `claims` parameter is present and contains `subordinate_statement`. It MUST NOT be returned if the `claims` parameter is present but the array does not contain `subordinate_statement`. |
152152
| trust_marks, metadata, and/or other selected statement claims | OPTIONAL | N/A | Selected Immediate Subordinate claims as requested with the `claims` request attribute. <br><br>These attributes MUST NOT be returned if the `claims` parameter is NOT present in the request or it is present but the array is empty. |
153153
| registered | OPTIONAL | Number | Time when the Entity was registered with the issuing party using NumericDate format. |
154154
| updated | OPTIONAL | Number | Time when the Entity was updated using the time format defined for the `iat` claim in [@!RFC7519]. This parameter MAY indicate that the Federation Entity Keys or metadata policies or constraints about this Entity was updated. |
@@ -168,17 +168,17 @@ Content-Type: application/json
168168
"immediate_subordinate_entities": [
169169
{
170170
"id": "https://rp0.example.net/oidc/rp",
171-
"entity_statement": "eyJ0eXAiOiJlbnRpdHktc3RhdGVtZW50K2p3dCIsImFsZyI6IlJTMjU2Iiwia2lkIjoiQlh2ZnJ..."
171+
"subordinate_statement": "eyJ0eXAiOiJlbnRpdHktc3RhdGVtZW50K2p3dCIsImFsZyI6IlJTMjU2Iiwia2lkIjoiQlh2ZnJ..."
172172
},
173173
{
174174
"id": "https://rp0.example.net/oidc/rp",
175-
"entity_statement": "eyH1eZUkOgKlbnRpdHktc4RhdGVtZW50K2p3dCIsImFsZyI6IlJTMjU4Iiwia2lkIjoiQlh2ZnJ..."
175+
"subordinate_statement": "eyH1eZUkOgKlbnRpdHktc4RhdGVtZW50K2p3dCIsImFsZyI6IlJTMjU4Iiwia2lkIjoiQlh2ZnJ..."
176176
}
177177
]
178178
}
179179
```
180180

181-
*Figure 5: Example Federation Extended Subordinate Listing endpoint response that includes Entity Statements.*
181+
*Figure 5: Example Federation Extended Subordinate Listing endpoint response that includes Subordinate Statements.*
182182

183183
```
184184
GET /list_extended?audit_timestamps=true&claims=entity_statement HTTP/1.1
@@ -190,7 +190,7 @@ Content-Type: application/json
190190
"immediate_subordinate_entities": [
191191
{
192192
"id": "https://rp0.example.net/oidc/rp",
193-
"entity_statement": "eyH1eZUkOgKlbnRpdHktc4RhdGVtZW50K2p3dCIsImFsZyI6IlJTMjU4Iiwia2lkIjoiQlh2ZnJ...",
193+
"subordinate_statement": "eyH1eZUkOgKlbnRpdHktc4RhdGVtZW50K2p3dCIsImFsZyI6IlJTMjU4Iiwia2lkIjoiQlh2ZnJ...",
194194
"registered":1704217689,
195195
"updated":1704217789,
196196
"revoked":1704217800
@@ -199,10 +199,10 @@ Content-Type: application/json
199199
}
200200
```
201201

202-
*Figure 6: Example Federation Extended Subordinate Listing endpoint response that includes an Entity Statement and audit timestamps*
202+
*Figure 6: Example Federation Extended Subordinate Listing endpoint response that includes an Subordinate Statement and audit timestamps*
203203

204204
```
205-
GET /list_extended?claims=entity_statement,trust_marks HTTP/1.1
205+
GET /list_extended?claims=subordinate_statement,trust_marks HTTP/1.1
206206
207207
200 OK
208208
Content-Type: application/json
@@ -217,13 +217,13 @@ Content-Type: application/json
217217
"trust_mark": "eyJraWQiOiJmdWtDdUtTS3hwWWJjN09lZUk3Ynlya3N5a0E1bDhP..."
218218
}
219219
],
220-
"entity_statement": "eyH1eZUkOgKlbnRpdHktc4RhdGVtZW50K2p3dCIsImFsZyI6IlJTMjU4Iiwia2lkIjoiQlh2ZnJ...",
220+
"subordinate_statement": "eyH1eZUkOgKlbnRpdHktc4RhdGVtZW50K2p3dCIsImFsZyI6IlJTMjU4Iiwia2lkIjoiQlh2ZnJ...",
221221
}
222222
]
223223
}
224224
```
225225

226-
*Figure 7: Example Federation Extended Subordinate Listing endpoint response that includes Entity Statements and Trust Marks*
226+
*Figure 7: Example Federation Extended Subordinate Listing endpoint response that includes Subordinate Statements and Trust Marks*
227227

228228
# Federation Entity Property
229229

@@ -246,23 +246,23 @@ Content-Type: application/json
246246
"immediate_subordinate_entities": [
247247
{
248248
"id": "https://0.example.net",
249-
"entity_statement": "eyJ0eXAiOiJlbnRpdHktc3RhdGVtZW50K2p3dCIsImFsZyI6IlJTMjU2Iiwia2lkIjoiQlh2ZnJ..."
249+
"subordinate_statement": "eyJ0eXAiOiJlbnRpdHktc3RhdGVtZW50K2p3dCIsImFsZyI6IlJTMjU2Iiwia2lkIjoiQlh2ZnJ..."
250250
},
251251
{
252252
"id": "https://1.example.net",
253-
"entity_statement": "eyH1eZUkOgKlbnRpdHktc4RhdGVtZW50K2p3dCIsImFsZyI6IlJTMjU4Iiwia2lkIjoiQlh2ZnJ..."
253+
"subordinate_statement": "eyH1eZUkOgKlbnRpdHktc4RhdGVtZW50K2p3dCIsImFsZyI6IlJTMjU4Iiwia2lkIjoiQlh2ZnJ..."
254254
},
255255
...
256256
{
257257
"id": "https://999.example.net",
258-
"entity_statement": "eyK2aKUkOgKlbnRpdHktc4RhdGVtZW50K2p3dCIsImFsZyI6IlJTMjU4Iiwia2lkIjoiQlh2ZnJ..."
258+
"subordinate_statement": "eyK2aKUkOgKlbnRpdHktc4RhdGVtZW50K2p3dCIsImFsZyI6IlJTMjU4Iiwia2lkIjoiQlh2ZnJ..."
259259
}
260260
],
261261
"next_entity_id": "https://1000.example.net"
262262
}
263263
```
264264

265-
*Figure 8: A Trust Anchor returns the results list consisting of thousand Immediate Subordinate Entities, along with the next Entity id that the next page starts with, in response to the request to list all immediate Subordinate Entities.*
265+
*Figure 8: A Trust Anchor returns the results list consisting of thousand Immediate Subordinate Entities, along with the next Entity id that the next page starts with, in response to the request to list all Immediate Subordinate Entities.*
266266

267267
```
268268
GET /list_extended?from_entity_id=https://1000.example.net HTTP/1.1
@@ -274,15 +274,15 @@ Content-Type: application/json
274274
"immediate_subordinate_entities": [
275275
{
276276
"id": "https://1000.example.net",
277-
"entity_statement": "eyK2aKUkOgKlbnRpdHktc4RhdGVtZW50K2p3dCIsImFsZyI6IlJTMjU4Iiwia2lkIjoiQlh2ZnJ..."
277+
"subordinate_statement": "eyK2aKUkOgKlbnRpdHktc4RhdGVtZW50K2p3dCIsImFsZyI6IlJTMjU4Iiwia2lkIjoiQlh2ZnJ..."
278278
},
279279
{
280280
"id": "https://1001.example.net",
281-
"entity_statement": "eyH4aKUkOgKlbnRpdHktc4RhdGVtZW50K2p3dCIsImFsZyI6IlJTMjU4Iiwia2lkIjoiQlh2ZnJ..."
281+
"subordinate_statement": "eyH4aKUkOgKlbnRpdHktc4RhdGVtZW50K2p3dCIsImFsZyI6IlJTMjU4Iiwia2lkIjoiQlh2ZnJ..."
282282
},
283283
{
284284
"id": "https://1003.example.net",
285-
"entity_statement": "eyW9aKUkOgKlbnRpdHktc4RhdGVtZW50K2p3dCIsImFsZyI6IlJTMjU4Iiwia2lkIjoiQlh2ZnJ..."
285+
"subordinate_statement": "eyW9aKUkOgKlbnRpdHktc4RhdGVtZW50K2p3dCIsImFsZyI6IlJTMjU4Iiwia2lkIjoiQlh2ZnJ..."
286286
}
287287
]
288288
}
@@ -300,22 +300,22 @@ Content-Type: application/json
300300
"immediate_subordinate_entities": [
301301
{
302302
"id": "https://123.example.net",
303-
"entity_statement": "eyJ0eXAiOiJlbnRpdHktc3RhdGVtZW50K2p3dCIsImFsZyI6IlJTMjU2Iiwia2lkIjoiQlh2ZnJ...",
303+
"subordinate_statement": "eyJ0eXAiOiJlbnRpdHktc3RhdGVtZW50K2p3dCIsImFsZyI6IlJTMjU2Iiwia2lkIjoiQlh2ZnJ...",
304304
"registered": 1704217689,
305305
"updated": 1704217789,
306306
"revoked": 1704217800
307307
},
308308
{
309309
"id": "https://323.example.net",
310-
"entity_statement": "eyW9aKUkOgKlbnRpdHktc4RhdGVtZW50K2p3dCIsImFsZyI6IlJTMjU4Iiwia2lkIjoiQlh2ZnJ...",
310+
"subordinate_statement": "eyW9aKUkOgKlbnRpdHktc4RhdGVtZW50K2p3dCIsImFsZyI6IlJTMjU4Iiwia2lkIjoiQlh2ZnJ...",
311311
"registered": 1704217689,
312312
"updated": 1704217789,
313313
"revoked": 1704217800
314314
},
315315
...
316316
{
317317
"id": "https://342.example.net",
318-
"entity_statement": "eyK2aKUkOgKlbnRpdHktc4RhdGVtZW50K2p3dCIsImFsZyI6IlJTMjU4Iiwia2lkIjoiQlh2ZnJ...",
318+
"subordinate_statement": "eyK2aKUkOgKlbnRpdHktc4RhdGVtZW50K2p3dCIsImFsZyI6IlJTMjU4Iiwia2lkIjoiQlh2ZnJ...",
319319
"registered": 1704217689,
320320
"updated": 1704217789,
321321
"revoked": 1704217800

0 commit comments

Comments
 (0)