Zorgaanbiederauthenticatie en -autorisatie
0.1.0 - prototype

Publish Box goes here

Validatie, fouten en audit

Validatie, fouten en audit

Het profiel volgt een fail-closed uitgangspunt: een ontbrekend, onleesbaar, onbetrouwbaar, tegenstrijdig, verlopen of herhaald bewijs stopt de flow bij de actor die het moet controleren. Een latere actor mag niet alsnog worden aangeroepen alsof de eerdere controle is geslaagd.

Discovery en vertrouwen

De flow stopt vóór de tokenaanvraag bij:

  • onbekende doelorganisatie;
  • registratie zonder eenduidige issuer, endpoints of keys;
  • niet-valideerbare TLS-server;
  • JWKS die niet via de vertrouwde registratie is verkregen.

De referentie-workbench demonstreert een onbetrouwbare JWKS als fout tijdens de clientcontrole van het access token. Een afzonderlijk experiment trekt het geregistreerde broncertificaat in; de flow stopt dan bij discovery, vóórdat een client assertion of tokenverzoek wordt gebruikt.

Clientauthenticatie

Het tokenendpoint gebruikt OAuth-foutresponses:

OAuth-fout Toepassing
invalid_client assertiontype, formaat, handtekening, organisatieclaims, audience, tijd, replay, clientregistratie of certificaatstatus
unsupported_grant_type ander grant type dan client_credentials

Gecontroleerde foutproeven zijn:

  1. private_key_jwt als ongeldige client_assertion_type-waarde;
  2. verlopen client assertion;
  3. hergebruik van de assertion-jti;
  4. ingetrokken clientcertificaatstatus.

Autorisatie en tokenuitgifte

OAuth-fout Toepassing
invalid_authorization_details ontbrekende of ongeldige RAR, type, purpose, location, doelorganisatie of resource
invalid_dpop_proof ontbrekende of ongeldige tokenendpoint-proof
invalid_request veilig afgevangen request dat niet verder kon worden verwerkt

Gecontroleerde foutproeven zijn:

  1. verschil tussen resource en RAR-location;
  2. verkeerde doelorganisatie;
  3. niet-toegestaan gebruiksdoel.

De server geeft bij deze fouten geen access token uit.

Clientcontrole van het access token

Het clientsysteem stopt vóór de resource-aanroep bij:

  • onbetrouwbare issuerkey;
  • ontbrekende geaccepteerde RAR;
  • uitgeschakelde verplichte clientcontrole;
  • verlopen access token;
  • afwijkende issuer, client, audience, resource, doelorganisatie of purpose;
  • ontbrekende DPoP-binding.

De workbench maakt vier van deze situaties gericht zichtbaar:

  1. onbetrouwbare JWKS;
  2. RAR ontbreekt in het token;
  3. client-tokenvalidatie is uitgeschakeld;
  4. verlopen access token.

Resource-aanroep

De resource server antwoordt bij ontbrekende of ongeldige authenticatie met HTTP 401 en bij onvoldoende autorisatie met HTTP 403. De response bevat een FHIR STU3 OperationOutcome; diagnostics bevat een veilige beslisregel-id en omschrijving. Een WWW-Authenticate: DPoP-challenge onderscheidt invalid_token, invalid_dpop_proof en insufficient_scope en publiceert ES256 als geaccepteerd proofalgoritme.

Gecontroleerde foutproeven zijn:

  1. DPoP-sleutel komt niet overeen met cnf.jkt;
  2. hergebruik van de resourceproof-jti;
  3. DPoP-gebonden token wordt als Bearer verzonden.

De onderliggende DPoP-validatie controleert daarnaast proofheader, handtekening, htm, htu, tijd en ath.

Veilige foutinhoud

Responses, logs en audit mogen geen compacte access tokens, client assertions, DPoP-proofs, privésleutels, keystorewachtwoorden of volledige secrets bevatten. Wel bruikbaar zijn:

  • stabiele beslisregel-id;
  • verantwoordelijke actor en actie;
  • veilige foutcategorie;
  • tijdstip en correlatie-id;
  • uitkomst zonder gevoelige wire-inhoud.

De workbench gebruikt gesanitiseerde request- en responsebeelden om technische uitleg mogelijk te maken zonder de compacte bewijzen te tonen.

Auditverantwoordelijkheid

URA-A en URA-B houden gescheiden auditsporen. Een entry bevat minimaal:

  • correlatie-id;
  • actor;
  • actie;
  • uitkomst;
  • tijdstip.

URA-A registreert haar token- en resourceaanvragen en de ontvangen uitkomst. URA-B registreert tokenuitgifte, afwijzingen en dataverstrekking. Het gezamenlijke workbenchbeeld is alleen een onderwijsweergave; het is geen productie-auditvoorziening.

Open ontwerpkeuze: auditformaat, transport, bewaartermijnen, toegang, integriteitsbescherming, monitoring en incidentrespons moeten operationeel worden vastgesteld.