Re: [OAUTH-WG] draft-fett-oauth-dpop-00

Filip Skokan <panva.ip@gmail.com> Thu, 28 March 2019 18:49 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 80BBF120302 for <oauth@ietfa.amsl.com>; Thu, 28 Mar 2019 11:49:00 -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_PASS=-0.001, URIBL_BLOCKED=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 VWlw98C72rLZ for <oauth@ietfa.amsl.com>; Thu, 28 Mar 2019 11:48:58 -0700 (PDT)
Received: from mail-ot1-x32e.google.com (mail-ot1-x32e.google.com [IPv6:2607:f8b0:4864:20::32e]) (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 D3C3C12000F for <oauth@ietf.org>; Thu, 28 Mar 2019 11:48:57 -0700 (PDT)
Received: by mail-ot1-x32e.google.com with SMTP id t8so14058306otp.7 for <oauth@ietf.org>; Thu, 28 Mar 2019 11:48:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=4Jb16LJjEaJ5dc47Q3njbDpdDWpnA1IDrMe4GgqHyO4=; b=DtrcfO3uC6vWIg9n8fSKjgrbWpm1IrwZOZb1oK1agUYLH573bcBptijy1ZDiR++OFn amf0ypeOdBmqNuhNvd6nFt2nJwpsylBINedFLLvUqbeQdRPa7/tU10xPdCdA8IV+cYki qRjg4bUK0U3+Xt/OWshdkYk4eCShd34xyS58i0twabYPfKZ+l6Zbnc4d/xJDymEzu2h/ KVqXBm4oYZCxaHpZ0aKvQssZJlWpYoMd54E6czJQZathaV0MyGg6/H6jLiPtN+auETTX B8FkPHCCbrDWCNZlFcs5O1zmxHTq4jySzwfvOwpw1UnHe2Apzn/jxgWb5WsWkOhgUDm/ lT0Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=4Jb16LJjEaJ5dc47Q3njbDpdDWpnA1IDrMe4GgqHyO4=; b=YwSuGW5DuHiJ/p+K/BDZdrZ3/ajdlVxrwNDVKeMm7GA7xrAybae8jahQDGghTAM0Wn 3gR7GUcQp4AMf7F0qVbs8yHjNmaa3HheNHGnkMkk+IjmbuI3xEQErPZqAR1FYEoHHY9b oUsCmLpmA4xRB/b7JkBb5l+aWV/jJEicSEwFdRJei3MJliMLR4wAqJr2fEx4h0TYXuP1 wVgByqBr/bu/vXDrGCzgwK8lQx8H37ti+OMOm8bSnORPMmbAZNtvXvZqCyCvp/kY47e1 xQwZZhQfhFVF/1lHK6LqUNM1znUFh2j5cqDlAsH7TQHwiwk84lHp/eP/mSvZjqL2T+gK 0f8g==
X-Gm-Message-State: APjAAAWf4aPeB8m/b24MHGK0aKyeSYCPdjeKTvB3LqQs484cY+yWUREc wAU0JeXpvayYGMcU6e/iP/oXeMV3I5L1uedCgg==
X-Google-Smtp-Source: APXvYqyJ+292g9dI75ApUpuQvPL7I93K1g1knGOenGYdZRd2nRLmdocdL9Tk205zVbh9hH6Sg+YQMJGtfPpCbg5B8l4=
X-Received: by 2002:a9d:71c3:: with SMTP id z3mr31559124otj.177.1553798936942; Thu, 28 Mar 2019 11:48:56 -0700 (PDT)
MIME-Version: 1.0
References: <0a9af6f6-1b5d-244d-06af-9d14461b1d69@yes.com>
In-Reply-To: <0a9af6f6-1b5d-244d-06af-9d14461b1d69@yes.com>
From: Filip Skokan <panva.ip@gmail.com>
Date: Thu, 28 Mar 2019 19:48:45 +0100
Message-ID: <CALAqi__ZkiuJyvsY9yo3bc8yvMSBdZx+otaNGoYYPxevO8B_yg@mail.gmail.com>
To: Daniel Fett <danielf+oauth@yes.com>
Cc: oauth <oauth@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000b05b5705852c0199"
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/d9i047xb8SgFk1VeIP36DEdRA5Y>
Subject: Re: [OAUTH-WG] draft-fett-oauth-dpop-00
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: Thu, 28 Mar 2019 18:49:01 -0000

Hello Daniel, everyone,

I've hacked together an AS implementation to enable client-side
experimentation using this draft.

You can find this hosted at
https://draft-fett-oauth-dpop-00.herokuapp.com (it's
also the issuer identifier). There's a default client registered and
dynamic registration is also open, so hack away. It's using the draft
version with dpop_binding expecting "jwk": { ...jwk } rather then "cnf": {
"dpop+jwk": { ... jwk } } as the payload claim as suggested by Ludwig.

There are more notes on the index page itself.

Aaron kindly accepted to work on the SPA client-side demonstration, I'm not
a SPA guru mastermind like Aaron and it would take me ages to deliver that
particular piece. That being said I did test this with a regular web app as
well as a CLI client using both code+pkce and dynamic port binding as well
as device authorization grant client. Works.

Feeding back to the draft

   - i think we should mention the client to provide reasonable expiration
   value of the dpop JWTs (max minutes). Altho not critical since we require a
   jti, as an AS i don't wanna cache the used jti values forever :)
   - the AS should error when the dpop JWT contains private key material
   - altho implied by the use of "public" and "private" key i think it
   wouldn't hurt explicitly forbidding "oct" JWKs
   - i don't see a point in dpop_proof containing the JWK again unless the
   AS is supposed to do something new with it
   - it wouldn't hurt mentioning that, kinda following 6750, when
   dpop_proof is sent it's in a query for GET, in the request body for a POST.
   my provider for instance will ignore query parameters during a POST. With
   that said, what about RS endpoints using other methods? Maybe placing the
   proof in a header isn't a terrible idea afterall.


Kind Regards,
*Filip Skokan*


On Thu, 28 Mar 2019 at 11:19, Daniel Fett <danielf+oauth@yes.com> wrote:

> Hi all,
>
> I published the first version of the DPoP draft at
> https://tools.ietf.org/html/draft-fett-oauth-dpop-00
>
> Abstract
>
>    This document defines a sender-constraint mechanism for OAuth 2.0
>    access tokens and refresh tokens utilizing an application-level
>    proof-of-possession mechanism based on public/private key pairs.
>
>
> Thanks for the feedback I received so far from John, Mike, Torsten, and
> others during today's session or before!
>
> If you find any errors I would welcome if you open an issue in the GitHub
> repository at https://github.com/webhamster/draft-dpop
>
> - Daniel
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.org
> https://www.ietf.org/mailman/listinfo/oauth
>