Protokollierung¶
Das ELGA-Protokollierungssystem dient der Wahrung von Transparenz und Nachvollziehbarkeit aller erfolgten Aktionen wie z.B. auf personenbezogene, medizinische Dokumente, in der ELGA Infrastruktur. Protokollnachrichten werden in lokale Audit Record Repositories (L-ARR) der ELGA-Bereiche und im L-ARR der zentralen Komponenten persistiert (Z-L-ARR). Die Gesamtmenge der einzelnen L-ARR und Z-L-ARR Protokolle dient einer lückenlosen, forensisch nachvollziehbaren Aufzeichnung aller lesenden, schreibenden und modifizierenden Aktionen im ELGA / e-Health Kontext.
Generell soll im e-Health Kontext jede Transaktion, sowohl in L-ARR wie auch in Z-L-ARR, protokolliert werden, wie dies in ELGA bereits üblich ist. Die Events, welche im e-Health stattfinden, sind als solche speziell zu markieren, um eine eindeutige Trennung bzw. Filtermöglichkeit der ELGA / e-Health Protokolldaten, durch die gemeinsame Verwendung der bereits in ELGA etablierten Infrastruktur, zu gewährleisten.
Im aggregierten Audit Record Repository (A-ARR) findet die Protokollierung nur bei bestimmten e-Health Anwendungen statt. Im Kontext des e-Impfpasses findet die Protokollierung im A-ARR auch statt.
Alle Aktivitäten der ZGF werden mittels ATNA Audit Trails in das Audit Repository der Fachlogik der zentralen e-Impfpass Anwendung protokolliert. Zusätzlich werden festgelegte Dokumententransaktionen an das A-ARR weitergeleitet. Für alle empfangenen und weitergeleiteten Anfragen schreibt die initiierende und antwortende ZGF L-ARR ATNA Audits.
Trennung der Protokolleinträge im Kontext von ELGA und e-Health¶
Um eine eindeutige Trennung / Filtermöglichkeit zu schaffen, ist wo möglich das Attribut Purpose of Use (PoU) mitzuführen. Wie in den nächsten Kapiteln beschrieben wird im Z-L-ARR und A-ARR eine Datenbankspalte hinzugefügt. Im L-ARR wird die Anwendung ID in einem bereits existierenden Attribut gespeichert.
Z-L-ARR & A-ARR¶
Um eine klare Trennung zwischen ELGA und den jeweiligen e-Health Anwendung zu gewährleisten, wird in den zentralen Protokolldiensten Z-L-ARR und A-ARR eine zusätzliche Spalte eingeführt, um den Applikationskontext zu speichern.
In der neuen Datenbankspalte wird der Anwendung ID gespeichert. Im Kontext von e-Health Anwendungen wird die Anwendung ID dem Attribute Purpose of Use der SAML-Assertion entnommen. Im Kontext ELGA gibt es keine klare Unterscheidung der Applikationen e-Befund und e-Medikation in der SAML-Assertion, wo möglich wird versucht vom Transaktionskontext die Anwendung ID zu entnehmen. Für e-Befunde wäre dies "101", für die e-Medikation "102", für den e-Impfpass "103", etc. und für die Virtuellen Organisationen sind die Wertebereiche 150 – 200 reserviert. Falls keine Trennung für die Anwendungen e-Befunde und e-Medikation möglich ist, so führen diese den gemeinsamen Anwendungscode "100" für ELGA. Derzeit ist der Wert "100" nicht in Verwendung, da alle Transaktionen außerhalb des Kontexts VO und e-Impfpass, als ELGA "101" geführt werden.
- Tabelle
table audit_event_a2r2wurde um das AttributAUDIT_EVENT_POU Number(5,0)erweitert - Tabelle
table audit_event_lar2wurde um das AttributAUDIT_EVENT_POU Number(5,0)erweitert
L-ARR¶
Um die lokale Trennung der Audits zu ermöglichen, wird bei L-ARR Audits die ELGA e-Health Anwendung ID der e-Health Applikation mitgeführt.
Beim L-ARR werden die applikatorischen Daten im Attribut "UserID" des Elements "ActiveParticipant" im Suffix "@" mit der Anwendung ID angeführt. Diese muss auch im Kontext der Weiterentwicklungen beibehalten werden.
Im ELGA Kontext erfolgt diesbezüglich keine Änderung der Protokollierung.
A-ARR Audit Events¶
Es sind nicht für alle Transaktionen Protokollierungseinträge im A-ARR zu schreiben, sondern nur bei gewissen Audit Events. In den nachfolgenden Unterkapiteln sind die A-ARR Audit Events der e-Health Anwendung e-Impfpass beschrieben. Es handelt sich bei den darin enthaltenen Beispielen um GDA Audits. Die Unterscheidung gegenüber dem Bürger Audit ist zu beachten. Siehe dazu A-ARR Pflichtenheft – Kapitel Audit Events, wo die vollständige Liste zu entnehmen ist.
Das Datenelement poU wird in der Datenbank gespeichert, aber dem EBP nicht zurückgegeben.
Immunisierungsdaten geändert (Immunisierungsdaten / Immunisierungs-Metadaten geändert)¶
Event Type: "(61)"
Immunisierungsdaten geändert (e-Impfpass), Codeliste ("ELGA_AuditEventType_A-ARR_VS")
Trigger Event:
- IHE Transaktion "Provide and Register Document Set-b [ITI-41]"
- IHE Transaktion "Update Document Set [ITI-57]: UpdateAvailabilityStatus"
<AuditEvent xmlns="com:tiani-spirit:a2r2"
auditSrcType="8"
datetime="2019-12-17T09:57:52.917Z"
destID="https://eImpf.kollab2-spirit.int/XCA/eHealth/respGW"
destIPAddr="eImpf.kollab2-spirit.int"
errorMsg="[0] success"
eventType="61"
msgID="urn:uuid:40225836-8564-3414-9657-503548536777"
patID="GH:z6OS4dNSgKYAyCA+P63XgrUBHhg=^^^&amp;1.2.40.0.10.2.1.1.149&amp;ISO"
poU="103"
result="0"
siteID="urn:oid:1.11.1.1"
srcID="urn:oid:1.2.40.0.34.99.10.1.1.1.36419"
srcIPAddrChain="84.38.124.34, 10.10.104.23"
trID="urn:uuid:40225836-8564-3414-9657-503548536777"
userID="Exec.MBA Irmèntraut 100WMiddendorf ELGATest"
userRole="703">
<AuditEventData>
<Resource type="Document">
<Item key="DocumentEntry.uniqueID" value="1.2.40.0.34.99.10.1.1.1.36419^20191217095749"/>
<Item key="DocumentEntry.classCode" value="11369-6"/>
</Resource>
</AuditEventData>
</AuditEvent>
Kompletter Immunisierungsstatus aufgerufen¶
Event Type: "(62)"
Immunisierungsdaten aufgerufen (e-Impfpass), Codeliste ("ELGA_AuditEventType_A-ARR_VS")
Trigger Event:
- IHE Transaktion "Query Pharmacy Documents [PHARM-1]: FindMedicationList"
- IHE Transaktion "Query Pharmacy Documents [XCF]: FindMedicationList"
<AuditEvent xmlns="com:tiani-spirit:a2r2"
auditSrcType="8"
datetime="2019-12-17T10:54:45.187Z"
destID="http://bes.tiani-spirit.com/ACSFacade/XCA/eHealth/initGW"
destIPAddr="10.10.104.23"
errorMsg="[0] success"
eventType="62"
msgID="urn:uuid:bf70d540-af0a-4ec8-b534-1cb73ca9bb53"
patID="GH:W8t8kXzhYVo6wy+khD7VpzBIlJA=^^^&1.2.40.0.10.2.1.1.149&ISO"
poU="103"
result="0"
siteID="urn:oid:1.11.1.1"
srcID="urn:oid:1.2.40.0.34.99.10.1.1.1.31498"
srcIPAddrChain="84.38.116.130, 10.10.104.23"
trID="urn:oid:1.2.40.0.34.6.4.2.1576580071791.712"
userID="UMS Monitoring Client"
userRole="702">
<AuditEventData>
<Resource type="DocumentQuery">
<Item key="AdhocQueryID" value="urn:uuid:80ebbd83-53c1-4453-9860-349585962af6"/>
<Item key="$XDSDocumentEntryStatus" value="urn:oasis:names:tc:ebxml-regrep:StatusType:Approved"/>
<Item key="$XDSDocumentEntryPatientId" value="GH:W8t8kXzhYVo6wy+khD7VpzBIlJA=^^^&1.2.40.0.10.2.1.1.149&ISO"/>
<Item key="$XDSDocumentEntryType" value="urn:uuid:34268e47-fdf5-41a6-ba33-82133c465248"/>
</Resource>
<Resource type="Document">
<Item key="DocumentEntryUUID" value="urn:uuid:43896b21-d76a-42e3-9fd8-e61e4271881e"/>
<Item key="homeCommunityId" value="urn:oid:1.2.40.0.34.3.9.114"/>
<Item key="DocumentEntry.uniqueID" value="1.2.3.4713^1000"/>
<Item key="DocumentEntry.classCode" value="11369-6"/>
</Resource>
</AuditEventData>
</AuditEvent>
Z-L-ARR Audit Events (zentral)¶
Für alle im Kontext e-Impfpass durchgeführten Zentraltransaktionen wird ein Protokolleintrag im Z-L-ARR geschrieben.
<AuditEvent xmlns="com:tiani-spirit:a2r2"
auditSrcType="2"
datetime="2019-12-17T10:54:45.383Z"
destID="http://acs.kollab2-spirit.int/SpiritACS/STS/TRA"
destIPAddr="10.10.104.4"
errorMsg="[0] success"
eventType="21"
msgID="uuid:71DBBDC8-34B2-4D46-AB3B-B17A3EB3600F"
patID=""
poU="103"
result="0"
siteID="BeSCentral"
srcID="urn:oid:1.2.40.0.34.99.10.1.1.1.31498"
srcIPAddrChain="84.38.116.130, 10.10.104.23, 10.10.104.4"
trID="urn:oid:1.2.40.0.34.6.4.2.1576580071791.812"
userID="UMS Monitoring Client"
userRole="702"/>
Hinweis: Es handelt sich hierbei nur um einen Auszug der Unterschiede zwischen der ELGA und der e-Impfpass Z-L-ARR Audits.
Die lokalen Audit Events der zentralen BeS Services werden in den folgenden Unterkapiteln behandelt.
Ausstellen einer e-Impfpass Kontext-Assertion¶
| Erstellende Komponente | ETS |
| Trigger Event | "e-Impfpass Kontext-RST Issue" Transaktion |
| Enthaltene Assertion | HCP, Bereichs IDA, e-Card IDA, User-I, Mandate-I, PVP2 IDA |
Attribute des Elements <AuditEvent>:
| Attribut | Inhalt |
|---|---|
| msgID | Der Wert des <wsa:MessageID> Elements der zugrunde liegenden Transaktion |
| eventType | "21" (Issue Token), Wert aus Codeliste "ELGA_AuditEventType_VS". |
| result | Ergebnis der zugrunde liegenden Transaktion. "0" (Erfolg) oder "1" (Fehler) |
| datetime |
Zeitpunkt (Datum und Uhrzeit), wann die zugrunde liegende Transaktion empfangen wurde, UTC Repräsentation Format CCYY-MM-DDThh:mm:ssZ gemäß XML Schema Part 2: Datatypes Second Edition, W3C Recommendation 28 Oct 2004, Datentyp "dateTime" |
| auditSrcType | "2" (ETS), Wert aus Codeliste "ELGA_AuditSourceType_VS". |
| siteID | ELGA Bereichs-OID des zentralen Berechtigungssystems. |
| srcID |
Abhängig von der vorhandenen Assertion IDENTITY: Inhalt des SAML2 Attributs "urn:oasis:names:tc:xspa:1.0:subject:organization-id" e-card: SAML Attribute "VP_Vertragspartnernummer" |
| srcIPAddrChain | Inhalt des HTTP Header Parameter 'x-forwarded-for' des empfangenen Requests. |
| destID | URL des ETS |
| destIPAddr | IP Adresse der ETS Komponente |
| userID |
Abhängig von der vorhandenen Assertion IDENTITY: Inhalt des SAML2 Attributs "urn:oasis:names:tc:xacml:1.0:subject:subject-id" e-card: SAML Attribute "VP_Vorname" + " " + "VP_Zuname" |
| userRole |
Abhängig von der vorhandenen Assertion IDENTITY: Inhalt des SAML2 Attributs "urn:oasis:names:tc:xacml:2.0:subject:role" e-card: SAML Attribute "VP_Taetigkeitsbereichcode" |
| trID | Transaktions ID (Transaktionsklammer) der zugrunde liegenden Transaktion. |
| patID | "" (null string) |
| errorMsg | Fehlermeldung der zugrunde liegenden Transaktion, wenn diese nicht erfolgreich war, sonst ‘[0] success’. |
Tabelle: AuditEvent Attribute Ausstellen einer e-Impfpass Kontext-Assertion
Das /AuditEvent/AuditEventData Element enthält ein <Resource> Element mit type="Security Token", welches den Typ der ausgestellten Assertion beschreibt:
| Resource/@type | "Security Token" |
| Item/@key | "TokenType" |
| Item/@value | Typ der ausgestellten Assertion (wst:TokenType) |
Tabelle: AuditEventData Element Ausstellen einer e-Impfpass Kontext-Assertion
Invalidieren einer e-Impfpass Kontext-Assertion¶
| Erstellende Komponente | ETS |
| Trigger Event | "e-Impfpass Kontext-RST Cancel" Transaktion |
| Enthaltene Assertion | e-Impfpass Kontext-Assertion |
Attribute des Elements <AuditEvent>:
| Attribut | Inhalt |
|---|---|
| msgID | Der Wert des <wsa:MessageID> Elements der zugrunde liegenden Transaktion |
| eventType | "22" (Invalidate Token), Wert aus Codeliste "ELGA_AuditEventType_VS". |
| result | Ergebnis der zugrunde liegenden Transaktion. "0" (Erfolg) oder "1" (Fehler) |
| datetime |
Zeitpunkt (Datum und Uhrzeit), wann die zugrunde liegende Transaktion empfangen wurde, UTC Repräsentation Format CCYY-MM-DDThh:mm:ssZ gemäß XML Schema Part 2: Datatypes Second Edition, W3C Recommendation 28 Oct 2004, Datentyp "dateTime" |
| auditSrcType | "2" (ETS), Wert aus Codeliste "ELGA_AuditSourceType_VS". |
| siteID | ELGA Bereichs-OID des zentralen Berechtigungssystems. |
| srcID | Inhalt des SAML2 Attributs "urn:oasis:names:tc:xspa:1.0:subject:organization-id" der e-Impfpass Kontext-Assertion |
| srcIPAddrChain | Inhalt des HTTP Header Parameter 'x-forwarded-for' des empfangenen Requests. |
| destID | URL des ETS |
| destIPAddr | IP Adresse der ETS Komponente |
| userID | Inhalt des SAML2 Attributs "urn:oasis:names:tc:xacml:1.0:subject:subject-id" der e-Impfpass Kontext-Assertion. |
| userRole | Inhalt des SAML2 Attributs "urn:oasis:names:tc:xacml:2.0:subject:role" der e-Impfpass Kontext-Assertion. |
| trID | Transaktions ID (Transaktionsklammer) der zugrunde liegenden Transaktion. |
| patID | "" (null string) |
| errorMsg | Fehlermeldung der zugrunde liegenden Transaktion, wenn diese nicht erfolgreich war, sonst ‘[0] success’. |
Tabelle: AuditEvent Attribute Invalidieren einer e-Impfpass Kontext-Assertion
Das /AuditEvent/AuditEventData Element enthält ein <Resource> Element
mit type="Security Token", welches den Typ der ausgestellten Assertion
beschreibt:
| Resource/@type | "Security Token" |
| Item/@key | "TokenType" |
| Item/@value | Typ der invalidierten Assertion (wst:TokenType) |
Tabelle: AuditEventData Element Invalidieren einer e-Impfpass Kontext-Assertion
Erneuern einer e-Impfpass Kontext-Assertion¶
| Erstellende Komponente | ETS |
| Trigger Event | "e-Impfpass Kontext-RST Renew" Transaktion |
| Enthaltene Assertion | e-Impfpass Kontext-Assertion |
Attribute des Elements <AuditEvent>:
| Attribut | Inhalt |
|---|---|
| msgID | Der Wert des <wsa:MessageID> Elements der zugrunde liegenden Transaktion |
| eventType | "24" (Renew Token), Wert aus Codeliste "ELGA_AuditEventType_VS". |
| result | Ergebnis der zugrunde liegenden Transaktion. "0" (Erfolg) oder "1" (Fehler) |
| datetime |
Zeitpunkt (Datum und Uhrzeit), wann die zugrunde liegende Transaktion empfangen wurde, UTC Repräsentation Format CCYY-MM-DDThh:mm:ssZ gemäß XML Schema Part 2: Datatypes Second Edition, W3C Recommendation 28 Oct 2004, Datentyp "dateTime" |
| auditSrcType | "2" (ETS), Wert aus Codeliste "ELGA_AuditSourceType_VS". |
| siteID | ELGA Bereichs-OID des zentralen Berechtigungssystems. |
| srcID | Inhalt des SAML2 Attributs "urn:oasis:names:tc:xspa:1.0:subject:organization-id" der e-Impfpass Kontext-Assertion |
| srcIPAddrChain | Inhalt des HTTP Header Parameter 'x-forwarded-for' des empfangenen Requests. |
| destID | URL des ETS |
| destIPAddr | IP Adresse der ETS Komponente |
| userID | Inhalt des SAML2 Attributs "urn:oasis:names:tc:xacml:1.0:subject:subject-id" der e-Impfpass Kontext-Assertion. |
| userRole | Inhalt des SAML2 Attributs "urn:oasis:names:tc:xacml:2.0:subject:role" der e-Impfpass Kontext-Assertion. |
| trID | Transaktions ID (Transaktionsklammer) der zugrunde liegenden Transaktion. |
| patID | "" (null string) |
| errorMsg | Fehlermeldung der zugrunde liegenden Transaktion, wenn diese nicht erfolgreich war, sonst ‘[0] success’. |
Tabelle: AuditEvent Attribute Erneuern einer e-Impfpass Kontext-Assertion
Das /AuditEvent/AuditEventData Element enthält ein <Resource> Element
mit type="Security Token", welches den Typ der ausgestellten Assertion
beschreibt:
| Resource/@type | "Security Token" |
| Item/@key | "TokenType" |
| Item/@value | Typ der invalidierten Assertion (wst:TokenType) |
Tabelle: AuditEventData Element Erneuern einer e-Impfpass Kontext-Assertion
Ausstellen einer e-Impfpass Treatment-Assertion¶
| Erstellende Komponente | ETS |
| Trigger Event | "e-Impfpass Treatment-Assertion RST Issue" Transaktion |
| Enthaltene Assertion | e-Impfpass Kontext-Assertion |
Attribute des Elements <AuditEvent>:
| Attribut | Inhalt |
|---|---|
| msgID | Der Wert des <wsa:MessageID> Elements der zugrunde liegenden Transaktion |
| eventType | "21" (Issue Token), Wert aus Codeliste "ELGA_AuditEventType_VS". |
| result | Ergebnis der zugrunde liegenden Transaktion. "0" (Erfolg) oder "1" (Fehler) |
| datetime |
Zeitpunkt (Datum und Uhrzeit), wann die zugrunde liegende Transaktion empfangen wurde, UTC Repräsentation Format CCYY-MM-DDThh:mm:ssZ gemäß XML Schema Part 2: Datatypes Second Edition, W3C Recommendation 28 Oct 2004, Datentyp "dateTime" |
| auditSrcType | "2" (ETS), Wert aus Codeliste "ELGA_AuditSourceType_VS". |
| siteID | ELGA Bereichs-OID des zentralen Berechtigungssystems. |
| srcID | Inhalt des SAML2 Attributs "urn:oasis:names:tc:xspa:1.0:subject:organization-id" der e-Impfpass Kontext-Assertion |
| srcIPAddrChain | Inhalt des HTTP Header Parameter 'x-forwarded-for' des empfangenen Requests. |
| destID | URL des ETS |
| destIPAddr | IP Adresse der ETS Komponente |
| userID | Inhalt des SAML2 Attributs "urn:oasis:names:tc:xacml:1.0:subject:subject-id" der e-Impfpass Kontext-Assertion. |
| userRole | Inhalt des SAML2 Attributs "urn:oasis:names:tc:xacml:2.0:subject:role" der e-Impfpass Kontext-Assertion. |
| trID | Transaktions ID (Transaktionsklammer) der zugrunde liegenden Transaktion. |
| patID | Inhalt wird der zugrunde liegenden e-Impfpass Treatment-Assertion Anfrage entnommen |
| errorMsg | Fehlermeldung der zugrunde liegenden Transaktion, wenn diese nicht erfolgreich war, sonst ‘[0] success’. |
Tabelle: AuditEvent Attribute Ausstellen einer e-Impfpass Treatment-Assertion
Das /AuditEvent/AuditEventData Element enthält ein <Resource> Element
mit type="Security Token", welches den Typ der ausgestellten Assertion
beschreibt:
| Resource/@type | "Security Token" |
| Item/@key | "TokenType" |
| Item/@value | Typ der ausgestellten Assertion (wst:TokenType) |
Tabelle: AuditEventData Element Ausstellen einer e-Impfpass Treatment-Assertion
L-ARR Audit Events (ATNA dezentral)¶
Von der initiierenden ZGF werden für jede Transaktion (schreibend und lesend) im initiierenden ELGA Bereich abhängig vom Transaktionstyp ATNA Protokolleinträge geschrieben. Es wird ein Audit in der Rolle als Server und ein weiterer Audit in der Rolle als Client (Weiterleitung an e-Impfpass ZGF) geschrieben.
Zusätzlich schreibt die e-Impfpass ZGF für jede empfangene Transaktion einen Client und einen Server ATNA Audit.
<AuditMessage>
<EventIdentification EventActionCode="E" EventDateTime="2019-12-16T12:35:01.643Z" EventOutcomeIndicator="0">
<EventID code="110112" codeSystemName="DCM" displayName="Query"/>
<EventTypeCode code="ITI-18" codeSystemName="IHE Transactions" displayName="Registry Stored Query"/>
</EventIdentification>
<ActiveParticipant UserID="urn:oid:1.2.40.0.34.99.10.1.12.1.990.1@103" AlternativeUserID="ACSFacade/ACSFacade/XCA_IMPF_INIT/InitXcaQuery_IMPF_MedList/" UserName="spirit" UserIsRequestor="true" NetworkAccessPointID="10.10.104.11" NetworkAccessPointTypeCode="2">
<RoleIDCode code="110153" codeSystemName="DCM" displayName="Source"/>
</ActiveParticipant>
<ActiveParticipant UserID="Mauro@urn:oid:1.2.40.0.34.99.10.1.1.1.31498" UserIsRequestor="true">
<RoleIDCode code="702" codeSystemName="ELGA Rollen" displayName="Krankenanstalt"/>
</ActiveParticipant>
<ActiveParticipant UserID="http://10.10.104.11:8081/ACSFacade/XCA/eHealth/initGW" AlternativeUserID="ACSFacade/ACSFacade/XCA_IMPF_INIT/" UserIsRequestor="false" NetworkAccessPointID="10.10.104.11" NetworkAccessPointTypeCode="2">
<RoleIDCode code="110152" codeSystemName="DCM" displayName="Destination"/>
</ActiveParticipant>
<AuditSourceIdentification AuditEnterpriseSiteID="urn:oid:1.2.40.0.34.99.10.1.12.1.990.1" AuditSourceID="urn:oid:1.2.40.0.34.99.10.1.12.1.990.1@103">
<AuditSourceTypeCode code="8" codeSystemName="ELGA_AuditSourceType_VS" displayName="ZGF"/>
</AuditSourceIdentification>
</AuditMessage>
Hinweis: Es handelt sich hierbei nur um einen Auszug der Unterschiede zwischen der ELGA und der e-Impfpass L-ARR Audits.
Nachfolgend sind weitere Beispiele für e-Impfpass Audits aufgelistet: