Re: [OAUTH-WG] [EXTERNAL] Re: Clarifying the scope of the OAuth 2.1 spec

Mike Jones <Michael.Jones@microsoft.com> Mon, 16 March 2020 19:40 UTC

Return-Path: <Michael.Jones@microsoft.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 3B9593A0FB6 for <oauth@ietfa.amsl.com>; Mon, 16 Mar 2020 12:40:55 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.099
X-Spam-Level:
X-Spam-Status: No, score=-2.099 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_FONT_LOW_CONTRAST=0.001, HTML_MESSAGE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=microsoft.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 Lubx6j65Us5b for <oauth@ietfa.amsl.com>; Mon, 16 Mar 2020 12:40:52 -0700 (PDT)
Received: from NAM06-DM3-obe.outbound.protection.outlook.com (mail-dm3nam06on0724.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe56::724]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A0F853A0FB5 for <oauth@ietf.org>; Mon, 16 Mar 2020 12:40:52 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oDFNZWmjAgaUS8yMfscFG6KqkHRVs991CXBiVMqnffyJWacxlBbcnF6FdOuquQTD3bTMBE76/qHN5WAxFqnNNY1V9EfkSha1JeuzIPmngIwpeVUdQRD3xB5rEN1ht7XWMo5c9K5QVJNw8x8h9syWuBfE/V8GqnjWVqaUkz4H5hHJpMeqvNeKmB1PAw216IzMzu+M8dppG77WcfLOTsmQs6tDzUwPRmBZW/eBI1+zr0MhBeLonIzAYg1YScMBm5ttpHkoXOnKA9ZLFW6wIZJbVVR/Jm8/5Qmka0k7T9lqUkf2YL91j65cBg1+yWlpSDE2/gjIICPUFjNjGeRtTadGNQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;bh=9V+EK4+ru2qCLvNfIer8DDfao5Nykmywx93LbtN6UCU=; b=JEqYeRWYmx/5DD8cLb8OZ5uDaZ6EniUskLnt2AJkapbgc/KFegfdjdc5L4e9jD3JMdQqgPybIkpgQC6eiMBWx0n+GS+7gcWdzO5xq1bUWVh4BWcQOTJWoWFLNB9tDdhoSReSecrCvDBu9jDRmXBH3xuk6xkWIPiRIVb+U50ouW09XsRF9RdGlosSnbCDdQWCyJISBUQGrsEVs3Xm77XqCWcuozV3n9hJW4zwMB5bYwYV1SJ93MWjG3JCB0GVshfeqskqDwBDJgP4stVFXt5wx15TgtwghW2ey95W9XWs7C3yF3mKzxF8UZv2sebWST6o+h0T9UExYIWxDQrbiOpTpw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microsoft.com; dmarc=pass action=none header.from=microsoft.com; dkim=pass header.d=microsoft.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;bh=9V+EK4+ru2qCLvNfIer8DDfao5Nykmywx93LbtN6UCU=; b=Mx4XHcrWLUnVmmB6UAqoo0cGeXrmgkNa8Pxzr70xffRgiGTAAOu8WSj8aAFdaNlPa2bnJxcYYDDGxe11M/45ZHZmns7yoW/EhuRtMgK7T0eAbj8SrNmgU4cU+LqON3HR+YYouRqcqnVCQ1oCRDXPpNf2AXVru6tVL+QQrPhvcjw=
Received: from DM6PR00MB0684.namprd00.prod.outlook.com (2603:10b6:5:21c::8) by DM5PR00MB0343.namprd00.prod.outlook.com (2603:10b6:4:9f::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2851.0; Mon, 16 Mar 2020 19:40:50 +0000
Received: from DM6PR00MB0684.namprd00.prod.outlook.com ([fe80::6442:6f5e:972:c9f7]) by DM6PR00MB0684.namprd00.prod.outlook.com ([fe80::6442:6f5e:972:c9f7%6]) with mapi id 15.20.2858.000; Mon, 16 Mar 2020 19:40:50 +0000
From: Mike Jones <Michael.Jones@microsoft.com>
To: Dick Hardt <dick.hardt@gmail.com>
CC: "aaron@parecki.com" <aaron@parecki.com>, "torsten@lodderstedt.net" <torsten@lodderstedt.net>, "oauth@ietf.org" <oauth@ietf.org>
Thread-Topic: [EXTERNAL] Re: Clarifying the scope of the OAuth 2.1 spec
Thread-Index: AdX7wZ4GR5GC72+bR028wmlhcDNjuQAB/YiAAABKl5A=
Date: Mon, 16 Mar 2020 19:40:49 +0000
Message-ID: <DM6PR00MB0684F27F5A069BA3D9B1AD68F5F90@DM6PR00MB0684.namprd00.prod.outlook.com>
References: <DM6PR00MB06845FEB6201E73E87CA30B9F5F90@DM6PR00MB0684.namprd00.prod.outlook.com> <CAD9ie-uZEjcnAF+N7ni6XMznaUWJxkFE7BTi+o2FLiQqhHA-Mg@mail.gmail.com>
In-Reply-To: <CAD9ie-uZEjcnAF+N7ni6XMznaUWJxkFE7BTi+o2FLiQqhHA-Mg@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels: MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ActionId=a6fba3d8-6d20-4dc5-9965-0000b465fc98; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ContentBits=0; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=true; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Method=Standard; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=Internal; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2020-03-16T19:40:29Z; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47;
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Michael.Jones@microsoft.com;
x-originating-ip: [50.47.81.134]
x-ms-publictraffictype: Email
x-ms-office365-filtering-ht: Tenant
x-ms-office365-filtering-correlation-id: 5dec2970-174f-4a8f-6f94-08d7c9e1ee68
x-ms-traffictypediagnostic: DM5PR00MB0343:
x-microsoft-antispam-prvs: <DM5PR00MB0343A889A21386849847A8BDF5F90@DM5PR00MB0343.namprd00.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:8273;
x-forefront-prvs: 03449D5DD1
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(4636009)(366004)(199004)(53546011)(21615005)(8936002)(8990500004)(8676002)(10290500003)(81156014)(81166006)(186003)(26005)(55016002)(9686003)(2906002)(6916009)(86362001)(54906003)(498600001)(5660300002)(33656002)(52536014)(66574012)(4326008)(966005)(66556008)(6506007)(66446008)(64756008)(66946007)(7696005)(71200400001)(76116006)(66476007)(76236002)(99710200001); DIR:OUT; SFP:1102; SCL:1; SRVR:DM5PR00MB0343; H:DM6PR00MB0684.namprd00.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1;
received-spf: None (protection.outlook.com: microsoft.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: Z8GvPOUN6OmPaQuEkfTm7Udh4v346aBZyA+G4TjfMpJge5hfLyyibfXkKrYaQWdrPzE0b0z++mb5cCJoBxeMKuXaficnB5gPyKRphqI1NzQW+T6OnKxYFf99/AbZxvsAKa1kFOT5wk2ql4XRGvX1EhF7+TYvloNwatg4lRYX2KmcMXCRas7Fct37z0MFdXZc9Xu+NlWX0L3LfFj2G9inJczDN42wo/fKzPTxDxt6/BLwgp98w9dj+TpRUY0NxmoYlhZdn9CtfmNz+Fmd1gQHXds/g7djw+2nwowbduXKglecTvRfrcDs2PoxYpzBmDgwFnrAC+4mPxY8Gl6Syy1urt77Ud29US8/0uvRnzzjASmBZgd2/7AubG6+HCCtOT42o92DvQA8h/tCdMke3meNnmFYkZ9mqaBL7WQUPQ3OOHSnIolnP/Fhr+U5CwyG5QonP2Pz/h4SGs3aVf4wNe/TFnUMOz3gVTF51WyL/E0JWqQstGjcngOcrwNwgz+SvNKa5tdfbr9txD2uo3dP27JTJCA+k7rJDfpBcj4aYdHW0GZPCu/1kGj+o5REUGFVqndy
x-ms-exchange-antispam-messagedata: m4o8qboVV/SJtdHtkmo1XmoJPAMLbRZFwAvydlgDSbKROuHUMZM/3apGOlLbXEjRNdG2RDupfZF3Jz2ggkIhXfacdOd2rTeKapVAVVUQucAO2HvN8OhpIv4XKFvvBf8uQ/A3uo4uIYwsUfvQQbMLdg==
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative; boundary="_000_DM6PR00MB0684F27F5A069BA3D9B1AD68F5F90DM6PR00MB0684namp_"
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5dec2970-174f-4a8f-6f94-08d7c9e1ee68
X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Mar 2020 19:40:50.0631 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Xzce3+bPv0IlmR4jrNPVin8puiaZZnd37WCan6aEqmPxo5FxOs/dxNaOUCOeiYRWZJshYyqrI08ICEqfAoISSw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR00MB0343
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/_Z1Z2P9QQQvpWyV_Rfj14y9K63I>
Subject: Re: [OAUTH-WG] [EXTERNAL] Re: Clarifying the scope of the OAuth 2.1 spec
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, 16 Mar 2020 19:40:55 -0000

Perfect – thanks for listening.

                                                       -- Mike

From: Dick Hardt <dick.hardt@gmail.com>
Sent: Monday, March 16, 2020 12:32 PM
To: Mike Jones <Michael.Jones@microsoft.com>
Cc: aaron@parecki.com; torsten@lodderstedt.net; oauth@ietf.org
Subject: [EXTERNAL] Re: Clarifying the scope of the OAuth 2.1 spec

Thanks for the suggested text Mike. A little wordy for me, but I agree with the intention to minimize market place confusion. I'll discuss how to incorporate with my co-authors.
ᐧ

On Mon, Mar 16, 2020 at 11:35 AM Mike Jones <Michael.Jones@microsoft.com<mailto:Michael.Jones@microsoft.com>> wrote:
Thanks for the clarifications, Dick.  Here’s my resulting proposed changes.  Part of my goal here is for people to understand the goals and non-goals from reading the abstract.

In the Abstract, change:
This specification replaces and obsoletes the OAuth 2.0 Authorization Framework described in RFC 6749<https://tools.ietf.org/html/rfc6749>.
to:
This specification replaces and obsoletes these OAuth 2.0 specifications:  RFC 6749 and RFC 8252.  It does so by removing portions of them that are no longer considered best security practices; the portions that remain are compatible with the corresponding portions of the specs being replaced.  By design, it does not introduce any new features to what already exists in the OAuth 2.0 specifications being replaced.

(If you want to list other non-RFCs that you believe that will be obsoleted, you can do that too.)

Add this text to the cited paragraph in Section 2.1:
When this specification does not replace existing specifications produced by the OAuth working group or other non-OAuth-working-group profiles of OAuth that extend OAuth 2.0 via the IANA “OAuth Parameters” registry [IANA.OAuth.Parameters], it is intended that those specifications will continue to be used with OAuth 2.1 in the same manner that they are with the OAuth 2.0 specifications being replaced.

The reference for [IANA.OAuth.Parameters] is https://www.iana.org/assignments/oauth-parameters/.

The last sentence – saying that stuff not explicitly obsoleted isn’t being changed – is critical to reducing the marketplace anxiety that this effort might otherwise create.  Please make it a goal to remove uncertainty and sources of speculation wherever possible.

Thanks again for the useful discussion.

                                                       -- Mike

From: Dick Hardt <dick.hardt@gmail.com<mailto:dick.hardt@gmail.com>>
Sent: Monday, March 16, 2020 8:36 AM
To: Mike Jones <Michael.Jones@microsoft.com<mailto:Michael.Jones@microsoft.com>>
Cc: aaron@parecki.com<mailto:aaron@parecki.com>; torsten@lodderstedt.net<mailto:torsten@lodderstedt.net>; oauth@ietf.org<mailto:oauth@ietf.org>
Subject: Re: Clarifying the scope of the OAuth 2.1 spec

Hi Mike

I'm aligned on the overall messaging. Sorry I was not clear on my feedback -- it was directed at your suggested text, specifically the terms "OAuth 2.0" and "OAuth 2.0 set of protocols"

FYI: the "new" features, are not new to "OAuth 2.0" per se as they are existing specifications -- my point was that they are not features that are in RFC 6749. OAuth 2.1 is also NOT a superset of all 22 specifications.

This paragraph in the 2.1 doc attempts to describe what OAuth 2.1 is and is not:

Since the publication of the OAuth 2.0 Authorization Framework ([RFC6749<https://tools.ietf.org/id/draft-parecki-oauth-v2-1-00.html#RFC6749>]) in October 2012, it has been updated by OAuth 2.0 for Native Apps ([RFC8252<https://tools.ietf.org/id/draft-parecki-oauth-v2-1-00.html#RFC8252>]), OAuth Security Best Current Practice ([I-D.ietf-oauth-security-topics<https://tools.ietf.org/id/draft-parecki-oauth-v2-1-00.html#I-D.ietf-oauth-security-topics>]), and OAuth 2.0 for Browser-Based Apps ([I-D.ietf-oauth-browser-based-apps<https://tools.ietf.org/id/draft-parecki-oauth-v2-1-00.html#I-D.ietf-oauth-browser-based-apps>]). The OAuth 2.0 Authorization Framework: Bearer Token Usage ([RFC6750<https://tools.ietf.org/id/draft-parecki-oauth-v2-1-00.html#RFC6750>]) has also been updated with ([I-D.ietf-oauth-security-topics<https://tools.ietf.org/id/draft-parecki-oauth-v2-1-00.html#I-D.ietf-oauth-security-topics>]). This Standards Track specification consolidates the information in all of these documents and removes features that have been found to be insecure in [I-D.ietf-oauth-security-topics<https://tools.ietf.org/id/draft-parecki-oauth-v2-1-00.html#I-D.ietf-oauth-security-topics>].

What changes would you suggest to this?

ᐧ

On Sun, Mar 15, 2020 at 9:01 PM Mike Jones <Michael.Jones@microsoft.com<mailto:Michael.Jones@microsoft.com>> wrote:
I’m glad you like the direction of my comments.  Sometimes saying what you’re *not* doing is as important as saying what you *are* doing, and I think this is such a case.

As an example of why this matters, a developer recently asked me “Would we have to use a different set of endpoints for OAuth 2.1?”  We should clearly scope this work so that the answer is “No, you would use the same endpoints.”

Given that the abstract talks about obsoleting OAuth 2.0, I believe it’s important for the abstract to say what’s being obsoleted, what’s not being obsoleted, and what the relationship of the new spec is to the one(s) it’s obsoleting.  As used in the vernacular by developers, I believe “OAuth 2.0” commonly refers to the set of OAuth 2.0 RFCs approved by this working group, which are the set of (currently 22) RFCs listed at https://datatracker.ietf.org/wg/oauth/documents/ - as well as at least some of the non-RFC specifications that extend OAuth 2.0 via the OAuth registries at https://www.iana.org/assignments/oauth-parameters/oauth-parameters.xhtml, particularly [OAuth 2.0 Multiple Response Type Encoding Practices<https://openid.net/specs/oauth-v2-multiple-response-types-1_0.html>].  I’m pretty sure you intend that OAuth 2.1 keep using much of that widely deployed work and not replace it.  You should be clear about that.

Since you say that there are new features in OAuth 2.1, what are they and are they essential to the OAuth 2.1 goals?  Or if they’re not essential, could they more profitably be factored into another specification so that the new features can be used either with OAuth 2.0 and OAuth 2.1?  That might make the resulting messaging to developers much clearer.

                                                       Thanks,
                                                       -- Mike

From: Dick Hardt <dick.hardt@gmail.com<mailto:dick.hardt@gmail.com>>
Sent: Sunday, March 15, 2020 6:50 PM
To: Mike Jones <Michael.Jones@microsoft.com<mailto:Michael.Jones@microsoft.com>>
Cc: aaron@parecki.com<mailto:aaron@parecki.com>; torsten@lodderstedt.net<mailto:torsten@lodderstedt.net>; oauth@ietf.org<mailto:oauth@ietf.org>
Subject: [EXTERNAL] Re: Clarifying the scope of the OAuth 2.1 spec

Hi Mike

I like where you are going with this, but what do we mean when we say OAuth 2.0? Is it RFC 6749? What is the OAuth 2.0 set of protocols?

OAuth 2.1 includes features that are not in RFC 6749, so it is not a subset of that specification.
ᐧ

On Sun, Mar 15, 2020 at 2:34 PM Mike Jones <Michael.Jones@microsoft.com<mailto:Michael.Jones@microsoft.com>> wrote:
The abstract of draft-parecki-oauth-v2-1 concludes with this text:
   This specification replaces and obsoletes the OAuth 2.0 Authorization Framework described in RFC 6749<https://tools.ietf.org/html/rfc6749>.

While accurate, I don’t believe that this text captures the full intent of the OAuth 2.1 effort – specifically, to be a recommended subset of OAuth 2.0, rather than to introduce incompatible changes to it.  Therefore, I request that these sentences be added to the abstract, to eliminate confusion in the marketplace that might otherwise arise:

    OAuth 2.1 is a compatible subset of OAuth 2.0, removing features that are not currently considered to be best practices.  By design, it does not introduce any new features to what already exists in the OAuth 2.0 set of protocols.

                                                       Thanks,
                                                       -- Mike

P.S.  I assert that any incompatible changes should be proposed as part of the TxAuth effort and not as part of OAuth 2.1.