Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
SMART auf FHIR OAuth 2.0-Bereichen, unterstützt von HealthLake
HealthLake verwendet OAuth 2.0 als Autorisierungsprotokoll. Wenn Sie dieses Protokoll auf Ihrem Autorisierungsserver verwenden, können Sie HealthLake Datenspeicherberechtigungen (Erstellen, Lesen, Aktualisieren, Löschen und Suchen) für FHIR-Ressourcen definieren, auf die eine Client-Anwendung Zugriff hat.
Das SMART on FHIR-Framework definiert eine Reihe von Bereichen, die vom Autorisierungsserver angefordert werden können. Beispielsweise sollte eine Client-Anwendung, die nur darauf ausgelegt ist, dass Patienten ihre Laborergebnisse oder ihre Kontaktdaten einsehen können, nur berechtigt sein, Bereiche anzufordernread.
Anmerkung
HealthLake bietet Unterstützung für SMART auf FHIR V1 und V2, wie unten beschrieben. SMART auf FHIR AuthorizationStrategywird bei der Erstellung Ihres Datenspeichers auf einen der folgenden drei Werte gesetzt:
-
SMART_ON_FHIR_V1— Support nur für SMART auf FHIR V1, einschließlich der Berechtigungenread(read/search) undwrite(create/update/delete). -
SMART_ON_FHIR— Support für SMART auf FHIR V1 und V2, einschließlichcreate,read,updatedelete, undsearchBerechtigungen. -
AWS_AUTH— Die AWS HealthLake Standard-Autorisierungsstrategie; nicht mit SMART auf FHIR verbunden.
Umfang der eigenständigen Markteinführung
HealthLake unterstützt den Bereich des eigenständigen Startmoduslaunch/patient.
Im eigenständigen Startmodus fordert eine Client-Anwendung Zugriff auf die klinischen Daten des Patienten an, da der Benutzer und der Patient der Client-Anwendung nicht bekannt sind. Daher fordert die Autorisierungsanfrage der Client-Anwendung ausdrücklich die Rückgabe des Patientenbereichs an. Nach erfolgreicher Authentifizierung gibt der Autorisierungsserver ein Zugriffstoken aus, das den angeforderten Patientenstartbereich enthält. Der benötigte Patientenkontext wird zusammen mit dem Zugriffstoken in der Antwort des Autorisierungsservers bereitgestellt.
| Scope | Description |
|---|---|
|
Ein Parameter in einer OAuth 2.0-Autorisierungsanfrage, der die Rückgabe von Patientendaten in der Autorisierungsantwort anfordert. |
Die Ressourcen von SMART auf FHIR umfassen folgende Bereiche HealthLake
HealthLake definiert drei Ebenen von SMART für FHIR-Ressourcenbereiche.
-
patientBereiche gewähren Zugriff auf spezifische Daten über einen einzelnen Patienten. -
userBereiche gewähren Zugriff auf bestimmte Daten, auf die ein Benutzer zugreifen kann. -
systemBereiche gewähren Zugriff auf alle FHIR-Ressourcen, die sich im HealthLake Datenspeicher befinden.
In den folgenden Abschnitten ist die Syntax für die Erstellung von FHIR-Ressourcenbereichen mit SMART auf FHIR V1 oder SMART auf FHIR V2 aufgeführt.
Anmerkung
Die Autorisierungsstrategie von SMART auf FHIR wird bei der Erstellung Ihres Datenspeichers festgelegt. Weitere Informationen finden Sie unter AuthorizationStrategy in der AWS HealthLake -API-Referenz.
SMART auf FHIR V1-Bereichen, unterstützt von HealthLake
Bei der Verwendung von SMART auf FHIR V1 gilt folgende allgemeine Syntax für die Erstellung von FHIR-Ressourcenbereichen. HealthLake Scrollen Sie über die Schaltfläche Kopieren, um den gesamten URL-Pfad im folgenden Beispiel anzuzeigen.
('patient' | 'user' | 'system') '/' (fhir-resource | '*') '.' ('read' | 'write' | '*')
| Syntax des Geltungsbereichs | Beispiel für einen Geltungsbereich | Ergebnis |
|---|---|---|
|
patient/AllergyIntolerance.* |
Die Client-Anwendung für Patienten hat read/write Zugriff auf Instanzebene auf alle aufgezeichneten Allergien. |
|
user/Observation.read |
Die Benutzer-Client-Anwendung hat read/write Zugriff auf Instanzebene auf alle aufgezeichneten Beobachtungen. |
system/('read' | 'write' | *) |
system/*.* |
Die System-Client-Anwendung hat read/write Zugriff auf alle FHIR-Ressourcendaten. |
SMART auf FHIR V2-Bereichen, unterstützt von HealthLake
Bei Verwendung von SMART auf FHIR V2 gilt die allgemeine Syntax für die Erstellung von FHIR-Ressourcenbereichen für Folgendes. HealthLake Scrollen Sie über die Schaltfläche Kopieren, um den gesamten URL-Pfad im folgenden Beispiel anzuzeigen.
('patient' | 'user' | 'system') '/' (fhir-resource | '*') '.' ('c' | 'r' | 'u' | 'd' | 's')
Anmerkung
Um SMART auf FHIR V2 zu verwenden, müssen Sie den Wert permission-v2capabilities Metadatenzeichenfolge übergeben, die ein Mitglied des IdentityProviderConfigurationDatentyps ist.
HealthLake unterstützt detaillierte Bereiche. Weitere Informationen finden Sie unter Unterstützte detaillierte Bereiche
| Syntax des Geltungsbereichs | Beispiel für einen V1-Bereich | Ergebnis |
|---|---|---|
|
user/Observation.read |
Erlaubnis zum Lesen und Durchsuchen der Observation Ressource für den aktuellen Patienten. |
|
system/*.* |
Die System-Client-Anwendung hat vollen create/read/update/delete/search-Zugriff auf alle FHIR-Ressourcendaten. |
SMART auf FHIR-Bereichen V2.2 , unterstützt von HealthLake
V2.2 erweitert die V2-Bereiche um eine Filterung, die auf Suchparametern basiert. Autorisierungsserver können jetzt Bereiche vergeben, die den Zugriff anhand bestimmter Datenmerkmale einschränken und nicht nur nach Ressourcentyp und CRUDS-Vorgang.
Alles von V2 bleibt unverändert. V2.2 ist rein additiv:
-
Bestehende V2-Bereiche (ohne Filter) funktionieren weiterhin wie zuvor.
-
Die V2-Grammatik wird um eine optionale
?param=valueAbfragezeichenfolge erweitert. -
Keine Änderungen an den Bereichsebenen (
patient/user/system), Ressourcentypen oder CRUDS-Buchstaben.
Voraussetzungen
Bevor Sie SMART auf FHIR aktivieren V2.2, stellen Sie Folgendes sicher:
-
Ihr Datenspeicher wurde mit der
AuthorizationStrategyEinstellung auf erstelltSMART_ON_FHIR(unterstützt sowohl V1 als auch V2). Datenspeicher, dieSMART_ON_FHIR_V1oder nicht verwenden,AWS_AUTHsind berechtigt. -
Ihr Datenspeicher ist bereits
permission-v2imcapabilitiesArray enthalten. V2.2 ist additiv, da es V2 erweitert und nicht eigenständig verwendet werden kann. -
Ihr IDP-Lambda ist so konfiguriert, dass es das V2.2 Bereichsformat (Bereiche, die
?Abfragesyntax enthalten) validiert und durchläuft.
Aktiviert V2.2
Der Aktivierungspfad hängt davon ab, ob Sie einen neuen Datenspeicher erstellen oder einen vorhandenen aktualisieren.
Neue Datenspeicher
Wenn Sie einen neuen Datenspeicher erstellen, permission-v2.2 fügen Sie dem capabilities Array im Metadata Feld Folgendes hinzu IdentityProviderConfiguration:
"capabilities": [ "launch-ehr", "sso-openid-connect", "client-public", "permission-v2", "permission-v2.2" ]
Bestehende Datenspeicher
Um SMART auf FHIR V2.2 in einem vorhandenen Datenspeicher permission-v2.2 zu aktivieren, fügen Sie es dem capabilities Array in Ihrem Metadata Feld hinzu IdentityProviderConfigurationund senden Sie die Änderung mitUpdateFHIRDatastore. Weitere Informationen finden Sie unter Aktualisieren eines HealthLake Datenspeichers.
Voraussetzungen:
-
permission-v2muss im Array verbleiben. V2.2 erweitert V2 und kann nicht alleine verwendet werden. -
AuthorizationStrategymussSMART_ON_FHIR(nichtSMART_ON_FHIR_V1oderAWS_AUTH) sein. -
Durch die Aktualisierung der Identity Provider-Konfiguration wird sie vollständig ersetzt. Schließen Sie also alle vorhandenen Felder und Funktionen mit ein
permission-v2.2.
Die Änderung wird sofort und ohne Ausfallzeiten wirksam. Rufen Sie zur Überprüfung Folgendes ab Discovery-Dokument (erfordert SigV4):
GET {healthlake-endpoint}/r4/.well-known/smart-configuration
Wenn das capabilities Array in der Antwort Folgendes enthältpermission-v2.2, ist SMART auf FHIR aktiv V2.2 .
Syntax für erweiterten Geltungsbereich
Die V2-Grammatik wird um eine optionale Abfragezeichenfolge erweitert:
V2: (patient|user|system) / resource . cruds V2.2: (patient|user|system) / resource . cruds [? param=value [& param=value ...]]
| Komponente | Description |
|---|---|
|
Search-parameter filtern. Nur Ressourcen, die diesem Kriterium entsprechen, sind zugänglich. |
|
Zusätzlicher Filter. Mehrere Filter sind UND-verknüpft — alle müssen übereinstimmen. |
Regeln:
-
Filter gelten nur für den im Bereich angegebenen Ressourcentyp. Wildcard (
*) mit Filtern wird nicht unterstützt. -
Die Parameter müssen für den Ressourcentyp gemäß der Suchkonfiguration Ihres Datenspeichers gültig sein (überprüfen Sie dies über
GET /r4/metadata). -
Die Zeichenfolge mit dem vollständigen Gültigkeitsbereich (z. B.
patient/Observation.rs?category=laboratory) ist der Literalwert, der im OAuth 2.0-Bereichsparameter und im Zugriffstoken-Anspruch erscheint.scp -
URL-encode Sonderzeichen gemäß RFC 6749
in Autorisierungsanfragen (z. B. →). |%7C -
V2.2 Unterstützt Präfixvergleicher für Datums-, Zahlen- und Mengenparameter (z. B.).
?date=eq2023-01-01V2.2 unterstützt auch Suchparameter-Modifikatoren.
Beispiele für den Geltungsbereich
| Scope | Zugriff gewährt |
|---|---|
|
Nur |
|
Nur |
|
Nur |
|
Nur |
|
Nur aktive |
Verhalten bei der Durchsetzung
Wenn ein Token V2.2 Bereiche enthält, werden Filter pro Vorgang HealthLake angewendet:
| Operation | Behavior |
|---|---|
Lesen ( |
Nur erfolgreich, wenn die Ressource allen Bereichsfiltern entspricht. Andernfalls wird 403 zurückgegeben. |
Suche ( |
Bereichsfilter überschneiden sich mit der Abfrage. Es werden nur passende Ressourcen zurückgegeben. |
Create/Update ( |
Die Ressource muss die Bereichsfilter erfüllen, um geschrieben zu werden. Andernfalls wird 403 zurückgegeben. |
Löschen ( |
Die Zielressource muss den Bereichsfiltern entsprechen. Andernfalls wird 403 zurückgegeben. |
Vorrang des Geltungsbereichs
-
Mehrere V2.2 Bereiche für denselben Ressourcentyp sind vereinigt (ODER bereichsübergreifend).
-
Ein breiterer V2-Bereich ohne Filter (z. B.
patient/Observation.rs) gewährt vollen Zugriff, unabhängig von etwaigen V2.2 engeren Bereichen im selben Token. -
V2.2 Bereiche in einem Datenspeicher ohne
permission-v2.2Aktivierung werden stillschweigend ignoriert.
Einschränkungen
Folgendes wird in V2.2 Bereichsfiltern nicht unterstützt:
-
Zusammengesetzte Suchparameter (z. B.
code-value-quantity). -
Verkettete Suchparameter (z. B.
subject:Patient.name=Smith). -
_include/_revincludeSuchparameter. -
$export/$davinci-data-export(Massendaten) — V2.2 Filter gelten nicht; beim Massenexport werden V2-Bereiche verwendet. -
Ressourcentyp mit Platzhaltern kombiniert mit Filtern (z. B.
patient/*.rs?category=LABist ungültig). Sie müssen einen expliziten Ressourcentyp angeben, wenn Sie Suchparameterfilter verwenden (z. B.).patient/Observation.rs?category=LAB
| Symptom | Ursache | Korrigieren |
|---|---|---|
Der Token-Bereich wurde nicht erkannt |
V2.2 im Datenspeicher nicht aktiviert |
Überprüfen Sie die Aktivierung |
403 auf einer vorhandenen Ressource |
Die Ressource entspricht nicht dem Bereichsfilter |
Überprüfen Sie die Ressourcenwerte anhand der Bereichsparameter. |
Leere Suchergebnisse |
Der Bereichsfilter ist enger als die Abfrage |
Die Ergebnisse sind der Schnittpunkt von Abfrage- und Bereichsfiltern. |
|
Ungültiger Suchparameter im Gültigkeitsbereich |
Bestätigen Sie den Parameter über |
End-to-end Beispiel
Szenario: Eine Patienten-App sollte ab 2023 nur endgültige Laborergebnisse anzeigen.
-
Der Autorisierungsserver gibt ein Token mit folgendem Gültigkeitsbereich aus:
patient/Observation.rs?category=laboratory&status=final&date=ge2023-01-01 -
Der Client ruft an HealthLake:
GET {endpoint}/r4/Observation?patient=Patient/123 -
HealthLake erzwingt Bereichsfilter. Die Antwort enthält nur
ObservationRessourcen mitcategory=laboratoryUNDstatus=finalUND,date ≥ 2023-01-01obwohl der Client alle Beobachtungen angefordert hat.