[Openid-specs-ab] Defining JWT Claims to represent W3C Verifiable Credentials objects

Torsten Lodderstedt torsten at lodderstedt.net
Thu Apr 8 10:32:34 UTC 2021


Hi,

I agree with Mike. A small extension to OpenID Connect enabling provision of VCs/VPs utilising the existing formats and processing rules makes a lot of sense. It leverages the benefits of cryptographically bound credentials to OIDC RPs. And it also provides the SSI community with an integration layer interoperable with existing OIDC deployments and complementary to DIDComm.

As some of you know, Kristina, Oliver, Tobias, Adam, and I have been working on such an extension (https://github.com/awoie/vp-token-spec). It was presented on a SIOP call a couple of weeks ago and was revised based on working group's feedback. The current revision uses the „vc“ and „vp“ claims as defined in the W3C VC spec inside an ID Token and, additionally for more advanced uses cases and JSON-LD-based VCs, a separate artifact called the "VP Token". 

We are discussing adoption of Mike’s proposal now. Kristina is working on a PR and will share it soon. 

best regards,
Torsten.  

> Am 08.04.2021 um 06:57 schrieb Mike Jones via Openid-specs-ab <openid-specs-ab at lists.openid.net>:
> 
> https://openid.net/specs/oauth-v2-multiple-response-types-1_0.html and https://openid.net/specs/oauth-v2-form-post-response-mode-1_0.html were also thin specs doing very specific targeted things that were created by the OpenID Connect Working Group.  Even though small and targeted, they were vital to the interoperability of many OpenID Connect (and OAuth 2.0) use cases.
>  
> From: Openid-specs-ab <openid-specs-ab-bounces at lists.openid.net> On Behalf Of Tom Jones via Openid-specs-ab
> Sent: Wednesday, April 7, 2021 9:15 PM
> To: Artifact Binding/Connect Working Group <openid-specs-ab at lists.openid.net>
> Cc: Tom Jones <thomasclinganjones at gmail.com>; oliver.terbu at mesh.xyz
> Subject: Re: [Openid-specs-ab] Defining JWT Claims to represent W3C Verifiable Credentials objects
>  
> This is not an open I'd spec. It is a very thin wrapping around VCs. That's not what I call interoperability.
> 
> thx ..Tom (mobile)
>  
> On Wed, Apr 7, 2021, 8:55 PM Kristina Yasuda via Openid-specs-ab <openid-specs-ab at lists.openid.net> wrote:
> VCs would be encoded using the rules in the VC spec - either in JWT format or JSON-LD format.  These encoded VCs could then be passed as parameters as JWT claims. I believe that people are using all four standard representations of Verifiable Credential objects (vp_jwt, vp_ld, vc_jwt, vc_ld) with JWTs (such as ID tokens) and sets of JSON claims (such as UserInfo Endpoint responses).  To promote interoperability, it seems better to have standard claims that allow people to use the representations they choose rather than to have everyone do the same thing slightly differently. 
> Kristina
>  
> 差出人: nadalin at prodigy.net <nadalin at prodigy.net>
> 送信日時: 2021年4月8日 11:06
> 宛先: Kristina Yasuda <Kristina.Yasuda at microsoft.com>; 'Artifact Binding/Connect Working Group' <openid-specs-ab at lists.openid.net>
> CC: oliver.terbu at mesh.xyz <oliver.terbu at mesh.xyz>
> 件名: RE: [Openid-specs-ab] Defining JWT Claims to represent W3C Verifiable Credentials objects
>  
> Not quite the case as there are specific rules for encoding and decoding JWT in the verifiable credential specification and how to process certain JWT claims iss, aud, etc. So I’m still confused what you are trying to accomplish.
>  
> From: Kristina Yasuda <Kristina.Yasuda at microsoft.com> 
> Sent: Wednesday, April 7, 2021 6:53 PM
> To: Artifact Binding/Connect Working Group <openid-specs-ab at lists.openid.net>
> Cc: Anthony Nadalin <nadalin at prodigy.net>; oliver.terbu at mesh.xyz
> Subject: Re: [Openid-specs-ab] Defining JWT Claims to represent W3C Verifiable Credentials objects
>  
> VC specification defined `vp`, `vc` claims, but they are defined only to include "tthose parts of the standard verifiable credentials and verifiable presentations where no explicit encoding rules for JWT exist". Hence `vp`, `vc` claims are only a part of the the entire VP, VC. 
>  
> There is a need a define a standard way to return VPs using OpenID Connect, and the proposal is to use `vp_jwt`, `vp_ldp` claims that would include entire VP inside the ID token. (VP in a JWT format inside `vp_jwt` would include `vp` claim) 
> Example can be found here: Examples for the vp_jwt, vp_ldp proposal - HackMD
>  
> Note that this proposal is intended to work not only with SIOP V2, but also if VPs are to be returned from the user_info endpoint for example.
>  
> Best,
> Kristina
> 差出人: Openid-specs-ab <openid-specs-ab-bounces at lists.openid.net> が ANTHONY NADALIN via Openid-specs-ab <openid-specs-ab at lists.openid.net> の代理で送信
> 送信日時: 2021年4月8日 10:09
> 宛先: Artifact Binding/Connect Working Group <openid-specs-ab at lists.openid.net>
> CC: Anthony Nadalin <nadalin at prodigy.net>; oliver.terbu at mesh.xyz <oliver.terbu at mesh.xyz>
> 件名: Re: [Openid-specs-ab] Defining JWT Claims to represent W3C Verifiable Credentials objects
>  
> I  don't quite understand this proposal as if you read the verifiable credential specification you will see a section called JWT encoding and JWT decoding based upon what Mike is written I don't understand how you could abide by a fully compliant verifiable credential specification without encoding and decoding JWT's into verifiable credentials.
>  
> Get Outlook for Android
>  
> From: Openid-specs-ab <openid-specs-ab-bounces at lists.openid.net> on behalf of Tom Jones via Openid-specs-ab <openid-specs-ab at lists.openid.net>
> Sent: Wednesday, April 7, 2021 6:00:29 PM
> To: Artifact Binding/Connect Working Group <openid-specs-ab at lists.openid.net>
> Cc: Tom Jones <thomasclinganjones at gmail.com>; oliver.terbu at mesh.xyz <oliver.terbu at mesh.xyz>
> Subject: Re: [Openid-specs-ab] Defining JWT Claims to represent W3C Verifiable Credentials objects
>  
> I have an alternate proposal. In my system the claim should have a name that represents what it is. For example the existing claims acr and amr should be enabled to carry a vc or vp as its value. In this system the encoding of the value would carry the syntax of the claim, beit vc-sjon, vc-ld or whatever. The one proposal I did make was to use jose encoding. If we wanted to use this the jose header could contain the syntax of the contained element as Mike has indicated in his proposal. 
>  
> I think it is not helpful for the name of the claim to be just the syntax of the element.
> 
> Be the change you want to see in the world ..tom
>  
>  
> On Wed, Apr 7, 2021 at 5:25 PM Mike Jones via Openid-specs-ab <openid-specs-ab at lists.openid.net> wrote:
> In our discussions over the past few months, it’s become clear that there are multiple use cases where different forms of W3C Verifiable Credential objects will be communicated as JWT claims (or as UserInfo Endpoint claims).  I had a useful conversation with Oliver Terbu and Kristina Yasuda this week during which we agreed that it would be useful to write a short, focused specification defining and registering JWT claims enabling standard representations for this purpose.  These claims could be used both by SIOP use cases and other use cases.
>  
> Bear in mind that the W3C Verifiable Credentials specification defines two representations of the objects that it defines – JWT and JSON-LD and it also orthogonally defines two kinds of objects – Verifiable Credentials and Verifiable Presentations.  Thus, there are actually four different data types that these use cases might want to utilize.
>  
> I would therefore propose the following four claim definitions for these purposes:
>  
> 	• vc_jwt:  A claim whose value is a W3C Verifiable Credential object using the JWT representation, which is a JSON string.  The claim’s value may also be an array of W3C Verifiable Credential objects using the JWT representation if the use case calls for multiple JWT VCs.
> 	• vp_jwt:  A claim whose value is a W3C Verifiable Presentation object using the JWT representation, which is a JSON string.  The claim’s value may also be an array of W3C Verifiable Presentation objects using the JWT representation if the use case calls for multiple JWT VPs.
> 	• vc_ld:  A claim whose value is a W3C Verifiable Credential object using the JSON-LD representation, which is a JSON object.  The claim’s value may also be an array of W3C Verifiable Credential objects using the JSON-LD representation if the use case calls for multiple JSON-LD VCs.
> 	• vp_ld:  A claim whose value is a W3C Verifiable Presentation object using the JSON-LD representation, which is a JSON object.  The claim’s value may also be an array of W3C Verifiable Presentation objects using the JSON-LD representation if the use case calls for multiple JSON-LD VPs.
>  
> Let’s discuss this proposal during the European-friendly Connect call ~13.5 hours from now.
>  
>                                                        -- Mike
>  
> _______________________________________________
> Openid-specs-ab mailing list
> Openid-specs-ab at lists.openid.net
> http://lists.openid.net/mailman/listinfo/openid-specs-ab
> _______________________________________________
> Openid-specs-ab mailing list
> Openid-specs-ab at lists.openid.net
> http://lists.openid.net/mailman/listinfo/openid-specs-ab
> _______________________________________________
> Openid-specs-ab mailing list
> Openid-specs-ab at lists.openid.net
> https://www.google.com/url?q=http://lists.openid.net/mailman/listinfo/openid-specs-ab&source=gmail-imap&ust=1618462661000000&usg=AOvVaw23iI6prOrtV-Kk4BfefRTX



More information about the Openid-specs-ab mailing list