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-ietf-oauth-attestation-based-client-auth.md
+8-3Lines changed: 8 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -222,7 +222,7 @@ The following content applies to the JWT Header:
222
222
223
223
The following content applies to the JWT Claims Set:
224
224
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.
226
226
* `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.
227
227
* `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).
228
228
* `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:
235
235
236
236
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.
237
237
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.
239
239
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}}.
241
243
242
244
The following example is the decoded header and payload of a JWT meeting the processing rules as defined above.
243
245
@@ -325,6 +327,8 @@ While usage of the the client attestation mechanism defined by this draft can be
325
327
326
328
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.
327
329
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
+
328
332
The following example demonstrates usage of the client attestation mechanism in an access token request (with extra line breaks for display purposes only):
329
333
330
334
~~~
@@ -597,6 +601,7 @@ This section requests registration of the following scheme in the "Hypertext Tra
597
601
598
602
-06
599
603
604
+
* clarify client_id processing in token request with client attestation
600
605
* clarify usage of client attestation outside of oauth2 applications
601
606
* add oauth error response values `invalid_client_attestation` and `use_attestation_challenge`
602
607
* revert the HTTP OPTIONS mechanism to fetch nonces and add a dedicated challenge endpoint
0 commit comments