Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • iss: de client_id van de applicatie
  • sub: de client_id van de applicatie
  • aud: de URL van het token_endpoint
  • iat: timestamp van uitgifte
  • jti: unieke waarde per token
  • exp: geldig tot timestamp, maximaal 5 minuten

...

  • De module applicatie haalt het smart configuratie op bij de FHIR service (.well-known/smart-configuration). Dit statement bevat de volgende endpoints: 
    • token_endpoint
  • De applicatie genereert een JWT token op basis van de private key met de volgende velden:
    • iss: de client_id van de applicatie
    • sub: de client_id van de applicatie
    • aud: de URL van het token_endpoint
    • iat: de timestamp now()
    • jti: een unieke waarde voor deze aanvraag, UUIDs zijn hiervoor geschikt.
    • exp: de timestamp now() + 5 minuten
  • De applicatie benadert het token_endpoint endpoint met de volgende parameters in een application/x-www-form-urlencoded  POST request:
    • scope
    • grant_type: `client_credentials`
    • client_assertion_type: `urn:ietf:params:oauth:client-assertion-type:jwt-bearer`
    • client_assertion: het gegenereerde JWT token uit de vorige stap.
  • De autorisatie service ontvangt het token, daarbij onderneemt hij de volgende stappen:
    • Op basis van de domeinconfiguratie wordt de juiste JWKS URL opgehaald om de token te valideren.
    • De token wordt gevalideerd op basis van de kid en de keys beschikbaar in de JWKS URL.
    • De client_id wordt gekoppeld aan de juiste Device in de FHIR resource service.
    • In de domeinconfiguratie wordt de juiste rol(en) opgehaald, deze resulteert in een lijst van permissies.
  • De autorisatie service genereert een access_token met de volgende waarden:
    • iss: de base url van de autorisatie service
    • azp: de client_id 
    • iat: timestamp now()
    • exp: timestamp now() + 5 min
    • scope: de lijst van permissies, geformatteerd volgens het door koppeltaal vastgelegde formaat.
  • De autorisatie service geeft het volgende JSON geformateerde antwoord:
    • access_token, het JWT token uit de vorige stap.
    • token_type: altijd ‘bearer’
    • expires_in: idem als de iat uit de JWT
    • scope:  idem als de scope uit de JWT
  • De applicatie kan nu de FHIR resource service benaderen door gebruik te maken van de access_token. De access token wordt  in het request in de Authorization header meegegeven in het volgende formaat:

    Authorization: Bearer {{access_token}}

  • De FHIR resource service ontvangt de access_token en valideert deze door middel van de JWKS URL van de autorisatie service. Deze is in de .well-known/smart-configuration van de FHIR resource service beschikbaar.
  • De  FHIR resource service interpreteert de permissies zoals deze in de scope zijn weergegeven en beperkt de  toegang van de applicatie op basis van deze permissies.

...