decentralized-identity / interoperability

The archive and information hub for the cross-community interoperability project. Focus is on education and familiarity for various efforts across multiple groups for interoperable decentralized identity infrastructure.
https://identity.foundation/interop/
Apache License 2.0
92 stars 19 forks source link

Interop has adopted Credential Exchange flow #15

Closed OR13 closed 3 years ago

OR13 commented 4 years ago

With AuthN Adopted, it is now time to discucss credential exchange / delivery.

There are Agents and Hubs, as well as HTTP, Identity Wallets, all will have opinion about how they would like to receive credentials.

Lets continue the discussion regarding DIDComm and Agent / Hub Integration.

Please comment a completed end to end example of how you think this can work, with links to supporting documentation.

OR13 commented 4 years ago

Worst case scenario, we can provide a custom http interface that takes id_tokens and returns credentials / presentations in JSON format.

GET & POST

/credential/:id
/presentation/:id

A user can only add or get credentials if they are the issue for the subject, id_token will be used for Authorization Header.

dhh1128 commented 4 years ago

The credential exchange should be accomplished using this DIDComm protocol: https://github.com/hyperledger/aries-rfcs/blob/master/features/0037-present-proof/README.md. This protocol supports JWT-based credentials, and it can run over http(s). Plus it already has some implementations.

OR13 commented 4 years ago

awesome, can we add links for any implementations and describe the flow with 2 different DID Methods?

Issuer : did:btcr:xxcl-lzpq-q83a-0d5 holds

Subject: did:sov:WRfXPg8dantKVubE3HX8pw wants

Per the RFC it looks like there are some negotiation messages which need to be sent

I imagine these messages are sent by agents, which much be listed in serviceEndpoints.

Can we add a reference to the agent code that can support (or will soon support) this functionality?

I believe this library would support creating of the messages: https://github.com/decentralized-identity/DIDComm-js

If thats the case, we just need to know how to send them to the agents.