solid / solid/specification

Proposal: Support Decentralized Identifiers (DIDs) in addition to Web IDs

Open
#217 31 comments 21 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

doc: Ecosystem topic: identity
Dominant language
HTML
Stars
563
Forks
108
Avg merge
4d 13h
Merged PRs (30d)
3

Description

This is a placeholder proposal for the Solid project to support Decentralized Identifiers (DIDs), in addition to Web IDs.

DIDs vs WebIDs

Similarities:

  • Both DIDs and Web IDs are URIs (follow the URI RFC), both resolve to a Linked Data document
  • Both are used as identifiers for individual people, organizations, services, and other entities
  • Both are intended to store Public Key material, for uses such as authentication
  • Both store links to documents or API endpoints (such as preferences, OIDC Issuers, etc)
  • Essentially interoperable

Differences:

  • PII: In addition to key material and links, Web ID Profiles also contain Personally Identifiable Information (PII) such as User Profile Info (name, email, user picture), or the user's Social Graph (using things like foaf:knows). DID Documents, on the other hand, are required (due to GDPR pressures and similar) to not store any sort of PII, as much as is possible.
  • Vocab: Web ID Profiles use a combination of foaf, solid and cert vocabularies. DID Documents use the did vocab.
  • Key Type Support: DIDs use the Linked Data Proof and Linked Data Signatures specs, and support a wider array of key types (RSA, Ed25519, Curve25519, Secp256k1, etc) and purposes (authentication, digital signatures, encryption, delegation, capability invocation)
  • Storage and Resolution mechanisms: There are many different DID methods; some of them store their DID Documents on distributed ledgers, some of them on the Web (see the did:web method), some on IPFS, some on IoT devices, etc.
  • W3C Level of Standardization: The DID spec has been incubated for 3 years in the Credentials Community Group, and is now an official W3C DID Working Group.

(Inrupt, as well as the Solid community, should join the DID WG!)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the linked DID Core and did:web specifications alongside the Solid specification context. Define the intended DID and Web ID interoperability scope, required vocabulary and resolution behavior, and an agreed set of specification changes before implementation can be considered done.

Written by the indexing model from the issue text.

Assessment

Domain
authentication, documentation, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.