Interfaces GBC Client
did:web Interface
getDIDdocumentGBC
Feature | |
|---|---|
Type | Service |
Versie | 1.0.0 |
Systeemrolcode | - |
Groep | GBC |
Gepubliceerd | |
Delta | Initiële versie van feature. |
Feature | Versie | Dependency | Aanbieder | Afnemer |
|---|---|---|---|---|
Inhoud en formaat van een didDocumentRequest
De URL waarnaar een didDocumentRequest dient te worden verzonden wordt bepaald o.b.v. de inhoud van de <did:web>.
Een <did:web> kan conform https://w3c-ccg.github.io/did-method-web/#read-resolve worden getransformeerd naar een URL. Dit leidt dan tot een <did:web:url>.
Een <did:web:url> bestaat uit een <did:web:base-url> en optioneel een <did:web:path>.
Indien een <did:web:url> géén path component bevat, dan wordt een didDocumentRequest op de volgende wijze verzonden:
GET <did:web:url>/.well-known/did.json
Indien een <did:web:url> een path component bevat, dan wordt een didDocumentRequest op de volgende wijze verzonden:
GET <did:web:base-url>/<did:web:path>/did.json
Voorbeelden:
did:web:huisarts-delinden.nlwordt vertaald naarGET huisarts-delinden.nl/.well-known/did.jsondid:web:huisarts-delinden.nl:ura:12345678wordt vertaald naarGET huisarts-delinden.nl/ura/12345678/did.json
Inhoud en formaat van een didDocumentResponse
Een didDocumentResponse bevat de volgende headers:
Content-Type: application/did+ld+json; charset=utf-8Cache-Control: must-revalidate, max-age=<max-age-metadata>Pragma: no-cache
Een client mag verkregen responses conform de Cache-Control header directives, zoals beschreven in RFC 7234, cachen.
Zie ook Key Material and Document Handling voor een beschrijving van hoe een client dient om te gaan met een didDocumentResponse.
De body van de didDocumentResponse bevat een DID document. De inhoud van een DID-document voldoet aan DID Document properties, waarbij de volgende properties van belang zijn:
id: de did:web identifier
verificationMethod (optioneel): een lijst van publieke sleutels die eigendom zijn van deze DID, uitgedrukt als JWK (JSON Web Key), conform RFC 7517. Elke sleutel MOET een unieke id hebben (opgebouwd als did:web:example.nl#key-1) en een type van JsonWebKey2020.
assertionMethod (verplicht voor issuers van Verifiable Credentials)
authentication (verplicht voor issuers van Verifiable Presentations)
Eventuele references in assertionMethod en authentication moeten verwijzen naar verificationMethods in hetzelfde DID-document.
De sleutels die worden gehanteerd voor assertionMethod en voor authentication moeten verschillend zijn.
Een voorbeeld van de HTTP body van een didDocumentResponse is hieronder opgenomen.
{
"@context": [
"https://www.w3.org/ns/did/v1",
"https://w3id.org/security/suites/jws-2020/v1"
],
"id": "did:web:huisarts-delinden.nl",
"verificationMethod": [
{
"id": "did:web:huisarts-delinden.nl#assertion-key-1",
"type": "JsonWebKey2020",
"controller": "did:web:huisarts-delinden.nl",
"publicKeyJwk": {
"kty": "EC",
"crv": "P-256",
"x": "f83OJ3D2xF1Bg8vub9tLe1gHMzV76e8Tus9uPHvRVEU",
"y": "x_FEzRu9m36HLN_tue659LNpXW6pCyStikYjKIWI5a0"
}
},
{
"id": "did:web:huisarts-delinden.nl#auth-key-1",
"type": "JsonWebKey2020",
"controller": "did:web:huisarts-delinden.nl",
"publicKeyJwk": {
"kty": "EC",
"crv": "P-256",
"x": "iGRzTt4S5MWRMj9AHYxMj3NY2gczR30YS1YSwNivfbk",
"y": "L2n3xtAiIfikTAKztVOjvnykGqNPcEWCDAcEMJn3cNo"
}
}
],
"assertionMethod": [
"did:web:huisarts-delinden.nl#assertion-key-1"
],
"authentication": [
"did:web:huisarts-delinden.nl#auth-key-1"
]
}
Aanvullende eisen
AOF-I.GEN.130.v1 - Gebruik van veilig GBC netwerk
De interface wordt aangeboden op een veilig GBC netwerk.
Als veilig GBC netwerk is vooralsnog gekozen voor AORTA-net, dus via een GZN.
AOF-I.GEN.150.v1 - Gebruik van HTTP
HTTP-requests en -responses op deze interface worden verzonden conform HTTP versie 1.1.
Alle HTTP-verkeer wordt verzonden binnen een TLS verbinding.
AOF-I.GEN.210.v1 - TLS verbindingen
TLS clients en TLS servers dienen tenminste TLS versie 1.3 te ondersteunen en mogen hierbij slechts gebruik maken van algoritmeselecties uit de categorie "Goed", zoals genoemd in bijlage C van de ICT-beveiligingsrichtlijnen voor Transport Layer Security (TLS).
Bij het opzetten van een verbinding dient gebruik te worden gemaakt van de sterkste algoritmeselectie die door beide partijen wordt ondersteund.
Binnen TLS verbindingen dienen tijdelijke sleutels te worden toegepast, die elke 5 minuten worden ververst door middel van TLS Secure Renegotiation.
TLS verbindingen worden opgezet middels PKIo servercertificaten of, voor zorgaanbieders, m.b.v. UZI-servercertificaten.
AOF-I.GEN.300.v1 - Systeem Authenticatie (TLS)
Indien uitwisseling plaatsvindt binnen TLS verbindingen, dan dient op deze interface gebruik te worden gemaakt van eenzijdige authenticatie (TLS), waarbij de TLS server zich authenticeert bij de TLS client.
GBC-I.DID.100.v1 - Sleutelrotatie
Bij sleutelrotatie wordt een nieuwe sleutel toegevoegd aan het DID-document.
Oude sleutels hoeven niet direct te worden verwijderd. Zolang er geldige credentials in omloop zijn die met een sleutel zijn ondertekend, en de sleutel niet is ingetrokken, mag deze in het DID-document blijven staan.
Een sleutel moet worden verwijderd:
zodra het laatste credential dat ermee is ondertekend is verlopen, of
wanneer de sleutel wordt ingetrokken.