Re: [OAUTH-WG] Conflicting definitions in JWT Response for OAuth Token Introspection

Justin Richer <jricher@mit.edu> Wed, 04 March 2020 16:29 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 63CE93A124B for <oauth@ietfa.amsl.com>; Wed, 4 Mar 2020 08:29:04 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level:
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, 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 hV8n2K0pGm0W for <oauth@ietfa.amsl.com>; Wed, 4 Mar 2020 08:29:02 -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 8C6C13A1247 for <oauth@ietf.org>; Wed, 4 Mar 2020 08:29:02 -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 024GSuvH027993 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 4 Mar 2020 11:28:57 -0500
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\))
From: Justin Richer <jricher@mit.edu>
In-Reply-To: <CC9A4A69-A918-45E7-AA2A-2E0964A75F65@lodderstedt.net>
Date: Wed, 04 Mar 2020 11:28:56 -0500
Cc: oauth <oauth@ietf.org>, Filip Skokan <panva.ip@gmail.com>, Benjamin Kaduk <kaduk@mit.edu>, Takahiko Kawasaki <taka@authlete.com>, Vladimir Dzhuvinov <vladimir@connect2id.com>
Content-Transfer-Encoding: quoted-printable
Message-Id: <5EF38619-815D-4370-A1CE-1992588FBDD8@mit.edu>
References: <CAHdPCmPCMJqH-aOC2SjFhGd9sjd01xw=VEj5y1jA5nRNRhu4EA@mail.gmail.com> <CAHdPCmMP5=wQSq_YW3+honto==s_bZpCas+=bxJqfqJh24gTzQ@mail.gmail.com> <CALAqi_-Nj6rfFJThH3H-r1oivKCFFW3Wwhhfbephq4f9OMTTQw@mail.gmail.com> <B9BFA279-0C95-410E-8DAC-72DD8B080B79@mit.edu> <CC9A4A69-A918-45E7-AA2A-2E0964A75F65@lodderstedt.net>
To: Torsten Lodderstedt <torsten@lodderstedt.net>
X-Mailer: Apple Mail (2.3445.104.11)
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/dVhzYKZEIZbFaKL1X8olG-Jnq1o>
Subject: Re: [OAUTH-WG] Conflicting definitions in JWT Response for OAuth Token Introspection
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:29:04 -0000

Why the leading underscore in the name? Why not just “token_data”?

 — Justin

> On Mar 4, 2020, at 11:19 AM, Torsten Lodderstedt <torsten@lodderstedt.net> wrote:
> 
> Hi all, 
> 
> based on the recent feedback, Vladimir and I propose the following changes to draft-ietf-oauth-jwt-introspection-response: 
> 
> - the token data are encapsulated in a container element “_token_data”
> - beyond this, the top-level container only contains meta data pertinent to the JWT representing the signed (encrypted) introspection response
> - we need to add text to the spec to point out that replay detection must be based on the jti in the “_token_data” container not the top level claim
> 
> That’s example of how it would look like:
> 
> {
>   "iss":"https://as.example-bank.com",
>   "aud":"6a256bca-1e0b-4b0c-84fe-c9f78e0cb4a3",
>   "iat":1532452100,
>   "_token_data":{
>      "active":true,
>      "iss":"https://as.example-bank.com",
>      "aud":"6a256bca-1e0b-4b0c-84fe-c9f78e0cb4a3",
>      "jti":"53304e8a-a81e-4bc7-95e3-3b298d283512",
>      "iat":1532452084,
>      "exp":1532453100,
>      "client_id":"3630BF72-E979-477A-A8FF-8A338F07C852",
>      "cnf":{
>         "x5t#S256":"YzEcNvUV3QXA5Bi9IB66b8psyqZBQgW4500ZGvNRdis"
>      },
>      "sub":"123456789087632345678"
>   }
> }
> 
> The response for inactive tokens would look like this:
> 
> {
>   "iss":"https://as.example-bank.com",
>   "aud":"6a256bca-1e0b-4b0c-84fe-c9f78e0cb4a3",
>   "iat":1532452100,
>   "_token_data":{
>      "active":false
>   }
> }
> 
> What do you think?
> 
> best regards,
> Torsten. 
> 
>> On 4. Mar 2020, at 16:37, Justin Richer <jricher@mit.edu> wrote:
>> 
>> +1, this encapsulation is much cleaner.
>> 
>>> On Mar 2, 2020, at 2:25 AM, Filip Skokan <panva.ip@gmail.com> wrote:
>>> 
>>> Perhaps we should consider leaving the root level JWT claims as-is per JWT and push the introspection response unmodified as if it was regular json response to a JWT claim called "introspection". Since regular introspection uses the same claim names as JWT this would get around all the conflicts.
>>> 
>>> Last time i brought it up the authors didn't want to consider it because of existing implementations.
>>> 
>>> S pozdravem,
>>> Filip Skokan
>>> 
>>> 
>>> On Mon, 2 Mar 2020 at 07:52, Takahiko Kawasaki <taka@authlete.com> wrote:
>>> Thank you, Tatsuo Kudo, for showing me that Justin Richer expressed the same concerns in this mailing list about 6 months ago (on Sep. 4, 2019). RFC 8707 didn't exist then, though.
>>> 
>>> Re: [OAUTH-WG] Question regarding draft-ietf-oauth-jwt-introspection-response-05
>>> https://mailarchive.ietf.org/arch/msg/oauth/LmMAxd35gW5Yox0j4MmU2rI_eUA/
>>> 
>>> A JWT puts both (a) information about itself and (b) other data in its payload part. When the "other data" have the same claim names as are used to express information about the JWT itself, conflicts happen.
>>> 
>>> Also, it should be noted that Ben pointed out in other thread that the requirement for "jti" in draft-ietf-oauth-jwt-introspection-response, which says "jti" is a unique identifier for the access token that MUST be stable for all introspection calls, contradicts the definition of "jti", which should be unique for each JWT.
>>> 
>>> Re: [OAUTH-WG] Benjamin Kaduk's Discuss on draft-ietf-oauth-jwt-introspection-response-08: (with DISCUSS and COMMENT)
>>> https://mailarchive.ietf.org/arch/msg/oauth/S4q7cF0TMZMzFO61I5M4QXCUWCM/
>>> 
>>> draft-ietf-oauth-jwt-introspection-response needs to be modified to solve the conflicts.
>>> 
>>> Taka
>>> 
>>> On Sun, Mar 1, 2020 at 4:10 PM Takahiko Kawasaki <taka@authlete..com> wrote:
>>> Hello,
>>> 
>>> I'm wondering if the following conflicts in "JWT Response for OAuth Token Introspection" (draft 8) have already been pointed out.
>>> 
>>> RFC 8707 (Resource Indicators for OAuth 2.0) requires that 'aud' in an introspection response hold the values of the 'resource' request parameters, whereas "JWT Response for OAuth Token Introspection" says that 'aud' MUST identify the resource server receiving the token introspection response. The definitions conflict.
>>> 
>>> RFC 7662 (OAuth 2.0 Token Introspection) requires that 'iat' in an introspection response indicate when the access/refresh token was issued, whereas "JWT Response for OAuth Token Introspection" says that 'iat' indicates when the introspection response in JWT format was issued. The definitions conflict.
>>> 
>>> Best Regards,
>>> Takahiko Kawasaki
>>> Authlete, Inc.
>>> 
>>> 
>>> 
>>> _______________________________________________
>>> 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
>> 
>> _______________________________________________
>> OAuth mailing list
>> OAuth@ietf.org
>> https://www.ietf.org/mailman/listinfo/oauth
>