Return-Path: <jricher@mit.edu>
X-Original-To: oauth@ietfa.amsl.com
Delivered-To: oauth@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1])
 by ietfa.amsl.com (Postfix) with ESMTP id 2AB4112009E
 for <oauth@ietfa.amsl.com>; Fri, 10 Jan 2020 06:56:24 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.198
X-Spam-Level: 
X-Spam-Status: No, score=-4.198 tagged_above=-999 required=5
 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3,
 SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001]
 autolearn=unavailable autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44])
 by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id IoxQOKgvU0ER for <oauth@ietfa.amsl.com>;
 Fri, 10 Jan 2020 06:56:21 -0800 (PST)
Received: from outgoing.mit.edu (outgoing-auth-1.mit.edu [18.9.28.11])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by ietfa.amsl.com (Postfix) with ESMTPS id 237A21200B7
 for <oauth@ietf.org>; Fri, 10 Jan 2020 06:56:21 -0800 (PST)
Received: from [192.168.1.16] (static-71-174-62-56.bstnma.fios.verizon.net
 [71.174.62.56]) (authenticated bits=0)
 (User authenticated as jricher@ATHENA.MIT.EDU)
 by outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id 00AEuDqh017015
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Fri, 10 Jan 2020 09:56:15 -0500
From: Justin Richer <jricher@mit.edu>
Message-Id: <3E119888-EF1E-4462-ABC6-93313811C481@mit.edu>
Content-Type: multipart/alternative;
 boundary="Apple-Mail=_5BBA4C70-72A4-4ADE-85F0-E55A4B4F7923"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\))
Date: Fri, 10 Jan 2020 09:56:12 -0500
In-Reply-To: <38C69B8C-905F-46F1-88BB-016CF7DE2952@amazon.com>
Cc: Neil Madden <neil.madden@forgerock.com>,
 Brian Campbell <bcampbell@pingidentity.com>,
 Dave Tonge <dave.tonge@moneyhub.com>, oauth <oauth@ietf.org>,
 Nat Sakimura <nat@sakimura.org>
To: "Richard Backman, Annabelle" <richanna=40amazon.com@dmarc.ietf.org>
References: <E1C4F217-8A9F-4E26-A488-C17D741C1D34@lodderstedt.net>
 <CALAqi_-J6vUSc11V1L2L+tGfZEjqdya6R0rqV-kxiM2NoFb0Zw@mail.gmail.com>
 <50191CC6-0A19-42B4-87C2-880F53FD3C4F@lodderstedt.net>
 <05AB19DB-FCD2-4FAA-A470-0978E7B65354@amazon.com>
 <CA+k3eCS6SdAKjOp67o_zUytnNGnpM4p5UO68CvZeEXg11PWrtg@mail.gmail.com>
 <801AFC59-B94A-4C9E-A44D-60F4EF6F4EC2@forgerock.com>
 <38C69B8C-905F-46F1-88BB-016CF7DE2952@amazon.com>
X-Mailer: Apple Mail (2.3445.104.11)
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/ddr2e3xwwHN0tIn9E7RcVCsjRg0>
Subject: Re: [OAUTH-WG] [UNVERIFIED SENDER] Re:  PAR metadata
X-BeenThere: oauth@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: OAUTH WG <oauth.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/oauth>,
 <mailto:oauth-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/oauth/>
List-Post: <mailto:oauth@ietf.org>
List-Help: <mailto:oauth-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/oauth>,
 <mailto:oauth-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 10 Jan 2020 14:56:24 -0000


--Apple-Mail=_5BBA4C70-72A4-4ADE-85F0-E55A4B4F7923
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

I just want to add that the requirement to validate the request at PAR =
the same way as you would at the auth endpoint is something that I want =
to see relaxed, and I hope it doesn=E2=80=99t make it through to the =
final standard.=20

Also keep in mind that this is barely started as a WG document so any =
requirement is soft at best. When discussing things like this, we should =
keep this in mind by discussing the consequences of having a phrase in =
there, not behaving as if things are unchangeable.=20

 =E2=80=94 Justin

