Interfaces Autorisatie Server MedMij
Metadata Interface
Metadata
De metadata van de Autorisatie Server kan, conform RFC 8414, worden opgehaald op een well-known URL die kan worden geconstrueerd m.b.v. de <iss> claim uit het token (zie ook section-3.1 van RFC8414). De Authorization Server Metadata Response bevat de volgende attributen. Dit betekent dat bij een iss die gelijk is aan: https://FQDN/some-path-extension, de metadata kan worden verkregen bij: https://FQDN/.well-known/oauth-authorization-server/some-path-extension.
De metadata omvat de volgende attributen:
issuer
;authorization_endpoint
;token_endpoint
;jwks_uri
;response_types_supported
;signed_metadata
.
De response die wordt geretourneerd bevat daarnaast de volgende headers:
Cache-Control: must-revalidate, max-age=<max-age-metadata>
Pragma: no-cache
Een client mag verkregen metadata conform de Cache-Control
header directives, zoals beschreven in RFC 7234, cachen.
De waarde van max-age-metadata
is configureerbaar in de autorisatie server. Initiële waarde is 14400 seconden (4 uur).
JWKS
De public key waarmee de digitale handtekening kan worden gecontroleerd wordt als een JWK beschikbaar gesteld. De URL waarop de JWK Set kan worden opgevraagd (jwks_uri
) maakt deel uit van de AS metadata response. Iedere JSON Web Key (JWK) in de set, die beschikbaar wordt gesteld op de jwks_uri
, bevat een kid
parameter. De juiste JWK in de JWK Set wordt gevonden o.b.v. de waarde van het kid
attribuut in de header van de ontvangen JWT.
De response die wordt geretourneerd na een HTTP GET op de jwks_uri
bevat naast de JWK Set de volgende headers:
Cache-Control: must-revalidate, max-age=<max-age-jwks>
Pragma: no-cache
Een client mag verkregen JWK's conform de Cache-Control
header directives, zoals beschreven in RFC 7234, cachen.
De waarde van max-age-jwks
is configureerbaar in de autorisatie server. Initiële waarde is 14400 seconden (4 uur).
De JWK bevat de volgende attributen, waar de definitie van de attributen kan worden gevonden in RFC 7517 en RFC 7518:
"kty":"RSA"
"alg":"RS256"
"use":"sig"
"kid":"<the identifier of the key-pair used to sign this JWT>"
"x5c":"<de van toepassing zijnde keten van PKIX certificaten>"
"n":"<the modulus value for the RSA public key>"
"e":"<the exponent value for the RSA public key>"
AORTA Token Interface
MedMij Token Exchange
De MedMij Token Exchange Interface is gebaseerd op OAuth token exchange.
AOF.AS-I.MTE.100.v1
Het MedMij Token Exchange endpoint is slechts benaderbaar voor de MedMij-in component van de resource broker.
Een tokenExchangeRequest wordt op de volgende wijze verzonden:
POST [base endpointadres]/tokenx/v1
Bij het verzenden van een tokenExchangeRequest dienen de volgende HTTP headers te worden meegezonden:
Feature | AORTA-ID HTTP Header |
---|---|
Type | Subfeature |
Versie | 1.0.0 |
Systeemrolcode | - |
Groep | HTTP Headers |
Gepubliceerd |
|
Delta | Initiële versie van feature. |
AORTA-ID: initialRequestID=<UUID conform RFC4122>; requestID=<UUID conform RFC4122>
Het initialRequestID attribuut bevat het ID van het allereerste request in de hele keten en dient te worden opgenomen in de logbestanden van alle partijen in de keten, zodat bij foutopsporing de verschillende logbestanden aan elkaar kunnen worden gerelateerd.
Het requestID is voor iedere request message uniek. In requests wordt deze gegenereerd door de client. Ook het requestID dient te worden opgenomen in de verschillende logbestanden, zodat altijd duidelijk is op welk bericht een log entry van toepassing is.
AOF.AS-I.MTE.200.v2
Een tokenExchangeRequest bevat de volgende attributen:
Parameter | Cardinaliteit | Toelichting |
grant_type | 1..1 | Vaste waarde "urn:ietf:params:oauth:grant-type:token-exchange". |
audience | 1..1 | Bevat het appID en de FQDN van de GBx-applicatie, die deze interactie gaat ontvangen. Formaat: ["<appID>", "<FQDN>"]. Een appID heeft het formaat: "urn:oid:2.16.840.1.113883.2.4.6.6.<applicatie-id>". Aan iedere GBx-applicatie die is aangesloten op AORTA wordt een eigen <applicatie-id> toegekend. |
requested_token_type | 1..1 | Vaste waarde "urn:ietf:params:oauth:token-type:jwt". |
requested_token_version | 1..1 | De versie van de AORTA access_token definitie die moet worden gehanteerd. Bijv. “3.0”. |
subject_token | 1..1 | Het ontvangen MedMij access_token. |
subject_token_type | 1..1 | Type aanduiding van het subject_token. Vaste waarde "urn:ietf:params:oauth:token-type:access_token". |
scope | 1..1 | Een string met daarin de gevraagde scope van autorisatie, die bestaat uit de volgende opeenvolgende delen, van elkaar gescheiden door een "~":
Wanneer een transformatie is vereist voor een interactie, dan wordt dit in de scope aangegeven door het interactie-id uit te breiden met "/<transformation-id>". Voorbeelden scope:
|
De autorisatieserver retourneert een tokenExchangeResponse met de volgende attributen:
Parameter | Cardinaliteit | Toelichting |
access_token | 1..1 | Een JWT-based AORTA access_token. |
issued_token_type | 1..1 | Type aanduiding van de representatievorm van het uitgegeven access_token. Vaste waarde "urn:ietf:params:oauth:token-type:jwt". |
token_type | 1..1 | Vaste waarde "Bearer". |
expires_in | 1..1 | Geldigheid in seconden van het uitgegeven AORTA access_token, deze moet in overeenstemming zijn met de geldigheid van het ingewisselde MedMij access_token. |
scope | 1..1 | Dezelfde string, zoals ontvangen in het token exchange request. |
authenticatie_token | 1..1 | De DigiD SAML-Assertion, die wordt gecodeerd met behulp van base64url, conform RFC 4648. |
client_id | 1..1 | Het ID van de PGO Server waaraan het MedMij access_token is uitgereikt. |
Te hanteren error responses zijn eveneens beschreven in RFC 8693.
AS-Logging Interface
AOF.AS-I.ALI.150.v1
Logbestanden die nodig zijn voor de managementrapportages kunnen, conform gemaakte afspraken in het DAP, middels een API, via HTTPS (TLS) door VZVZ-beheer worden opgehaald. Technisch formaat van de logbestanden is JSON.
De logging kan desgewenst worden opgesplitst in meerdere JSON-bestanden. Ieder JSON-bestand heeft wel altijd betrekking op interacties die plaats hebben gevonden conform één specifieke MedMij-release. Op deze manier kan in de rapportages een beeld worden gecreëerd van het gebruik van een bepaalde MedMij-release in de tijd.
De loggegevens die beschikbaar moeten worden gesteld zijn hieronder per interface van de Autorisatie Server beschreven.
Logging m.b.t. de MedMij Autorisatie Interface
AOF.AS-I.ALI.200.v1
Ontvangen authorization requests en de bijbehorende geretourneerde authorization responses of error responses:
timestamp ontvangst
sessie-id
zorgaanbiedernaam
gegevensdienst-id's en bijbehorende gegevensdienstnamen
client_id en organisatienaam
timestamp tonen landingspagina
timestamp redirect naar PGO Server
een hash van de geretourneerde authorization code
geretourneerde HTTP statuscodes en error-codes
Verzonden ZAB requests en de bijbehorende ontvangen ZAB responses of error responses:
timestamp verzending
sessie-id
zorgaanbiedernaam
timestamp ontvangst response
ontvangen statuscode van ZAB
ontvangen URA
alle ontvangen appID's
ontvangen error-codes
Authenticatie gebruiker:
sessie-id
timestamp redirect naar DigiD
timestamp gebruiker terug van DigiD
ontvangen statuscode van DigiD
Verzonden artefact resolve berichten en de bijbehorende geretourneerde artefact responses of error responses:
timestamp verzending
sessie-id
timestamp ontvangst response
status uit artefact response
status van de ontvangen SAML-Assertion (duidt mogelijk op mis-use-case)
ontvangen error-codes (duidt mogelijk op mis-use-case
Logging m.b.t. de MedMij User Interface
AOF.AS-I.ALI.300.v1
Getoonde toestemmingspagina's en verleende of geweigerde toestemmingen:
timestamp tonen
sessie-id
timestamp ontvangst keuze
resultaat (toestemming of weigering)
Logging m.b.t. de MedMij Token Interface
AOF.AS-I.ALI.400.v1
Ontvangen access token requests en de bijbehorende geretourneerde access token responses of error responses:
timestamp ontvangst
sessie-id
een hash van de ontvangen authorization code (wel zodanig dat deze kan worden gebruikt om een token request te relateren aan een authorization request)
timestamp retour
de jti claim van het geretourneerde access token
geretourneerde gegevensdienst-id's (in scope attribuut)
geretourneerde HTTP statuscodes en error-codes
Logging m.b.t. de MedMij Introspection Interface
AOF.AS-I.ALI.500.v1
Ontvangen introspection requests en de bijbehorende geretourneerde introspection responses of error responses:
timestamp ontvangst
sessie-id
de jti claim van het access token
timestamp retour
status token (actief of niet)
geretourneerde HTTP statuscodes en error-codes
Logging m.b.t. de AORTA Token Interface - MedMij Token Exchange
AOF.AS-I.ALI.600.v1
Ontvangen token exchange requests en de bijbehorende geretourneerde token exchange responses of error responses
sessie-id
Inhoud van het ontvangen request
timestamp
de jti claim van het subject_token
subject_token_type
Inhoud van de geretourneerde response
timestamp
de jti claim van het geretourneerde AORTA access_token
token_type
geretourneerde HTTP statuscodes en error-codes
Logging m.b.t. de AORTA Token Interface - AORTA Token Exchange
AOF.AS-I.ALI.700.v1
Volgt in een latere versie van AoF.
MedMij Interfaces
AOF.AS-I.MMI.100.v1
De autorisatieserver biedt een aantal MedMij interfaces. De autorisatieserver ondersteunt hierbij de volgende MedMij use cases:
UC Verzamelen;
UC Delen.
MedMij User Interface
AOF.AS-I.MMI.200.v1
MedMij Autorisatie Interface
AOF.AS-I.MMI.300.v1
De autorisatieserver biedt de Authorization interface, zoals gespecificeerd in de te ondersteunen releases van het MedMij afsprakenstelsel.
MedMij Token Interface
AOF.AS-I.MMI.400.v1
De autorisatieserver biedt het Token interface, zoals gespecificeerd in de te ondersteunen releases van het MedMij afsprakenstelsel.