Re: [OAUTH-WG] RFC 7592 - Client Update Request omitted fields

Justin Richer <jricher@mit.edu> Wed, 04 March 2020 16:35 UTC

Return-Path: <jricher@mit.edu>
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 E82473A11E3 for <oauth@ietfa.amsl.com>; Wed, 4 Mar 2020 08:35:16 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.898
X-Spam-Level:
X-Spam-Status: No, score=-1.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 o6CtauEW9BnK for <oauth@ietfa.amsl.com>; Wed, 4 Mar 2020 08:35:15 -0800 (PST)
Received: from outgoing.mit.edu (outgoing-auth-1.mit.edu [18.9.28.11]) (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 E246A3A11CF for <oauth@ietf.org>; Wed, 4 Mar 2020 08:35:14 -0800 (PST)
Received: from [192.168.1.5] (static-71-174-62-56.bstnma.fios.verizon.net [71.174.62.56]) (authenticated bits=0) (User authenticated as jricher@ATHENA.MIT.EDU) by outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id 024GZCSl001243 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 4 Mar 2020 11:35:12 -0500
From: Justin Richer <jricher@mit.edu>
Message-Id: <E03B5E8E-9EFA-46E2-9A57-BF5C6F3C4AE4@mit.edu>
Content-Type: multipart/alternative; boundary="Apple-Mail=_D0AB98CA-20A2-4A47-AB0F-A4E550264705"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\))
Date: Wed, 04 Mar 2020 11:35:11 -0500
In-Reply-To: <CALAqi_91Xv4QrZsQrU_YY=AKW8H_jX2Kax8gZ0QCxzDGX4DBzg@mail.gmail.com>
Cc: oauth <oauth@ietf.org>
To: Filip Skokan <panva.ip@gmail.com>
References: <CALAqi_8r8h7+t+c2uDdaVzqCNxh33DS65Edo9ea3vQgm+dVEFA@mail.gmail.com> <84FE0330-B7E3-459A-A8A0-32058FAC4B98@mit.edu> <CALAqi_91Xv4QrZsQrU_YY=AKW8H_jX2Kax8gZ0QCxzDGX4DBzg@mail.gmail.com>
X-Mailer: Apple Mail (2.3445.104.11)
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/vWzsJHFB1rxl0l-MFMeB0ORKd34>
Subject: Re: [OAUTH-WG] RFC 7592 - Client Update Request omitted fields
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: Wed, 04 Mar 2020 16:35:18 -0000

I’m not sure what you’re asking — the text is not left over from anything and is intentionally included. That text is saying that if I leave out the field then the server treats it just like as if I had sent in a null value. So the following are equivalent:

{
  “client_name”: “foo”,
  “tos_uri”: null
}

And 

{
  “client_name”: “foo”,
}


In both cases, it’s a signal that the client is removing the value from the “tos_uri” field. It does not mean that the AS leaves the “tos_uri” field with the value that it previously was (ie, a PATCH style request). 

The AS can reject the update request if it doesn’t want to allow the client to blank out that field, for whatever reason. 

 — Justin


> On Mar 4, 2020, at 10:42 AM, Filip Skokan <panva.ip@gmail.com> wrote:
> 
> So the following
> 
> Omitted fields MUST be treated as null or empty values by the server, indicating the client's request to delete them from the client's registration.
> 
> Does not mean the server needs to accept requests where fields are omitted? Is that a left over from previous drafts then?
> 
> S pozdravem,
> Filip Skokan
> 
> 
> On Wed, 4 Mar 2020 at 16:37, Justin Richer <jricher@mit.edu <mailto:jricher@mit.edu>> wrote:
> Your interpretation was our intent with that. It’s a full replace of the object. We had debating having PATCH style semantics, but ultimately decided that that was too complex for the most common update actions that a client would have.
> 
>  — Justin
> 
>> On Mar 3, 2020, at 8:42 AM, Filip Skokan <panva.ip@gmail.com <mailto:panva.ip@gmail.com>> wrote:
>> 
>> Hello everyone,
>> 
>> Section 2.2 of RFC 7592 <https://tools.ietf.org/html/rfc7592#section-2.2> (Dynamic Client Registration Management Protocol) has the following two statements that oppose one another.
>> 
>> This request MUST include all client metadata fields as returned to the client from a previous registration, read, or update operation.
>> 
>> Omitted fields MUST be treated as null or empty values by the server, indicating the client's request to delete them from the client's registration.
>> 
>> What's the intention here? Should a server be accepting requests that are missing client properties it has either on the record or "resolved" or not?
>> 
>> Personally I like to always make sure the client submits everything and to remove properties it must pass null or empty string as the values. That way the request is 100% intentional about the final state of the record it wants to update to.
>> 
>> What do you think?
>> 
>> Best,
>> Filip
>> _______________________________________________
>> OAuth mailing list
>> OAuth@ietf.org <mailto:OAuth@ietf.org>
>> https://www.ietf.org/mailman/listinfo/oauth <https://www.ietf.org/mailman/listinfo/oauth>
>