Skip to content

Commit a8343f7

Browse files
authored
Merge pull request #59 from selfissued/mbj-orie
Address IESG review comments by Orie Steele
2 parents 4a5a4af + 5f9a7fd commit a8343f7

File tree

1 file changed

+50
-33
lines changed

1 file changed

+50
-33
lines changed

Diff for: draft-ietf-oauth-resource-metadata.xml

+50-33
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
</address>
4141
</author>
4242

43-
<date day="30" month="September" year="2024" />
43+
<date day="1" month="October" year="2024" />
4444

4545
<area>Security</area>
4646
<workgroup>OAuth Working Group</workgroup>
@@ -123,7 +123,7 @@
123123
the protected resource, as described in <xref target="Impersonation"/>.
124124
</t>
125125
<t>
126-
<xref target="PRMetadata"/> defines metadata values that a protected
126+
<xref target="PRMetadata"/> defines metadata parameters that a protected
127127
resource can publish, which includes things like which scopes are
128128
supported, how a client can present an access token, and more.
129129
These values may be used by other specifications, such as the <spanx style="verb">jwks_uri</spanx>
@@ -154,6 +154,7 @@
154154
data structures in this specification utilize
155155
the JWS Compact Serialization or the JWE Compact Serialization;
156156
the JWS JSON Serialization and the JWE JSON Serialization are not used.
157+
Choosing a single serialization is intended to facilitate interoperability.
157158
</t>
158159
</section>
159160

@@ -174,7 +175,10 @@
174175
<t hangText='Resource Identifier:'>
175176
<vspace/>
176177
The Protected resource's resource identifier, which is a URL that
177-
uses the <spanx style="verb">https</spanx> scheme and has no query or fragment components.
178+
uses the <spanx style="verb">https</spanx> scheme and has no fragment component.
179+
As in Section 2 of <xref target="RFC8707"/>, it also SHOULD NOT include
180+
a query component, but it is recognized that there are cases that make
181+
a query component a useful and necessary part of a resource identifier.
178182
Protected resource metadata is published at a
179183
<spanx style="verb">.well-known</spanx> location
180184
<xref target="RFC8615"/>
@@ -189,7 +193,7 @@
189193
<section anchor="PRMetadata" title="Protected Resource Metadata">
190194
<t>
191195
Protected resources can have metadata describing their configuration.
192-
The following protected resource metadata values
196+
The following protected resource metadata parameters
193197
are used by this specification and are registered in the IANA
194198
"OAuth Protected Resource Metadata" registry
195199
established in <xref target="PRMetadataReg"/>:
@@ -408,7 +412,7 @@
408412
as a <spanx style="verb">signed_metadata</spanx> value,
409413
which is a JSON Web Token (JWT) <xref target="JWT"/>
410414
that asserts metadata values about the protected resource as a bundle.
411-
A set of claims that can be used in signed metadata
415+
A set of metadata parameters that can be used in signed metadata as claims
412416
are defined in <xref target="PRMetadata"/>.
413417
The signed metadata MUST be digitally signed or MACed
414418
using <xref target="JWS">JSON Web Signature (JWS)</xref>
@@ -427,10 +431,10 @@
427431

428432
<t hangText="signed_metadata">
429433
<vspace/>
430-
A JWT containing metadata values about the protected resource as claims.
434+
A JWT containing metadata parameters about the protected resource as claims.
431435
This is a string value consisting of the entire signed JWT.
432436
A <spanx style="verb">signed_metadata</spanx>
433-
metadata value SHOULD NOT appear as a claim in the JWT;
437+
parameter SHOULD NOT appear as a claim in the JWT;
434438
it is RECOMMENDED to reject any metadata in which this occurs.
435439
</t>
436440

