From JWT RFC 7519, section-4:

The Claim Names within a JWT Claims Set
   MUST be unique; JWT parsers MUST either reject JWTs with duplicate
   Claim Names or use a JSON parser that returns only the lexically last
   duplicate member name, as specified in Section 15.12 ("The JSON
   Object") of ECMAScript 5.1 [ECMAScript].

I can’t speak to whether if, had timelines had been different, whether JWT 
would have referenced I-JSON.

-DW

> On Oct 3, 2023, at 9:43 AM, Denis <denis.i...@free.fr> wrote:
> 
> Hi Watson,
> 
> The word "semantics" is not present in RFC 8259.
> 
> I looked for the word "unique" in RFC 8259. There are three occurrences of 
> that word in clause 4.  Objects,
> in particular:
>         The names within an object SHOULD be unique
> There is indeed a "SHOULD", but not a "SHALL". 
> 
> If there were a "SHALL", in case of a claim name duplicate, RFC 8259 would 
> have said what SHALL be the behaviour of the software implementation,
> but this is not the case.
> 
> 
>    An object whose names are all unique is interoperable in the sense
>    that all software implementations receiving that object will agree on
>    the name-value mappings. When the names within an object are not
>    unique, the behavior of software that receives such an object is
>    unpredictable.  Many implementations report the last name/value pair
>    only.  Other implementations report an error or fail to parse the
>    object, and some implementations report all of the name/value pairs,
>    including duplicates.
> 
>    JSON parsing libraries have been observed to differ as to whether or
>    not they make the ordering of object members visible to calling
>    software.  Implementations whose behavior does not depend on member
>    ordering will be interoperable in the sense that they will not be
>    affected by these differences..
> 
> An application that receives an object should anyway retrieve the appropriate 
> schema to check whether what it has received complies with the schema.
> If the schema indicates that several claims with the same name can be 
> present, then the application should use an appropriate software 
> implementation of the JSON decoder.  
> 
> An application using a JSON structure should describe what it expects. 
> Currently, the following text is present: 
> 
>      The JWT MUST contain an "iss" (issuer) claim ...
>      The JWT MUST contain an "status_list" (status list) claim ...
> 
> Maybe, in the future, this would be changed into:
> 
>      The JSON object MUST contain a single occurrence of an "iss" (issuer) 
> claim ...
>      The JSON object MUST contain at least one occurrence of an "status_list" 
> (status list) claim ...
> 
> Denis
>> On Mon, Oct 2, 2023, 11:56 PM Denis <denis.i...@free.fr> 
>> <mailto:denis.i...@free.fr> wrote:
>>> Hi Justin,
>>> 
>>> Your premise relies on a feature of JSON that does not exist. JSON does not 
>>> provide well-defined behavior for repeated names within an object:
>>> 
>>> When the names within an object are not
>>> unique, the behavior of software that receives such an object is
>>> unpredictable.
>>> 
>>> You should also cite the next two sentences which are:
>>> 
>>>        Many implementations report the last name/value pair only.  Other 
>>> implementations report an error or fail
>>>        to parse the object, and some implementations report all of the 
>>> name/value pairs, including duplicates.
>>> 
>>> A specification might require to use implementations that report all of the 
>>> name/value pairs, including duplicates.
>> That's not sticking to JSON semantics. Extending JSON to be a
>> multifunction or worse a sequence of key value pairs changes the
>> semantics. If you use JSON stick to RFC 8259 as it interoperates not
>> gratuitously cause problems.
>> 
>> Justin is right.
>> 
>> Sincerely,
>> Watson Ladd
> 
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.org
> https://www.ietf.org/mailman/listinfo/oauth

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

Reply via email to