[OAUTH-WG] Re: review of draft-ietf-oauth-sd-jwt-vc-13
Brian Campbell <bcampbell@pingidentity.com> Thu, 05 February 2026 17:58 UTC
Return-Path: <bcampbell@pingidentity.com>
X-Original-To: oauth@mail2.ietf.org
Delivered-To: oauth@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 1621CB268589 for <oauth@mail2.ietf.org>; Thu, 5 Feb 2026 09:58:45 -0800 (PST)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.097
X-Spam-Level:
X-Spam-Status: No, score=-2.097 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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=pingidentity.com
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 4U4VgBh52rbR for <oauth@mail2.ietf.org>; Thu, 5 Feb 2026 09:58:44 -0800 (PST)
Received: from mail-vs1-xe2f.google.com (mail-vs1-xe2f.google.com [IPv6:2607:f8b0:4864:20::e2f]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id 5783EB268582 for <oauth@ietf.org>; Thu, 5 Feb 2026 09:58:44 -0800 (PST)
Received: by mail-vs1-xe2f.google.com with SMTP id ada2fe7eead31-5fae01e8893so362298137.3 for <oauth@ietf.org>; Thu, 05 Feb 2026 09:58:44 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; t=1770314318; cv=none; d=google.com; s=arc-20240605; b=OzekRZF4eIBrslLzISJLj93X4TYbmsto+wHWVEuHnePOfztdCKMcI0Necjd+Zi8Tpr lToOHPYLEB4LUJXOIoUQfAV0UUIIxld0sO5remH4i8VQyD3NsISm9Qa8S7H2KCI9rP+r /2xcJ3TMyAqcA5+vR4nP3fCt5K+jRzNsBdLurBwEld4IHmWHxxJdpPbAg0DITjgEVEwy L2UTI2XxXgIzVCehoEjnx1bClUyIyXjanyrTQiLj71Y/uKRHfsdTd4BATa+aC4iF2G8B /ysfTBSDdg7lpUFtqK6wqJtpmd7pTM1zaoibNjlEeU5sDfxiWEsCyzaPtDPwaeEDMniE s3ug==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=DSZqr8pQHH8xyt0cMQ11BbdV0O9QLW6zBWRTN9mr0kU=; fh=kpJ5khEWqj4E+2vhe7Qmx2ZTd/fcMm43D0NB3jpz3eI=; b=OOKETaB3vPCGZ3JRbaXV3RdIBWQGXvbaEXYbRl0gcp5qnPNsOFEkF4jfY0ph/E1BbT 4F2pTqyS/alPRrHfjYWvt9htP0cg/vMLPbfmojWc5uE5vh4/E2o/Fc0YusYkZ3HcJ9cA we/nfzpfRSNULZU7EcZ7sUPJGMsWT79ZSIve33uBNLKOibyd4+niKmwaUXAAK6uuSJYq qPrEGAiiFjQcwFEpyfxCpT05xI2AoWGT4FHRNeohqoZgAN3CgknoQvULpLOKuVHGBu4X 7lPMS0ByXlNFF5K8vyZFgn/b39CO6/Ih0F3NgwEIIO4Fn0giJaCidSy8NVc5XXPH2ypL gAug==; darn=ietf.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pingidentity.com; s=google; t=1770314318; x=1770919118; darn=ietf.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=DSZqr8pQHH8xyt0cMQ11BbdV0O9QLW6zBWRTN9mr0kU=; b=KTLTY6PdVJxFtY9irjE5jxBCVNMIiP8GuL+LFhE1hZtdEGEBfh1RoOxeqo7vIz9z/P oBvg34/LJHiHBoBLxv6D517XnvS9AwTmg0OZco1mL6y7RVmNXrMxqL1iMlVXaKCwqmM3 gGqEWu+G1MjwrJiHtD1fcfdr1Kf3N+6GnLVMmIiay+IIb1P25JQOamGkCJachoKZ7rQ1 86GGJuBh3RVvQyBV0yVd1fFZP9hM/Zchj4OFOKoM1vNSDDAhIiijBk5+Y66sIjVtQHlB zzDvNdkcCn9kq5n+B++uLaoE95bVWhkPwJ3TjJjJ5/YliMjD2CcLO9pa7Zejwb8CQmpn ekaw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770314318; x=1770919118; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=DSZqr8pQHH8xyt0cMQ11BbdV0O9QLW6zBWRTN9mr0kU=; b=DFwCCGqonMwtYpyvzg4qp73DMqScKBFlo5lyA91B0tOr957/T2bsIg/+XQKBQnQFjb eX02JIMfGK0kHylwebBlGjwwENiLGjUqfhUTESR90MH9YYlG1sPhK62glojZ2NVK5D9B Ey8It1UKOpiD5ryklT7Ca0mSJoNmZWIH4vsvMMz1UO4UGWHEEdceYnmMHeZKYRXhNQJh 3JnV4cHY4W8es4X4F29s2qPDYcHDPezBRQ0JiLmm8AT9MldIa5wGUMBxKwcBOvjiu0oQ imfYhIqmXNkQbu6iNvIULgYkgoyHbe0UAQ44BxkiPqZo61Unos0CV1RADs1/Xs1sz5Nl 9Prw==
X-Forwarded-Encrypted: i=1; AJvYcCXJaMlSb/4Vuh1mJmumoAJbYRTACxKKjcd4DMBQsyM1DWMSlTPAQ59sHaSfr8nSd8TWvKCyMg==@ietf.org
X-Gm-Message-State: AOJu0Yy5yj/P7peimyT2MaGXH2HOO6aFuXg54unqBwusJxnXp2hF65re lzp7VdaJBuMBxWOW3FVDCdA/8wmn5PEp5fLoy1dLDh9CVDGfU4xU42zheBMZ9uWuo8xmQxRY6C9 /L3iTAORgo5IuEI2bPM+a4cJWwNjn6jcHLACqLN2i4tDOmn+xuN5DS2LfK3lRNNKkDJyYeMYeBM QO87t+Lc0wtV88FA==
X-Gm-Gg: AZuq6aJSAEvUt7kEVh3MXcb7Cwe0LBz6Juz0FgnD1kxRoWj4htenDqx4qQ3bmtl71mU LVgMJ999BaPNU8oUQFJWOCo81sAUq/C9vHtie/+fzYC50r7EwQP2u6FMatrykTL4b0fQUKQqU92 lwQabYhHcmtuYp53vpJg5dlsEpSVtVh+piGIkfS5M2vtc8Ez3txnEBbbLqsuCQAmAgf/JOt0778 Jz9m0kw6Gcl/ZKVEC0fxojjZKmLJU+4CpkfUbDBbhly5Cass3Iei7G+lBfHmKMnEK1L87xS
X-Received: by 2002:a05:6102:548a:b0:5f5:2f71:b723 with SMTP id ada2fe7eead31-5f9395c21damr2813206137.31.1770314318103; Thu, 05 Feb 2026 09:58:38 -0800 (PST)
MIME-Version: 1.0
References: <CAKUhyqG2iuQyxpEbhUnwpqA2ZjM3DPrVEqJrMrMzDsDRicNbaw@mail.gmail.com> <ME3P282MB1347D169AFD0160C0DD09FA8F099A@ME3P282MB1347.AUSP282.PROD.OUTLOOK.COM>
In-Reply-To: <ME3P282MB1347D169AFD0160C0DD09FA8F099A@ME3P282MB1347.AUSP282.PROD.OUTLOOK.COM>
From: Brian Campbell <bcampbell@pingidentity.com>
Date: Thu, 05 Feb 2026 10:58:12 -0700
X-Gm-Features: AZwV_Qj8Td-Nq6WINdZbXS_vSitWXNPv7-K9nmZM-dcLcLbQo3HGaHkf-l3R14Y
Message-ID: <CA+k3eCTg083fd2n2tPSg4WJk=JYQadWCN28knHL6epV-M1VJdQ@mail.gmail.com>
To: Oliver Terbu <oliver.terbu=40mattr.global@dmarc.ietf.org>
Content-Type: multipart/alternative; boundary="000000000000125d9c064a176ce8"
Message-ID-Hash: QEXQDSNGIT4XQODQYVXU6WPBB6JJA75C
X-Message-ID-Hash: QEXQDSNGIT4XQODQYVXU6WPBB6JJA75C
X-MailFrom: bcampbell@pingidentity.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-oauth.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: Dan Moore <dan=40fusionauth.io@dmarc.ietf.org>, oauth <oauth@ietf.org>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [OAUTH-WG] Re: review of draft-ietf-oauth-sd-jwt-vc-13
List-Id: OAUTH WG <oauth.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/0LSw1AWQpuvz3tHXy7OBse6Y-TM>
List-Archive: <https://mailarchive.ietf.org/arch/browse/oauth>
List-Help: <mailto:oauth-request@ietf.org?subject=help>
List-Owner: <mailto:oauth-owner@ietf.org>
List-Post: <mailto:oauth@ietf.org>
List-Subscribe: <mailto:oauth-join@ietf.org>
List-Unsubscribe: <mailto:oauth-leave@ietf.org>
also https://github.com/oauth-wg/oauth-sd-jwt-vc/pull/391 ... On Thu, Feb 5, 2026 at 10:37 AM Oliver Terbu <oliver.terbu= 40mattr.global@dmarc.ietf.org> wrote: > Thank you for your review. We addressed your comments in this PR: > https://github.com/oauth-wg/oauth-sd-jwt-vc/pull/390 > > Oliver > ------------------------------ > *From:* Dan Moore <dan=40fusionauth.io@dmarc.ietf.org> > *Sent:* Monday, December 8, 2025 11:20 PM > *To:* oauth <oauth@ietf.org> > *Subject:* [OAUTH-WG] review of draft-ietf-oauth-sd-jwt-vc-13 > > EXTERNAL EMAIL: This email originated outside of our organisation. Do not > click links or open attachments unless you recognise the sender and know > the content is safe. > > Hiya, > > Here's my review of > https://datatracker.ietf.org/doc/draft-ietf-oauth-sd-jwt-vc/ > > In general/substantive comments: > > * Need to update references from ietf-oauth-selective-disclosure-jwt to > the RFC https://datatracker.ietf.org/doc/rfc9901/ > * Since one explicit aim of the type metadata is versioning and you don't > have content type for versioning, does it make sense to put a v1 somewhere > in the URI, or whatever else might be used to version the type metadata? (I > think Tim mentioned this too.) > * You define Consumer in section 1.4, but later use consuming application > instead of Consumer. (Section 8, section 10.5). Suggest standardizing on > Consumer by searching/for "consuming application" and replacing it with > Consumer. > * Had questions about the fact a new JSON path parsing ruleset is defined, > more below. > * Had questions about the placement of the well-known path in relation to > the tenant in multi-tenant scenarios. > > Specific sections: > --- > Section 1.1 > > This early paragraph is long and a bit confusing: > > Verifiers can check the authenticity of the data in the Verifiable > Credentials and optionally enforce Key Binding, i.e., ask the Holder > to prove that they are the intended Holder of the Verifiable > Credential, for example, by proving possession of a cryptographic key > referenced in the credential. > > Would suggest breaking into two sentences: > > Verifiers can check the authenticity of the data in the Verifiable > Credentials and optionally enforce Key Binding. Key Binding asks the > Holder > to prove that they are the intended Holder of the Verifiable > Credential, for example, by proving possession of a cryptographic key > referenced in the credential. > > The note about not using W3C Verifiable Credentials Data Model seemed a > bit out of place. Is it normal to reference unused, related standards? > Searched the mailing list and didn't see a reason for this. Maybe better to > put it into section 12? > > Section 1.4 > > The definition of Consumer had a weird singular/plural disconnect > "Consumer" vs "Applications". Suggest: > > Consumer: An Application using the Type Metadata specified in > Section 6 is called a Consumer > > Section 3.4 > > The check in point 2.3 of Section 7.1 ... > -> > The check in point 2.a of Section 7.1 ... > > I don't see a section 2.3 in the referenced doc. > > Sections 4.1 and 3.2 seem to be duplicative. Can we remove one? > > Section 5.1 > > Is there a reason to not follow the OIDC pattern of having the tenant or > any other path before the .well-known/jwt-vc-issuer string? > > > https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderConfigurationRequest > > I didn't see anything in the mailing list when I looked for why that > decision was made. > > Section 5.2 > > Missing the word 'status': > > the 200 OK HTTP and > -> > the 200 OK HTTP status and > > Make it more clear about what the correct status code for errors are: > > An error response uses the applicable HTTP status code value. > -> > An error response MUST use the applicable HTTP status code value. > > This section was confusing: > --- > It is RECOMMENDED that the JWT contains a kid JWT header parameter > that can be used to look up the public key in the JWK Set included by > value or referenced in the JWT VC Issuer Metadata > --- > I think the word JWT references the SD-JWT VC for which this is the issuer > metadata, but wasn't sure. maybe change it to > > It is RECOMMENDED that the SD-JWT VC contains a kid JWT header parameter > > if my reading is correct. > > Considering the sample "JWT VC Issuer Metadata" doc from > > { > "issuer":"https://example.com", > "jwks_uri":"https://jwt-vc-issuer.example.com/my_public_keys.jwks" > } > > to > > { > "issuer":"https://example.com/issuer", > "jwks_uri":"https://jwt-vc-issuer.example.com/my_public_keys.jwks" > } > > Because in section 5.3 you specify that "The issuer value returned MUST be > identical to the iss value of the JWT." and the issuer value of the sample > JWT elsewhere has the /issuer path. > > Section 6.2 > > Do you need extends#integrity in the claims list (it's in the example in > 6.1)? or is that covered by the "A Type Metadata document MAY contain > additional top level" sentence after the list? > > Section 6.3 > > A consumer retrieving Type Metadata MUST ensure that the vct value in > the SD-JWT VC payload is identical to the vct value in the reference > to the Type Metadata > > assume we can trust the implementor knows how to compare urls and there's > no need to reference RFC 5890, 3987, etc? > > Section 6.3.1 > > Small typo: "Section Section 7." > > Section 7 > > You state: > ...MUST verify the integrity of the retrieved document as defined in > Section 3.3.5 of... > > But I think you mean section 3.5 as there is no section 3.3.5 in > https://www.w3.org/TR/sri/ > > You say: > "A Consumer of the respective documents MUST verify the integrity ... > > but the required claim is marked as optional in 3.2.2.2. Found that > confusing. Assume that means that if the X#integrity claim is present you > must verify the integrity? Maybe change to > > When the corresponding integrity claim is present, a Consumer of the > respective documents MUST verify the integrity of the retrieved document as > defined ... > > Section 8.2 > Why is the display claim treated differently in terms of overriding an > extension than any other metadata? any reason to call that out? The general > overriding process is mentioned in section 9.5, maybe remove 8.2. > > Section 9 > > why would you have a claim defined without an svg_id? what is the use > case? > > if you are using a simple rendering method, no claims are displayed. Is > this future proofing, in case there's another render method added that > isn't an svg? in that case, maybe change it to claim_id so a future method > could reference the claim for display? then make it required? Or am I > missing some other reason for the claims to be defined in the type metadata? > > Section 9.1 > > why not use jsonpath or jsonpointer (rfc6901) instead of defining a new > JSON path processing framework? I guess I worry whenever I see another path > processing algorithm defined. > > But maybe I'm missing the reason not to use a more general purpose > solution? > > Section 10.6 > > Having the prefix *Recommendation:* is kinda weird and not common. maybe > strike, not sure it adds anything. > > Section 10.7 > > Introduces the term "publisher" which is not used anywhere else in the > doc. Maybe use issuer? > --- > _______________________________________________ > OAuth mailing list -- oauth@ietf.org > To unsubscribe send an email to oauth-leave@ietf.org > -- _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._
- [OAUTH-WG] review of draft-ietf-oauth-sd-jwt-vc-13 Dan Moore
- [OAUTH-WG] Re: review of draft-ietf-oauth-sd-jwt-… Brian Campbell
- [OAUTH-WG] Re: review of draft-ietf-oauth-sd-jwt-… Oliver Terbu