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

Hans Zandbelt <hans.zandbelt@zmartzone.eu> Tue, 07 May 2019 07:07 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 021D81201E2 for <oauth@ietfa.amsl.com>; Tue, 7 May 2019 00:07:57 -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=ham 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 N9ony4kwzJUl for <oauth@ietfa.amsl.com>; Tue, 7 May 2019 00:07:53 -0700 (PDT)
Received: from mail-qt1-x829.google.com (mail-qt1-x829.google.com [IPv6:2607:f8b0:4864:20::829]) (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 DF0C81200E5 for <oauth@ietf.org>; Tue, 7 May 2019 00:07:52 -0700 (PDT)
Received: by mail-qt1-x829.google.com with SMTP id j6so17865743qtq.1 for <oauth@ietf.org>; Tue, 07 May 2019 00:07:52 -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=BcGMFgaDfXX45oXAycmBLRKcUSKB1w0EGPivk9IEwb4=; b=hJ89YdycOPFFl/3+X417/kAw5jf3P5GgxbALgpx2ZB2GZoPi9J5zjQqNE302c6I31f Ec/x1haKvUYR0gAsNkVl1iT6G6Jt5nbkIYsvFIV/rIq/IEOosQwec8VmuZUSQ+8mnVs0 /p7tFUg8tniXMcoYDFELnGfxokTNHlX7DRLIZNu1TT1t+diR4sV0KmT1NqASx7aJ71Rw +bY9odnU7cEdbal+3nS1Yndms5CBbByXqyfDg4nJkiEPy5icmxa1xT3gDJdEOX4HA1/B dNOvV9kZmPsYikEZTbmCyd1stRhBRJ2yc0ZojYb6LGYslTHNM3b0HRt+TfVjAhsG9xGV mokg==
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=BcGMFgaDfXX45oXAycmBLRKcUSKB1w0EGPivk9IEwb4=; b=CcZUzZGyxVqY4LCPAKSDMQqWQCUVjyZiQ+wg7pFpL78ITx5uOq7DjZf6eUCRPSa+hh Y6JUR2+T2i8pPplvVw8mQl9UCI+5YWlKrVfWt+1MZ1yuYhEkybrG5q+3MP5kW1iqawa1 egZNe21rQMRoOdptLRutEQjIVvni87wbPJlCvP5OU3Lh1fPUPwZU17LdpxMrpfLJhP2I ETXWx2ql92jDH1jfKvuwVilRGeKxJf4c/ysFagowaCt+VYXbbyKMT53WiD1HTpDZZAH8 dTvSPWpW8ManiUutSVPAt9Q2Ml1hxs0UNWzDrzee+BtP/+gt98Pl8DX6Su8/Gnn6ii82 anSA==
X-Gm-Message-State: APjAAAUafAhJOKwZMiBPh0Bx/QG2JCFY3jQipr1n2e3qaby2qZcf2nY8 1E/WA0pfIffHbZhtJIzdp4vh9Fxc1hD4rkbfMoIW2g==
X-Google-Smtp-Source: APXvYqxRj4HwgkcammdQgPtgQ3jDLI37C9GOVfbOEL8BePA433M+zw767V3Ac7BJVy5CY1JOWqPZu3Ywj+aSzkM7q1A=
X-Received: by 2002:a0c:8b4a:: with SMTP id d10mr24375813qvc.29.1557212871794; Tue, 07 May 2019 00:07:51 -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> <CA+iA6ujVwsXCVM3D5ySUa2p9RFheFStub2C29-ThYDAHQBvFdg@mail.gmail.com> <CAO_FVe4TPtMdrvTvRfJZ9tXr9jyUDZaHUcGN8cj833WeTeUmvw@mail.gmail.com>
In-Reply-To: <CAO_FVe4TPtMdrvTvRfJZ9tXr9jyUDZaHUcGN8cj833WeTeUmvw@mail.gmail.com>
From: Hans Zandbelt <hans.zandbelt@zmartzone.eu>
Date: Tue, 07 May 2019 08:07:40 +0100
Message-ID: <CA+iA6ujgiVKwzqSu5BLiv2UTj4FGosDFRF=DOgO51TDB__yEZQ@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="0000000000001038a0058846e025"
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/53tY9cKuDKENVUxG8iEU001k8vM>
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: Tue, 07 May 2019 07:08:06 -0000

I understand your legacy-breaking point (and do see a name spacing hurdle)
but:
a. I feel we're now painting ourselves into a corner ("soft doctors make
stinking wounds").
b. putting the client_id into the sub value would be something that any
product should be able to do, just like putting an extra claim in; I don't
think that is fundamental stuff

Hans.

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

> Let me try a different angle. An AS might generate sub claims and
> client_id identifiers using a different format/template. That means that
> there might be a client with client_id X that gets assigned a sub value Y,
> despite the client being the same, hence the check “sub==client_id” would
> fail.
> The logic producing this might be hard for an AS to change as there has
> never been any requirement on client_id or sub formats hence everyone was
> free until now to use whatever logic they chose, including name spacing one
> but not the other and any other variation, and changes might have ripple
> effects downstream on systems that have nothing to do w this spec (eg
> sharing of where clients are stored might depend on the internal structure
> of the client_id). So in other words, an AS might have to touch pretty
> fundamental stuff in its logic and potentially impact scenarios that have
> no direct bearing with the JWT AT profile just for making that condition
> true. On the other plate of the scale, there’s adding a new claim- which I
> can literally already do in various commercial ASes via extensibility
> points, without changing their code.
>
>
> On Mon, May 6, 2019 at 15:11 Hans Zandbelt <hans.zandbelt@zmartzone.eu>
> wrote:
>
>> 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
>>
>

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