[OAUTH-WG] Multi-Subject JWT (aka Nested JWT)

Rifaat Shekh-Yusef <rifaat.s.ietf@gmail.com> Thu, 18 February 2021 12:26 UTC

Return-Path: <rifaat.s.ietf@gmail.com>
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 A86233A119D for <oauth@ietfa.amsl.com>; Thu, 18 Feb 2021 04:26:36 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.087
X-Spam-Level:
X-Spam-Status: No, score=-2.087 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_KAM_HTML_FONT_INVALID=0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 ynTsnfteZKdS for <oauth@ietfa.amsl.com>; Thu, 18 Feb 2021 04:26:31 -0800 (PST)
Received: from mail-lf1-x12d.google.com (mail-lf1-x12d.google.com [IPv6:2a00:1450:4864:20::12d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id EEB783A1184 for <oauth@ietf.org>; Thu, 18 Feb 2021 04:26:30 -0800 (PST)
Received: by mail-lf1-x12d.google.com with SMTP id v30so6280895lfq.6 for <oauth@ietf.org>; Thu, 18 Feb 2021 04:26:30 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=/2JItpg9CXDAq7uPDV428S4FVrDb+RboK0v3La1tHi4=; b=pa4skQxx4tZujh7G4QGk454wbUljQhktW/s0zktYoZq5YgbC7NdxluJkB/euf6/k0a MtFVVsDVGsXg7Z2zxrae4riaAmH3+EC+Oe4uXjg0TBK45+Un1Gq76poTnjkBFYXR+lAs 5FHgWNyq+m7NOV9Iy8UUt2LvtFpT7BPdp1H4EC+oFYX5RFel1MBMq9nBU/d5qAdHp3B/ QFMDsDDkhE9KUPVxWAkGwzjxyKUxdNLSSJa81mgAhHPeuKKEBMh39rLvB4AP5iqzv6XO A+DsUz3REP2xZ8Qp8lhl3+2RaQIPpq7VQG20vj848MAZRhoTxk0gzylbm6pDOfMxOaKA F/SA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=/2JItpg9CXDAq7uPDV428S4FVrDb+RboK0v3La1tHi4=; b=optfNL88SW9RueovutpeS42qa46ah0GrYUtasArBmUHjQb0ImKli0ALhKzCWvEVp4Q peGlWdV7qMff29S4RhE50vSANDOS+41GKwrT5FGNQ6trAINxIun5lD6FoumDUjNjfJOj PHfavJ3BKDXPIFBJg4PH9/dUz+fRXuy4zPNtxR0Z8Ob384uL6XxqP6WCnaFv7Ll4KRBC m0LhGNlWRvUw3zPa4fn6aJsfCuagoiaqc7qjtZXfiIBOfqMW2ws13+/mZiN9dkUfQHuW nU6/q2QEfftTIq3ZkYO1Hm+rbSAi2HbmFCTV1l1zkNWevm0FkvMMDQPJJh3OMEOQZHMA vavA==
X-Gm-Message-State: AOAM532zfRK1f0Km/qoANsNhF0nuv5gTzYBi+mVHxNYPHkhKQ+qRJ1Sq 1JwVFVKvkwF29zRn+C1Pw5YR8MMLUuhYH6j+mK21h7NYwHAw6g==
X-Google-Smtp-Source: ABdhPJydS8JjEnixEEvPKdFz+0rxmBZG4Fd5YrDCmLDQVcDyvRmapneXDxvFXjptieBZaedJllnRYwofBgs1gsCiXCU=
X-Received: by 2002:a05:6512:1054:: with SMTP id c20mr1994849lfb.170.1613651188929; Thu, 18 Feb 2021 04:26:28 -0800 (PST)
MIME-Version: 1.0
From: Rifaat Shekh-Yusef <rifaat.s.ietf@gmail.com>
Date: Thu, 18 Feb 2021 07:26:17 -0500
Message-ID: <CADNypP8zyqf+GjtgcP-8mk7eJHv4_Spk1ZitJwvPJGzcmBYoag@mail.gmail.com>
To: oauth <oauth@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000e8594e05bb9b7169"
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/f32AiosxrgCHQ8qNirlwpHFeZrw>
Subject: [OAUTH-WG] Multi-Subject JWT (aka Nested JWT)
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: Thu, 18 Feb 2021 12:26:42 -0000

When I started working on the Nested JWT draft, I had a specific use case
in mind (I no longer care about that initial use case).
https://www.ietf.org/archive/id/draft-yusef-oauth-nested-jwt-03.txt

I then dropped the ball on the Nested JWT draft, but every now and then I
get some feedback, mainly offline, from different people about more use
cases that clearly indicate that there is a need for a way to represent
multiple subjects in one JWT.

The following is a high level summary of these use cases:


   1.

   Primary subject with secondary authority subject

A primary subject with a related secondary subject that has authority over
the primary subject, e.g. Child/Parent, Pet/Owner.

In this case, both JWTs would be issued by the same issuer.


   1.

   Delegation of authority

A primary subject delegates authority over a resource to a secondary
subject who acts on behalf of the primary subject.

https://tools.ietf.org/html/rfc8693

In this case, both JWTs would be issued by the same issuer.


   1.

   Multiple primary subjects

Two primary related subjects e.g. a married couple

https://www.w3.org/TR/vc-data-model/#credential-subject

In this case, both JWTs would be issued by the same issuer.


   1.

   Replaced primary subject

A primary subject becomes a secondary subject and replaced with a new
primary subject.

For example,

   -

   An original called number replaced with a retargeted number.

https://tools.ietf.org/html/draft-ietf-stir-passport-divert-09


   -

   A number of network intermediaries that each become the primary subject
   when receiving a message from a previous network element.

https://networkservicemesh.io/

In this case, the original JWT would be issued by one issuer and included
as a nested JWT, while the enclosing JWT would be issued by a new issuer
that has manipulated the original received message.


   1.

   Supporting JWTs

One primary JWT with supporting JWT

https://github.com/martinpaljak/jose/blob/main/README.md


*Question*:
Is the WG interested in working on such a mechanism?
If yes, are there any more use cases that need to be addressed?
Are there use cases that require more than two subjects?

Regards,
 Rifaat (no hats)