Skip to content

Commit 2d6228c

Browse files
authored
Merge pull request #129 from oauth-wg/tl/issue_81
Clarify that client_id in client attestation MUST be consistent with token request
2 parents 15de548 + b7390de commit 2d6228c

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

draft-ietf-oauth-attestation-based-client-auth.md

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ The following content applies to the JWT Header:
222222

223223
The following content applies to the JWT Claims Set:
224224

225-
* `iss`: REQUIRED. The `iss` (subject) claim MUST specify client_id value of the OAuth Client.
225+
* `iss`: REQUIRED. The `iss` (issuer) claim MUST specify client_id value of the OAuth Client.
226226
* `aud`: REQUIRED. The `aud` (audience) claim MUST specify a value that identifies the authorization server as an intended audience. The {{RFC8414}} issuer identifier URL of the authorization server MUST be used as a value for an "aud" element to identify the authorization server as the intended audience of the JWT.
227227
* `jti`: REQUIRED. The `jti` (JWT identifier) claim MUST specify a unique identifier for the Client Attestation PoP. The authorization server can utilize the `jti` value for replay attack detection, see [](#security-consideration-replay).
228228
* `challenge`: OPTIONAL. The `challenge` (challenge) claim MUST specify a String value that is provided by the authorization server for the client to include in the Client Attestation PoP JWT.
@@ -235,9 +235,11 @@ The following additional rules apply:
235235

236236
2. The JWT MUST be digitally signed using an asymmetric cryptographic algorithm. The authorization server MUST reject the JWT if it is using a Message Authentication Code (MAC) based algorithm. The authorization server MUST reject JWTs with an invalid signature.
237237

238-
3. The public key used to verify the JWT MUST be the key located in the "cnf" claim of the corresponding Client Attestation JWT.
238+
3. The public key used to verify the JWT MUST be the key located in the "cnf" claim of the corresponding Client Attestation JWT.
239239

240-
4. The Authorization Server MUST reject a JWT that is not valid in all other respects per "JSON Web Token (JWT)" {{RFC7519}}.
240+
4. The value of the `iss` claim, representing the client_id MUST match the value of the `sub` claim in the corresponding Client Attestation JWT.
241+
242+
5. The Authorization Server MUST reject a JWT that is not valid in all other respects per "JSON Web Token (JWT)" {{RFC7519}}.
241243

242244
The following example is the decoded header and payload of a JWT meeting the processing rules as defined above.
243245

@@ -325,6 +327,8 @@ While usage of the the client attestation mechanism defined by this draft can be
325327

326328
The Authorization Server MUST perform all of the checks outlined in [](#checking-http-requests-with-client-attestations) for a received access token request which is making use of the client attestation mechanism as defined by this draft.
327329

330+
If the token request contains a `client_id` parameter as per {{RFC6749}} the Authorization Server MUST verify that the value of this parameter is the same as the client_id value in the `sub` claim of the Client Attestation and `iss` claim of the Client Attestation PoP.
331+
328332
The following example demonstrates usage of the client attestation mechanism in an access token request (with extra line breaks for display purposes only):
329333

330334
~~~
@@ -597,6 +601,7 @@ This section requests registration of the following scheme in the "Hypertext Tra
597601

598602
-06
599603

604+
* clarify client_id processing in token request with client attestation
600605
* clarify usage of client attestation outside of oauth2 applications
601606
* add oauth error response values `invalid_client_attestation` and `use_attestation_challenge`
602607
* revert the HTTP OPTIONS mechanism to fetch nonces and add a dedicated challenge endpoint

0 commit comments

Comments
 (0)