Re: [OAUTH-WG] PAR: pushed requests must become JWTs

"Richard Backman, Annabelle" <> Thu, 09 January 2020 19:34 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 36DD3120271 for <>; Thu, 9 Jan 2020 11:34:00 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -14.5
X-Spam-Status: No, score=-14.5 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, USER_IN_DEF_SPF_WL=-7.5] autolearn=unavailable autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id 53RTSGAZlv80 for <>; Thu, 9 Jan 2020 11:33:57 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id D0FCF1201B7 for <>; Thu, 9 Jan 2020 11:33:57 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;;; q=dns/txt; s=amazon201209; t=1578598438; x=1610134438; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=UCXsdsg3F/Dge7erbHNBp0UIwb6sq6qYumAYkmoQw+I=; b=gr9FYkL3B6B7zcELIZqqHbEcwDt4U+Jm1Ewj33xDrv7FSXJhHBZlnn8T 0Dg0naZnaq0VoSgoa+cEPZ22dp2z62koG84nTJ0uqk030FZyHeViPncb1 WkV8yNFHwUKGP2H5EAg/fFuF1BmOlnX+ksoGFPQB3a9QOwEEuIWVhzk7t 0=;
IronPort-SDR: obqToOrY5hkqeYtF6nhzF2+7lljvF9WHvebyoHi5Qjjn/anURfa3XCi0Xm4BNogRiILIkNEXwN yCbab2ih13Mw==
X-IronPort-AV: E=Sophos;i="5.69,414,1571702400"; d="scan'208,217";a="9396919"
Received: from (HELO ([]) by with ESMTP; 09 Jan 2020 19:33:47 +0000
Received: from ( []) by (Postfix) with ESMTPS id 406C6A1C6F; Thu, 9 Jan 2020 19:33:44 +0000 (UTC)
Received: from ( by ( with Microsoft SMTP Server (TLS) id 15.0.1367.3; Thu, 9 Jan 2020 19:33:43 +0000
Received: from ( by ( with Microsoft SMTP Server (TLS) id 15.0.1367.3; Thu, 9 Jan 2020 19:33:43 +0000
Received: from ([]) by ([]) with mapi id 15.00.1367.000; Thu, 9 Jan 2020 19:33:43 +0000
From: "Richard Backman, Annabelle" <>
To: Torsten Lodderstedt <>, "Richard Backman, Annabelle" <>
CC: oauth <>
Thread-Topic: [OAUTH-WG] PAR: pushed requests must become JWTs
Thread-Index: AQHVxn97xAQyO4nozUmjnJjGmsDmTqfiCEwAgAAsAIA=
Date: Thu, 09 Jan 2020 19:33:43 +0000
Message-ID: <>
References: <> <>
In-Reply-To: <>
Accept-Language: en-US
Content-Language: en-US
user-agent: Microsoft-MacOutlook/10.1d.0.190908
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: []
Content-Type: multipart/alternative; boundary="_000_D37D8F063E074C89B0B961AAF2CDAA2Famazoncom_"
MIME-Version: 1.0
Archived-At: <>
Subject: Re: [OAUTH-WG] PAR: pushed requests must become JWTs
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: OAUTH WG <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 09 Jan 2020 19:34:04 -0000

If we address this in PAR, I suggest something along the lines of the following:

As defined in [JAR], the request_uri parameter is required to reference a Request Object JWT. An AS MAY violate this requirement when it is generating request URIs intended for its own consumption (e.g., URIs for pushed requests). This requirement exists to ensure interoperability in cases where the provider of the request_uri is a separate entity from the consumer, such as when a client provides a URI referencing an object stored on the client’s backend service. When the AS is both provider and consumer, this interoperability concern does not apply.

Annabelle Richard Backman
AWS Identity

From: OAuth <> on behalf of Torsten Lodderstedt <>
Date: Thursday, January 9, 2020 at 12:56 AM
To: "Richard Backman, Annabelle" <>
Cc: oauth <>
Subject: Re: [OAUTH-WG] PAR: pushed requests must become JWTs

I would assume given the status of JAR, we don’t want to change it. And as I said, this difference does not impact interoperability from client perspective.

Am 09.01.2020 um 00:58 schrieb Richard Backman, Annabelle <>:

It would be more appropriate to add the text to JAR rather than PAR. It doesn't seem right for PAR to retcon rules in JAR. Moving the text to JAR also highlights the weirdness of giving PAR special treatment.

What if we changed this sentence in Section 5.2 of JAR:

The contents of the resource referenced by the URI MUST be a Request



The contents of the resource referenced by the URI MUST be a Request

Object, unless the URI was provided to the client by the Authorization


This would allow for use cases such as an AS that provides pre-defined request URIs, or vends request URIs via a client management console, or bakes them into their client apps.


Annabelle Richard Backman

AWS Identity

On 1/8/20, 2:50 PM, "Torsten Lodderstedt" <> wrote:


    you are right, PAR does not require the AS to represent the request as a JWT-based request object. The URI is used as internal reference only. That why the draft states

    "There is no need to make the

          authorization request data available to other parties via this


    This difference matters from an AS implementation perspective, it doesn't matter from a client's (interop) perspective.

    We may add a statement to PAR saying that request_uris issued by the PAR mechanism (MAY) deviate from the JAR definition.

    best regards,


    > On 8. Jan 2020, at 23:42, Richard Backman, Annabelle <> wrote:


    > Hi all,


    > The current drafts of PAR (-00) and JAR (-20) require that the AS transform all pushed requests into JWTs. This requirement arises from the following:

    >         • PAR uses the request_uri parameter defined in JAR to communicate the pushed request to the authorization endpoint.

    >         • According to JAR, the resource referenced by request_uri MUST be a Request Object. (Section 5.2)

    >         • Request Object is defined to be a JWT containing all the authorization request parameters. (Section 2.1)


    > There is no need for this requirement to support interoperability, as this is internal to the AS. It is also inconsistent with the rest of JAR, which avoids attempting to define the internal communications between the two AS endpoints. Worse, this restriction makes it harder for the authorization endpoint to leverage validation and other work performed at the PAR endpoint, as the state or outcome of that work must be forced into the JWT format (or retrieved via a subsequent service call or database lookup).


    > –

    > Annabelle Richard Backman

    > AWS Identity


    > _______________________________________________

    > OAuth mailing list