> On Jan 6, 2020, at 4:59 PM, Richard Backman, Annabelle =
<richanna=3D40amazon.com@dmarc.ietf.org> wrote:
>=20
> The issue isn=E2=80=99t that the PAR endpoint needs access to one =
specific request object decryption key that could reasonably be shared =
across AS endpoints, but that it actually needs access to the private =
keys for all encryption public keys in the JWK set pointed to by the =
AS=E2=80=99s jwks_uri metadata property. Since there is no way to =
designate one particular key as the one to use for encrypting request =
objects, clients may reasonably use any encryption public key in the JWK =
set to encrypt a request object. As one example of how this could expose =
sensitive data to the PAR endpoint, if the PAR endpoint has all the =
decryption keys for the keys in the AS=E2=80=99s JWK set, it would be =
able to decrypt ID Tokens sent in id_token_hint request parameters. As =
more and more use cases develop for encrypting blobs for the AS, this =
issue will only get worse.
> =20
> The PAR endpoint can=E2=80=99t simply stash the encrypted request =
object, as it is required to verify the request, according to =C2=A72.1:
> =20
> The AS MUST process the request as follows:
> =20
> ...
> =20
> 3.  The AS MUST validate the request in the same way as at the
>           authorization endpoint. ...
> =20
> This language needs to be more flexible, IMHO, to allow for =
lightweight PAR endpoints that may not have the information or authority =
needed to perform all the validation that happens at the authorization =
endpoint. I need to think about this more before I can say if it would =
adequately address my concerns, but it=E2=80=99d be a good start and =
makes sense in its own right.
> =20
> I think it=E2=80=99s pretty risky for us to base decision on an =
assumption that no one is going to need or want to encrypt pushed =
request objects, particularly when they=E2=80=99re JWTs, and JWTs have =
well established support for encryption, and encrypted JWTs are =
supported by pass-by-value in OIDC and draft-ietf-oauth-jwsreq. But if =
you insist, here are a few examples for why someone might want to do =
this:
> The request object is passed by reference, and accessible on the =
public Internet.
> The request object contains sensitive transaction-related data in RAR =
parameters that the client=E2=80=99s authN/authZ stack doesn=E2=80=99t =
need to have access to.
> The AS requires request object encryption to minimize exposure to the =
hosted PAR endpoint service it uses.
> #2, but the threat vector is gaps in end-to-end TLS.
> Any of the above, but the concern is message integrity, and the AS =
requires requested objects to be encrypted for confidentiality and =
integrity protection and does not support signed request objects.
> =20
> =E2=80=93=20
> Annabelle Richard Backman
> AWS Identity
> =20
> =20
> From: Neil Madden <neil.madden@forgerock.com =
<mailto:neil.madden@forgerock.com>>
> Date: Monday, January 6, 2020 at 6:29 AM
> To: Brian Campbell <bcampbell@pingidentity.com =
<mailto:bcampbell@pingidentity.com>>
> Cc: "Richard Backman, Annabelle" <richanna@amazon.com =
<mailto:richanna@amazon.com>>, Nat Sakimura <nat@sakimura.org =
<mailto:nat@sakimura.org>>, Dave Tonge <dave.tonge@moneyhub.com =
<mailto:dave.tonge@moneyhub.com>>, Torsten Lodderstedt =
<torsten@lodderstedt.net <mailto:torsten@lodderstedt.net>>, oauth =
<oauth@ietf.org <mailto:oauth@ietf.org>>
> Subject: [UNVERIFIED SENDER] Re: [OAUTH-WG] PAR metadata
> =20
> Agreed.=20
> =20
> In addition, I'm not sure why the PAR endpoint would need access to =
the decryption keys at all. If you're using encrypted request objects =
then the PAR endpoint receives an encrypted JWT and then later makes the =
same (still encrypted) JWT available to the authorization endpoint. If =
the PAR endpoint is doing any kind of decryption or validation on behalf =
of the authorization endpoint then they are clearly not in separate =
trust boundaries.
> =20
> -- Neil
> =20
>=20
>=20
>> On 6 Jan 2020, at 13:57, Brian Campbell =
<bcampbell=3D40pingidentity.com@dmarc.ietf.org =
<mailto:bcampbell=3D40pingidentity.com@dmarc.ietf.org>> wrote:
>> =20
>> I really struggle to see the assumption that an entity be able to use =
the same key to decrypt the same type of message ultimately intended for =
the same purpose as an artificial limit. The same general assumption   =
underlies everything else in OAuth/OIDC (Vladimir's post points to some =
but not all examples of such). There's no reason for PAR to make a =
one-off exception. And should there be some deployment specific reason =
that truly requires that kind of isolation, there are certainly =
implementation options that aren't compatibility-breaking. And having =
said all that, I'm honestly a little surprised anyone is thinking much =
about encrypted request objects with PAR as, at least with my limited =
imagination, there's not really a need for it.
>> =20
>> =20
>> =20
>> =20
>> =20
>> =20
>> =20
>> =20
>> On Fri, Jan 3, 2020 at 2:43 PM Richard Backman, Annabelle =
<richanna=3D40amazon.com@dmarc.ietf.org =
<mailto:40amazon.com@dmarc.ietf.org>> wrote:
>>> PAR introduces an added wrinkle for encrypted request objects: the =
PAR endpoint and authorization endpoint may not have access to the same =
cryptographic keys, even though they're both part of the "authorization =
server." Since they're different endpoints with different roles, it's =
reasonable to put them in separate trust boundaries. There is no way to =
support this isolation with just a single "jwks_uri" metadata property.
>>>=20
>>> The two options that I see are:
>>>=20
>>> 1. Define a new par_jwks_uri metadata property.
>>> 2. Explicitly state that this separation is not supported.
>>>=20
>>> I strongly perfer #1 as it has a very minor impact on deployments =
that don't care (i.e., they just set par_jwks_uri and jwks_uri to the =
same value) and failing to support this trust boundary creates an =
artificial limit on implementation architecture and could lead to =
compatibility-breaking workarounds.
>>>=20
>>> =E2=80=93=20
>>> Annabelle Richard Backman
>>> AWS Identity
>>>=20
>>>=20
>>> On 12/31/19, 8:07 AM, "OAuth on behalf of Torsten Lodderstedt" =
<oauth-bounces@ietf.org <mailto:oauth-bounces@ietf.org> on behalf of =
torsten=3D40lodderstedt.net@dmarc.ietf.org =
<mailto:40lodderstedt.net@dmarc.ietf.org>> wrote:
>>>=20
>>>     Hi Filip,=20
>>>=20
>>>     > On 31. Dec 2019, at 16:22, Filip Skokan <panva.ip@gmail.com =
<mailto:panva.ip@gmail.com>> wrote:
>>>     >=20
>>>     > I don't think we need a *_auth_method_* metadata for every =
endpoint the client calls directly, none of the new specs defined these =
(e.g. device authorization endpoint or CIBA), meaning they also didn't =
follow the scheme from RFC 8414 where introspection and revocation got =
its own metadata. In most cases the unfortunately named =
`token_endpoint_auth_method` and its related metadata is what's used by =
clients for all direct calls anyway.
>>>     >=20
>>>     > The same principle could be applied to signing (and =
encryption) algorithms as well.
>>>     >=20
>>>     > This I do not follow, auth methods and their signing is dealt =
with by using `token_endpoint_auth_methods_supported` and =
`token_endpoint_auth_signing_alg_values_supported` - there's no =
encryption for the `_jwt` client auth methods.=20
>>>     > Unless it was meant to address the Request Object signing and =
encryption metadata, which is defined and IANA registered by OIDC. PAR =
only references JAR section 6.1 and 6.2 for decryption/signature =
validation and these do not mention the metadata (e.g. =
request_object_signing_alg) anymore since draft 07.
>>>=20
>>>     Dammed! You are so right. Sorry, I got confused somehow.=20
>>>=20
>>>     >=20
>>>     > PS: I also found this comment related to the same question =
about auth metadata but for CIBA.
>>>=20
>>>     Thanks for sharing.=20
>>>=20
>>>     >=20
>>>     > Best,
>>>     > Filip
>>>=20
>>>     thanks,
>>>     Torsten.=20
>>>=20
>>>     >=20
>>>     >=20
>>>     > On Tue, 31 Dec 2019 at 15:38, Torsten Lodderstedt =
<torsten@lodderstedt.net <mailto:torsten@lodderstedt.net>> wrote:
>>>     > Hi all,
>>>     >=20
>>>     > Ronald just sent me an email asking whether we will define =
metadata for=20
>>>     >=20
>>>     > pushed_authorization_endpoint_auth_methods_supported and
>>>     > =
pushed_authorization_endpoint_auth_signing_alg_values_supported.
>>>     >=20
>>>     > The draft right now utilises the existing token endpoint =
authentication methods so there is basically no need to define another =
parameter. The same principle could be applied to signing (and =
encryption) algorithms as well.=20
>>>     >=20
>>>     > What=E2=80=99s your opinion?
>>>     >=20
>>>     > best regards,
>>>     > Torsten.
>>>=20
>>>=20
>>>=20
>>> _______________________________________________
>>> OAuth mailing list
>>> OAuth@ietf.org <mailto:OAuth@ietf.org>
>>> https://www.ietf.org/mailman/listinfo/oauth =
<https://www.ietf.org/mailman/listinfo/oauth>
>>=20
>> CONFIDENTIALITY NOTICE: This email may contain confidential and =
privileged material for the sole use of the intended recipient(s). Any =
review, use, distribution or disclosure by others is strictly =
prohibited..  If you have received this communication in error, please =
notify the sender immediately by e-mail and delete the message and any =
file attachments from your computer. Thank =
you._______________________________________________
>> OAuth mailing list
>> OAuth@ietf.org <mailto:OAuth@ietf.org>
>> https://www.ietf.org/mailman/listinfo/oauth =
<https://www.ietf.org/mailman/listinfo/oauth>
> =20
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.org <mailto:OAuth@ietf.org>
> https://www.ietf.org/mailman/listinfo/oauth =
<https://www.ietf.org/mailman/listinfo/oauth>

