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
This specification defines a mechanism through which an OAuth client can
@@ -147,6 +166,10 @@ The client metadata document MAY define additional properties in the response.
147
166
The client metadata document MAY also be served with more specific content types
148
167
as long as the response is JSON and conforms to `application/<AS-defined>+json`.
149
168
169
+
The `token_endpoint_auth_method` property MUST NOT include `client_secret_post`
170
+
or `client_secret_basic`, as there is no way to establish a shared secret to be
171
+
used with these authentication methods. See {{client_authentication}} for more details.
172
+
150
173
Other specifications MAY place additional restrictions on the contents of the
151
174
client metadata document accepted by authorization servers implementing their
152
175
specification, for instance, preventing the registration of confidential clients
@@ -174,28 +197,37 @@ is valid?
174
197
## Redirect URL Registration
175
198
176
199
According to {{I-D.draft-ietf-oauth-security-topics}}, the authorization server
177
-
MUST require registration of redirect URLs, and compare redirect URLs with
178
-
exact string matching. This client information discovery establishes a
179
-
registered redirect URL with the authorization server which is used when
180
-
comparing the redirect URL in an authorization request against the registered
181
-
redirect URLs.
200
+
MUST require registration of redirect URIs, and MUST ensure that the redirect URI
201
+
in a request is an exact match of a registered redirect URI.
182
202
183
-
TBD: Is it exact string matching, or is it still using simple string comparison per [RFC3986]
203
+
This method of client information discovery establishes a
204
+
registered redirect URI with the authorization server which is used when
205
+
comparing the redirect URI in an authorization request against the registered
206
+
redirect URIs.
207
+
208
+
# Authorization Server Metadata {#as-metadata}
209
+
210
+
Authorization servers that publish Authorization Server Metadata {{RFC8414}} MUST include the following property to signal support for client metadata documents as described in this specification.
211
+
212
+
`client_id_metadata_document_supported`:
213
+
: OPTIONAL. Boolean value specifying whether the authorization server supports retrieving client metadata from a `client_id` URL as described in this specification.
214
+
215
+
This enables clients to avoid sending the user to a dead end, by only redirecting the user to an authorization server that supports this specification. Otherwise, the client would redirect the user and the user would be met with an error about an invalid client as described by Section 4.1.2.1 of {{RFC6749}}.
184
216
185
217
186
218
# Security Considerations
187
219
188
220
In addition to the security considerations in OAuth 2.0 Core {{RFC6749}}, and OAuth 2.0 Threat Model and Security Considerations {{RFC6819}}, and {{I-D.draft-ietf-oauth-security-topics}} the additional considerations apply.
189
221
190
-
## Public vs Confidential Clients
222
+
## Client Authentication {#client_authentication}
191
223
192
224
Since the client establishes its own registration data at the authorization server,
193
225
prior coordination of client credentials is not possible. However, clients MAY establish
194
226
credentials at the authorization server by using authentication methods that use
195
227
public/private key pairs, by publishing the public key in their metadata document.
196
228
197
229
For example, the client MAY include the following properties in its metadata document
198
-
to establish a public key and the `private_key_jwt` authentication method:
230
+
to establish a public key and the `private_key_jwt` authentication method defined in {{OpenID}}:
199
231
200
232
{
201
233
...
@@ -221,9 +253,22 @@ If fetching the client metadata document fails for any reason, the `client_id` U
221
253
Authorization servers fetching the client metadata document and resolving URLs located in the metadata document should be aware of possible SSRF attacks. Authorization servers SHOULD avoid fetching any URLs using private or loopback addresses and consider network policies or other measures to prevent making requests to these addresses. Authorization servers SHOULD also be aware of the possibility that URLs might be non-http-based URI schemes which can lead to other possible SSRF attack vectors.
222
254
223
255
256
+
## Maximum Response Size for Client Metadata Documents
257
+
258
+
Authorization servers SHOULD limit the response size when fetching the client metadata document, as to avoid denial of service attacks against the authorization server by consuming excessive resources (memory, disk, database). The recommended maximum response size for client metadata documents is 5 kilobytes.
259
+
260
+
224
261
# IANA Considerations
225
262
226
-
This document has no IANA actions.
263
+
## OAuth Authorization Server Metadata Registry
264
+
265
+
The following authorization server metadata value is defined by this specification and registered in the IANA "OAuth Authorization Server Metadata" registry established in OAuth 2.0 Authorization Server Metadata [RFC8414].
* Metadata Description: JSON boolean value specifying whether the authorization server supports retrieving client metadata from a `client_id` URL.
269
+
* Change Controller: IETF
270
+
* Specification Document: {{as-metadata}} of {{&SELF}}
271
+
227
272
228
273
229
274
--- back
@@ -233,4 +278,15 @@ This document has no IANA actions.
233
278
234
279
The idea of using URIs as the `client_id` in OAuth based authorization requests is not new, and has previously been specified in varying ways by [IndieAuth], [Solid-OIDC], and [OpenID.Federation]. This specification is largely inspired by the work of Aaron Coburn, elf Pavlik, and Dmitri Zagidulin in their [Solid-OIDC] specification which defined dereferenceable Client Identifier Documents.
235
280
236
-
TODO further acknowledgements?
281
+
The authors would like to thank the following people for their contributions and reviews of this specification: Matthieu Sieben.
282
+
283
+
284
+
# Document History
285
+
{:numbered="false"}
286
+
287
+
(This appendix to be deleted by the RFC editor in the final specification.)
0 commit comments