@@ -446,9 +450,9 @@
446450
<t>
447451
Protected resources supporting metadata
448452
MUST make a JSON document containing metadata as specified in <xref target="PRMetadata"/>
449-
available at a path formed by
453+
available at a URL formed by
450454
inserting a well-known URI string into the protected resource's resource identifier
451-
between the host component and the path component, if any.
455+
between the host component and the path and/or query components, if any.
452456
By default, the well-known URI string used is
453457
<spanx style="verb">/.well-known/oauth-protected-resource</spanx>.
454458
The syntax and semantics of <spanx style="verb">.well-known</spanx>
@@ -473,9 +477,9 @@
473477
and there are Example-specific metadata values that it needs to publish,
474478
then it might register and use the
475479
<spanx style="verb">example-protected-resource</spanx> URI path suffix and publish
476-
the metadata document at the path formed by inserting
480+
the metadata document at the URL formed by inserting
477481
<spanx style="verb">/.well-known/example-protected-resource</spanx>
478-
between the host and path components of the
482+
between the host and path and/or query components of the
479483
protected resource's resource identifier.
480484
Alternatively, many such applications will use the default well-known URI string
481485
<spanx style="verb">/.well-known/oauth-protected-resource</spanx>,
@@ -496,7 +500,7 @@
496500
title="Protected Resource Metadata Request">
497501
<t>
498502
A protected resource metadata document MUST be queried using an HTTP
499-
<spanx style="verb">GET</spanx> request at the previously specified path.
503+
<spanx style="verb">GET</spanx> request at the previously specified URL.
500504
</t>
501505
<t>
502506
The consumer of the metadata would make the following request when the
@@ -515,11 +519,11 @@
515519
</t>
516520

517521
<t>
518-
If the
519-
resource identifier value contains a path component, any terminating
520-
<spanx style="verb">/</spanx> MUST be removed before inserting
522+
If the resource identifier value contains a path or query component,
523+
any terminating <spanx style="verb">/</spanx> following the host component
524+
MUST be removed before inserting
521525
<spanx style="verb">/.well-known/</spanx> and the well-known URI path suffix
522-
between the host component and the path component.
526+
between the host component and the path and/or query components.
523527
The consumer of the metadata would make the following request when the
524528
resource identifier is <spanx style="verb">https://resource.example.com/resource1</spanx>
525529
and the well-known URI path suffix is <spanx style="verb">oauth-protected-resource</spanx>
@@ -549,18 +553,19 @@
549553
<section anchor="PRConfigurationResponse"
550554
title="Protected Resource Metadata Response">
551555
<t>
552-
The response is a set of claims about the protected resource's
556+
The response is a set of metadata parameters about the protected resource's
553557
configuration.
554558
A successful response MUST use the 200 OK HTTP status code and return
555559
a JSON object using the <spanx style="verb">application/json</spanx> content type
556-
that contains a set of claims as its members
557-
that are a subset of the metadata values defined in
560+
that contains a set of metadata parameters as its members
561+
that are a subset of the metadata parameters defined in
558562
<xref target="PRMetadata"/>.
559-
Other claims MAY also be returned.
563+
Additional metadata parameters MAY be defined and used;
564+
any metadata parameters that are not understood MUST be ignored.
560565
</t>
561566
<t>
562-
Claims that return multiple values are represented as JSON arrays.
563-
Claims with zero elements MUST be omitted from the response.
567+
Parameters with multiple values are represented as JSON arrays.
568+
Parameters with zero values MUST be omitted from the response.
564569
</t>
565570
<t>
566571
An error response uses the applicable HTTP status code value.
@@ -626,7 +631,7 @@
626631
<t>
627632
To support use cases in which the set of legitimate protected resources
628633
to use with the authorization server is enumerable,
629-
this specification defines the authorization server metadata value
634+
this specification defines the authorization server metadata parameter
630635
<spanx style="verb">protected_resources</spanx>,
631636
which enables the authorization server to explicitly list the protected resources.
632637
Note that if the set of legitimate authorization servers
@@ -636,7 +641,7 @@
636641
when these lists are used by the application profile.
637642
</t>
638643
<t>
639-
The following authorization server metadata value
644+
The following authorization server metadata parameter
640645
is defined by this specification and is registered in the IANA
641646
"OAuth Authorization Server Metadata" registry established in
642647
<xref target="RFC8414">OAuth 2.0 Authorization Server Metadata</xref>.
@@ -912,7 +917,7 @@
912917

913918
<section anchor="changes" title="Changes to Resource Metadata">
914919
<t>
915-
At any point, for any reason determined by the protected resource,
920+
At any point, for any reason determined by the resource server,
916921
the protected resource MAY respond with a new <spanx style="verb">WWW-Authenticate</spanx> challenge
917922
that includes a value for the protected resource metadata URL to indicate that its metadata MAY have changed.
918923
If the client receives such a <spanx style="verb">WWW-Authenticate</spanx> response,
@@ -1026,13 +1031,13 @@
10261031
</t>
10271032
<t>
10281033
An attacker may also attempt to impersonate a protected resource by publishing
1029-
a metadata document that contains a <spanx style="verb">resource</spanx> claim
1034+
a metadata document that contains a <spanx style="verb">resource</spanx> metadata parameter
10301035
using the resource identifier URL of the protected resource being impersonated,
10311036
but containing information of the attacker's choosing.
10321037
This would enable it to impersonate that protected resource, if accepted by the client.
10331038
To prevent this, the client MUST ensure that the resource identifier URL it is using
10341039
as the prefix for the metadata request exactly matches the value of
1035-
the <spanx style="verb">resource</spanx> metadata value
1040+
the <spanx style="verb">resource</spanx> metadata parameter
10361041
in the protected resource metadata document received by the client,
10371042
as described in <xref target="PRConfigurationValidation"/>.
10381043
</t>
@@ -1076,7 +1081,7 @@
10761081
To support use cases in which the set of legitimate authorization servers
10771082
to use with the protected resource is enumerable,
10781083
this specification defines the <spanx style="verb">authorization_servers</spanx>
1079-
metadata value, which enables explicitly listing them.
1084+
metadata parameter, which enables explicitly listing them.
10801085
Note that if the set of legitimate protected resources
10811086
to use with an authorization server is also enumerable,
10821087
lists in the protected resource metadata and authorization server metadata
@@ -1517,7 +1522,7 @@
15171522
</t>
15181523
<t>
15191524
Metadata Description:
1520-
Signed JWT containing metadata values about the protected resource as claims
1525+
Signed JWT containing metadata parameters about the protected resource as claims
15211526
</t>
15221527
<t>
15231528
Change Controller: IETF
@@ -1533,7 +1538,7 @@
15331538

15341539
<section title="OAuth Authorization Server Metadata Registry" anchor="ASMetadataReg">
15351540
<t>
1536-
The following authorization server metadata value
1541+
The following authorization server metadata parameter
15371542
is registered in the IANA
15381543
"OAuth Authorization Server Metadata" registry established in
15391544
<xref target="RFC8414">OAuth 2.0 Authorization Server Metadata</xref>.
@@ -1855,7 +1860,9 @@
18551860
Tony Nadalin,
18561861
Rifaat Shekh-Yusef,
18571862
Filip Skokan,
1863+
Orie Steele,
18581864
Atul Tulshibagwale,
1865+
Paul Wouters,
18591866
and
18601867
Bo Wu
18611868
for their contributions to the specification.
@@ -1870,9 +1877,19 @@
18701877
<list style="symbols">
18711878
<t>
18721879
Incorporated responses to HttpDir review comments by Mike Bishop.
1873-
</t>
1874-
<t>
1875-
Incorporated responses to IESG review comments by Roman Danyliw.
1880+
</t>
1881+
<t>
1882+
Incorporated responses to IESG review comments by Roman Danyliw.
1883+
</t>
1884+
<t>
1885+
Incorporated responses to IESG review comments by Orie Steele.
1886+
Particularly, the specification now allows resource identifiers
1887+
to contain a query component (but still discourages it).
1888+
</t>
1889+
<t>
1890+
Consistently use the term "metadata parameter".
1891+
The terms "metadata value" and "claim" were previously
1892+
inconsistently used for the same thing.
18761893
</t>
18771894
</list>
18781895
</t>

0 commit comments

Comments
 (0)