w3c-ccg / universal-wallet-interop-spec

A data model and abstract interfaces for digital wallets
http://w3id.org/wallet
Other
56 stars 13 forks source link

Defining Connection #57

Open kimdhamilton opened 3 years ago

kimdhamilton commented 3 years ago

Connection in the data model is defined as "Information about a relationship between identifiers", and the only use mentioned so far is Aries connections. Before we bake that in, I want to see if there's interest in more general uses of Connection.

For example, this could be used to represent a relationship with a credential issuer that doesn't even use anything DID-y (DID Comm, DID Auth, etc) as its primary means of authentication. In this case, Connection might contain some basic discovery uri(s) and other metadata.

Proposing a detailed data structure (at the level that Okta might represent a Connection to different types of IDPs) would definitely be out of scope at this level -- the main point is simple type and discovery information. Of course, people are free to define any special Connection types that they want and reference it in their LD context.

Anyone else interested in this?

OR13 commented 3 years ago

If we want to generalize connections as being a relationship between 2 parties, where one is a holder (the wallet user).

This would work for Aries, but also, OAuth, etc...

OR13 commented 3 years ago

We need better examples of "connections" that are not aries related.

kimdhamilton commented 3 years ago

I took a very rough stab.

Suppose I want to describe a connection to the provider of my university credentials, using a flow like this example. In this scenario, the issuer wants the subject to authenticate with their usual (non-DID-aware) method.

This attempts to use Connection to describe basic information about the relationship and discovery information.

@dmitrizagidulin: what do you think?

{
  "@context": ["https://w3id.org/wallet/v1"],
  "id": "urn:uuid:2f0bdd8f-1c8e-4e13-9574-8800deeb1023",
  "name": "My University Registrar",
  "image": "https://via.placeholder.com/150",
  "description" : "The identifier that connects me to my university registrar, issuer of my academic credentials",
  "tags": ["education"],
  "correlation": ["bd25eedf-4af7-4e18-b01f-d5121225d2b0"],
  "type": "Connection",
  "connection": {
    "type": "SomeTypeDescribingOidcConnections"
    "created_at": "2021-03-01 11:05:45.433111Z",
    "connection_id": "37e573ab7-7ad1-4580-97f9-0c734f85cec9",
    "updated_at": "2020-06-01 14:06:58.610756Z",
    "issuer": "<OpenID Provider Issuer Discovery URI>"
  }
}