TalaoDAO / AltMe

Talao / Altme wallet : Open source Self Sovereign Identity wallet. Multi ecosystem support : EBSI conformant. ARF EUDI wallet implementation, DIIP and more.
https://talao.io
Apache License 2.0
42 stars 13 forks source link

Use nested structure to describe issuer. Currently using String or url #2169

Open jdsika opened 9 months ago

jdsika commented 9 months ago

Hi team,

first of all: keep up the great work!

In the interaction with you a question came up which might be a bug in altme.

Example credential:

https://github.com/ASCS-eV/credentials/blob/main/examples/member-credential-full.json

Specification:

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

The value of the issuer property MUST be either a URI or an object containing an id property. It is RECOMMENDED that the URI in the issuer or its id be one which, if dereferenced, results in a document containing machine-readable information about the issuer that can be used to verify the information expressed in the credential.

My custom issuer type in the context:

"AscsIssuer": {
                "@id": "https://schema.ascs.digital/AscsMemberCredential/v1#AscsIssuer",
                "@context": {
                    "@version": 1.1,
                    "@protected": true,
                    "name": "https://schema.org/name",
                    "url": "https://schema.org/url"
                }
            },

My issuer in the credential:

"issuer": {
        "id": "did:pkh:tz:tz1ggujjYjA7oYoaZBzTg1tYSXn3VMjcgDuv",
        "type": "AscsIssuer",
        "name": "Automotive Solution Center for Simulation e.V.",
        "url": "https://identity.ascs.digital/"
    },

Assumption:

If I try the credential workflow with altme the application is crashing and/or not successfully exchanging credentials. I think that my credential is according to specification and therefore I am asking if that may be an issue in the altme application?

Best regards Carlo

ThierryThevenet commented 9 months ago

Yes you are right, there is a bug when $.issuer is a json object and not a string (uri). The issue, at minimum..., is about the credential display, i have seen that when when we used the credential manifest with the impossibility to display the issuer name through the path $.issuer.name

ThierryThevenet commented 9 months ago

Test : https://talao.co/sandbox/direct_offer?VC=AscsMemberCredential.json

issuer.name is in the credential manifest but cannot be diplayed

{ "path": ["$.issuer.name"], "schema": { "type": "string" }, "fallback": "Unknown", "label": "Issuer name" },

jdsika commented 9 months ago

Yes, of course. It just took me a little time to figure out that you modified the proposed credential at that specific point because of the big :))

ThierryThevenet commented 8 months ago

Yes it is correct, the second form with issuer as a json object is correct but it is not supported by Altme.

If you need it let me know ? @jdsika

hawkbee1 commented 7 months ago

@jdsika Do you need this functionality?

jdsika commented 7 months ago

I can move around it! I do not know if this is still a topic if we use jwt-vc ? If that type of structure is still valid in the jwt-vc format I would consider this on the feature list but with a low priority.

ThierryThevenet commented 7 months ago

It does not really matter in the jwt format as this "issuer" attributes is replaced by the "iss" attribute of the jwt.

jdsika commented 7 months ago

And there I can create a nested structure?

ThierryThevenet commented 7 months ago

"iss" is a string Best will be to add in the vc json object of the jwt an "issuedBy" attribute with all the information .

jdsika commented 7 months ago

Then I would see it as a low priority feature because the only impact is a potential user being confused by the error when trying to use the object. If you plan to not support then the ultimate and maybe not necessary step is to clarify in your documentation is what subset of the (many different) standards and documents you support. But... Maybe we are optimizing here :)

ThierryThevenet commented 7 months ago

Ok, lets do that the ldp_vc format (pure json-ld with ld proof) is less and less used in EU.