Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add sd-jwt vc profile to vci #128

Merged
merged 20 commits into from
Dec 21, 2023
Merged

add sd-jwt vc profile to vci #128

merged 20 commits into from
Dec 21, 2023

Conversation

Sakurann
Copy link
Collaborator

@Sakurann Sakurann commented Dec 7, 2023

resolves #122. resolves #28. resolves #134

Copy link
Member

@peppelinux peppelinux left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some small editorials to join. In the meantime I approve this PR.

openid-4-verifiable-credential-issuance-1_0.md Outdated Show resolved Hide resolved
openid-4-verifiable-credential-issuance-1_0.md Outdated Show resolved Hide resolved
openid-4-verifiable-credential-issuance-1_0.md Outdated Show resolved Hide resolved
openid-4-verifiable-credential-issuance-1_0.md Outdated Show resolved Hide resolved
openid-4-verifiable-credential-issuance-1_0.md Outdated Show resolved Hide resolved
examples/credential_request_sd_jwt_vc.json Outdated Show resolved Hide resolved
openid-4-verifiable-credential-issuance-1_0.md Outdated Show resolved Hide resolved
openid-4-verifiable-credential-issuance-1_0.md Outdated Show resolved Hide resolved
examples/client_metadata_sd_jwt_vc.json Outdated Show resolved Hide resolved
Sakurann and others added 4 commits December 7, 2023 08:38
Co-authored-by: Joseph Heenan <joseph@heenan.me.uk>
Co-authored-by: Giuseppe De Marco <demarcog83@gmail.com>
Co-authored-by: Paul Bastian <paul.bastian@posteo.de>
@Sakurann Sakurann requested a review from jogu December 7, 2023 23:57
examples/credential_request_sd_jwt_vc.json Outdated Show resolved Hide resolved
examples/credential_metadata_sd_jwt_vc.json Outdated Show resolved Hide resolved
examples/authorization_details_sd_jwt_vc.json Outdated Show resolved Hide resolved
examples/credential_request_sd_jwt_vc.json Outdated Show resolved Hide resolved
Copy link
Contributor

@awoie awoie left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please use the ISO mdoc section as a basis for SD-JWT VC and just replace doctype with vct.

openid-4-verifiable-credential-issuance-1_0.md Outdated Show resolved Hide resolved
openid-4-verifiable-credential-issuance-1_0.md Outdated Show resolved Hide resolved
openid-4-verifiable-credential-issuance-1_0.md Outdated Show resolved Hide resolved
Copy link
Member

@TimoGlastra TimoGlastra left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As having implemented SD-JWT in OpenID4VC but not HAIP, I like the sd-jwt format profile being moved to OID4VCI

Sakurann and others added 2 commits December 11, 2023 14:56
Co-authored-by: Oliver Terbu <43441584+awoie@users.noreply.github.com>
Co-authored-by: Joseph Heenan <joseph@heenan.me.uk>
@Sakurann
Copy link
Collaborator Author

@TimoGlastra just the heads up that if you implemented sd-jwt vc profile that was in HAIP, this PR introduces breaking changes to that.


The following additional parameters are defined for Credential Requests and this Credential format.

* `vct`: REQUIRED when the `credential_identifier` is not used. String as defined in (#server_metadata_sd_jwt_vc). This claim contains the type values the Wallet requests authorization for at the Credential Issuer.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need to clearer about when VCT and credential_identifier are both present in a credential request? Does one need to take precedent, what if they conflict?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we do, I think it should be clarified when addressing issue #132.

the clarification should also be in this section that defines the behavior of credential request https://openid.github.io/OpenID4VCI/openid-4-verifiable-credential-issuance-wg-draft.html#name-credential-request, so this is probably out of scope of this PR.

the current thinking has been that both format specific claims and credential_identifier can be present since it is possible to use both scopes and RAR in the same authz request

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I cannot think of any case where both, the credential_identifier and the vct could be in the same request, so this should be a MUST NOT if credential_identifier is present.

The credential request text already states "When this parameter is used, the format parameter and any other Credential format specific set of parameters such as those defined in (#format_profiles) MUST NOT be present."

Additionally, I'm not sure these requirements should be stated in a profile as the interplay between credential_identifier and format+format specific type information is subject to the core spec. I think the profile should state something like: "vct: determines the type of a credential of this format, might also be used in credential request ..."

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right. I confused the ability to use both for the same credential - we still currently support using RAR for one credential and format/type for another with the same access token.

This came up because 'vct' is mandatory when format/type is used but must not be present when credential_identifier is used. So honestly, I would suggest that current language works ok.

Co-authored-by: Kristina <52878547+Sakurann@users.noreply.github.com>

The following additional parameters are defined for Credential Requests and this Credential format.

* `vct`: REQUIRED when the `credential_identifier` is not used. String as defined in (#server_metadata_sd_jwt_vc). This claim contains the type values the Wallet requests authorization for at the Credential Issuer.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* `vct`: REQUIRED when the `credential_identifier` is not used. String as defined in (#server_metadata_sd_jwt_vc). This claim contains the type values the Wallet requests authorization for at the Credential Issuer.
* `vct`: String as defined in (#server_metadata_sd_jwt_vc). This claim contains the type values the Wallet requests authorization for at the Credential Issuer. This claim MUST NOT be present if the `credential_identifier` is present in the request.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I clarified for all other credential formats, too.

@awoie awoie self-requested a review December 19, 2023 20:39
@tplooker tplooker self-requested a review December 19, 2023 20:39
@jogu jogu self-requested a review December 21, 2023 09:57
Copy link
Collaborator

@tlodderstedt tlodderstedt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we are almost there ;-)

openid-4-verifiable-credential-issuance-1_0.md Outdated Show resolved Hide resolved
openid-4-verifiable-credential-issuance-1_0.md Outdated Show resolved Hide resolved

The following additional parameters are defined for Credential Requests and this Credential format.

* `vct`: REQUIRED when the `credential_identifier` was not present in the Credential Request. MUST NOT be used otherwise. String as defined in (#server_metadata_sd_jwt_vc). This claim contains the type values the Wallet requests authorization for at the Credential Issuer.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* `vct`: REQUIRED when the `credential_identifier` was not present in the Credential Request. MUST NOT be used otherwise. String as defined in (#server_metadata_sd_jwt_vc). This claim contains the type values the Wallet requests authorization for at the Credential Issuer.
* `vct`: REQUIRED when the `credential_identifier` is not present in the Credential Request. MUST NOT be used otherwise. String as defined in (#server_metadata_sd_jwt_vc). This claim contains the type values the Wallet requests authorization for at the Credential Issuer.


The following additional parameters are defined for Credential Requests and this Credential format.

* `vct`: REQUIRED when the `credential_identifier` was not present in the Credential Request. MUST NOT be used otherwise. String as defined in (#server_metadata_sd_jwt_vc). This claim contains the type values the Wallet requests authorization for at the Credential Issuer.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* `vct`: REQUIRED when the `credential_identifier` was not present in the Credential Request. MUST NOT be used otherwise. String as defined in (#server_metadata_sd_jwt_vc). This claim contains the type values the Wallet requests authorization for at the Credential Issuer.
* `vct`: REQUIRED when the `credential_identifier` was not present in the Credential Request. MUST NOT be used otherwise. String as defined in (#server_metadata_sd_jwt_vc). This claim contains the type value of the Credential the Wallet requests the Credential Issuer to issue.


### Credential Issuer Metadata {#server_metadata_sd_jwt_vc}

The following additional Credential Issuer metadata parameters are defined for this Credential format to be added to the `credentials_supported` parameter in addition to those defined in (#credential-issuer-parameters).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will conflict with with the credential_configurations_supported change.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

how?

Co-authored-by: Torsten Lodderstedt <torsten@lodderstedt.net>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet