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
Copy file name to clipboardExpand all lines: draft-parecki-oauth-client-id-metadata-document.md
+16-4Lines changed: 16 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -215,9 +215,6 @@ but MAY define its own upper and/or lower bounds on an acceptable cache lifetime
215
215
The authorization server MUST NOT cache error responses. The authorization
216
216
server also MUST NOT cache documents which are invalid or malformed.
217
217
218
-
TBD: Do we want to define an endpoint through which a document can be validated
219
-
by an authorization server, such that a developer can assert that their document
220
-
is valid?
221
218
222
219
## Redirect URL Registration
223
220
@@ -260,7 +257,7 @@ credentials at the authorization server by using authentication methods that use
260
257
public/private key pairs, by publishing the public key in their metadata document.
261
258
262
259
For example, the client MAY include the following properties in its metadata document
263
-
to establish a public key and the `private_key_jwt` authentication method defined in {{OpenID}}:
260
+
to establish a public key and advertise the `private_key_jwt` authentication method defined in {{OpenID}}:
264
261
265
262
{
266
263
...
@@ -274,6 +271,12 @@ the authorization server MUST include client authentication of the registered ty
274
271
275
272
The particular method of how the client manages the private key is out of scope of this specification, but may include manual provisioning or methods such as Attestation Based Client Authentication [I-D.draft-ietf-oauth-attestation-based-client-auth]. For example, the client developer could run a Client Attester Backend, using a native application's platform-specific APIs to authenticate to the backend service, where the private key corresponding to the `jwks_uri` key is managed by the backend service. This would allow a mobile app to request JWTs from the backend service that the mobile app could then use as client authentication to the authorization server.
276
273
274
+
275
+
## Changes in Client Keys
276
+
277
+
If the authorization server notices that the `jwks_uri` or the contents at the `jwks_uri` have changed compared to the last time it fetched the metadata, the authorization server MAY take actions such as revoking any tokens issued to this client, or revoking the user's consent for this client. The particular actions to take are left up to the discretion of the authorization server based on its own risk assessment.
278
+
279
+
277
280
## OAuth Phishing Attacks
278
281
279
282
Authorization servers SHOULD fetch the `client_id` metadata document provided in the authorization request in order to provide users with additional information about the request, such as the application name and logo. If the server does not fetch the client metadata document, then it SHOULD take additional measures to ensure the user is provided with as much information as possible about the request.
@@ -299,6 +302,13 @@ Authorization servers that wish to make use of the `logo_uri` property within cl
299
302
300
303
Caching of the `logo_uri` response can additionally prevent cross-domain tracking through the `logo_uri` being requested by the client, since the cached file would be served not from the remote URI but instead from a URI that the Authorization server trusts.
301
304
305
+
## Client ID Domain Trust
306
+
307
+
The authorization server MAY choose to have its own heuristics and policies around the trust of domain names used as client IDs.
308
+
309
+
For example, the authorization server could require that the first 100 users to authorize a `client_id` see an additional warning screen before the OAuth consent screen. The authorization server could check attributes of the domain reputation, such as how recently the domain was registered, and put up extra warnings for new domains.
310
+
311
+
302
312
# IANA Considerations
303
313
304
314
## OAuth Authorization Server Metadata Registry
@@ -331,6 +341,8 @@ The authors would like to thank the following people for their contributions and
331
341
332
342
* Prohibit all forms of symmetric client authentication, not just client secret
333
343
* Added recommendations for development when clients are not on the web
344
+
* Added reference to HTTP Caching RFC9111
345
+
* Added security considerations around domain trust and changes in client keys
0 commit comments