Re: [OAUTH-WG] I-D Action: draft-ietf-oauth-jwsreq-13.txt

Brian Campbell <bcampbell@pingidentity.com> Mon, 24 April 2017 21:45 UTC

Return-Path: <bcampbell@pingidentity.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 3CB75126E01 for <oauth@ietfa.amsl.com>; Mon, 24 Apr 2017 14:45:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level:
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=pingidentity.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 7oujfc7hryCY for <oauth@ietfa.amsl.com>; Mon, 24 Apr 2017 14:45:52 -0700 (PDT)
Received: from mail-pg0-x229.google.com (mail-pg0-x229.google.com [IPv6:2607:f8b0:400e:c05::229]) (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 A7B16120227 for <oauth@ietf.org>; Mon, 24 Apr 2017 14:45:52 -0700 (PDT)
Received: by mail-pg0-x229.google.com with SMTP id 63so18867887pgh.0 for <oauth@ietf.org>; Mon, 24 Apr 2017 14:45:52 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pingidentity.com; s=gmail; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=j8PYYbic1d7mx+xft1edzFMB2MAJvtqOwYaVu9jRxTc=; b=S4vSOYvt6vpGtRtCPJhNvPPOP5ML049B5fKEF7PNyJH+SiSNqyrExiwiM5AsIPJhsh +9bVRDRBFXul1hJq5qDyn1HMmkUhXzD5HgeRrQHQA3ayhOuHjBJpoUnv7bAxuEzptKJR 1SjY7qmNv8/JEagq4Ar49LZ0UzFHF2FXcLMuc=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=j8PYYbic1d7mx+xft1edzFMB2MAJvtqOwYaVu9jRxTc=; b=X5mRV6f/esls97TjY+PManB+vqVICawxCFl5ow9PSn6gDypOPagf4lXWL/dqVbQEiA 5nfGC7AQbarT8EhkQqkbZtFdFpJfc+6zWCR+xlb9Kq76TkBm57/tIjzhSDBey1DXGQ6A KB5pO/FROMaDTBJil9w1koOMz3IeOIcXdX3PO8OrVG/Gm6hC26thjTXj6hS650Se22c0 C1/3wb3VyI+Nloo80Kw4aDOir7BIfsXZ9rwZBfqreJS8JgduSH9TcV1JP/CjtlCVgaS6 f765b9gFKN0/gDmnaMBs4J3Yx3LZs9lyjasAQriG6GvGeSerZrlS/T/T9fc+KofmsFOC iWog==
X-Gm-Message-State: AN3rC/6i2dWfC99MfQTkluyTpn+0+p2WsvBy4ZB7UaKENtKMu+mHBv8e 0r4yvov0rQkSFJgS+lSRCqmKrf6Eyrqg
X-Received: by 10.98.93.147 with SMTP id n19mr26989653pfj.226.1493070352074; Mon, 24 Apr 2017 14:45:52 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.170.13 with HTTP; Mon, 24 Apr 2017 14:45:21 -0700 (PDT)
In-Reply-To: <CABzCy2C9_mvOLdfrvNYYHQQiUZJbfEyYRsJtQNccSt2mT-F2rw@mail.gmail.com>
References: <CAANoGhJDKgqWaqhdL6TCO7RhE==h=ZmJeKbU-cuwUZwE+siHMA@mail.gmail.com> <n6swy6f6jws7vdnx4rs66ktg.1490929049898@email.android.com> <58ddcfc3.5c2e6b0a.7b9e3.bbc6@mx.google.com> <B4C58688-6933-4E46-BA80-15E5E8B38F6F@lodderstedt.net> <58ddd7a5.e4886b0a.bf30d.bce7@mx.google.com> <CA+k3eCTKHRB_dKeUEurZX5vDzCw+HhEgUZiHUnyd61oNjmogRw@mail.gmail.com> <CA+k3eCR8Amr8+b+Sh9eR=VDzJme+bcB8WhkokcPpgmgaEMZMGQ@mail.gmail.com> <CA+k3eCRzKRVA0arzDcc0Z_-Heo30NVSRcPxPQm4nD5nnqY77yw@mail.gmail.com> <CABzCy2C9_mvOLdfrvNYYHQQiUZJbfEyYRsJtQNccSt2mT-F2rw@mail.gmail.com>
From: Brian Campbell <bcampbell@pingidentity.com>
Date: Mon, 24 Apr 2017 15:45:21 -0600
Message-ID: <CA+k3eCSZVBYa2Ce2ccNOf+0nszvMoMghGAjQni4W7=mkJcobYQ@mail.gmail.com>
To: Nat Sakimura <nat@sakimura.org>
Cc: John Bradley <ve7jtb@ve7jtb.com>, IETF oauth WG <oauth@ietf.org>
Content-Type: multipart/alternative; boundary=001a113ede16f5e25e054df0870a
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/_E14Trqu962cReu3t6FquPEyigY>
Subject: Re: [OAUTH-WG] I-D Action: draft-ietf-oauth-jwsreq-13.txt
X-BeenThere: oauth@ietf.org
X-Mailman-Version: 2.1.22
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: Mon, 24 Apr 2017 21:45:56 -0000

One more thing, this document really should register "iss", "aud", and
"exp" (and maybe other common JWT claims that are about the token itself
like "jti", "iat", etc) as authorization request parameters in
https://www.iana.org/assignments/oauth-parameters/oauth-parameters.xhtml#parameters
because the parameter names and claim names collide when using a JWT
Secured Authorization Request.

On Tue, Apr 4, 2017 at 9:41 AM, Nat Sakimura <nat@sakimura.org> wrote:

> Thanks Brian for spotting these. I will make the corrections in -14.
>
> Best,
>
> Nat
>
> On Fri, Mar 31, 2017 at 10:40 PM Brian Campbell <
> bcampbell@pingidentity.com> wrote:
>
> and a typo - "If thie location is" should say "If this location is"
>
> On Fri, Mar 31, 2017 at 8:37 AM, Brian Campbell <
> bcampbell@pingidentity.com> wrote:
>
> BTW, the intro still has text about 'dynamic parameters such as "state"'
> that need to be cleaned up.  https://tools.ietf.org/html/
> draft-ietf-oauth-jwsreq-13#section-1
>
> On Fri, Mar 31, 2017 at 8:36 AM, Brian Campbell <
> bcampbell@pingidentity.com> wrote:
>
> "The current text causes the AS to ignore them and not return a error. " -
> except that I don't believe the current text actually specifies that
> anywhere. And I think that the intent of Mike's original comment was that
> -13 doesn't specify the behavior but that it needs to be revised to do so.
>
> I'd suggest that the doc say that the client must include in the request
> object (request or request_uri) all the oauth parameters that it sends. And
> when request or request_uri is sent, that the AS must/should only rely on
> parameter values from the request object.
>
> I think being semi or somewhat compatible or tolerant of the Connect
> variation or request/request_uri is good because it uses the same parameter
> names, the same endpoint, and the same metadata names.
>
>
>
>
>
>
> On Thu, Mar 30, 2017 at 11:14 PM, John Bradley <ve7jtb@ve7jtb.com> wrote:
>
> They are mutually exclusive.
>
>
>
> However there are two options as to how the authorization endpoint would
> treat extra query parameters like state if they are sent.
>
>
>
> The current text causes the AS to ignore them and not return a error.
> This would be more backwards compatible with the request object in OpenID
> Connect, however in reality it may cause connect clients to send parameters
> as query parameters  that would be processed by a connect server that would
> be ignored by a OAuth server without any obvious error.  There may however
> be subtle errors downstream from missing parameters.
>
>
>
> The other option is to have a cleaner breaking change from Connect and
> have the Authorization endpoint return a error if anything other than the
> two new parameters are sent to the authorization endpoint.
>
>
>
> I am leaning towards the latter as it is easier to debug,  and wont allow
> incompatible Connect requests to be accepted without a error.   We would
> have done this in Connect but couldn’t drop required parameters from OAuth
> in a Connect spec.
>
>
>
> The downside for the latter is that the client would need to know if the
> AS is supporting The Connect version or the OAuth version.
>
>
>
> One of the typical conundrums around how to deal with doing the best going
> forward thing vs not blowing up older implementations.
>
>
>
> In the current proposal a client could put the required parameters both
> places and the same request would work on servers supporting both the
> Connect and OAuth versions.
>
>
>
> John B.
>
> Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for
> Windows 10
>
>
>
> *From: *Torsten Lodderstedt <torsten@lodderstedt.net>
> *Sent: *March 30, 2017 11:01 PM
> *To: *John Bradley <ve7jtb@ve7jtb.com>
> *Cc: *Nat Sakimura <sakimura@gmail.com>om>; Nat Sakimura <nat@sakimura.org>rg>; IETF
> oauth WG <oauth@ietf.org>
> *Subject: *Re: [OAUTH-WG] I-D Action: draft-ietf-oauth-jwsreq-13.txt
>
>
>
> I had assumed using the request object is mutual exclusive to use of URI
> query parameters. Did I misinterpret the draft?
>
>
>
> Am 30.03.2017 um 22:40 schrieb John Bradley <ve7jtb@ve7jtb.com>om>:
>
>
>
> It is a trade off between compatibility with Connect and possible
> configuration errors.
>
>
>
> In reality it may not be compatible with Connect if the client is sending
> some parameters outside the object without including them in the object as
> a Connect client might.    You would potentially wind up dropping state or
> nonce without an error.
>
>
>
> I asked Mike and he was leaning to making it a error to send them as query
> parameters as that would be a clean change.
>
>
>
> I think the choice is a bit of a grey area.
>
>
>
> Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for
> Windows 10
>
>
>
> *From: *sakimura@gmail.com
> *Sent: *March 30, 2017 9:57 PM
> *To: *John Bradley <ve7jtb@ve7jtb.com>om>; Nat Sakimura <nat@sakimura.org>
> *Cc: *IETF oauth WG <oauth@ietf.org>
> *Subject: *Re: [OAUTH-WG] FW: I-D Action: draft-ietf-oauth-jwsreq-13.txt
>
>
>
> +1
>
> Sent from my Huawei Mobile
>
>
>
> -------- Original Message --------
> Subject: Re: [OAUTH-WG] FW: I-D Action: draft-ietf-oauth-jwsreq-13.txt
> From: John Bradley
> To: Nat Sakimura
> CC: IETF oauth WG
>
> So I think we need to make the must ignore clearer for the additional
> paramaters on the authorization endpoint.
>
>
>
> On Mar 30, 2017 17:33, "Nat Sakimura" <nat@sakimura.org> wrote:
>
> Not right now.
>
> As of this writing, a client can still send duplicate parameters in the
> query but they get ignored by the servers honoring OAuth JAR. So, it is
> backwards compatible with OpenID Connect in that sense (OpenID Connect
> sends duplicate manatory RFC6749 parameters as the query parameters as well
> just to be compliant to RFC6749). Conversely, servers that do not support
> OAuth JAR will ignore request_uri etc.
>
> On Mar 30, 2017, at 4:47 PM, Mike Jones <Michael.Jones@microsoft.com>
> wrote:
>
> Is there a clear statement somewhere along the lines of “parameters
> (other than “request” or “request_uri”) are only allowed to be in the
> signed object if a signed object is used”?  That’s the kind of thing I
> was looking for and didn’t find.
>
>
>
>                                                        -- Mike
>
> *From:* John Bradley [mailto:ve7jtb@ve7jtb.com]
> *Sent:* Thursday, March 30, 2017 4:44 PM
> *To:* Mike Jones <Michael.Jones@microsoft.com>
> *Cc:* Nat Sakimura <nat@sakimura.org>rg>; IETF oauth WG <oauth@ietf.org>
> *Subject:* RE: [OAUTH-WG] FW: I-D Action: draft-ietf-oauth-jwsreq-13.txt
>
>
>
> The intent of the change is to only allow the paramaters to be in the
> signed object if a signed object is used.
>
>
>
> This requires State, nonce etc to be in the JWT.  Only one place to check
> will hopefully reduce implimentation errors.
>
>
>
> This also allows us to remove the caching text as we now have one JWT per
> request, so caching won't happen.
>
>
>
> John B.
>
>
>
>
>
>
>
> On Mar 30, 2017 4:36 PM, "Mike Jones" <Michael.Jones@microsoft.com>
> wrote:
>
> I **believe** the intent is that **all** parameters must be in the
> request object, but the spec doesn’t actually say that, as far as I can
> tell.  Or maybe the intent is that parameters must not be duplicated
> between the query parameters and the request object.
>
>
>
> One or the other of these statements should be explicitly included in the
> specification.  Of course, I could have missed the statement I’m asking for
> in my review, in which case please let me know what I missed.
>
>
>
>                                                        Thanks,
>
>                                                       -- Mike
>
>
>
> *From:* OAuth [mailto:oauth-bounces@ietf.org] *On Behalf Of *John Bradley
> *Sent:* Thursday, March 30, 2017 3:00 PM
> *To:* IETF OAUTH <oauth@ietf.org>
> *Subject:* [OAUTH-WG] FW: I-D Action: draft-ietf-oauth-jwsreq-13.txt
>
>
>
> Based on feeback from the IESG we have removed some of the optionality in
> the draft.
>
>
>
> It is a shorter read than draft 12.
>
>
>
> John B.
>
>
>
> Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for
> Windows 10
>
>
>
> *From: *internet-drafts@ietf.org
> *Sent: *March 30, 2017 1:38 PM
> *To: *i-d-announce@ietf.org
> *Cc: *oauth@ietf.org
> *Subject: *[OAUTH-WG] I-D Action: draft-ietf-oauth-jwsreq-13.txt
>
>
>
>
>
> A New Internet-Draft is available from the on-line Internet-Drafts
> directories.
>
> This draft is a work item of the Web Authorization Protocol of the IETF.
>
>
>
>         Title           : The OAuth 2.0 Authorization Framework: JWT
> Secured Authorization Request (JAR)
>
>         Authors         : Nat Sakimura
>
>                           John Bradley
>
>            Filename        : draft-ietf-oauth-jwsreq-13.txt
>
>            Pages           : 27
>
>            Date            : 2017-03-30
>
>
>
> Abstract:
>
>    The authorization request in OAuth 2.0 described in RFC 6749 utilizes
>
>    query parameter serialization, which means that Authorization Request
>
>    parameters are encoded in the URI of the request and sent through
>
>   user agents such as web browsers.  While it is easy to implement, it
>
>    means that (a) the communication through the user agents are not
>
>    integrity protected and thus the parameters can be tainted, and (b)
>
>    the source of the communication is not authenticated.  Because of
>
>    these weaknesses, several attacks to the protocol have now been put
>
>    forward.
>
>
>
>    This document introduces the ability to send request parameters in a
>
>    JSON Web Token (JWT) instead, which allows the request to be signed
>
>    with JSON Web Signature (JWS) and/or encrypted with JSON Web
>
>    Encryption (JWE) so that the integrity, source authentication and
>
>    confidentiality property of the Authorization Request is attained.
>
>    The request can be sent by value or by reference.
>
>
>
>
>
> The IETF datatracker status page for this draft is:
>
> https://datatracker.ietf.org/doc/draft-ietf-oauth-jwsreq/
>
>
>
> There are also htmlized versions available at:
>
> https://tools.ietf.org/html/draft-ietf-oauth-jwsreq-13
>
> https://datatracker.ietf.org/doc/html/draft-ietf-oauth-jwsreq-13
>
>
>
> A diff from the previous version is available at:
>
> https://www.ietf.org/rfcdiff?url2=draft-ietf-oauth-jwsreq-13
>
>
>
>
>
> Please note that it may take a couple of minutes from the time of
> submission
>
> until the htmlized version and diff are available at tools.ietf.org.
>
>
>
> Internet-Drafts are also available by anonymous FTP at:
>
> ftp://ftp.ietf.org/internet-drafts/
>
>
>
> _______________________________________________
>
> OAuth mailing list
>
> OAuth@ietf.org
>
> https://www.ietf.org/mailman/listinfo/oauth
>
>
>
>
>
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.org
> https://www.ietf.org/mailman/listinfo/oauth
>
>
>
>
>
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.org
> https://www.ietf.org/mailman/listinfo/oauth
>
>
>
>
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.org
> https://www.ietf.org/mailman/listinfo/oauth
>
> --
>
> Nat Sakimura
>
> Chairman of the Board, OpenID Foundation
>