[OAUTH-WG] JWT Secured Authorization Request (JAR) vs OIDC request object

Filip Skokan <panva.ip@gmail.com> Tue, 27 August 2019 11:46 UTC

Return-Path: <panva.ip@gmail.com>
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 DE15A12008F for <oauth@ietfa.amsl.com>; Tue, 27 Aug 2019 04:46:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level:
X-Spam-Status: No, score=-1.998 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 tZG4Ggcg7DIS for <oauth@ietfa.amsl.com>; Tue, 27 Aug 2019 04:46:53 -0700 (PDT)
Received: from mail-ot1-x32d.google.com (mail-ot1-x32d.google.com [IPv6:2607:f8b0:4864:20::32d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 802D0120073 for <oauth@ietf.org>; Tue, 27 Aug 2019 04:46:53 -0700 (PDT)
Received: by mail-ot1-x32d.google.com with SMTP id f17so18379057otq.4 for <oauth@ietf.org>; Tue, 27 Aug 2019 04:46:53 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=bukYtoPmIjjZcMpta0TD+jY33xZDQLT96XmpaTbv7/0=; b=Ns3YYWMLXHXswiqRFaisdw+bwZ+TQac200TNiE32xC7ki0SyXYB3EXwFABL17n7eLW GgDvWEcUZJ+zSofLButJ8I89fpvFquw+8Cflna2vfxUXZrI6JvgwmP6hpA98nw9YBtlb gJw0sKbU0yiRi5xeV7KX54Vmm5S73b2Pv0uCj/DFkcN7xtjkdNbECAtH+tsQe0cV/Bdw SEazbpxUZqpjG9v0HnH7QU+pcADfg8D4yEKSPLtiyGkRIPcLZh8wLPvtRse4RpUJiue+ vtibl/KDQDzXdXlkIH0h5uc5nY2hE1vBmajSfPVdabMKdn4RNAZU853xjzvXvihu+5Wx zNRw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=bukYtoPmIjjZcMpta0TD+jY33xZDQLT96XmpaTbv7/0=; b=H5/XYdERMS0DiC8d7HkdTZQ5uCaXwvTWhtrl2d2a/uVG1EnNkQ5XnUzLGGbA4kpmiO Bd50znXvjn8K3HXmwDtLi7D4PHFOgOfKA5mxyd/KuCrnCBHxIKN1Oh2kBkHuJbPjVk5e Y6Q5eutJQ9hv8kaKmDoIQ13de04j4pGDH3BBNX5ly9pZQ8GkDn2F3NGjGQk+T71beGFC OjVLRelnpxSO3o5WoBvF5nCiz1TQzX3cn336JPqjnmTjd2zkZsaw9duM6hgPhKY7USPY L/zhxOy7h8gr44Tmx72o2zSHp1pBdVUh2yh7kQoZzeNZga/5NWqBhRrfUkmndHyLOTSk Qx8g==
X-Gm-Message-State: APjAAAUX7/nDckCYxYcGvAHdFOivPsqsSv9e6XNQCFcSgBteCHjMXwX+ o9c6z8oZZhFW3ioD2YIbYm5xSQBwLf8tTQHdrkyxhWgdkQ==
X-Google-Smtp-Source: APXvYqxlekqlO/+rTlukodrIH6ShgxhT510Wn70jw5tJR2W+ZdfAq541IgKs1tiCPEkNJDovrQeNM7AyPXrpZwFxRto=
X-Received: by 2002:a05:6830:613:: with SMTP id w19mr18709115oti.362.1566906412525; Tue, 27 Aug 2019 04:46:52 -0700 (PDT)
MIME-Version: 1.0
From: Filip Skokan <panva.ip@gmail.com>
Date: Tue, 27 Aug 2019 13:46:41 +0200
Message-ID: <CALAqi_-Ku6Hh3DQDXGR+83Q8jofMzVBcW=7GUnFFzsoG+Ka_1g@mail.gmail.com>
To: oauth <oauth@ietf.org>, Nat Sakimura <nat.sakimura@oidf.org>, John Bradley <ve7jtb@ve7jtb.com>
Content-Type: multipart/alternative; boundary="0000000000001d7d93059117d442"
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/gI8YOF0L4XtpmBeR1t9XQJyGxn4>
Subject: [OAUTH-WG] JWT Secured Authorization Request (JAR) vs OIDC request object
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: Tue, 27 Aug 2019 11:46:55 -0000

Hello everyone,

in an earlier thread I've posed the following question that might have
gotten missed, this might have consequences for the existing
implementations of Request Objects in OIDC implementations - its making
pure JAR requests incompatible with OIDC Core implementations.

draft 14 of jwsreq (JAR) introduced this language

The client MAY send the parameters included in the request object
> duplicated in the query parameters as well for the backward
> compatibility etc.
>
> *However, the authorization server supporting thisspecification MUST only
> use the parameters included in the requestobject. *


Server MUST only use the parameters in the Request Object even if the
> same parameter is provided in the query parameter.  The Authorization


The client MAY send the parameters included in the request object
> duplicated in the query parameters as well for the backward
> compatibility etc.
>
> *However, the authorization server supporting thisspecification MUST only
> use the parameters included in the requestobject. *


Nat, John, everyone - *does this mean a JAR compliant AS ignores everything
outside of the request object while OIDC Request Object one merges the two
with the ones in the request object being used over ones that are sent in
clear?* The OIDC language also includes sections which make sure that some
required arguments are still passed outside of the request object with the
same value to make sure the request is "valid" OAuth 2.0 request
(client_id, response_type), something which an example in the JAR spec does
not do. Not having this language means that existing authorization request
pipelines can't simply be extended with e.g. a middleware, they need to
branch their codepaths.

Is an AS required to choose which of the two it follows?

Thank you for clarifying this in advance. I think if either the behaviour
is the same as in OIDC or different this should be called out in the
language to avoid confusion, especially since this already exists in OIDC
and likely isn't going to be read in isolation, especially because the
Request Object is even called out to be already in place in OIDC in the JAR
draft.

Best,
*Filip*