RFC - Entity Representation For Claims And Attestation #98
Replies: 3 comments
-
I think we need to differentiate "electronic registry" aspects with VCs slightly. They are not the same. Registry stores the profile of the actors which contains many VCs (linked). Of course profile itself can be seen as an identity credential, but, it is important that we carefully distinguish them and make it "linked VCs" to ensure actor can selectively make claims using portions of the registry. I suggest we use the Google doc created by Rahul Kulkarni to bring it all together. |
Beta Was this translation helpful? Give feedback.
-
"attestations": [
{
"uri": "https://example.com/registry/api/credential/RBFrXEOG890jZBUf1Vpuy",
"claims": [
"https://example.com/registry/api/student/claim/GcivYPrwdeIOREu4UqCpO854/",
"https://example.com/registry/api/student/claim/GcivYPrwdeIOREu4UqCpO834/",
]
}
]
|
Beta Was this translation helpful? Give feedback.
-
Agree on credentials. How attributes get stored in the schema may be an implementation detail. What should be stored as part of the attributes is something the spec should call out. I've incorporated the clarity that @gamemaker1 provided in his RFC into the first point (Nouns) under section 6 of the Draft Technical Spec Google Doc. Please do review and comment. @gamemaker1 @pramodkvarma @bharatkashyap @dileepbapat @tejash-jl |
Beta Was this translation helpful? Give feedback.
-
I would like to propose the following representation for claims and attestations in the entity data model for consideration. This is an improvement over the Sunbird RC specification as given here. Some of the improvements are an adaptation of the W3C's verifiable credentials specification for entities in an electronic registry.
Suggested improvements include:
id
andvalue
properties.RFC - Entity Representation For Claims And Attestation
Terminology
Registry
Any data store that stores and provides API endpoints to create, access, modify and delete data in accordance with this specification.
Entity
Any record stored in the registry.
Schema
A minimum representation of all entities of the same type.
Claim
An assertion made about an entity, which must be verified to be considered true.
Attestation
The process of evaluating a claim made about an entity, checking if it is indeed true, and then generating a cryptographically secure proof to declare it so.
Attestor
A role an entity might perform by receiving a representation of an entity and putting its claims through the process of attestation, if it is designated as attestor for a certain claim made by another entity.
Representation
A student entity might be represented as follows:
Following is a line-by-line breakdown of the entity representation above:
The
baseUrl
property tells the client parsing this JSON representation that the API path actually starts after this point in the URL. Theschemas
field can be used to extend the representation by adding more fields to it.The
id
field is a direct URL to the entity. If you make a GET call to the URL, it should return exactly this representation of the entity. Thekind
field gives us a URL to the schema of the entity.Each claim is represented by a JSON object as follows:
In this case, the claim is
class
, the value is10
.The attestationPolicy for a claim can be mentioned in the schema as follows:
In this case, the claim can be attested only by a
teacher
entity that is in the same school as the student. When evaluating thecondition
, the field's value must be attested, else it will be considered null.Each attestation is represented as follows:
In this case, the attestor is a
teacher
entity. The attestation of theschool
claim took place on2021-10-08T19:37:03+1200
and the cryptographic proof is attached as thesignature
object.In this case, the claims have been signed using an RSA private key whose ID is
IL5JLA2MinN9vVLFUxiLR
. Theclaims
object of the entity representation at the time of attesting is taken as the payload of the JWT, signed by a private key by the registry, and appened to theattestations
array.Beta Was this translation helpful? Give feedback.
All reactions