Conformance: SMART Capabilities
Bestätigungsrelevante Systeme in der Rolle eines ISiK-Ressourcenservers MÜSSEN eine SMART Capabilities JSON-Datei als '.well-known'-Dokument (vgl. RFC5785) anbieten. Clients können auf diese Art und Weise u.a. abfragen, welche Kontexte und Scopes seitens des ISiK-Ressourcenservers unterstützt werden.
ISiK-Ressourcenserver MÜSSEN dieses JSON-Dokument unter der URL bereitstellen, der durch Anhängen von /.well-known/smart-configuration
an ihre Basis-URL gebildet wird. Die Kodierung der SMART Capabilities MUSS den Vorgaben aus SMART App Launch - 8.2 - FHIR Authorization Endpoint and Capabilities Discovery using a Well-Known Uniform Resource Identifiers (URIs) entsprechen.
Normative Vorgaben für ISiK-Sicherheit in ISiK Stufe 3
Im Rahmen des Bestätigungsverfahrens für ISiK-Sicherheit in ISiK Stufe 3 werden die folgenden Angaben in den SMART Capabilities eines ISiK-Ressourcenservers geprüft:
authorization_endpoint
: Es MUSS die URL des Autorisierungs-Endpunkts des OAuth2-Autorisierungsservers angegeben sein, über die ein ISiK-Client eine Autorisierungsanfrage stellen kann.grant_types_supported
: Die OAuth2 Grant Typesauthorization_code
(Authorization Code Flow mit PKCE) UNDclient_credentials
(Client Credentials) MÜSSEN unterstützt werden.- Der Grant Type
refresh_token
SOLL unterstützt werden. Wenn dieser Grant Type angegeben ist, MUSS eine Erneuerung des Access Token über ein Refresh Token möglich sein.
- Der Grant Type
token_endpoint
: Es MUSS die URL des Token-Endpunkts des OAuth2-Autorisierungsservers angegeben sein, über die ein Zugriffstoken zur Bestätigung einer Autorisierung zum Zugriff auf geschützte Ressourcen des ISiK-Ressourcenservers abgerufen werden kann.code_challenge_methods_supported
: Es MÜSSEN die vom Autorisierungsserver unterstützten PKCE-Code-Challenge-Methoden angegeben sein. Die MethodeS256
MUSS unterstützt werden. Die Methodeplain
DARF NICHT unterstützt werden.scopes_supported
: siehe Scopes und Kontexte. Der ISiK-Ressourcenserver MUSS alle aufgeführten Scopes unterstützen. Er KANN weitere Scopes unterstützen.capabilities
permission-v2
: ISiK-Ressourcenserver MÜSSEN die SMARTv2-Syntax für die Kodierung von Scopes unterstützen. Sie KÖNNEN zusätzlich auch die grobranulare Syntax von SMARTv1 unterstützen (permission-v1
)
Beispiel für eine Anfrage
GET /.well-known/smart-configuration HTTP/1.1
Host: fhirapi.cdr.krankenhaus.de
Beispiel für eine SMART Capabilities Datei
{ "authorization_endpoint": "https://auth0.krankenhaus.de/auth/authorize", "token_endpoint": "https://auth0.krankenhaus.de/auth/token", "grant_types_supported": [ "authorization_code", "client_credentials" ], "scopes_supported": [ "patient/Patient.rs", "patient/Observation.rs", "patient/Condition.rs" ], "response_types_supported": ["code"], "introspection_endpoint": "https://auth0.krankenhaus.de/user/introspect", "revocation_endpoint": "https://auth0.krankenhaus.de/user/revoke", "code_challenge_methods_supported": ["S256"], "capabilities": [ "permission-v2" ] }