Skip to content
This repository was archived by the owner on Jun 13, 2025. It is now read-only.

Commit 082dcbe

Browse files
committed
First identity token draft
1 parent efaf241 commit 082dcbe

File tree

2 files changed

+31
-3
lines changed

2 files changed

+31
-3
lines changed

Communication/Identities/README.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Identities
2+
3+
Connector identities according to this specification are typically represented by some sort of token.
4+
This token contains statements about properties of the connector ("claims"), like its membership in one or more data spaces.
5+
In order to establish trust via these tokens, two requirements have to be met:
6+
7+
- Security-relevant claims within the token, or the entire token as a whole, MUST be signed by one or more trusted entities.
8+
- There MUST exist a sound mechanism that enables a connector to proof ownership over the tokens or claims issued for this particular connector.
9+
Specifically, any connector implementing a corresponding validation mechanism MUST be capable of identifying and rejecting tokens that have not been issued for the respective peer connector(s).
10+
11+
## X.509/OAuth2-Token-based Identities
12+
Identities of this kind are established via X.509 certificates and corresponding private keys.
13+
The tokens used to provide identity information to other peers are regular OAuth2 JSON Web Tokens (JWTs).
14+
In the IDS context, the OAuth2 server issuing such tokens is called a "Dynamic Attribute Provisioning Server", or DAPS for short.
15+
16+
### Format and Signature
17+
The format of Dynamic Attribute Tokens (DATs) and the interaction between DAPS and connector are described in the [DAPS Specification](../../Components/IdentityProvider/DAPS/README.md).
18+
As DATs are JWTs with a (RSA) signature, the issuing DAPS acts as a central, trusted entity, which also manages the contained claims about the connector.
19+
20+
### Token Ownership Verification
21+
The ownership over DAPS tokens is proven to peer connectors via ownership of a private key used for transport encryption, typically an RSA key belonging to a X.509 certificate.
22+
23+
For typical TLS encryption scenarios, the respective approach via the `transportCertsSha256` claim is documented in the [DAPS Token Response Specification](../../Components/IdentityProvider/DAPS/README.md#token-response).
24+
This claim is specified to contain an array of SHA256 fingerprints as hex-encoded strings, or a single such hash as a string.
25+
As per that specification, DAPS implementations SHOULD allow the `transportCertsSha256` claim to be overridden with a dynamic value when requesting the DAT.
26+
For non-TLS encrypted communication channels, hashes of corresponding public keys or their very values (e.g. for short representations of EC keys) MAY be used instead.
27+
28+
For verification, a connector MUST check that the fingerprint of its peer's certificate is contained in - or equal to - the value of the `transportCertsSha256` claim.

Components/IdentityProvider/DAPS/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -116,8 +116,8 @@ Contains the public keys of the used transport certificates, hashed using SHA256
116116
The identifying X509 certificate should not be used for the communication encryption.
117117
Therefore, the receiving party needs to connect the identity of a connector by relating its hostname (from the communication encryption layer) and the used private/public key pair,
118118
with its IDS identity claim of the DAT.
119-
The public transportation key must be one of the `transportCertsSha256` values.
120-
Otherwise, the receiving connector must expect that the requesting connector is using a false identity claim.
119+
The public transportation key MUST be one of the `transportCertsSha256` values.
120+
Otherwise, the receiving connector MUST expect that the requesting connector is using a false identity claim.
121121
In general, this claim holds an Array of Strings, but it may optionally hold a single String instead if the Array would have exactly one element.
122122

123123
* **extendedGuarantee**
@@ -189,7 +189,7 @@ DAPS implementations are advised to explicitly white-list any requestable claims
189189
and to check requested values as appropriate.
190190

191191
To allow clients to specify their own transport certificates,
192-
DAPS implementations should support specifying values for the **transportCertsSha256** claim.
192+
DAPS implementations SHOULD support specifying values for the **transportCertsSha256** claim.
193193

194194
### Example
195195

0 commit comments

Comments
 (0)