Re: [OAUTH-WG] draft-bertocci-oauth-access-token-jwt-00

Hans Zandbelt <hans.zandbelt@zmartzone.eu> Mon, 06 May 2019 22:12 UTC

Return-Path: <hans.zandbelt@zmartzone.eu>
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 996391201C7 for <oauth@ietfa.amsl.com>; Mon, 6 May 2019 15:12:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level:
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=zmartzone-eu.20150623.gappssmtp.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 dOjyrbb-thP3 for <oauth@ietfa.amsl.com>; Mon, 6 May 2019 15:12:02 -0700 (PDT)
Received: from mail-qt1-x82a.google.com (mail-qt1-x82a.google.com [IPv6:2607:f8b0:4864:20::82a]) (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 D542A120045 for <oauth@ietf.org>; Mon, 6 May 2019 15:11:59 -0700 (PDT)
Received: by mail-qt1-x82a.google.com with SMTP id o7so4808291qtp.4 for <oauth@ietf.org>; Mon, 06 May 2019 15:11:59 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zmartzone-eu.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=MO0YeGg1DIeOgyrDKKz9fBfPriTdtKLsJqLQhu4aeI0=; b=jvKp9VmbNt3lQxyWGL9IDmW7tfYi++KrAPXzAJDNpIy6lgP6kJn7KTE6Pg7FqsqG53 FVGiZe1lAiOBi8htHyjyaaPeu1fvYKlomNFafRCZ+u1dYK8vP2dQuBaf+zlWcwHWA0es OMBY/XyhXeLiTel1+RzIdCVZ+yyyuVBdg5/ZuP25Lp1aWHpL48Nug3anqdiPf9LllkV0 h2ipW9irdSbwudIxzUGTE2V7GFgMtYK2LilWJNZ56zq9dPofBYoy1UVe6BbjBbWxp+HE 5NNgEze0LddY6pLzL5fgt/TPufvDNlfNMgOPDzFvbljjcn1tMgSo1qStopQylkRPQr/s Cv5w==
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=MO0YeGg1DIeOgyrDKKz9fBfPriTdtKLsJqLQhu4aeI0=; b=MnfonCfjn44r50Do3WNKlDiV1uWO7zo8Evj+DVbOZ7U+LxvNJavvk1ZE5vcRSiIN65 Cdo+JknI006RvJr2ThsthE67K74XXlXTWDSXEs8JeT57BJbbc9d3RcvwpSW1elqpfA0o tlpmzBehceTA4Z82UlE7/pGk/3mQliZfNCPG3zFlifOcd2C4fwm+kGKAjgYRu/S1MlUH zudVw+7HBFDAZ6lBYvx1efeN7KpjGhE9cMrVTJTVTA1q9K/GH2Vcjv5su2T358x05cRK 8DvnlwE5TTOUez/9zVrE3G24ks7zXJ5e5c7AKDiRmhyvWJDhtRKAj3AVTAzdUkJP8idR BiRg==
X-Gm-Message-State: APjAAAVvJ4zxrpinjoV09THJ87TZiHm3CWHiAKrzQKDlaxKoZaBDg9TT rilZRciM1nKOabKgjV+SIVI+5dK0QnY68Fzs80f7wA==
X-Google-Smtp-Source: APXvYqx2kUE1gZrwSESjIIvCuhyoVyprrhDMlw7Qs2+WO0fuGUlawS74BHu0gQO1rH58KeTM94VMLqZk/5xAiB/SNxM=
X-Received: by 2002:ac8:851:: with SMTP id x17mr23919972qth.373.1557180718821; Mon, 06 May 2019 15:11:58 -0700 (PDT)
MIME-Version: 1.0
References: <CAO_FVe6eWy3zppQAij7qxD+ycYL8ebqGJKG0y-A7GhN+0=kb4g@mail.gmail.com> <CAHsNOKewL9xCFt6SsP4dz+W0CN_NUZaGMJahF7mSgos_Xbnhhw@mail.gmail.com> <CAO_FVe7c6jLRJ8mD7gw=a6NY3oZcgCh_b5dR8uRXa6Q2c2gmGg@mail.gmail.com> <CA+iA6uje229zrAos3c1TCuJEM+2vmVifNQ2FnKDuj2T4ET2SYA@mail.gmail.com> <a34edf0e-012a-ecc9-e547-3cdc61dca5a4@aol.com> <CA+iA6uh6Q901wEaqGSK7An0z0_iJTjCfvPVN44Qwpb=M_rDONg@mail.gmail.com> <239f40ab-da4d-03fe-4524-0b21a0bcc63e@aol.com> <SN6PR00MB0304BC3C7D438F8A5715B36DF5500@SN6PR00MB0304.namprd00.prod.outlook.com> <CA+iA6ugr+xPfeTFXK2gGBFX8Yw+zGArGfav=Ci5A3qNYUqB7rw@mail.gmail.com> <SN6PR00MB030459810B40D98370728BBAF5500@SN6PR00MB0304.namprd00.prod.outlook.com> <CA+iA6ug1NOpMcPsSr8o24CM3xWy-3z_pxiZhiyPeKxvScMACmg@mail.gmail.com> <CAO_FVe4AP5aWgXAAGj1QxPDFPjyfeaZGWd-b5azrz=ajuHuJdQ@mail.gmail.com> <3ec04cf7-e0ed-2b9a-20f7-a94dea4d559b@connect2id.com> <CAO_FVe6sLxbkk0tEjH5sb8k36q4_sJLU6HAgU05fAqOGaqo8MA@mail.gmail.com> <61adde0e-8709-5b88-8b64-ac8cc4549f51@connect2id.com> <CAO_FVe4HQKPvL5bdbAerHRU0TCiZKLJS9JgDrYkXNokri9oBaA@mail.gmail.com> <2C153797-C5AD-410D-A52E-B87DBA19DF99@okta.com> <CA+iA6uig=Pud6h8T=n9rY7vvkc97=80K-0JQOXhgv2mQBt3kPQ@mail.gmail.com> <CAO_FVe67X4mwCAUv=GHkBByaGKyb2JcMtna+UKNatxjfiGw5OQ@mail.gmail.com> <CA+iA6uiTzLRG6S-OGVyBk2TCGsf4mjktTMn=vxcODNOq3=Jxig@mail.gmail.com> <CAO_FVe7OSB_5vhFQ8Fxhf0a7nZ2SpDpKCHiqdjGxRpDTkA+q4w@mail.gmail.com>
In-Reply-To: <CAO_FVe7OSB_5vhFQ8Fxhf0a7nZ2SpDpKCHiqdjGxRpDTkA+q4w@mail.gmail.com>
From: Hans Zandbelt <hans.zandbelt@zmartzone.eu>
Date: Mon, 06 May 2019 23:11:47 +0100
Message-ID: <CA+iA6ujVwsXCVM3D5ySUa2p9RFheFStub2C29-ThYDAHQBvFdg@mail.gmail.com>
To: Vittorio Bertocci <Vittorio@auth0.com>
Cc: IETF oauth WG <oauth@ietf.org>, Karl McGuinness <kmcguinness=40okta.com@dmarc.ietf.org>, Vittorio Bertocci <Vittorio=40auth0.com@dmarc.ietf.org>
Content-Type: multipart/alternative; boundary="00000000000098cf6405883f63d9"
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/FTNZdlla9SfZLBc77x43ysdi5fk>
Subject: Re: [OAUTH-WG] draft-bertocci-oauth-access-token-jwt-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: Mon, 06 May 2019 22:12:11 -0000

I'm suggesting that whichever "sub" and "client_id" the RS is receiving and
however it was generated, it must mean something to it in alignment with
the JWT/OAuth2/OIDC specs, otherwise it wouldn't be there at all; moreover,
if the "sub" has the same value as "client_id" it must be a client talking
to the RS on behalf of its own and the claims are associated with the
client; if the "sub" has a different value than the "client_id" it must be
a scenario where the client presents a token delegated by a Resource Owner
and the claims are about the Resource Owner. Problem solved?

Hans.

On Mon, May 6, 2019 at 11:06 PM Vittorio Bertocci <Vittorio@auth0.com>
wrote:

> I am not following. We want this to be adopted, right? :) if we provide
> guidance that is sound but hard to implement we are going to fail.
> Considerations on whether the guidance requires a big effort to be applied
> are very much in scope for me.
>
> On Mon, May 6, 2019 at 14:54 Hans Zandbelt <hans.zandbelt@zmartzone.eu>
> wrote:
>
>> the scope and way of generating sub/client_id is orthogonal to the
>> semantics IMHO but if I'm the only one who thinks so, I'll rest my case
>>
>> Hans.
>>
>> On Mon, May 6, 2019 at 10:49 PM Vittorio Bertocci <Vittorio@auth0.com>
>> wrote:
>>
>>> See below, Hans- the sub doesn’t have to be global, it could be
>>> something generated just for this particular RS. Or the AS might have its
>>> own recipe for generating sub values that different from the recipe used to
>>> generate client_ids. It would be much easier for an AS to emit a claim
>>> making this explicit statement than to change sub and client_id assignment
>>> logic.
>>>
>>> On Mon, May 6, 2019 at 13:49 Hans Zandbelt <hans.zandbelt@zmartzone.eu>
>>> wrote:
>>>
>>>> I may be missing something but I'd argue that by requiring and
>>>> comparing both "sub" and "client_id" we achieve the same semantics without
>>>> a new/additional claim (barring name spacing)
>>>>
>>>> Hans.
>>>>
>>>> On Mon, May 6, 2019 at 8:58 PM Karl McGuinness <kmcguinness=
>>>> 40okta.com@dmarc.ietf.org> wrote:
>>>>
>>>>> Makes sense that we don’t want to further couple AS and RS with grant
>>>>> types.  I’m OK if we want a dedicated claim to establish whether the token
>>>>> is resource owner delegated  vs client acting as itself.
>>>>>
>>>>> Subject Type is already a concept in RISC.  Just making folks are
>>>>> aware of prior art.
>>>>>
>>>>> https://openid.net/specs/oauth-event-types-1_0-01.html#rfc.section.2.2
>>>>> https://openid.net/specs/openid-risc-profile-1_0.html#rfc.section.2.1
>>>>>
>>>>> -Karl
>>>>>
>>>>> On May 6, 2019, at 12:42 PM, Vittorio Bertocci <
>>>>> Vittorio=40auth0.com@dmarc.ietf.org> wrote:
>>>>>
>>>>> *This message originated outside your organization.*
>>>>> ------------------------------
>>>>> Fair enough! What others think about it?
>>>>> Exploring the approach: would we want a bool claim or an enumeration,
>>>>> e.g. sub_type = [ resource_owner | client ] ?
>>>>>
>>>>>
>>>>> On Mon, May 6, 2019 at 12:35 PM Vladimir Dzhuvinov <
>>>>> vladimir@connect2id.com> wrote:
>>>>>
>>>>>> Hi Vittorio,
>>>>>>
>>>>>> On 06/05/2019 22:22, Vittorio Bertocci wrote:
>>>>>> > It is true that the grant_type is a client side consideration. I
>>>>>> did think
>>>>>> > about the "client_id==sub" heuristic, but that's not always
>>>>>> applicable:
>>>>>> > many systems have their own rules for generating sub, and in case
>>>>>> they want
>>>>>> > to prevent tracking across RSes the sub might be generated ad-hoc
>>>>>> for that
>>>>>> > particular RS.
>>>>>> > Would you prefer to have a dedicated claim that distinguish between
>>>>>> user
>>>>>> > and app tokens rather than reusing grant_type?
>>>>>>
>>>>>> A dedicated claim to flag client_id effectively == sub would be
>>>>>> preferable, and much easier for RS developers to process.
>>>>>>
>>>>>> The AS is the authority and has all the knowledge to set / indicate
>>>>>> this.
>>>>>>
>>>>>> I want to keep RS developers away from having to deal with grant types
>>>>>> and having to make decisions whether client_id effectively == sub.
>>>>>>
>>>>>> Vladimir
>>>>>>
>>>>>>
>>>>>> > On Mon, May 6, 2019 at 12:16 PM Vladimir Dzhuvinov <
>>>>>> vladimir@connect2id.com>
>>>>>> > wrote:
>>>>>> >
>>>>>> >> On 06/05/2019 20:32, Vittorio Bertocci wrote:
>>>>>> >>> To that end, *Karl MCGuinness suggested that we include
>>>>>> >>> grant_type as a return claim, which the RS could use to the same
>>>>>> >> effect*. I
>>>>>> >>> find the proposal very clever, and the people at IIW thought so
>>>>>> as well.
>>>>>> >>> What you think?
>>>>>> >> The grant type is not something that the RS is really concerned
>>>>>> with, or
>>>>>> >> should be. Introducing this parameter in the access token will
>>>>>> create an
>>>>>> >> additional logical dependency, plus complexity - in the system of
>>>>>> >> client, AS and RS as a whole, as well as for RS developers. The
>>>>>> grant
>>>>>> >> type, as a concept, is a matter between the client and AS, and IMO
>>>>>> >> should stay that way.
>>>>>> >>
>>>>>> >> Clear language in the spec should suffice. For instance: "If the
>>>>>> sub
>>>>>> >> value matches the client_id value, then the subject is the client
>>>>>> >> application".
>>>>>> >>
>>>>>> >> Vladimir
>>>>>> >>
>>>>>> >> --
>>>>>> >> Vladimir Dzhuvinov
>>>>>> >>
>>>>>> >>
>>>>>> >> _______________________________________________
>>>>>> >> OAuth mailing list
>>>>>> >> OAuth@ietf.org
>>>>>> >> https://www.ietf.org/mailman/listinfo/oauth
>>>>>> >>
>>>>>> --
>>>>>> Vladimir Dzhuvinov
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>> 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
>>>>
>>>>
>>>>>
>>>>
>>>> --
>>>> hans.zandbelt@zmartzone.eu
>>>> ZmartZone IAM - www.zmartzone.eu
>>>> _______________________________________________
>>>> OAuth mailing list
>>>> OAuth@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/oauth
>>>>
>>>
>>
>> --
>> hans.zandbelt@zmartzone.eu
>> ZmartZone IAM - www.zmartzone.eu
>>
>

-- 
hans.zandbelt@zmartzone.eu
ZmartZone IAM - www.zmartzone.eu