Skip to content

Commit fbfb0f1

Browse files
authored
docs: ADR for support of Gaia-X Participant Self-Description in IdentityHub (#7)
ADR for support of Gaia-X Participant Self-Description in IdentityHub
1 parent 9a88b16 commit fbfb0f1

File tree

4 files changed

+88
-1
lines changed

4 files changed

+88
-1
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# Gaia-X Participant Self-Description
2+
3+
## Decision
4+
5+
Provide an extension for the [IdentityHub](https://github.com/eclipse-edc/IdentityHub) component enabling creation, signature and
6+
exposure of Gaia-X participant self-description.
7+
8+
## Rationale
9+
10+
In a Gaia-X dataspace, participants must describe themselves using standardised, machine comprehensible metadata called self-description (SD; cf. [definition in the Gaia-X Glossary](https://gaia-x.gitlab.io/glossary/self_description/)).
11+
According to the specification of the [Gaia-X credential format](https://gaia-x.gitlab.io/technical-committee/federation-services/icam/credential_format/),
12+
a SD is essentially a [W3C Verifiable Presentation (VP)](https://www.w3.org/TR/vc-data-model/), comprising one or more Verifiable Credentials (VC), each composed of a set of standardised claims describing the Gaia-X entity
13+
(e.g., in the case of a Participant, its name, LEI number, headquarter localisation, …). These VCs are signed by an authority endorsed by Gaia-X called a Trust Anchor (cf. the [Gaia-X Trust Framework](https://gaia-x.gitlab.io/policy-rules-committee/trust-framework/trust_anchors/))..
14+
15+
## Approach
16+
17+
As described [here](https://gitlab.com/gaia-x/gaia-x-community/gaia-x-catalogue/catalogue-document/-/blob/85c23d34a6b1a37ab5982ec511493ce3ac8d54c6/01_self-descriptions.md),
18+
the signature process can either be performed directly by the participant using an identity (certificate) provided by a Trust Anchor, or by the Trust Anchor itself. Both flavours
19+
should be supported by the extension.
20+
21+
After the Self-Description has been created, it is sent to the [Gaia-X Compliance service](https://compliance.gaia-x.eu/docs/#/Participant/ParticipantController_signContent) which validates
22+
the format of the VC claims and asserts that is has been signed by an endorsed Trust Anchor. If successful, the API returns a compliance credential, which is another VC containing a hash of the SD.
23+
24+
Both the SD and the compliance credential are then persisted into the store of the Identity Hub.
25+
Then, when a participant requests another participant SD, the SD and the associated compliance credential are
26+
retrieved from the store, assembled, and returned back to the caller.
27+
28+
## Diagram
29+
30+
As depicted below, the proposed extension will build the SD and verify it against the Gaia-X compliance API in one single step.
31+
Thus, the VP sent to the Gaia-X compliance service will contain a single VC whose claims are the one provided in input.
32+
33+
![](gaiax-participant-self-description.png)
34+
62 KB
Loading
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
@startuml
2+
skinparam BoxPadding 10
3+
autonumber "<b>0'.'"
4+
5+
box "Participant A" #LightPink
6+
actor " " as ParticipantA
7+
participant "EDC\nIdentityHub" as IdentityHub
8+
database "IdentityHub\nStore" as VcStore
9+
end box
10+
11+
box "Trust Anchor" #LightGreen
12+
participant "Signature\nService" as TrustAnchor
13+
end box
14+
15+
box "Gaia-X" #LightYellow
16+
Participant "Compliance\nService" as GaiaX
17+
end box
18+
19+
box "Participant B" #LightBlue
20+
Participant "Client" as ParticipantB
21+
end box
22+
23+
== Self-Description creation ==
24+
25+
ParticipantA -> IdentityHub ++: Send claims
26+
activate ParticipantA
27+
deactivate ParticipantA
28+
group Option A: self-signing
29+
autonumber 2
30+
IdentityHub -> IdentityHub: Normalize (canonize)\nand compute hash
31+
IdentityHub -> IdentityHub: Sign hash and\ncreate VC (claims + proof)
32+
end
33+
group Option B: notarization officer (trust anchor)
34+
autonumber 2
35+
IdentityHub -> TrustAnchor ++: Send claims
36+
return VC (claims + proof)
37+
end
38+
IdentityHub -> GaiaX ++: send VC
39+
return compliance credential (another VC)
40+
IdentityHub -> VcStore ++: store both VCs
41+
42+
== Self-Description presentation ==
43+
44+
ParticipantB -> IdentityHub : request Participant A \nsigned self-description
45+
activate ParticipantB
46+
group self-description aggregation
47+
IdentityHub -> VcStore : retrieve VCs
48+
VcStore --> IdentityHub : self-description and compliance credential
49+
end
50+
IdentityHub --> ParticipantB : complete self-description
51+
@enduml
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
1-
# Decision Records
1+
# Decision Records
2+
3+
- [2023-01-03 Gaia-X Participant Self-Description](2023-01-03-gaiax-participant-self-description/)

0 commit comments

Comments
 (0)