--Apple-Mail=_5BBA4C70-72A4-4ADE-85F0-E55A4B4F7923
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;" class=3D"">I =
just want to add that the requirement to validate the request at PAR the =
same way as you would at the auth endpoint is something that I want to =
see relaxed, and I hope it doesn=E2=80=99t make it through to the final =
standard.&nbsp;<div class=3D""><br class=3D""></div><div class=3D"">Also =
keep in mind that this is barely started as a WG document so any =
requirement is soft at best. When discussing things like this, we should =
keep this in mind by discussing the consequences of having a phrase in =
there, not behaving as if things are unchangeable.&nbsp;<br =
class=3D""><div class=3D""><br class=3D""></div><div class=3D"">&nbsp;=E2=80=
=94 Justin<br class=3D""><div><br class=3D""><blockquote type=3D"cite" =
class=3D""><div class=3D"">On Jan 6, 2020, at 4:59 PM, Richard Backman, =
Annabelle &lt;<a href=3D"mailto:richanna=3D40amazon.com@dmarc.ietf.org" =
class=3D"">richanna=3D40amazon.com@dmarc.ietf.org</a>&gt; =
wrote:</div><br class=3D"Apple-interchange-newline"><div class=3D""><div =
class=3D"WordSection1" style=3D"page: WordSection1; caret-color: rgb(0, =
0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;"><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 11pt; font-family: Calibri, sans-serif;" class=3D"">The issue =
isn=E2=80=99t that the PAR endpoint needs access to one specific request =
object decryption key that could reasonably be shared across AS =
endpoints, but that it actually needs access to the private keys for all =
encryption public keys in the JWK set pointed to by the AS=E2=80=99s =
jwks_uri metadata property. Since there is no way to designate one =
particular key as the one to use for encrypting request objects, clients =
may reasonably use any encryption public key in the JWK set to encrypt a =
request object. As one example of how this could expose sensitive data =
to the PAR endpoint, if the PAR endpoint has all the decryption keys for =
the keys in the AS=E2=80=99s JWK set, it would be able to decrypt ID =
Tokens sent in id_token_hint request parameters. As more and more use =
cases develop for encrypting blobs for the AS, this issue will only get =
worse.<o:p class=3D""></o:p></div><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">The PAR endpoint can=E2=80=99t simply stash the encrypted =
request object, as it is required to verify the request, according to =
=C2=A72.1:<o:p class=3D""></o:p></div><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div><pre style=3D"margin: 0in =
0in 0.0001pt 0.5in; font-size: 10pt; font-family: &quot;Courier =
New&quot;;" class=3D""><span style=3D"" class=3D"">The AS MUST process =
the request as follows:<o:p class=3D""></o:p></span></pre><pre =
style=3D"margin: 0in 0in 0.0001pt 0.5in; font-size: 10pt; font-family: =
&quot;Courier New&quot;;" class=3D""><span style=3D"" class=3D""><o:p =
class=3D"">&nbsp;</o:p></span></pre><pre style=3D"margin: 0in 0in =
0.0001pt 0.5in; font-size: 10pt; font-family: &quot;Courier New&quot;;" =
class=3D""><span style=3D"" class=3D"">...<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0in 0in 0.0001pt =
0.5in; font-size: 10pt; font-family: &quot;Courier New&quot;;" =
class=3D""><span style=3D"" class=3D""><o:p =
class=3D"">&nbsp;</o:p></span></pre><pre style=3D"margin: 0in 0in =
0.0001pt 0.5in; font-size: 10pt; font-family: &quot;Courier New&quot;;" =
class=3D""><span style=3D"" class=3D"">3.&nbsp; The AS MUST validate the =
request in the same way as at the<o:p class=3D""></o:p></span></pre><pre =
style=3D"margin: 0in 0in 0.0001pt; font-size: 10pt; font-family: =
&quot;Courier New&quot;;" class=3D""><span style=3D"" =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;authorization endpoint. ...<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0in 0in 0.0001pt; =
font-size: 10pt; font-family: &quot;Courier New&quot;;" class=3D""><span =
style=3D"" class=3D""><o:p class=3D"">&nbsp;</o:p></span></pre><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: =
Calibri, sans-serif;" class=3D"">This language needs to be more =
flexible, IMHO, to allow for lightweight PAR endpoints that may not have =
the information or authority needed to perform all the validation that =
happens at the authorization endpoint. I need to think about this more =
before I can say if it would adequately address my concerns, but it=E2=80=99=
d be a good start and makes sense in its own right.<o:p =
class=3D""></o:p></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 11pt; font-family: Calibri, sans-serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 11pt; font-family: Calibri, sans-serif;" class=3D"">I think =
it=E2=80=99s pretty risky for us to base decision on an assumption that =
no one is going to need or want to encrypt pushed request objects, =
particularly when they=E2=80=99re JWTs, and JWTs have well established =
support for encryption, and encrypted JWTs are supported by =
pass-by-value in OIDC and draft-ietf-oauth-jwsreq. But if you insist, =
here are a few examples for why someone might want to do this:<o:p =
class=3D""></o:p></div><ol start=3D"1" type=3D"1" style=3D"margin-bottom: =
0in; margin-top: 0in;" class=3D""><li class=3D"MsoListParagraph" =
style=3D"margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: =
Calibri, sans-serif;">The request object is passed by reference, and =
accessible on the public Internet.<o:p class=3D""></o:p></li><li =
class=3D"MsoListParagraph" style=3D"margin: 0in 0in 0.0001pt; font-size: =
11pt; font-family: Calibri, sans-serif;">The request object contains =
sensitive transaction-related data in RAR parameters that the client=E2=80=
=99s authN/authZ stack doesn=E2=80=99t need to have access to.<o:p =
class=3D""></o:p></li><li class=3D"MsoListParagraph" style=3D"margin: =
0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, =
sans-serif;">The AS requires request object encryption to minimize =
exposure to the hosted PAR endpoint service it uses.<o:p =
class=3D""></o:p></li><li class=3D"MsoListParagraph" style=3D"margin: =
0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, =
sans-serif;">#2, but the threat vector is gaps in end-to-end TLS.<o:p =
class=3D""></o:p></li><li class=3D"MsoListParagraph" style=3D"margin: =
0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, =
sans-serif;">Any of the above, but the concern is message integrity, and =
the AS requires requested objects to be encrypted for confidentiality =
and integrity protection and does not support signed request =
objects.<o:p class=3D""></o:p></li></ol><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: =
Calibri, sans-serif;" class=3D""><span style=3D"font-size: 12pt;" =
class=3D"">=E2=80=93&nbsp;<o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: =
Calibri, sans-serif;" class=3D""><span style=3D"font-size: 12pt;" =
class=3D"">Annabelle Richard Backman<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 11pt; font-family: Calibri, sans-serif;" class=3D""><span =
style=3D"font-size: 12pt;" class=3D"">AWS Identity<o:p =
class=3D""></o:p></span></div></div><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div><div style=3D"border-style: =
solid none none; border-top-width: 1pt; border-top-color: rgb(181, 196, =
223); padding: 3pt 0in 0in;" class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D""><b class=3D""><span style=3D"font-size: 12pt;" =
class=3D"">From:<span =
class=3D"Apple-converted-space">&nbsp;</span></span></b><span =
style=3D"font-size: 12pt;" class=3D"">Neil Madden &lt;<a =
href=3D"mailto:neil.madden@forgerock.com" style=3D"color: purple; =
text-decoration: underline;" =
class=3D"">neil.madden@forgerock.com</a>&gt;<br class=3D""><b =
class=3D"">Date:<span =
class=3D"Apple-converted-space">&nbsp;</span></b>Monday, January 6, 2020 =
at 6:29 AM<br class=3D""><b class=3D"">To:<span =
class=3D"Apple-converted-space">&nbsp;</span></b>Brian Campbell &lt;<a =
href=3D"mailto:bcampbell@pingidentity.com" style=3D"color: purple; =
text-decoration: underline;" =
class=3D"">bcampbell@pingidentity.com</a>&gt;<br class=3D""><b =
class=3D"">Cc:<span =
class=3D"Apple-converted-space">&nbsp;</span></b>"Richard Backman, =
Annabelle" &lt;<a href=3D"mailto:richanna@amazon.com" style=3D"color: =
purple; text-decoration: underline;" =
class=3D"">richanna@amazon.com</a>&gt;, Nat Sakimura &lt;<a =
href=3D"mailto:nat@sakimura.org" style=3D"color: purple; =
text-decoration: underline;" class=3D"">nat@sakimura.org</a>&gt;, Dave =
Tonge &lt;<a href=3D"mailto:dave.tonge@moneyhub.com" style=3D"color: =
purple; text-decoration: underline;" =
class=3D"">dave.tonge@moneyhub.com</a>&gt;, Torsten Lodderstedt &lt;<a =
href=3D"mailto:torsten@lodderstedt.net" style=3D"color: purple; =
text-decoration: underline;" class=3D"">torsten@lodderstedt.net</a>&gt;, =
oauth &lt;<a href=3D"mailto:oauth@ietf.org" style=3D"color: purple; =
text-decoration: underline;" class=3D"">oauth@ietf.org</a>&gt;<br =
class=3D""><b class=3D"">Subject:<span =
class=3D"Apple-converted-space">&nbsp;</span></b>[UNVERIFIED SENDER] Re: =
[OAUTH-WG] PAR metadata<o:p class=3D""></o:p></span></div></div><div =
class=3D""><div style=3D"margin: 0in 0in 0.0001pt; font-size: 11pt; =
font-family: Calibri, sans-serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div></div><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">Agreed.<span class=3D"Apple-converted-space">&nbsp;</span><o:p =
class=3D""></o:p></div><div class=3D""><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: =
Calibri, sans-serif;" class=3D"">In addition, I'm not sure why the PAR =
endpoint would need access to the decryption keys at all. If you're =
using encrypted request objects then the PAR endpoint receives an =
encrypted JWT and then later makes the same (still encrypted) JWT =
available to the authorization endpoint. If the PAR endpoint is doing =
any kind of decryption or validation on behalf of the authorization =
endpoint then they are clearly not in separate trust boundaries.<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: =
Calibri, sans-serif;" class=3D"">-- Neil<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: =
Calibri, sans-serif;" class=3D""><br class=3D""><br class=3D""><o:p =
class=3D""></o:p></div><blockquote style=3D"margin-top: 5pt; =
margin-bottom: 5pt;" class=3D"" type=3D"cite"><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: =
Calibri, sans-serif;" class=3D"">On 6 Jan 2020, at 13:57, Brian Campbell =
&lt;<a href=3D"mailto:bcampbell=3D40pingidentity.com@dmarc.ietf.org" =
style=3D"color: purple; text-decoration: underline;" =
class=3D"">bcampbell=3D40pingidentity.com@dmarc.ietf.org</a>&gt; =
wrote:<o:p class=3D""></o:p></div></div><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div><div class=3D""><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 11pt; font-family: Calibri, sans-serif;" class=3D"">I really =
struggle to see the assumption that an entity be able to use the same =
key to decrypt the same type of message ultimately intended for the same =
purpose as an artificial limit. The same general assumption &nbsp; =
underlies everything else in OAuth/OIDC (Vladimir's post points to some =
but not all examples of such). There's no reason for PAR to make a =
one-off exception. And should there be some deployment specific reason =
that truly requires that kind of isolation, there are certainly =
implementation options that aren't compatibility-breaking. And having =
said all that, I'm honestly a little surprised anyone is thinking much =
about encrypted request objects with PAR as, at least with my limited =
imagination, there's not really a need for it.<o:p =
class=3D""></o:p></div></div><div class=3D""><div style=3D"margin: 0in =
0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: =
Calibri, sans-serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: =
Calibri, sans-serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D"">&nbsp;<o:p class=3D""></o:p></div></div><div class=3D""><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: =
Calibri, sans-serif;" class=3D""><o:p =
class=3D"">&nbsp;</o:p></div></div><div class=3D""><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div></div></div><div =
style=3D"margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: =
Calibri, sans-serif;" class=3D""><o:p class=3D"">&nbsp;</o:p></div><div =
class=3D""><div class=3D""><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 11pt; font-family: Calibri, sans-serif;" class=3D"">On Fri, =
Jan 3, 2020 at 2:43 PM Richard Backman, Annabelle &lt;richanna=3D<a =
href=3D"mailto:40amazon.com@dmarc.ietf.org" target=3D"_blank" =
style=3D"color: purple; text-decoration: underline;" =
class=3D"">40amazon.com@dmarc.ietf.org</a>&gt; wrote:<o:p =
class=3D""></o:p></div></div><blockquote style=3D"border-style: none =
none none solid; border-left-width: 1pt; border-left-color: rgb(204, =
204, 204); padding: 0in 0in 0in 6pt; margin-left: 4.8pt; margin-right: =
0in;" class=3D"" type=3D"cite"><div style=3D"margin: 0in 0in 0.0001pt; =
font-size: 11pt; font-family: Calibri, sans-serif;" class=3D"">PAR =
introduces an added wrinkle for encrypted request objects: the PAR =
endpoint and authorization endpoint may not have access to the same =
cryptographic keys, even though they're both part of the "authorization =
server." Since they're different endpoints with different roles, it's =
reasonable to put them in separate trust boundaries. There is no way to =
support this isolation with just a single "jwks_uri" metadata =
property.<br class=3D""><br class=3D"">The two options that I see =
are:<br class=3D""><br class=3D"">1. Define a new par_jwks_uri metadata =
property.<br class=3D"">2. Explicitly state that this separation is not =
supported.<br class=3D""><br class=3D"">I strongly perfer #1 as it has a =
very minor impact on deployments that don't care (i.e., they just set =
par_jwks_uri and jwks_uri to the same value) and failing to support this =
trust boundary creates an artificial limit on implementation =
architecture and could lead to compatibility-breaking workarounds.<br =
class=3D""><br class=3D"">=E2=80=93<span =
class=3D"Apple-converted-space">&nbsp;</span><br class=3D"">Annabelle =
Richard Backman<br class=3D"">AWS Identity<br class=3D""><br =
class=3D""><br class=3D"">On 12/31/19, 8:07 AM, "OAuth on behalf of =
Torsten Lodderstedt" &lt;<a href=3D"mailto:oauth-bounces@ietf.org" =
target=3D"_blank" style=3D"color: purple; text-decoration: underline;" =
class=3D"">oauth-bounces@ietf.org</a><span =
class=3D"Apple-converted-space">&nbsp;</span>on behalf of torsten=3D<a =
href=3D"mailto:40lodderstedt.net@dmarc.ietf.org" target=3D"_blank" =
style=3D"color: purple; text-decoration: underline;" =
class=3D"">40lodderstedt.net@dmarc.ietf.org</a>&gt; wrote:<br =
class=3D""><br class=3D"">&nbsp; &nbsp; Hi Filip,<span =
class=3D"Apple-converted-space">&nbsp;</span><br class=3D""><br =
class=3D"">&nbsp; &nbsp; &gt; On 31. Dec 2019, at 16:22, Filip Skokan =
&lt;<a href=3D"mailto:panva.ip@gmail.com" target=3D"_blank" =
style=3D"color: purple; text-decoration: underline;" =
class=3D"">panva.ip@gmail.com</a>&gt; wrote:<br class=3D"">&nbsp; &nbsp; =
&gt;<span class=3D"Apple-converted-space">&nbsp;</span><br =
class=3D"">&nbsp; &nbsp; &gt; I don't think we need a *_auth_method_* =
metadata for every endpoint the client calls directly, none of the new =
specs defined these (e.g. device authorization endpoint or CIBA), =
meaning they also didn't follow the scheme from RFC 8414 where =
introspection and revocation got its own metadata. In most cases the =
unfortunately named `token_endpoint_auth_method` and its related =
metadata is what's used by clients for all direct calls anyway.<br =
class=3D"">&nbsp; &nbsp; &gt;<span =
class=3D"Apple-converted-space">&nbsp;</span><br class=3D"">&nbsp; =
&nbsp; &gt; The same principle could be applied to signing (and =
encryption) algorithms as well.<br class=3D"">&nbsp; &nbsp; &gt;<span =
class=3D"Apple-converted-space">&nbsp;</span><br class=3D"">&nbsp; =
&nbsp; &gt; This I do not follow, auth methods and their signing is =
dealt with by using `token_endpoint_auth_methods_supported` and =
`token_endpoint_auth_signing_alg_values_supported` - there's no =
encryption for the `_jwt` client auth methods.<span =
class=3D"Apple-converted-space">&nbsp;</span><br class=3D"">&nbsp; =
&nbsp; &gt; Unless it was meant to address the Request Object signing =
and encryption metadata, which is defined and IANA registered by OIDC. =
PAR only references JAR section 6.1 and 6.2 for decryption/signature =
validation and these do not mention the metadata (e.g. =
request_object_signing_alg) anymore since draft 07.<br class=3D""><br =
class=3D"">&nbsp; &nbsp; Dammed! You are so right. Sorry, I got confused =
somehow.<span class=3D"Apple-converted-space">&nbsp;</span><br =
class=3D""><br class=3D"">&nbsp; &nbsp; &gt;<span =
class=3D"Apple-converted-space">&nbsp;</span><br class=3D"">&nbsp; =
&nbsp; &gt; PS: I also found this comment related to the same question =
about auth metadata but for CIBA.<br class=3D""><br class=3D"">&nbsp; =
&nbsp; Thanks for sharing.<span =
class=3D"Apple-converted-space">&nbsp;</span><br class=3D""><br =
class=3D"">&nbsp; &nbsp; &gt;<span =
class=3D"Apple-converted-space">&nbsp;</span><br class=3D"">&nbsp; =
&nbsp; &gt; Best,<br class=3D"">&nbsp; &nbsp; &gt; Filip<br class=3D""><br=
 class=3D"">&nbsp; &nbsp; thanks,<br class=3D"">&nbsp; &nbsp; =
