Re: [Ace] WGLC for draft-ietf-ace-authz

Mike Jones <Michael.Jones@microsoft.com> Tue, 30 October 2018 18:52 UTC

Return-Path: <Michael.Jones@microsoft.com>
X-Original-To: ace@ietfa.amsl.com
Delivered-To: ace@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2C3E3130DCD for <ace@ietfa.amsl.com>; Tue, 30 Oct 2018 11:52:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.471
X-Spam-Level:
X-Spam-Status: No, score=-2.471 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.47, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, 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=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 sI8yONuESuoI for <ace@ietfa.amsl.com>; Tue, 30 Oct 2018 11:52:24 -0700 (PDT)
Received: from NAM06-DM3-obe.outbound.protection.outlook.com (mail-eopbgr640113.outbound.protection.outlook.com [40.107.64.113]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E9E49127333 for <ace@ietf.org>; Tue, 30 Oct 2018 11:52:23 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=fpXQf/ojfKq7D8RBC6oTo0RLnvy+L0IMwSpubBFG2PY=; b=BSCBlku1je0yEJz1fvM3DQQXQPEc+soXZZjSjwtbSpN01pxaaS308FUdfllGcS06JDr9oVf4KtcbaNDKLHHIHhal4rXXtq7hLF4AlyTox7dH1cYevfQkHUbsQuQ2cni9Bqg5uWvc0qJR+INtvxFk44ydGvoEgQ5IubFS4t4rL/0=
Received: from SN6PR00MB0301.namprd00.prod.outlook.com (52.132.117.155) by SN6PR00MB0333.namprd00.prod.outlook.com (52.132.118.12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1331.0; Tue, 30 Oct 2018 18:52:21 +0000
Received: from SN6PR00MB0301.namprd00.prod.outlook.com ([fe80::a519:cc84:ebe4:5f51]) by SN6PR00MB0301.namprd00.prod.outlook.com ([fe80::a519:cc84:ebe4:5f51%10]) with mapi id 15.20.1334.000; Tue, 30 Oct 2018 18:52:21 +0000
From: Mike Jones <Michael.Jones@microsoft.com>
To: Ludwig Seitz <ludwig.seitz@ri.se>, "ace@ietf.org" <ace@ietf.org>
Thread-Topic: [Ace] WGLC for draft-ietf-ace-authz
Thread-Index: AdRfTbZXRdy06+geSTKJtOzYofxg+gMqrfqQARRiMgAADUwxsA==
Date: Tue, 30 Oct 2018 18:52:21 +0000
Message-ID: <SN6PR00MB03017E27B15E777091EDFD31F5CC0@SN6PR00MB0301.namprd00.prod.outlook.com>
References: <065b01d45f4e$b8d372a0$2a7a57e0$@augustcellars.com> <SN6PR00MB0301580A2D802AB0F559A170F5F70@SN6PR00MB0301.namprd00.prod.outlook.com> <5eb071c6-1a9e-e86a-a7d1-cc0fb8cbac42@ri.se>
In-Reply-To: <5eb071c6-1a9e-e86a-a7d1-cc0fb8cbac42@ri.se>
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_Enabled=True; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Owner=mbj@microsoft.com; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2018-10-30T18:52:18.8805122Z; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=General; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Application=Microsoft Azure Information Protection; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Extended_MSFT_Method=Automatic; Sensitivity=General
x-originating-ip: [2001:4898:80e8:1:d9ff:cc80:74c2:9c4b]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; SN6PR00MB0333; 6:1tTNj0RV6eZp6igoc4qW3lpk6okjI87jm6uNQkTgt4rubfAsrlH8VC0AFCTNCz4LoucYUZ2rrqFqFPE8l1BHA2IUyrnYIOEvjq9Ut/ndmVUVU5MsS2H9RD3Lp/aVFhzyJZfXlmxwIWgw7914xRbxFQJh7KHda79fFAAqltE8mPy0OI9y59T/e5DS1hier9GwvX4Na6HMbnp+YdLUpJeZ2YOZ/KASIUFELCiXoL0mZsVImz3H28/lKToZvcT2IQo8eTYom1JQJPPbTkGd90+hVYVzSaOOH/0wyrxu3btjLZduxWn17L9E0YCrXqbh5csiqvcsWAYHL7XWA3zm2Lu/8nxAUnMvu88atAqDATKMNsj8VoZ4hvv3Zy1g2oAtwgZe7gb2xS1+V8DR+t67r0b1+DcwI8Xqh316puB1IRNmDYVMmUHkrHNLIS9P6eZNWDk/HwpEofXqOezntw9Ld3pL8Q==; 5:tu5+1j0fWpliznAysZZrWpUH39DszJqkczkkjN8vzHGVOBbyuSm4BCdUz5Vye6uKyxOtsQbj1niAXABsgRPD+QVkGWuayrwFsyO8i/Q6obCqb4dKupe5Cec2uqws2BAymV3rcOAxjTT387zpeihwG7pqX2lfyxE7z4/maR9XDMg=; 7:3zqGW1m4N+477+4+dLhCuwHwPUMU0By6Tnds2tR2ytbqZzuXB2OXvZcBncIph+KSBmI/B4hfPaYjm+rb867NmTMJWDggo5KJZRjhiHa7lL4Pcpt7yrAKHrWzQvF2Zp3s6Bx8zTWh/vYBk1+OM9aDjQ==
x-ms-exchange-antispam-srfa-diagnostics: SOS;
x-ms-office365-filtering-correlation-id: 723678d4-b981-4a47-07c3-08d63e98d2e2
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7193020); SRVR:SN6PR00MB0333;
x-ms-traffictypediagnostic: SN6PR00MB0333:
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Michael.Jones@microsoft.com;
x-microsoft-antispam-prvs: <SN6PR00MB0333549F34DB785342FB3022F5CC0@SN6PR00MB0333.namprd00.prod.outlook.com>
x-ms-exchange-senderadcheck: 1
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(2017102700009)(2017102701064)(6040522)(8220027)(2401047)(5005006)(8121501046)(2017102702064)(20171027021009)(20171027022009)(20171027023009)(20171027024009)(20171027025009)(20171027026009)(2017102703076)(93006095)(93001095)(3231382)(944501410)(52105095)(2018427008)(10201501046)(3002001)(6055026)(148016)(149066)(150057)(6041310)(20161123562045)(20161123564045)(20161123560045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(201708071742011)(7699051)(76991095); SRVR:SN6PR00MB0333; BCL:0; PCL:0; RULEID:; SRVR:SN6PR00MB0333;
x-forefront-prvs: 08417837C5
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(376002)(366004)(136003)(396003)(39860400002)(346002)(13464003)(189003)(199004)(6506007)(256004)(33656002)(53546011)(102836004)(76176011)(14444005)(229853002)(74316002)(25786009)(14454004)(6246003)(305945005)(2501003)(5250100002)(9686003)(6306002)(10090500001)(186003)(72206003)(7736002)(110136005)(11346002)(316002)(446003)(86362001)(486006)(7696005)(46003)(71190400001)(71200400001)(53936002)(86612001)(5660300001)(22452003)(106356001)(68736007)(8936002)(81156014)(81166006)(8676002)(10290500003)(2906002)(476003)(105586002)(478600001)(6116002)(99286004)(966005)(97736004)(55016002)(6436002)(2900100001)(8990500004); DIR:OUT; SFP:1102; SCL:1; SRVR:SN6PR00MB0333; H:SN6PR00MB0301.namprd00.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1;
received-spf: None (protection.outlook.com: microsoft.com does not designate permitted sender hosts)
x-microsoft-antispam-message-info: jr5M/8dmJVG7fLETvTLttuc0/vHx56jdvRnRiXzqZgQ2CIUDKev/yPuIcXieWp2P6eG2YZk0Gd+KWZmHeatiH5XM/lT/d6X3qYC12SaisMqtuNeUVGxYAaT/iuEcF0p23dTGwbRenBLR8otdMtM4czxd5gTE99bFbebqGoQ+ikgXpZWMKOqNXPZb+FDTgqrwGTV1qRbgfajxbHW7czVVOStmVu51pE7QvwevQPRnpuyXRV3XLPYLPkdZv2AzWxL9ktHB+7G6ucV8wMVND+aHpqG+JaHhvj53txCs2jlqNPLp2WmlN4z40QuUN1lMiBRtOMggGbV0LQgjJcPAJ/Hndqhr+xR9A7IN9i+Q1VO0aqs=
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 723678d4-b981-4a47-07c3-08d63e98d2e2
X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Oct 2018 18:52:21.2042 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR00MB0333
Archived-At: <https://mailarchive.ietf.org/arch/msg/ace/Nr_GYrHUTw8GB5VyAJhPFkwzZwk>
Subject: Re: [Ace] WGLC for draft-ietf-ace-authz
X-BeenThere: ace@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Authentication and Authorization for Constrained Environments \(ace\)" <ace.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ace>, <mailto:ace-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ace/>
List-Post: <mailto:ace@ietf.org>
List-Help: <mailto:ace-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ace>, <mailto:ace-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 30 Oct 2018 18:52:28 -0000

Thanks for your responses, Ludwig.

Responding to your point about "Note that we have aligned these abbreviations with the claim abbreviations defined in [RFC8392]."  The point of the alignment was to enable signed requests to be expressed as CWTs - just as OAuth signed requests are expressed as JWTs.  But given the high likelihood of numeric CWT claim collisions with unregistered OAuth request number values assigned by the spec, this won't actually work in the long term unless the request parameters are registered as CWT claims.  Collision-free alignment without IANA registration is a fleeting situation.  Please make the alignment permanent by registering the needed claims.

I get Jim's point that there are other ways to do signed requests.  If this working group wants to define a different signed request syntax for ACE OAuth requests than CWTs, that's fine, but if so, please do so before this draft finishes.  If a different signed request format is used, I'll note that there's no need for claim alignment with CWT [RFC8392] - in which case the draft should probably abandon it up front.  I'll note that abandoning the current alignment is more work and would be more confusing to implementers than simply using CWTs but multiple choices are possible.  The most important thing is to pick one now.  Industries such as banking are REQUIRING signed requests.

Since you asked about signed responses, those are also in the works for OAuth, for the same reasons - including requirements from the banking industry.  See https://openid.net/specs/openid-financial-api-jarm.html.  (Just as the OpenID Foundation standardized signed requests in 2014 in https://openid.net/specs/openid-connect-core-1_0.html#JWTRequests in 2014 and then an IETF version was created, signed responses are currently on a similar trajectory.)

Per your question about values in IANA registries to be assigned by designated experts being TBD, the normal way of providing short-term values for interop purposes is to say "TBD (maybe <some number>).  For instance, you'll see that usage at https://tools.ietf.org/html/draft-ietf-ace-cwt-proof-of-possession-03#section-7.1.1.

I could live with "access_token" having a single-byte representation, since as you point out, it is needed for every ACE OAuth interaction.  An "error" value is only needed when something goes wrong, so that doesn't seem like a case that needs to be optimized for space.  A two-byte "error" representation will only be used when errors have occurred, so shouldn't be a problem.

				-- Mike

-----Original Message-----
From: Ace <ace-bounces@ietf.org>; On Behalf Of Ludwig Seitz
Sent: Tuesday, October 30, 2018 5:13 AM
To: ace@ietf.org
Subject: Re: [Ace] WGLC for draft-ietf-ace-authz

On 25/10/2018 02:58, Mike Jones wrote:
> IT CAN'T BE A COINCIDENCE:  There's clearly a relationship between 
> many of the CBOR numeric values used in this this specification and 
> corresponding CBOR Web Token (CWT) claim identifiers, but oddly, the 
> relationship is currently unspecified and the goals behind it are 
> undefined.  The spec should be augmented to make the nature and goals 
> of this relationship explicit.  I infer that there's such a 
> relationship because the Mapping Parameters to CBOR in Section 5.6.5 
> apparently carefully do not overlap with the values registered in the 
> IANA CWT Claims registry at 
> https://www.iana.org/assignments/cwt/cwt.xhtml.  The Introspection 
> mappings in Section 5.7.4 apparently carefully use the same values as 
> CWT for the same things, but then adds additional values.  And some of 
> these values are the same as values proposed for the CWT Claims 
> registry in 8.13.  This has to be more than a coincidence but the spec 
> doesn't currently say why.

For example in "5.6.5 Mapping Parameters to CBOR" there is this:

"Note that we have aligned these abbreviations with the claim
    abbreviations defined in [RFC8392]."

I can add some text to explain that this makes it easier to manage the abbreviations in code (no need to handle complex namespace issues, when you just use one abbreviation space). Would that address the "to make the nature and goals of this relationship explicit." part of your comment?

> 
> Per my earlier reviews of the ace-authz spec, I believe that the ACE
> OAuth parameters should all be registered in the CWT Claims registry
> because of the possibility of them being used in signed requests in a
> manner analogous to
> https://tools.ietf.org/html/draft-ietf-oauth-jwsreq-17.  The
> parameters need to be registered to avoid future claim number
> conflicts.  While conflicts have clearly been carefully avoided to
> date, they will inevitably occur in the future unless the values are
> actually registered.  Please do so.
> 

I have avoided doing this so far, since there was no precedent from 
OAuth on doing so (registering OAuth req/resp parameters as JWT claims) 
and I was trying to align with OAuth in that respect.
For example draft-ietf-oauth-jwsreq-17 doesn't seem to register any of 
the classical OAuth req/resp parameters as JWT claims ("This 
specification requests no actions by IANA.")

How is the position of the OAuth WG on this?

> DON'T SQUAT ON NUMERIC REGISTRY VALUES:  Please change all instances
> of numbers to be assigned by designated experts in existing
> registries from specific values to "TBD".  For instance, all the
> values for the CWT Claims Registry in Section 8.13 (currently 12, 16,
> and 17) should be changed to TBD.  Our chair, Jim Schaad has been a
> vigorous advocate of not squatting in my past interactions with him
> as a Designated Expert and I believe would support this request.
> Likewise, the "19" in the CoAP Content-Format Registration in Section
> 8.15 should become TBD.
> 
I get your point.

Any hints on how one usually do that while still providing provisory 
numbers for interop tests?

> req_aud: Several examples use the "req_aud" parameter without
> defining it.  Doesn't this duplicate the "resource" parameter defined
> by
> https://tools.ietf.org/html/draft-ietf-oauth-resource-indicators-01?
> If so, please delete this parameter and use "resource".  If not, say
> how it is different and why the differences are necessary.
> 
> rs_cnf:  There isn't a clear normative definition of this parameter.
> It's mentioned obliquely but its purpose, syntax, and semantics
> should be plainly stated (as with each other newly defined
> parameter).
> 

This is probably heritage from the document split.
Note however that the framework (draft-ietf-ace-oauth-authz) defines 
some of these a CWT claims, while the params draft 
(draft-ietf-ace-oauth-params) only defines request/response parameters 
(which happen to have the same name, abbreviation and semantics).

I'll go over those sections and see if there are artifacts left that 
need to be adjusted.


> The proposed numbers in Figures 12 and 16 contain mismatches.  For
> instance, token_type is "14" in Figure 12 in Section 5.6.5 and "13"
> in Figure 16 in Section 5.7.4. 
> 
Sorry for that. Errors when trying to make the alignment.

 > There's too much alignment for it to
 > be a coincidence but if you intend alignment, please say so
 > explicitly and fix the alignment.  The proposed ongoing alignment
 > should also be described in the registration instructions for the
 > Designated Experts.

"5.7.4.  Mapping Introspection parameters to CBOR
[...]
    Note that we have aligned these abbreviations with the claim
    abbreviations defined in [RFC8392].
"

(so yes, we do already say so explicitly)

I will add the requested instructions for Designated Experts (good catch!)


> -- Mike
> 
> P.S.  Per my earlier reviews of this specification, in my view as a
> Designated Expert for the CWT Claims registry, I believe that it's
> not appropriate to use up rare single-byte identifiers for most of
> the OAuth parameter encodings specified in 5.6.5.  I could be
> persuaded that "scope" merits one of these rare numbers, but
> "profile", "error", "grant_type", "access_token", and "token_type"
> probably do not, as they are application-specific and not of general
> applicability.  I also believe that some of the other Designated
> Experts for this registry agree with me.
> 

I would argue that the rare single-byte identifiers should be used for 
the parameters typically used in constrained applications.

Since "error", "grant_type", "access_token", and "token_type" are all 
mandatory to use, they are bound to appear in constrained cases.

If we made "grant_type" and "token_type" non-mandatory in ACE (as 
opposed to how it is in OAuth) and define defaults I'd agree to move 
those into the two-byte space.

"profile" is arguably going to be used in less constrained scenarios 
where more than one profile could be supported, so I'd agree to move 
that to the two-byte space as well.


"error" and "access_token" are used in every OAuth/ACE interaction, so I 
would need some really good arguments why they shouldn't have a one-byte 
abbreviation.

Can we reach some compromise based on these observations Mike?


/Ludwig

-- 
Ludwig Seitz, PhD
Security Lab, RISE
Phone +46(0)70-349 92 51

_______________________________________________
Ace mailing list
Ace@ietf.org
https://www.ietf.org/mailman/listinfo/ace