|
63 | 63 | <abstract> |
64 | 64 | <t> |
65 | 65 | This specification updates the requirements for audience values |
66 | | - for tokens whose audience is an OAuth 2.0 authorization server |
| 66 | + in OAuth 2.0 Client Assertion Authentication and Assertion-based Authorization Grants |
67 | 67 | to address a security vulnerability identified in the previous |
68 | 68 | requirements for those audience values in multiple OAuth 2.0 specifications. |
69 | 69 | </t> |
|
103 | 103 | of tokens sent to OAuth 2.0 authorization servers. |
104 | 104 | </t> |
105 | 105 | <t> |
106 | | - A general description of the update made to each specification is for it |
| 106 | + A general description of the updates made is |
107 | 107 | to require that the issuer identifier URL of the authorization server, |
108 | 108 | as defined in <xref target="RFC8414"/>, |
109 | | - be used as the sole value of the token audience. |
110 | | - Furthermore, the authorization server MUST reject any such token that |
| 109 | + be used as the sole value of the audience of the JWT client authentication assertion. |
| 110 | + Furthermore, the authorization server rejects any JWT client authentication assertion that |
111 | 111 | does not contain its own issuer identifier as the sole audience value. |
112 | 112 | An explicit type for each affected kind of token, |
113 | 113 | as defined in <xref target="RFC8725"/>, |
|
214 | 214 | to tighten its audience requirements. |
215 | 215 | </t> |
216 | 216 |
|
217 | | - <t> |
218 | | - In Section 2.2 of <xref target="RFC7523"/> |
219 | | - (Using JWTs for Client Authentication), |
220 | | - the example is replaced by: |
221 | | - </t> |
222 | | - |
223 | | - <figure> |
224 | | - <artwork><![CDATA[ |
225 | | - POST /token.oauth2 HTTP/1.1 |
226 | | - Host: as.example.com |
227 | | - Content-Type: application/x-www-form-urlencoded |
228 | | -
|
229 | | - grant_type=authorization_code& |
230 | | - code=n0esc3NRze7LTCu7iYzS6a5acc3f0ogp4& |
231 | | - client_assertion_type=urn%3Aietf%3Aparams%3Aoauth%3A |
232 | | - client-assertion-type%3Ajwt-bearer& |
233 | | - client_assertion=eyJ0eXAiOiJjbGllbnQtYXV0aGVudGljYXRpb24rand0IiwiYWx |
234 | | - nIjoiRVMyNTYiLCJraWQiOiIxNiJ9. |
235 | | - e2F1ZDpodHRwczovL2F1dGh6LmV4YW1wbGUubmV0LA[...omitted...]. |
236 | | - cC4hiUPo[...omitted for brevity...] |
237 | | -]]></artwork> |
238 | | - </figure> |
239 | | - |
240 | 217 | <t> |
241 | 218 | In Section 3 of <xref target="RFC7523"/> (JWT Format and Processing Requirements), |
242 | 219 | Item 3, which describes the audience value, |
|
347 | 324 | and token request using it would look like. |
348 | 325 | </t> |
349 | 326 | <t> |
350 | | - The example shows a JWT issued and signed by the system entity identified as |
351 | | - <spanx style='verb'>https://jwt-idp.example.com</spanx>. |
352 | | - The subject of the JWT is identified by email address as < spanx style= 'verb'> [email protected]</ spanx>. |
| 327 | + The example shows a JWT issued and signed by the OAuth client identified as |
| 328 | + <spanx style='verb'>https://client.example/</spanx>. |
353 | 329 | The intended audience of the JWT is |
354 | 330 | <spanx style="verb">https://authz.example.net</spanx>, |
355 | 331 | which is the authorization server's issuer identifier. |
|
364 | 340 | <artwork><![CDATA[ |
365 | 341 | { |
366 | 342 | "aud": "https://authz.example.net", |
367 | | - "iss": "https://jwt-idp.example.com", |
368 | | - "sub": "mailto:[email protected]", |
| 343 | + "iss": "https://client.example/", |
| 344 | + "sub": "https://client.example/", |
369 | 345 | "iat": 1752702206, |
370 | | - "exp": 1752705806, |
371 | | - "http://claims.example.com/member": true |
| 346 | + "exp": 1752705806 |
372 | 347 | } |
373 | 348 | ]]></artwork> |
374 | 349 | </figure> |
|
407 | 382 | client_assertion_type=urn%3Aietf%3Aparams%3Aoauth%3A |
408 | 383 | client-assertion-type%3Ajwt-bearer& |
409 | 384 | client_assertion=eyJ0eXAiOiJjbGllbnQtYXV0aGVudGljYXRpb24rand0IiwiYWx |
410 | | - nIjoiRVMyNTYiLCJraWQiOiIxNiJ9. |
411 | | - e2F1ZDpodHRwczovL2F1dGh6LmV4YW1wbGUubmV0LA[...omitted...]. |
412 | | - J9l-ZhwP[...omitted for brevity...] |
| 385 | + nIjoiRVMyNTYiLCJraWQiOiIxNiJ9.eyJhdWQiOiAiaHR0cHM6Ly9hdXRoei5leGFt |
| 386 | + cGxlLm5ldCIsImlzcyI6ICJodHRwczovL2NsaWVudC5leGFtcGxlLyIsInN1YiI6IC |
| 387 | + JodHRwczovL2NsaWVudC5leGFtcGxlLyIsImlhdCI6IDE3NTI3MDIyMDYsImV4cCI6 |
| 388 | + IDE3NTI3MDU4MDZ9.6KrSQUxdl9ehs[...omitted for brevity...]bwc0ZOJw |
413 | 389 | ]]></artwork> |
414 | 390 | </figure> |
415 | 391 |
|
|
569 | 545 |
|
570 | 546 | <section title="OAuth Token Endpoint Authentication Methods" anchor="MethodsReg"> |
571 | 547 | <t> |
572 | | - This section updates entries in the "OAuth Token Endpoint Authentication Methods" registry <xref target="IANA.OAuthParameters"/> |
| 548 | + This section updates entries in the "OAuth Token Endpoint Authentication Methods" registry of <xref target="IANA.OAuthParameters"/> |
573 | 549 | </t> |
574 | 550 |
|
575 | 551 | <section title="Registry Contents" anchor="MethodsContents"> |
|
607 | 583 | </section> |
608 | 584 |
|
609 | 585 | </section> |
| 586 | + |
| 587 | + <section title="OAuth URI Registration Updates"> |
| 588 | + <t> |
| 589 | + This section requests updates to the following entries in the "OAuth URI" registry of <xref target="IANA.OAuthParameters"/> |
| 590 | + to add [[this specification]] as an additional reference. |
| 591 | + <?rfc subcompact="yes"?> |
| 592 | + <list style="symbols"> |
| 593 | + <t>urn:ietf:params:oauth:grant-type:jwt-bearer</t> |
| 594 | + <t>urn:ietf:params:oauth:client-assertion-type:jwt-bearer</t> |
| 595 | + <t>urn:ietf:params:oauth:grant-type:saml2-bearer</t> |
| 596 | + <t>urn:ietf:params:oauth:client-assertion-type:saml2-bearer</t> |
| 597 | + </list> |
| 598 | + <?rfc subcompact="no"?> |
| 599 | + |
| 600 | + </t> |
| 601 | + </section> |
| 602 | + |
610 | 603 | </section> |
611 | 604 |
|
612 | 605 | </middle> |
|
791 | 784 | <t> |
792 | 785 | Advise the client to ensure that the audience of an assertion authorization grant makes sense with respect to where it’s being sent. |
793 | 786 | </t> |
| 787 | + <t> |
| 788 | + Updates to the abstract and introduction to (hopefully) better reflect the more targeted scope of the work. |
| 789 | + </t> |
| 790 | + <t> |
| 791 | + Remove JWTs for Client Authentication example replacement (not worth it for including typ in the encoded JWT header). |
| 792 | + </t> |
| 793 | + <t> |
| 794 | + Add request to update existing OAuth URI registrations to add reference to this specification for the four relevant URNs. |
| 795 | + </t> |
| 796 | + <t> |
| 797 | + Fixup the new Client Authentication JWT Example. |
| 798 | + </t> |
794 | 799 | </list> |
795 | 800 | -02 |
796 | 801 | <list style="symbols"> |
|
848 | 853 | <t> |
849 | 854 | We would like to acknowledge the contributions of the following |
850 | 855 | people to this specification: |
| 856 | + Brock Allen |
851 | 857 | John Bradley, |
852 | 858 | Ralph Bragg, |
853 | 859 | Joseph Heenan, |
854 | 860 | Pedram Hosseyni, |
| 861 | + Pieter Kasselman, |
| 862 | + Ralf Küsters, |
| 863 | + Martin Lindström, |
855 | 864 | Aaron Parecki, |
| 865 | + Dean H. Saxe, |
| 866 | + Arndt Schwenkschuster, |
856 | 867 | and |
857 | 868 | Tim Würtele. |
858 | 869 | </t> |
|
0 commit comments