Torsten.<span class=3D"Apple-converted-space">&nbsp;</span><br =
class=3D""><br class=3D"">&nbsp; &nbsp; &gt;<span =
class=3D"Apple-converted-space">&nbsp;</span><br class=3D"">&nbsp; =
&nbsp; &gt;<span class=3D"Apple-converted-space">&nbsp;</span><br =
class=3D"">&nbsp; &nbsp; &gt; On Tue, 31 Dec 2019 at 15:38, Torsten =
Lodderstedt &lt;<a href=3D"mailto:torsten@lodderstedt.net" =
target=3D"_blank" style=3D"color: purple; text-decoration: underline;" =
class=3D"">torsten@lodderstedt.net</a>&gt; wrote:<br class=3D"">&nbsp; =
&nbsp; &gt; Hi all,<br class=3D"">&nbsp; &nbsp; &gt;<span =
class=3D"Apple-converted-space">&nbsp;</span><br class=3D"">&nbsp; =
&nbsp; &gt; Ronald just sent me an email asking whether we will define =
metadata for<span class=3D"Apple-converted-space">&nbsp;</span><br =
class=3D"">&nbsp; &nbsp; &gt;<span =
class=3D"Apple-converted-space">&nbsp;</span><br class=3D"">&nbsp; =
&nbsp; &gt; pushed_authorization_endpoint_auth_methods_supported and<br =
class=3D"">&nbsp; &nbsp; &gt; =
pushed_authorization_endpoint_auth_signing_alg_values_supported.<br =
class=3D"">&nbsp; &nbsp; &gt;<span =
class=3D"Apple-converted-space">&nbsp;</span><br class=3D"">&nbsp; =
&nbsp; &gt; The draft right now utilises the existing token endpoint =
authentication methods so there is basically no need to define another =
parameter. The same principle could be applied to signing (and =
encryption) algorithms as well.<span =
class=3D"Apple-converted-space">&nbsp;</span><br class=3D"">&nbsp; =
&nbsp; &gt;<span class=3D"Apple-converted-space">&nbsp;</span><br =
class=3D"">&nbsp; &nbsp; &gt; What=E2=80=99s your opinion?<br =
class=3D"">&nbsp; &nbsp; &gt;<span =
class=3D"Apple-converted-space">&nbsp;</span><br class=3D"">&nbsp; =
&nbsp; &gt; best regards,<br class=3D"">&nbsp; &nbsp; &gt; Torsten.<br =
class=3D""><br class=3D""><br class=3D""><br =
class=3D"">_______________________________________________<br =
class=3D"">OAuth mailing list<br class=3D""><a =
href=3D"mailto:OAuth@ietf.org" target=3D"_blank" style=3D"color: purple; =
text-decoration: underline;" class=3D"">OAuth@ietf.org</a><br =
class=3D""><a href=3D"https://www.ietf.org/mailman/listinfo/oauth" =
target=3D"_blank" style=3D"color: purple; text-decoration: underline;" =
class=3D"">https://www.ietf.org/mailman/listinfo/oauth</a><o:p =
class=3D""></o:p></div></blockquote></div><div style=3D"margin: 0in 0in =
0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D""><br class=3D""><b class=3D""><i class=3D""><span =
style=3D"font-size: 10pt; font-family: &quot;Helvetica Neue&quot;; =
color: rgb(85, 85, 85); border: 1pt none windowtext; padding: 0in;" =
class=3D"">CONFIDENTIALITY NOTICE: This email may contain confidential =
and privileged material for the sole use of the intended recipient(s). =
Any review, use, distribution or disclosure by others is strictly =
prohibited..&nbsp; If you have received this communication in error, =
please notify the sender immediately by e-mail and delete the message =
and any file attachments from your computer. Thank =
you.</span></i></b>_______________________________________________<br =
class=3D"">OAuth mailing list<br class=3D""><a =
href=3D"mailto:OAuth@ietf.org" style=3D"color: purple; text-decoration: =
underline;" class=3D"">OAuth@ietf.org</a><br class=3D""><a =
href=3D"https://www.ietf.org/mailman/listinfo/oauth" style=3D"color: =
purple; text-decoration: underline;" =
class=3D"">https://www.ietf.org/mailman/listinfo/oauth</a><o:p =
class=3D""></o:p></div></div></blockquote></div><div style=3D"margin: =
0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D""><o:p class=3D"">&nbsp;</o:p></div></div></div><span =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: =
normal; letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none; float: none; =
display: inline !important;" =
class=3D"">_______________________________________________</span><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: =
normal; letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none;" class=3D""><span =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: =
normal; letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none; float: none; =
display: inline !important;" class=3D"">OAuth mailing list</span><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: =
normal; letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none;" class=3D""><a =
href=3D"mailto:OAuth@ietf.org" style=3D"color: purple; text-decoration: =
underline; font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
orphans: auto; text-align: start; text-indent: 0px; text-transform: =
none; white-space: normal; widows: auto; word-spacing: 0px; =
-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" =
class=3D"">OAuth@ietf.org</a><br style=3D"caret-color: rgb(0, 0, 0); =
font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: normal; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;" class=3D""><a =
href=3D"https://www.ietf.org/mailman/listinfo/oauth" style=3D"color: =
purple; text-decoration: underline; font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: =
normal; letter-spacing: normal; orphans: auto; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; widows: =
auto; word-spacing: 0px; -webkit-text-size-adjust: auto; =
-webkit-text-stroke-width: 0px;" =
class=3D"">https://www.ietf.org/mailman/listinfo/oauth</a></div></blockquo=
te></div><br class=3D""></div></div></body></html>=

--Apple-Mail=_5BBA4C70-72A4-4ADE-85F0-E55A4B4F7923--

