-
Notifications
You must be signed in to change notification settings - Fork 14
Represent issuance time with "iat" rather than "nbf" #9
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
Comments
I think we should still allow |
Resolution of this issue should follow and be based on the resolution of w3c/vc-data-model#913, which I believe will be to align (@bellebaum -- I request that you repeat your comment above on w3c/vc-data-model#913, as your use case is different from the others raised there, and lends weight to my expected resolution.) (For sake of clarity here on #9, w3c/vc-data-model#918, referenced above, was closed as a duplicate of w3c/vc-data-model#913.) |
I think that the validity time of the crypto proof is fundamentally different from the validity time of the embedded claims (the latter can start before the proof was created and expire years after the crypto is invalid). So the former two are metadata of the claims and should be in the top level of the VC (as now). They should be iat and exp. However the validity time of the claims should be moved into the subject's properties, and not appear anywhere in the JWT as they will be buried in the vc claim of the JWT. |
isuance of a credential, that has been agreed to be ValidFrom property defined in the vc-data-model, so this issue should be closed. |
I think it is important that the JWT does contain the time the credential was signed, and that |
I believe (and there are valid use cases), that we need to distinguish between a VC validity and signature validity. jwt.vc.validFrom jwt.iat signing certificate lifetime might be shorter than the lifetime of the VC; e.g., diploma doesn't have an expiration date, however, certificates used to e-seal them, do. if nbf is used, it should match the value of jwt.vc.validFrom |
@alenhorvat I agree with everything you say with one minor correction "should represent a period when the VC is considered valid." should be "should represent a period when the embedded credential is considered valid." As I have pointed out before, my original UK issued driving licence was valid from my age of 17 (when I passed my test) until my age of 65, but when issued as multiple VCs during its 49 year lifetime both the iat and exp would not match either of vc validity fields. We need a PR to represent this. |
This can be closed when #88 is merged |
@selfissued blocked by #88 |
The JWT claim
iat
was designed to represent the time that a token is issued. We should be using in the VC-JWT representation, rather thannbf
.For context, the JWT
nbf
claim was copied from SAML's NotBefore for completeness, but it is essentially never used (except for JWT-VCs, where its inclusion was a mistake that we should fix in V2).The ability to future/past date tokens with
nbf
is esoteric and will likely cause more problems than it solves. We should remove the use ofnbf
so that this becomes impossible. That will help interoperability.Note that the VC Data Model issue w3c/vc-data-model#918 is related - requesting that we retain issuanceDate in the Data Model not enable future/past dating of VCs.
The text was updated successfully, but these errors were encountered: