Re: [Last-Call] [Gen-art] Genart last call review of draft-ietf-oauth-rar-15

Robert Sparks <rjsparks@nostrum.com> Thu, 01 December 2022 00:04 UTC

Return-Path: <rjsparks@nostrum.com>
X-Original-To: last-call@ietfa.amsl.com
Delivered-To: last-call@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 58E33C09F946; Wed, 30 Nov 2022 16:04:48 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.675
X-Spam-Level:
X-Spam-Status: No, score=-1.675 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, HTML_MESSAGE=0.001, KHOP_HELO_FCRDNS=0.001, NICE_REPLY_A=-0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, T_SPF_HELO_PERMERROR=0.01, T_SPF_PERMERROR=0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=fail (1024-bit key) reason="fail (message has been altered)" header.d=nostrum.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id d6rqfC-_ajBi; Wed, 30 Nov 2022 16:04:44 -0800 (PST)
Received: from nostrum.com (raven-v6.nostrum.com [IPv6:2001:470:d:1130::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 61DD0C09F941; Wed, 30 Nov 2022 16:04:44 -0800 (PST)
Received: from [192.168.1.102] ([47.186.48.51]) (authenticated bits=0) by nostrum.com (8.17.1/8.17.1) with ESMTPSA id 2B104XeI064420 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Wed, 30 Nov 2022 18:04:33 -0600 (CST) (envelope-from rjsparks@nostrum.com)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=nostrum.com; s=default; t=1669853074; bh=ba+0McKl+48B1nQRCaoshVG9hlnil76v2QFH75ETTIo=; h=Date:Subject:To:Cc:References:From:In-Reply-To; b=V9jMVss4e7AlSrsGe6sY6JJe3IbnuIcQNu/6Axeo6MV8CXjDzG7v2ZOTjjLLF1zZw pWkp0M+uryqyDnr5H2LGuNrM40MsQ/tAPdJEcO8bt1m5iQiIbidvxzPFG5rgZlYdtC lgeD/B1jmvbA6wpwT962x4eHP/aBUK87sIDTnoc4=
X-Authentication-Warning: raven.nostrum.com: Host [47.186.48.51] claimed to be [192.168.1.102]
Content-Type: multipart/alternative; boundary="------------kpxoOrP0HH29w1mxxExADYdx"
Message-ID: <3a74cefe-e941-6f51-e232-c77e1b7b83c0@nostrum.com>
Date: Wed, 30 Nov 2022 18:04:28 -0600
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.5.0
Content-Language: en-US
To: Brian Campbell <bcampbell@pingidentity.com>
Cc: gen-art@ietf.org, draft-ietf-oauth-rar.all@ietf.org, last-call@ietf.org, oauth@ietf.org
References: <166872457082.62668.15876743882764157331@ietfa.amsl.com> <ee3757aa-2ac1-4f5b-b77f-1831ac5781bd@nostrum.com> <193798dd-5a78-a2eb-cdc9-0a90764e2b7b@nostrum.com> <CA+k3eCTX66JJti8sVmKOC=oM242T72+U4bk1D4fTqphRy74qSg@mail.gmail.com> <fba1f40b-ad75-6008-bd0c-195d719dfde1@nostrum.com> <CA+k3eCSzk6Nx4j6GMiFjjSRWy2cKVwmj4UP1miNmkhDcc4cRQQ@mail.gmail.com>
From: Robert Sparks <rjsparks@nostrum.com>
In-Reply-To: <CA+k3eCSzk6Nx4j6GMiFjjSRWy2cKVwmj4UP1miNmkhDcc4cRQQ@mail.gmail.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/last-call/0MCoOfn_qCsw9kamgFQ3TsvMusQ>
Subject: Re: [Last-Call] [Gen-art] Genart last call review of draft-ietf-oauth-rar-15
X-BeenThere: last-call@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: IETF Last Calls <last-call.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/last-call>, <mailto:last-call-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/last-call/>
List-Post: <mailto:last-call@ietf.org>
List-Help: <mailto:last-call-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/last-call>, <mailto:last-call-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 01 Dec 2022 00:04:48 -0000

On 11/30/22 5:53 PM, Brian Campbell wrote:
>
>
> On Wed, Nov 30, 2022 at 4:08 PM Robert Sparks <rjsparks@nostrum.com> 
> wrote:
>
>
>     On 11/30/22 2:39 PM, Brian Campbell wrote:
>>     Thank you for the review Robert. And apologies for the very
>>     delayed response. I think we had a bit of a volunteer's dilemma
>>     <https://en.wikipedia.org/wiki/Volunteer%27s_dilemma> amongst the
>>     editors, which was exacerbated by some timing issues including
>>     vacation and subpar communication amongst us. We'll get all the
>>     nits/editorial comments addressed. Also the minor issues.
>>     Actually, changes for those are already in a branch of the
>>     document source repository
>>     https://github.com/oauthstuff/draft-oauth-rar/tree/genart-review
>>     and should be in the -17 revision. Some discussion on the majors
>>     is inline below.
>>
>>
>>     On Thu, Nov 17, 2022 at 3:45 PM Robert Sparks
>>     <rjsparks@nostrum.com> wrote:
>>     <snip>
>>
>>         I have two major issues that I think need discussion:
>>
>>         Major Issue 1) The document seems to be specifying a new way of
>>         comparing json names, claiming it is what RFC8259 requires,
>>         but I
>>         disagree that RFC8259 says what this document is claiming. If
>>         I'm
>>         correct, the document is trying to rely on the text in
>>         section 7 of
>>         RFC8259 to support the idea that implementation MUST NOT
>>         alter the json
>>         names (such as applying Unicode normalization) before
>>         comparison and
>>         that the comparison MUST be performed octet-by-octet. Rather,
>>         section 7
>>         says something more like "you better escape and unescape
>>         stuff correctly
>>         if you’re going to do unicode codepoint by codepoint
>>         comparison" which
>>         is a completely different statement.
>>
>>         If I'm right, and this is a new comparison rule that goes
>>         beyond what
>>         JSON itself defines, I think the group should seek extra
>>         guidance from
>>         Unicode experts. If I'm wrong and this behavior is defined
>>         somewhere
>>         else, please provide a better pointer to the definition.
>>
>>         In many environments, its unusual for an implementation
>>         relying on a
>>         stack below it to have any say at all on whether
>>         normalization is going
>>         to be applied to the unicode before the application gets to
>>         look. Rather
>>         than trying to work around the problem you've identified with
>>         normalization by specifying the comparison algorithm,
>>         consider just
>>         making stronger statements about the strings used in the json
>>         names the
>>         document defines. Why _can't_ you restrict the
>>         authorization_details
>>         values to ascii? If it's because you want to present the
>>         string to a
>>         user, consider putting a presentation string elsewhere in the
>>         json that
>>         is not used for comparison.
>>
>>
>>     To the best of my understanding, it's not trying to specify a new
>>     or different way of comparing JSON names or values. I think it's
>>     only trying to say that the application must not do any
>>     *additional* normalization of the string values that it gets from
>>     the JSON stack or any other extra processing for the sake of
>>     comparison. I think anyway.
>>
>>     Honestly, I didn't really (and still don't) understand the
>>     concerns that some of the WG had that led to the text in
>>     question. So I didn't pay close attention to it while thinking to
>>     myself there can't be harm in saying to do a byte-by-byte
>>     comparison with no additional processing. But here we are...
>>
>>     Does that halfhearted explanation alleviate your concerns at all?
>>     Or, with that explanation in mind, are there specific changes to
>>     the text (in sec 12
>>     <https://www.ietf.org/archive/id/draft-ietf-oauth-rar-15.html#section-12>
>>     and sec 2
>>     <https://www.ietf.org/archive/id/draft-ietf-oauth-rar-15.html#section-2>,
>>     I think) that would alleviate your concerns? Or do we need to
>>     consider just deleting those parts?
>>
>>     I did track down this issue about it
>>     https://github.com/oauthstuff/draft-oauth-rar/issues/28 for maybe
>>     added context.
>     Thanks for that pointer. If that's the extent, then I really think
>     the group should walk this back just a little and answer why
>     restricting these names to (a subset of) ascii is an unacceptable
>     thing to do. The conversation there reinforces my guess that these
>     aren't meant for display to users, so why take on the additional
>     complexity? Make it easy for implementors to get it right with
>     much less effort.
>
>
> Yes, that guess is correct that type value is not meant for display to 
> users (the issue is about type value). I can't confidently say the 
> same about names and values that any particular type will define. I 
> don't think it matters though. It's not that restricting is 
> unacceptable but that it's not necessary. Just using the values that 
> come from the JSON layer is enough. And I'd contend there's not really 
> additional complexity. It just appears like additional complexity 
> because of the unnecessary and maybe less than idea wording in the 
> draft. Wording that I'd be more than happy to try and fix up or just 
> remove.

If you can change it to "compare these the same way you would compare 
anything else out of json" and the group is fine with it, then great.

(I think you'll be surprised someday at what allowing unfettered Unicode 
at spots like this will end up costing, though).

>>
>>         Major Issue 2) The suggested pattern demonstrated starting in
>>         figure 16
>>         (using [] to mean "let the user choose") seems
>>         underspecified. If the
>>         point is that different APIs may invent different mechanics
>>         _like_ this,
>>         and that this is only an example. Make it much clearer that
>>         this is an
>>         example. If this is a pattern you expect all APIs to follow,
>>         then more
>>         description is warranted. Is it intended that a user could
>>         add and
>>         remove things arbitrarily to such lists? For instance is it
>>         intended
>>         that this support an interaction where the client is asking for
>>         permission to operate on account A, and the user can say "no,
>>         but you
>>         can operate on account B"?
>>
>>
>>     It is really intended to be saying that different APIs may invent
>>     different mechanics _like_ this, if needed. And the []'s are just
>>     one way that an API might define some of how to do it.
>>
>>     I've tried to make this more clear with these edits:
>>     https://github.com/oauthstuff/draft-oauth-rar/commit/ee70e000557a69afe133356847c5083882686811
>     This works for me. Consider adding something like "This mechanic
>     is illustrative only and is not intended to suggest a preference
>     for designing the specifics of any authorization details type this
>     way."
>
>
> Sure, I'll add that.
>
> /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./