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

CARLIER Bertrand <Bertrand.CARLIER@wavestone.com> Mon, 25 March 2019 14:55 UTC

Return-Path: <Bertrand.CARLIER@wavestone.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 31E431203EE for <oauth@ietfa.amsl.com>; Mon, 25 Mar 2019 07:55:47 -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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=wavestone.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 fvLIYntphIJX for <oauth@ietfa.amsl.com>; Mon, 25 Mar 2019 07:55:43 -0700 (PDT)
Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40063.outbound.protection.outlook.com [40.107.4.63]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DDD701203A2 for <oauth@ietf.org>; Mon, 25 Mar 2019 07:55:42 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=wavestone.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=A9feF462hoidmF4SoSKpBU3hSGIro9siqD7CSgFJjx8=; b=KwkDgrlAho0eljtYCjTEnGz6b6mnu2ISnNKHGpwGiETpRaypO9as0gIqjxiPJIdYpzuGE1pwd44YLjyVD/G2SsnR62kRXVJXUWp5DAtegkBTPbyL7yb4LgHiBM83Y+dfKy1dmuaJeT8RglEVNd3Lg269CPUHGzqWS268OuE6zP4=
Received: from AM6PR03MB4982.eurprd03.prod.outlook.com (20.178.89.219) by AM6PR03MB3751.eurprd03.prod.outlook.com (52.134.115.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1730.18; Mon, 25 Mar 2019 14:55:39 +0000
Received: from AM6PR03MB4982.eurprd03.prod.outlook.com ([fe80::d8c6:2966:2252:5cb7]) by AM6PR03MB4982.eurprd03.prod.outlook.com ([fe80::d8c6:2966:2252:5cb7%3]) with mapi id 15.20.1730.019; Mon, 25 Mar 2019 14:55:39 +0000
From: CARLIER Bertrand <Bertrand.CARLIER@wavestone.com>
To: "Vittorio@auth0.com" <Vittorio@auth0.com>, IETF oauth WG <oauth@ietf.org>
Thread-Topic: [OAUTH-WG] draft-bertocci-oauth-access-token-jwt-00
Thread-Index: AQHU4plzBwFW/2HF0keIgXKSbKvp56YccDLg
Date: Mon, 25 Mar 2019 14:55:39 +0000
Message-ID: <AM6PR03MB4982DAE6A7A56E29DD604000875E0@AM6PR03MB4982.eurprd03.prod.outlook.com>
References: <CAO_FVe6eWy3zppQAij7qxD+ycYL8ebqGJKG0y-A7GhN+0=kb4g@mail.gmail.com>
In-Reply-To: <CAO_FVe6eWy3zppQAij7qxD+ycYL8ebqGJKG0y-A7GhN+0=kb4g@mail.gmail.com>
Accept-Language: fr-FR, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Bertrand.CARLIER@wavestone.com;
x-originating-ip: [165.225.77.30]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 603ce0f4-a75e-4aaa-64cb-08d6b131f20f
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(5600127)(711020)(4605104)(4618075)(2017052603328)(7153060)(7193020); SRVR:AM6PR03MB3751;
x-ms-traffictypediagnostic: AM6PR03MB3751:
x-microsoft-antispam-prvs: <AM6PR03MB37511A9EA9C99F7D9E784670875E0@AM6PR03MB3751.eurprd03.prod.outlook.com>
x-forefront-prvs: 0987ACA2E2
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(346002)(136003)(39860400002)(376002)(366004)(396003)(189003)(199004)(26244003)(2501003)(11346002)(110136005)(105586002)(476003)(256004)(966005)(8936002)(446003)(14454004)(478600001)(72206003)(5024004)(14444005)(486006)(316002)(68736007)(33656002)(106356001)(53936002)(97736004)(66066001)(7736002)(305945005)(71200400001)(26005)(71190400001)(5660300002)(53946003)(2906002)(6246003)(52536014)(25786009)(76176011)(74316002)(229853002)(99286004)(86362001)(7696005)(6116002)(3846002)(55016002)(102836004)(9686003)(6306002)(186003)(6506007)(30864003)(55236004)(81166006)(8676002)(81156014)(6436002)(45080400002)(579004)(559001); DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR03MB3751; H:AM6PR03MB4982.eurprd03.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1;
received-spf: None (protection.outlook.com: wavestone.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: oQNtAP+101E4IFmOvnjKRU/ozoTPPI3nJ75X79+IwrD5i/8OfPG1Y1Ln0mYoeaQ5DzzNqecEjOIPwGO5SIzBpb8ZKwy2pXfRINpJwzLBWPK9JusJUfb3CNAx3X750jnrkG8d44UmpdSW8kaoCl8Lgi7ExdV/KQvzO+vvHwrnf61f+fW8+LaK3W/xyunsw7hui31G6/6SCOm+HLsN03O+ZvC98rDdxaBCNJ6HP82ZdD+XGTH9+2HQHciuwxeyIIgxXzQ835mkHY7pCAmn/cBvgJovsXUitv6K1ct3SztNft5pUIzeDcXFI9WjGeQFDaoilZCqpOZOHbvQBR0a0EMvzK/J7oGXn6HGLMM+rBQOUE4cszjoXEU3S2RrmX1wMSOQMmEFaCb6SgXlCVMSDK5vrX5l52eIRKtdlhQe+WaXH4w=
Content-Type: multipart/alternative; boundary="_000_AM6PR03MB4982DAE6A7A56E29DD604000875E0AM6PR03MB4982eurp_"
MIME-Version: 1.0
X-OriginatorOrg: wavestone.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 603ce0f4-a75e-4aaa-64cb-08d6b131f20f
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Mar 2019 14:55:39.1752 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5de96c96-c87c-4dce-aad9-f5c557b52ac1
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR03MB3751
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/HxpULY0DAzjn2AsGXHM2GApFT6s>
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, 25 Mar 2019 14:55:47 -0000

Hi Vittorio,

Very nice work !

Here are a few ideas:
- In addition to the "sub" claim (I agree it should only relate to the end user, not the client_id), I think the scope claim should be mentioned as OPTIONAL in §2.2 (it's already mentioned in other parts of the draft)
- Should we mention security recommendation on the JWT (like DO NOT USE alg="none") and maybe refer to https://tools.ietf.org/id/draft-ietf-oauth-jwt-bcp-02.html ?
- Should we mention the "act" claim defined by Token Exchange as a possible claim for JWT access tokens?
- any reason to rely on RFC 7662 (Introspection) for the token format? I see that the "nbf" (not before) claim is defined there

Regards,
--
Bertrand CARLIER


From: OAuth <oauth-bounces@ietf.org> On Behalf Of Vittorio Bertocci
Sent: lundi 25 mars 2019 00:29
To: IETF oauth WG <oauth@ietf.org>
Subject: [OAUTH-WG] draft-bertocci-oauth-access-token-jwt-00

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.

The information transmitted in the present email including the attachment is intended only for the person to whom or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete all copies of the material.

Ce message et toutes les pièces qui y sont éventuellement jointes sont confidentiels et transmis à l'intention exclusive de son destinataire. Toute modification, édition, utilisation ou diffusion par toute personne ou entité autre que le destinataire est interdite. Si vous avez reçu ce message par erreur, nous vous remercions de nous en informer immédiatement et de le supprimer ainsi que les pièces qui y sont éventuellement jointes.