Re: [OAUTH-WG] [EXTERNAL] Re: First Draft of OAuth 2.1

Mike Jones <Michael.Jones@microsoft.com> Thu, 12 March 2020 18:35 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 4049C3A0FF3 for <oauth@ietfa.amsl.com>; Thu, 12 Mar 2020 11:35:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.1
X-Spam-Level:
X-Spam-Status: No, score=-2.1 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_MESSAGE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=unavailable 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 3SuV6qacHuIS for <oauth@ietfa.amsl.com>; Thu, 12 Mar 2020 11:35:07 -0700 (PDT)
Received: from NAM06-BL2-obe.outbound.protection.outlook.com (mail-bl2nam06on0704.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe55::704]) (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 DD9D03A100E for <oauth@ietf.org>; Thu, 12 Mar 2020 11:35:06 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Pa/LjNCq2CM4OTc0Hh/s0v8Vbpzbn/MfZsReIOh/ImkkZRle224SdTN9oUqYFAmvyXywhzQT6cZs5Jin7HMuJQL1houhd84u9JormH8AKbbW6KePQL71DtlybE8eJPhdqskOqeVJfPC7gpUvt9pJwPehQX0BS1hEdyLyG28ofo03xASeD0RTphBx0zRGvC47ghTC5ZlSuo4Mx6pTQ5MC7AmtHUpzutwejjLxBL4on2Wf641NsmABglA5yNbTUUNA+ciBXQyzSgN4YGw3RIjVdRhQ4J92qozGCz04YmBYr4NR3l2WGhcyGhvnwK7NwzB2lC2Cljygh0okcaUOiv90XQ==
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=6kLR4t2O3Tis/1BwNIEI/Dbut81g20J0owW/L06f/wQ=; b=kylDHRIAEui9XK1xV+Xo9g3O+x1KTLnQz63VWR0/2KmKW15QacXEo1n8eyg8Zbndszsim2LPswlRcc8Hwwf+9MgL625IaGaHXDcMmGWS4DeaicYDN74QCTOUfD+B/qWjKSLL3Iss2EgVxVSIHZT/japVACUrIvqNoRaHdMl/2wVi04y2hnYRJLFhiQLVThc4jNl3E0/xqzUG2LAtK2c3JQAy4KpT/8412aBp/A4d5WB8wN5DGHBbqj91LIVO7pYqLUwjnWFfufIHVXDWbMqIlc/SeDW/w+R3YDDP1+vz7eMMkSYqMNdStvLX3qd+LR5VDdT7hVbQHaM63yPFVgad2A==
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=6kLR4t2O3Tis/1BwNIEI/Dbut81g20J0owW/L06f/wQ=; b=ivW0U4q3tDNdHo0fEAyEejOde+bDvPqywRbG608Vk3ssW4lk52H2hlFDljpQdgp+GJPwFwjeuAGcnWP25KiqsKZlPyMRi+CvqsG7wyvxL9bI9V0JlCafhVWxB1RLwLlLarcUZrOAXAYiObHsIWDgO0GtJ9FQyigo30OUsmuMzFs=
Received: from DM6PR00MB0682.namprd00.prod.outlook.com (2603:10b6:5:213::24) 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; Thu, 12 Mar 2020 18:35:04 +0000
Received: from DM6PR00MB0682.namprd00.prod.outlook.com ([fe80::9e6:61dd:7e04:6826]) by DM6PR00MB0682.namprd00.prod.outlook.com ([fe80::9e6:61dd:7e04:6826%10]) with mapi id 15.20.2857.000; Thu, 12 Mar 2020 18:35:04 +0000
From: Mike Jones <Michael.Jones@microsoft.com>
To: Vittorio Bertocci <Vittorio=40auth0.com@dmarc.ietf.org>, Aaron Parecki <aaron@parecki.com>
CC: OAuth WG <oauth@ietf.org>
Thread-Topic: [EXTERNAL] Re: [OAUTH-WG] First Draft of OAuth 2.1
Thread-Index: AQHV+JuPCEuJ08y+dkGPwXkTp8LkeqhFRr0AgAAA5nA=
Date: Thu, 12 Mar 2020 18:35:04 +0000
Message-ID: <DM6PR00MB0682F47006D70256AA7D86A3F5FD0@DM6PR00MB0682.namprd00.prod.outlook.com>
References: <CAGBSGjp6xRL21fdY+dosAhwS3Db6z1hxHU5uPGGprC-c_Ec-Cg@mail.gmail.com> <CAO_FVe40ONas2em6gGviEgdh_bf4qG+PnQD+G+KR+QPcY+V8Bw@mail.gmail.com> <CAO_FVe63-iCzqRCE0W18Y4sQsdKbaYj4y0fxCU32RoR53c9zEA@mail.gmail.com>
In-Reply-To: <CAO_FVe63-iCzqRCE0W18Y4sQsdKbaYj4y0fxCU32RoR53c9zEA@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=ef8a6375-c7a8-4a3c-9347-0000b9062405; 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-12T18:31:22Z; 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.83.137]
x-ms-publictraffictype: Email
x-ms-office365-filtering-ht: Tenant
x-ms-office365-filtering-correlation-id: 15967aba-5a5d-498d-effb-08d7c6b414ec
x-ms-traffictypediagnostic: DM5PR00MB0343:
x-microsoft-antispam-prvs: <DM5PR00MB03435D6803FDFEEA398CC5BDF5FD0@DM5PR00MB0343.namprd00.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:7691;
x-forefront-prvs: 0340850FCD
x-forefront-antispam-report: SFV:NSPM; SFS:(10001)(10019020)(4636009)(366004)(376002)(39860400002)(136003)(346002)(396003)(199004)(7696005)(5660300002)(52536014)(66574012)(66946007)(26005)(64756008)(53546011)(186003)(66476007)(66556008)(71200400001)(6506007)(4326008)(2906002)(66446008)(10290500003)(8990500004)(110136005)(478600001)(33656002)(86362001)(81166006)(76116006)(8676002)(9686003)(81156014)(55016002)(966005)(316002)(8936002); DIR:OUT; SFP:1102; SCL:1; SRVR:DM5PR00MB0343; H:DM6PR00MB0682.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: ZsrWJpf3qFHxZB9bAoXWEHHAcBXknkqletlHVsWeMTFpubybMZgnEsej/UZZUdugDjdqpdj8yspaho3r0clYwVWr2yZSRdz6i2oWVyiYWeqw0U8fxzT6k5DCPL6G8y1twiQ/IrxP9WA8f2mOJgB3mJTmN/dheL3EPJaNUNUqsudQopBBEnarALSQVaS3zIy96N4WxKlrXXrDAo9x8THMmt/7TxYSIFO6PAUwelJXnryyOlvfl5yvJtyG613IGveE1sw3/bWFxmDadA64IIYLAAYbWhgvVN8v7CE4cXNX/DNRRmODkZiZjctcHook0Vjv9V787Vn6pJG9+Kt2quGa/qULFQFXVYWqlZ2nGeN9edYbWyMGECmyiXqZEYh6OOJT5vXi8uONLil+fNBLBy78TDyNLzaWn0wCbU5Pse1qqHL4JQBi2U5zDrltAk/0nCHOGVKAf7w8Ha2Paa7L6MtCmQvQeBzsyFLdu15JqTjyZ1Vzt4rAE8vvZZUPoXv5MnG1VUQvENXWXwDUi1dAYjdyq5/VJrK4xjJRDAmf1mmoBDXrFnEpU3Ej6rtky4DRCQgEemjiwRT6f64WWZeSmeyOcQ==
x-ms-exchange-antispam-messagedata: ZFO0gLaRPFjzKgsYRe0xPOcV6wawSMUwKoPRLxGb9oD+zZNsTE12HALl/S2Hd9F3YVWijwiga5H2EHnSq0prJlAMyY9DY0uzB1Uk/j8qaPtZzr8VcQn4XM4LAGIZZSpF0c2P+4RyrgElPWh9WiI95A==
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative; boundary="_000_DM6PR00MB0682F47006D70256AA7D86A3F5FD0DM6PR00MB0682namp_"
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 15967aba-5a5d-498d-effb-08d7c6b414ec
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Mar 2020 18:35:04.2604 (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: VEwpWw62eNGPbtnsAzX52dub6Fx47aMGwPE++VEx6vl3ewrK9CztKEMtU/6aSVgsHuSkyoBT7OzesjhWeXqIRA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR00MB0343
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/eQ1st1rI5plgdN39SItsTjHUZHk>
Subject: Re: [OAUTH-WG] [EXTERNAL] Re: First Draft of OAuth 2.1
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, 12 Mar 2020 18:35:17 -0000

+1 on sender constraints being RECOMMENDED but not REQUIRED.  Different applications have different risk profiles.  We should enable people to make reasonable choices for their use cases.

Remember that OAuth 1.0 was rejected by the marketplace because implementing the sender-constraint mechanism specified was perceived as too hard.  That’s why we have OAuth 2.0.  Particularly given that there’s not a deployable sender-constraint standard (other than MTLS, which is deployable for some use cases), we should put ourselves in developer’s shoes when telling them what they MUST do.  If we overreach, the OAuth 1.0 experience tells us they’ll likely just rebel and we’ll lose credibility.

                                                       -- Mike

From: OAuth <oauth-bounces@ietf.org> On Behalf Of Vittorio Bertocci
Sent: Thursday, March 12, 2020 11:28 AM
To: Aaron Parecki <aaron@parecki.com>
Cc: OAuth WG <oauth@ietf.org>
Subject: [EXTERNAL] Re: [OAUTH-WG] First Draft of OAuth 2.1

damnit, i hit enter too soon.
  Hey guys,
thanks for putting this together.
I am concerned with the real world impact of imposing sender constraint | rotation as a MUST on refresh tokens in every scenario.
Sender constraint isn't immediately actionable - we just had the discussion for dPOP, hence I won't go in the details here.
Rotation isn't something that can be added without significant impact on development and runtime experiences:
·  on distributed scenarios, it introduces the need to serialize access to shared caches
·  network failures can lead to impact on experience- stranding clients which fail to receive RTn+1 during RTn redemption in a limbo where user interaction might become necessary, disrupting experience or functionality for scenarios where the user isn't available to respond.
- remediations currently in the wild for this are either clunky (grace periods) or downright cumbersome (waiting for the AT refreshed via RTn to be used by the client to invalidate RTn, which locks RS and AS in a transaction that is both expensive and itself subject to network failure)
I think it's fine to recommend using those mechanisms with a SHOULD, but imposing those complexities to everyone in the core is asking too much IMO.
Thanks
V.

On Thu, Mar 12, 2020 at 11:24 AM Vittorio Bertocci <Vittorio@auth0.com<mailto:Vittorio@auth0.com>> wrote:
Hey guys,
thanks for putting this together.
I am concerned with the real world impact of imposing sender constraint | rotation as a MUST on refresh tokens in every scenario.
Sender constraint isn't immediately actionable - we just had the discussion for dPOP, hence I won't go in the details here..
Rotation isn't something that can be added without significant impact on development and runtime experiences:

  *   on distributed scenarios, it introduces the need to serialize access to shared caches
  *   network failures can lead to impact on experience- stranding clients which fail to receive RTn+1 during RTn redemption in a limbo where user interaction might become necessary, disrupting experience or functionality for scenarios where the user isn't available to respond.
  *


On Wed, Mar 11, 2020 at 5:28 PM Aaron Parecki <aaron@parecki.com<mailto:aaron@parecki.com>> wrote:
I'm happy to share that Dick and Torsten and I have published a first
draft of OAuth 2.1. We've taken the feedback from the discussions on
the list and incorporated that into the draft.

https://tools.ietf.org/html/draft-parecki-oauth-v2-1-01

A summary of the differences between this draft and OAuth 2.0 can be
found in section 12, and I've copied them here below.

> This draft consolidates the functionality in OAuth 2.0 (RFC6749),
> OAuth 2.0 for Native Apps (RFC8252), Proof Key for Code Exchange
> (RFC7636), OAuth 2.0 for Browser-Based Apps
> (I-D.ietf-oauth-browser-based-apps), OAuth Security Best Current
> Practice (I-D.ietf-oauth-security-topics), and Bearer Token Usage
> (RFC6750).
>
>   Where a later draft updates or obsoletes functionality found in the
>   original [RFC6749], that functionality in this draft is updated with
>   the normative changes described in a later draft, or removed
>   entirely.
>
>   A non-normative list of changes from OAuth 2.0 is listed below:
>
>   *  The authorization code grant is extended with the functionality
>      from PKCE ([RFC7636]) such that the only method of using the
>      authorization code grant according to this specification requires
>      the addition of the PKCE mechanism
>
>   *  Redirect URIs must be compared using exact string matching as per
>      Section 4.1.3 of [I-D.ietf-oauth-security-topics]
>
>   *  The Implicit grant ("response_type=token") is omitted from this
>      specification as per Section 2.1.2 of
>      [I-D.ietf-oauth-security-topics]
>
>   *  The Resource Owner Password Credentials grant is omitted from this
>      specification as per Section 2.4 of
>      [I-D.ietf-oauth-security-topics]
>
>   *  Bearer token usage omits the use of bearer tokens in the query
>      string of URIs as per Section 4.3.2 of
>      [I-D.ietf-oauth-security-topics]
>
>   *  Refresh tokens must either be sender-constrained or one-time use
>      as per Section 4.12.2 of [I-D.ietf-oauth-security-topics]

https://tools.ietf.org/html/draft-parecki-oauth-v2-1-01#section-12

I'm excited for the direction this is taking, and it has been a
pleasure working with Dick and Torsten on this so far. My hope is that
this first draft can serve as a good starting point for our future
discussions!

----
Aaron Parecki
aaronparecki.com<http://aaronparecki.com>
@aaronpk

P.S. This notice was also posted at
https://aaronparecki.com/2020/03/11/14/oauth-2-1

_______________________________________________
OAuth mailing list
OAuth@ietf.org<mailto:OAuth@ietf.org>
https://www.ietf.org/mailman/listinfo/oauth