Skip to end of banner
Go to start of banner

TOP-KT-016 - SMART on FHIR Conformiteit [review]

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 22 Next »

Beschrijving

Binnen Koppeltaal is het van belang dat een 'SMART on FHIR' server implementatie  precies aangeeft wat het kan (Capability). Clients kunnen vervolgens bij de server diens capabilities opvragen.

Overwegingen

De server MOET de FHIR OAuth-autorisatie endpoints en eventuele optionele SMART-mogelijkheden die hij ondersteunt overbrengen met behulp van een Well-Known Uniform Resource Identifiers (URI's) JSON-bestand.

In eerdere versies van SMART werden sommige van deze details ook overgebracht via de CapabilityStatement van een FHIR server. Dit mechanisme is volgens SMART nu verouderd en dient daarom niet meer gebruikt te worden.

Toepassing en restricties

Het opvragen van de conformiteit kan uitgevoerd worden zonder access token

Capability Set

Een Capability Set combineert individuele mogelijkheden om een specifieke use-case mogelijk te maken. Een SMART on FHIR-server MOET een of meer Capability Sets ondersteunen.

Tenzij anders vermeld, is elke vermelde capaciteit vereist om te voldoen aan een capaciteiten set. Elke individuele SMART-server zal een gedetailleerde lijst van zijn mogelijkheden publiceren; uit deze lijst kan een Client bepalen welke van deze Capability Sets worden ondersteund.

Capabilities

Om interoperabiliteit te bevorderen, zijn de volgende SMART on FHIR-mogelijkheden gedefinieerd. Een bepaalde set van deze mogelijkheden wordt gecombineerd ter ondersteuning van een specifiek gebruik, een Capability Set.

Launch Modes

CapabilityTypeOmschrijving
Launch mode


launch-ehr

launch-standaloneWordt nu niet binnen Koppeltaal gebruikt
Autorisatie methode


authorize-post
Client type


client-public

client-confidential-symmetric

client-confidential-asymmetricDeze wordt binnen Koppeltaal gebruikt
Single Sign-On


sso-openid-connect
Launch Context


context-****
Permissions





De autorisatie endpoints die door een FHIR-bronserver worden geaccepteerd, worden weergegeven als een Well-Known Uniform Resource Identifiers (URI's) (RFC5785) JSON-document.

FHIR-endpoints die autorisatie vereisen, MOETEN een JSON-document weergeven op de locatie die wordt gevormd door /.well-known/smart-configuration toe te voegen aan hun basis-URL. In tegenstelling tot bijlage B.4 van RFC5785 kan de .well-known path-component worden toegevoegd, zelfs als het FHIR-eindpunt al een path-component bevat.

Antwoorden voor /.well-known/smart-configuration-verzoeken ZULLEN JSON zijn, ongeacht de Accept-headers die in het verzoek zijn opgegeven.

client applicaties KUNNEN een Accept-header weglaten
servers KUNNEN alle door de client geleverde Kopteksten accepteren
servers ZULLEN reageren met application/json


De configuratie vraag.

Opvragen van SMART major versie 2 configuratie per domein (zorgafnemer). Basis URL "fhir.koppeltaal.nl/domeinzorgafnemer/v2"

GET domeinzorgafnemer/v2/.well-known/smart-configuration HTTP/1.1 Host: fhir.koppeltaal.nl

Response op configuratie aanvraag.

Een JSON-document moet worden geretourneerd met het type application/json mime.


meta elementverplichtBeschrijving
issuerconditioneelDe OpenID Connect Issuer-URL van het systeem. Vereist als de mogelijkheden van de server sso-openid-connect omvatten; anders weggelaten.
jwks_uriconditioneelDe URL van de JSON Web Key Store (JWKS)  van het systeem. Vereist als de mogelijkheden van de server sso-openid-connect omvatten; anders optioneel.
authorization_endpointJaURL naar het OAuth2-autorisatie-eindpunt.
grant_types_supportedJa

matrix van ondersteunde typen toekenning op het token-eindpunt. De opties zijn:

  • "authorization_code" (wanneer SMART App Launch wordt ondersteund) en
  • "client_credentials" (wanneer SMART Backend Services wordt ondersteund).
token_endpointJaURL naar het OAuth2-tokeneindpunt.
token_endpoint_auth_methods_supportedoptioneel

Reeks client verificatie methoden die worden ondersteund door het tokeneindpunt. Binnen Koppeltaal wordt alleen

  • "private_key_jwt"

ondersteund.

registration_endpointniet gebruikenIndien beschikbaar, URL naar het OAuth2 dynamische registratie-eindpunt voor deze FHIR-server.
scopes_supportedAanbevolenArray van scopes die een client kan aanvragen. Zie scopes en startcontext. De server MOET alle hier vermelde scopes ondersteunen; aanvullende scopes KUNNEN worden ondersteund (clients moeten dit dus niet als een uitputtende lijst beschouwen).
response_types_supportedAanbevolenmatrix van OAuth2-responstype-waarden die worden ondersteund. Implementers kunnen verwijzen naar response_types gedefinieerd in OAuth 2.0 (RFC 6749) en in OIDC Core.
management_endpointAanbevolenURL waar een eindgebruiker kan zien welke applicaties momenteel toegang hebben tot data en deze toegangsrechten kan aanpassen.
introspection_endpointVerplichtURL naar het introspectie-eindpunt van een server dat kan worden gebruikt om een ​​token te valideren.
revocation_endpointAanbevolenURL naar het intrekkingseindpunt van een server dat kan worden gebruikt om een ​​token in te trekken.
capabilitiesJareeks tekenreeksen die SMART-mogelijkheden vertegenwoordigen (bijv. sso-openid-connect of launch-standalone) die de server ondersteunt.
code_challenge_methods_supportedJareeks van PKCE-code-uitdagingsmethoden ondersteund. De S256-methode MOET in deze lijst worden opgenomen en de gewone methode MOET NIET in deze lijst worden opgenomen.

LET OP: Elk domein krijgt zijn eigen endpoints.

Eisen

CNF - Eisen (en aanbevelingen) voor de conformiteit

Voorbeelden


Response SMART Config
HTTP/1.1 200 OK
Content-Type: application/json

{
  "issuer": "https://fhir.koppeltaal.nl/domeinzorgafnemer/v2",
  "jwks_uri": "https://fhir.koppeltaal.nl/domeinzorgafnemer/v2/.well-known/jwks.json",
  "authorization_endpoint": "https://fhir.koppeltaal.nl/domeinzorgafnemer/v2/auth/authorize",
  "token_endpoint": "https://fhir.koppeltaal.nl/domeinzorgafnemer/v2/auth/token",
  "token_endpoint_auth_methods_supported": [
    "client_secret_basic",
    "private_key_jwt"
  ],
  "grant_types_supported": [
    "authorization_code",
    "client_credentials"
  ],
  "registration_endpoint": "https://fhir.koppeltaal.nl/domeinzorgafnemer/v2/auth/register",
  "scopes_supported": ["openid", "profile", "launch", "launch/patient", "patient/*.rs", "user/*.rs", "offline_access"],
  "response_types_supported": ["code"],
  "management_endpoint": "https://fhir.koppeltaal.nl/domeinzorgafnemer/v2/user/manage",
  "introspection_endpoint": "https://fhir.koppeltaal.nl/domeinzorgafnemer/v2/user/introspect",
  "code_challenge_methods_supported": ["S256"],
  "capabilities": [
    "launch-ehr",
    "permission-patient",
    "permission-v2",
    "client-public",
    "client-confidential-asymmetric",
    "context-ehr-patient",
    "sso-openid-connect"
  ]
}

Links naar gerelateerde onderwerpen

OpenID configuratie: Ldapwiki: Openid-configuration

  • No labels