Skip to content

Commit 3aafad4

Browse files
committed
Added security considerations around domain trust and changes in client keys
1 parent 9cd5cf2 commit 3aafad4

File tree

1 file changed

+16
-4
lines changed

1 file changed

+16
-4
lines changed

draft-parecki-oauth-client-id-metadata-document.md

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -215,9 +215,6 @@ but MAY define its own upper and/or lower bounds on an acceptable cache lifetime
215215
The authorization server MUST NOT cache error responses. The authorization
216216
server also MUST NOT cache documents which are invalid or malformed.
217217

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?
221218

222219
## Redirect URL Registration
223220

@@ -260,7 +257,7 @@ credentials at the authorization server by using authentication methods that use
260257
public/private key pairs, by publishing the public key in their metadata document.
261258

262259
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}}:
264261

265262
{
266263
...
@@ -274,6 +271,12 @@ the authorization server MUST include client authentication of the registered ty
274271

275272
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.
276273

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+
277280
## OAuth Phishing Attacks
278281

279282
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
299302

300303
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.
301304

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+
302312
# IANA Considerations
303313

304314
## OAuth Authorization Server Metadata Registry
@@ -331,6 +341,8 @@ The authors would like to thank the following people for their contributions and
331341

332342
* Prohibit all forms of symmetric client authentication, not just client secret
333343
* 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
334346
* Updated references
335347

336348

0 commit comments

Comments
 (0)