Skip to content

Subject NE Holder #106

Closed
Closed
@David-Chadwick

Description

@David-Chadwick

The current document (30 Jan 2018 version) states in Section 2 Terminology “A holder is typically also the primary subject of the verifiable credentials that they are holding.”
This is fine, but it means we need a new section entitled "When Subject≠Holder".
The proposed new text is attached.

  1. When Subject≠Holder
    The following diagram shows edge cases of when subject≠holder.
    <Include here the diagram at
    https://lists.w3.org/Archives/Public/public-vc-wg/2018Jan/att-0006/SubjectHolder.jpg >

Only some of the above edge cases are catered for in the data model as follows:

6.1 Credential Uniquely Identifies Subject
In this case, the claim may contain multiple properties that each provide an aspect of the identity of the subject

Example 6.1: An example of a credential that uniquely identifies subject

{   
   "id": "http://example.gov/credentials/3732",
   "type": ["Credential", "ProofOfAgeCredential"],
   "issuer": "https://dmv.example.gov",
   "issued": "2010-01-01",
   "claim": {
     "id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
     "name": "Mr John Doe",
     "address": "10 Some Street, Anytown, ThisLocal, Country X",
     "dateOfBirth": "2001-01-01",
     "gender": "male",
     "placeOfBirth" : "Anytown, ThisLocal, Country X",
     "nationality" : "X",
  },   
  "proof": { ... } }

6.2 Subject Delegates to Holder
This is supported in the data model through the process of recursion, in which the subject issues a credential to the delegated holder. In the delegated credential, the issuer is the subject, the claim contains the id of the delegated holder, and the claim property is the credential that was originally issued to the subject. An example is provided in 6.2

Example 6.2: An example of a credential delegated from a subject to a holder that is valid for 2 days

{  
   "id": "1234",
   "type": ["DelegatedCredential", "AccessCredential"],
   "issuer": "did:example:ebfeb1f712ebc6f1c276e12ec21",
   "issued": "2010-01-06T00:00:00Z ",
   "expires": "2010-01-08T00:00:00Z ",
   "claim": {
     "id": "did:example:ebfeb1f712ebc6f1c2123456789",
     "credential”: {
	   "id": "http://example.gov/credentials/3732",
	   "type": ["Credential", "AccessCredential"],
          "issuer": "https://dmv.example.gov",
          "issued": "2010-01-01",
          "claim": {
          "id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
          "access": "secretEncodedInformation”
           },
          "revocation": {
          "id": "http://example.gov/revocations/738",
          "type": "SimpleRevocationList2017"   },
       "proof": {
         "type": "LinkedDataSignature2015",
         "created": "2016-06-18T21:19:10Z",
         "creator": "https://example.com/jdoe/keys/1",
         "domain": "json-ld.org",
         "nonce": "598c63d6",
         "signatureValue": "BavEll0/I1zpYw8XNi1bgVg/sCneO4Jugez8RwDg/+     MCRVpjOboDoe4SxxKjkCOvKiCHGDvc4krqi6Z1n0UfqzxGfmatCuFibcC1wps     PRdW+gGsutPTLzvueMWmFhwYmfIFpbBu95t501+rSLHIEuujM/+PXr9Cky6Ed     +W3JT24="
               }
        }
   },   
  "proof": { ... } }

This process of recursion could continue without restriction. Therefore a new property “delegatable”, is added to the data model.

6.2.1 Delegatable Property
The delegatable property, a Boolean, states whether a credential is delegatable or not. If is present with the value true, or not present, then the credential is delegatable to a third party.

Example 6.3: An example of the delegatable property

{  
   "id": "http://example.gov/credentials/3732",
   "type": ["Credential", "ProofOfAgeCredential"],
   "issuer": "https://dmv.example.gov",
   "issued": "2010-01-01",
   "delegatable": false,
   "claim": {
     "id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
     "ageOver": 21
  },   
  "proof": { ... } }

6.3 Holder Acts On Behalf Of the Subject, Issuer or Verifier
In the case where a third party holds a credential that refers to a subject who is not the holder, and there is no obvious link in the credential that binds the subject to the holder, then it is outside the scope of the data model how the verifier determines that the holder is entitled to hold the subject’s credential. The credential itself does not contain any information that indicates who the rightful holder is.

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions