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

Hans Zandbelt <hans.zandbelt@zmartzone.eu> Thu, 04 April 2019 15:39 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 EDC1D1206E8 for <oauth@ietfa.amsl.com>; Thu, 4 Apr 2019 08:39:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, 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 oZvl83xRmfZI for <oauth@ietfa.amsl.com>; Thu, 4 Apr 2019 08:39:10 -0700 (PDT)
Received: from mail-qt1-x831.google.com (mail-qt1-x831.google.com [IPv6:2607:f8b0:4864:20::831]) (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 2C4421206C7 for <oauth@ietf.org>; Thu, 4 Apr 2019 08:39:07 -0700 (PDT)
Received: by mail-qt1-x831.google.com with SMTP id d13so3758086qth.5 for <oauth@ietf.org>; Thu, 04 Apr 2019 08:39:07 -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=Xw5BCH7aW7ombTcPgm3fqwSrJQRUsvdOjamFhB3dCWU=; b=YnSIZNJUP7N3JbzzBqn5A2PFPtIAlJqQycpwqDroD2brfeiIQrz9S09Ahb3zPWRVW/ h4EiN7zU7h0f3MEwEiS20W1YTzKAvZl+6x0h6Fu24esrj6crjDq/5sL4WkSeqN9V2HGX t7J3rBiY6W8iN9sZeOAgm6boqQRV9ylXNfdEx+VX0ggU+UAsW7jEHplW9p45GEHiSKlM qcWpKp+SZYd7J9L4WHoi9RGR4Xfk943iXezwgZfiXSSPqUv0VxLxf/hoe+vA7luwGuBC 6Iv7/x14nPrBAvEMn7D0g6bzA/wB0EoKjy1jpTaUVgd8n5H8+TAxJJajMx8wFMJ3rzEN z1Gg==
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=Xw5BCH7aW7ombTcPgm3fqwSrJQRUsvdOjamFhB3dCWU=; b=JxeSSGEwo+IGUYlbO/qIQDyx3h+7ip8CCAa2K5O2JOO+VpIWJYMkywsjeLTWee8ovU hp6a1y3QBBfgPLisLbpBKLktTY8cn28xvBhpwbuE+S5rJnEDPLybDJD0q+t96JleYsQN KtPwz3dR7yNrM7EI3cPSC/i3gn9+kSPjTdgPfkXPGslUCxTNeDQQfyO5v3dxyEV+qK8U SK9aUyV22h4axqx2rJZCSMtGG2tr+12it9WCLiCXaTaHKeaCOe9MxAXOf7Al/0rsimMD GjB9YI90N02mU18obAVa82iVB7yiLUdCszBXP7MAdyYzNQ8z8YUOnjuZq46+Vg6TYSoA AaIA==
X-Gm-Message-State: APjAAAWvSGKRZctYolW5ctgK+dieeQBcrnqTmSyMMWfqwJ0eHQxMyeXX /F/fJdOF0zOUhKyn5x2dbXqxMA8avuE/8cCpUpymhIal
X-Google-Smtp-Source: APXvYqynzei6JE/qfuvhCQT8czlW1U5dMftMBvRUlLhoRQp7A7azEEAZY/lmI/V8iSHG234y43AeyrS4QIw4hS7+BZE=
X-Received: by 2002:aed:2307:: with SMTP id h7mr5796322qtc.87.1554392346058; Thu, 04 Apr 2019 08:39:06 -0700 (PDT)
MIME-Version: 1.0
References: <CAO_FVe6eWy3zppQAij7qxD+ycYL8ebqGJKG0y-A7GhN+0=kb4g@mail.gmail.com> <62e62afb-891d-f7d8-8b39-793254dadf7b@aol.com> <CA+k3eCRGtvvT6YGGMZN+Krux=yTD-SSNJtj6mXQb5Fr9oQBbyQ@mail.gmail.com> <CA+k3eCR3sZ-gC96BYBTTW7kQ6EGw=z8wiNokAroNd=VTvNF3kw@mail.gmail.com>
In-Reply-To: <CA+k3eCR3sZ-gC96BYBTTW7kQ6EGw=z8wiNokAroNd=VTvNF3kw@mail.gmail.com>
From: Hans Zandbelt <hans.zandbelt@zmartzone.eu>
Date: Thu, 04 Apr 2019 17:38:54 +0200
Message-ID: <CA+iA6uiaoX_ZeTSdgrPZHUH8zCn4GEg8t9R7fYH4LsfWYwzfaw@mail.gmail.com>
To: Brian Campbell <bcampbell=40pingidentity.com@dmarc.ietf.org>
Cc: George Fletcher <gffletch=40aol.com@dmarc.ietf.org>, IETF oauth WG <oauth@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000a0f5a50585b62b10"
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/Mz0b9V16EMZaxpfivXDtTnW622M>
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: Thu, 04 Apr 2019 15:39:16 -0000

agreed but it (i.e. "sub") also brings us back to where we started

Hans.

On Thu, Apr 4, 2019 at 5:27 PM Brian Campbell <bcampbell=
40pingidentity.com@dmarc.ietf.org> wrote:

> The same is true for most of the other main claims too - iss, exp, aud,
> sub, iat, etc.. They are defined in RFC 7519 not OIDC.
>
> On Thu, Apr 4, 2019 at 9:21 AM Brian Campbell <bcampbell@pingidentity.com>
> wrote:
>
>> Yeah, OpenID.Core isn't the right reference for `aud`.
>> https://tools.ietf.org/html/rfc7519#section-4.1.3 is the definition of
>> `aud` which should be the reference and this document can provide
>> additional specifics for the given application.
>>
>> On Thu, Apr 4, 2019 at 8:07 AM George Fletcher <gffletch=
>> 40aol.com@dmarc.ietf.org> wrote:
>>
>>> Another comment...
>>>
>>>    aud  REQUIRED - as defined in section 2 of [OpenID.Core <https://tools.ietf.org/html/draft-bertocci-oauth-access-token-jwt-00#ref-OpenID.Core>].  See
>>>       Section 3 <https://tools.ietf.org/html/draft-bertocci-oauth-access-token-jwt-00#section-3> for indications on how an authorization server should
>>>       determine the value of aud depending on the request.  [Note: some
>>>       vendors seem to rely on resource aliases.  If we believe this to
>>>       be a valuable feature, here's some proposed language: The aud
>>>       claim MAY include a list of individual resource indicators if they
>>>       are all aliases referring to the same requested resource known by
>>>       the authorization server. ]
>>>
>>>
>>>
>>> I don't think OpenID.Core Section 3 is the correct reference for
>>> determining the 'aud' value. The issue here is that the 'aud' of the
>>> id_token is the recipient of the id_token (i.e. the client). However, for
>>> access_tokens the 'aud' value should be the resource service that will
>>> receive the access_token. There is no existing guidance for this and we
>>> should provide such guidance as this is "kind of new" for OAuth2 (from an
>>> explicit specification perspective).
>>>
>>> Also, there is the concept of 'azp' from the id_token which amounts to
>>> "who's allowed to present this token" which might be interesting from the
>>> case where one entity obtains the token, and gives it to another entity to
>>> present. Not sure if we want to include this concept or not.
>>>
>>> Finally, I think we may need some best practice around how the concept
>>> of audience and resource should be managed. For instance...
>>>
>>>    If the request does not include a resource parameter, the
>>>    authorization server MUST use in the aud claim a default resource
>>>    indicator.  If a scope parameter is present in the request, the
>>>    authorization server SHOULD use it to infer the value of the default
>>>    resource indicator to be used in the aud claim.
>>>
>>>
>>> I think for most implementations this would amount to... define an
>>> audience that covers all the resource services where the access token can
>>> be returned and set that as the audience (e.g. urn:x-mydomain:apis). Which
>>> is perfectly legal but maybe not in the spirit of the spec:) I am receiving
>>> feedback from developers that binding access tokens narrowly to the
>>> resource where they will be presented is concerning from a chattiness
>>> perspective (latency issues) and general load on the deployed AS
>>> infrastructure.
>>>
>>> On 3/24/19 7:29 PM, Vittorio Bertocci wrote:
>>>
>>> Dear all,
>>> I just submitted a draft describing a JWT profile for OAuth 2.0 access
>>> tokens. You can find it in
>>> https://datatracker.ietf.org/doc/draft-bertocci-oauth-access-token-jwt/.
>>> I have a slot to discuss this tomorrow at IETF 104 (I'll be presenting
>>> remotely). I look forward for your comments!
>>>
>>> Here's just a bit of backstory, in case you are interested in how this
>>> doc came to be. The trajectory it followed is somewhat unusual.
>>>
>>>    - Despite OAuth2 not requiring any specific format for ATs, through
>>>    the years I have come across multiple proprietary solution using JWT for
>>>    their access token. The intent and scenarios addressed by those solutions
>>>    are mostly the same across vendors, but the syntax and interpretations in
>>>    the implementations are different enough to prevent developers from reusing
>>>    code and skills when moving from product to product.
>>>    - I asked several individuals from key products and services to
>>>    share with me concrete examples of their JWT access tokens (THANK YOU
>>>    Dominick Baier (IdentityServer), Brian Campbell (PingIdentity),
>>>    Daniel Dobalian (Microsoft), Karl Guinness (Okta) for the tokens and
>>>    explanations!).
>>>    I studied and compared all those instances, identifying
>>>    commonalities and differences.
>>>    - I put together a presentation summarizing my findings and
>>>    suggesting a rough interoperable profile (slides:
>>>    https://sec.uni-stuttgart.de/_media/events/osw2019/slides/bertocci_-_a_jwt_profile_for_ats.pptx
>>>    <https://sec..uni-stuttgart.de/_media/events/osw2019/slides/bertocci_-_a_jwt_profile_for_ats.pptx>
>>>    ) - got early feedback from Filip Skokan on it. Thx Filip!
>>>    - The presentation was followed up by 1.5 hours of unconference
>>>    discussion, which was incredibly valuable to get tight-loop feedback and
>>>    incorporate new ideas. John Bradley, Brian Campbell Vladimir Dzhuvinov,
>>>    Torsten Lodderstedt, Nat Sakimura, Hannes Tschofenig were all there
>>>    and contributed generously to the discussion. Thank you!!!
>>>    Note: if you were at OSW2019, participated in the discussion and
>>>    didn't get credited in the draft, my apologies: please send me a note and
>>>    I'll make things right at the next update.
>>>    - On my flight back I did my best to incorporate all the ideas and
>>>    feedback in a draft, which will be discussed at IETF104 tomorrow. Rifaat,
>>>    Hannes and above all Brian were all super helpful in negotiating the
>>>    mysterious syntax of the RFC format and submission process.
>>>
>>> I was blown away by the availability, involvement and willingness to
>>> invest time to get things right that everyone demonstrated in the process.
>>> This is an amazing community.
>>> V.
>>>
>>> _______________________________________________
>>> OAuth mailing listOAuth@ietf.orghttps://www.ietf.org/mailman/listinfo/oauth
>>>
>>>
>>> _______________________________________________
>>> OAuth mailing list
>>> OAuth@ietf.org
>>> https://www.ietf.org/mailman/listinfo/oauth
>>>
>>
> *CONFIDENTIALITY NOTICE: This email may contain confidential and
> privileged material for the sole use of the intended recipient(s). Any
> review, use, distribution or disclosure by others is strictly prohibited..
> If you have received this communication in error, please notify the sender
> immediately by e-mail and delete the message and any file attachments from
> your computer. Thank you.*_______________________________________________
> OAuth mailing list
> OAuth@ietf.org
> https://www.ietf.org/mailman/listinfo/oauth
>


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