diff --git a/README.adoc b/README.adoc index 7a5ec16..d98c6f5 100644 --- a/README.adoc +++ b/README.adoc @@ -3,7 +3,6 @@ image:gematik_logo.svg[width=70%] -image:https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fraw.githubusercontent.com%2Fgematik%2Fapi-kim%2Fdevelop%2Fsrc%2Fjson%2Fbadges.json&query=%24.badges.releaseNotes.version&prefix=%20&style=plastic&logo=github&logoColor=red&label=ReleaseNotes&labelColor=%24.badges.releaseNotes.color&color=red[link="ReleaseNotes.adoc"] image:https://shields.io/badge/AccountManager-v2.3.0-blue?style=plastic&logo=github&logoColor=lightblue[link="https://github.com/gematik/api-kim/blob/main/src/openapi/AccountManager.yaml"] image:https://shields.io/badge/AttachmentService-v2.3.0-blue?style=plastic&logo=github&logoColor=lightblue[link="https://github.com/gematik/api-kim/blob/main/src/openapi/AttachmentService.yaml"] image:https://shields.io/badge/AccountLimit-v1.1.0-blue?style=plastic&logo=github&logoColor=lightblue"[link="https://github.com/gematik/api-kim/blob/main/src/openapi/AccountLimit.yaml"] + @@ -24,7 +23,9 @@ Der Funktionsumfang der KIM Version 1.5 erweitert sich gegenüber KIM 1.0 wie fo * das Einrichten von Abwesendheitsnotizen -* die Unterstützung syntaktischer Nachrichtenkategorien +* das Einrichten von Anwendungskennzeichen + +* die Unterstützung syntaktischer Nachrichtenkategorien (Dienstkennungen) * die Unterstützung von Multikonnektor-Umgebungen @@ -54,14 +55,14 @@ link:docs/Fachdienst.adoc[*Fachdienst*] Der Mail Server stellt die Schnittstelle `I_Message_Service` bereit und wird über die Protokolle SMTP und POP3 angesprochen. In der KIM Version 1.5 wurden am Mail Server keine Änderungen vorgenommen. * *Account Manager:* + -Für die einfache Verwaltung des Accounts sowie das Einrichten von Abwesenheitsnotizen eines KIM-Teilnehmers bietet der Account Manager ab der KIM Version 1.5 zwei Webservices (`I_AccountManager_Service` und `I_AccountLimit_Service`) an. +Für die einfache Verwaltung des Accounts, das Einrichten von Abwesenheitsnotizen eines KIM-Teilnehmers und für die Abfrage von Konfigurationsparametern des jeweiligen KIM Fachdienstes bietet der Account Manager ab der KIM Version 1.5 drei Webservices (`I_AccountManager_Service`, `I_AccountLimit_Service` und `I_ServiceInformation`) an. -* *KOM-LE Attachment Service:* + -Der Fachdienst wird um die Komponente KOM-LE Attachment Services (KAS) erweitert, der die sichere Speicherung größerer Client-Mails (E-Mail-Daten) ermöglicht. Die Komponente kann über die REST-Schnitstelle `I_Attachment_Service` erreicht werden. +* *KIM Attachment Service:* + +Der Fachdienst wird um die Komponente KIM Attachment Services (KAS) erweitert, der die sichere Speicherung größerer Client-Mails (E-Mail-Daten) ermöglicht. Die Komponente kann über die REST-Schnitstelle `I_Attachment_Service` erreicht werden. link:docs/Verzeichnisdienst.adoc[*Verzeichnisdienst*] -* Um die Kompatibilität von KIM 1.5 zu früheren Versionen zu gewährleisten, wird der Verzeichnisdienst um eine neue Datenstruktur `komLeData` ergänzt. +* Um die Kompatibilität von KIM 1.5 zu früheren Versionen zu gewährleisten, wird der Verzeichnisdienst um die zusätzlichen Datenstrukturen `komLeData` und `kimData` ergänzt. * Der Verzeichnisdienst wird um die REST-Schnittstelle `I_Directory_Application_Maintenance` erweitert. == Ordnerstruktur @@ -79,6 +80,7 @@ KIM-API │ ├──── openapi │ │ ├── AccountLimit.yaml │ │ ├── AccountManager.yaml +│ │ ├── AccountLimit_past.yaml │ │ └── AttachmentServices.yaml │ ├──── plantuml │ │ └── Fachdienst @@ -86,7 +88,8 @@ KIM-API │ └── Attachment_schema.json ├── LICENSE ├── README.adoc -└── ReleaseNotes.md +├── ReleaseNotes.md +└── SECURITY.adoc ---- == Ausbaustufen @@ -96,7 +99,7 @@ Mit der Einführung von KIM unterstützt die gematik das Gesundheitswesen durch |=== |KIM 1.0 |KIM 1.5 -|https://fachportal.gematik.de/schnelleinstieg/downloadcenter/releases#c6557[R3.1.3-2] |https://fachportal.gematik.de/schnelleinstieg/downloadcenter/releases#c6557[KIM 1.6.2-2] +|https://fachportal.gematik.de/schnelleinstieg/downloadcenter/releases#c6557[R1.3.3-2] |https://fachportal.gematik.de/schnelleinstieg/downloadcenter/releases#c6557[KIM 1.6.2-2] |=== Weitere Informationen zu den Versionen finden Sie hier: https://fachportal.gematik.de/anwendungen/kommunikation-im-medizinwesen[KIM] @@ -114,7 +117,8 @@ Die nachfolgende Tabelle enthält die in der vorliegenden Online Dokumentation r |*[gemSpec_FD]* |gematik: Spezifikation Fachdienst KOM-LE |*[gemSpec_VZD]* |gematik: Spezifikation Verzeichnisdienst |*[gemSpec_OM]* |gematik: Übergreifende Spezifikation Operations und Maintenance -|*[gemProdT_CM_KOMLE_PTV]* | gematik: Produkttypsteckbrief Prüfvorschrift KOM-LE-Clientmodul +|*[gemProdT_CM_KOMLE_PTV]* |gematik: Produkttypsteckbrief Prüfvorschrift KOM-LE-Clientmodul +|*[gemProdT_iCM_KIM]* |gematik: Produkttypsteckbrief Prüfvorschrift Integriertes Clientmodul KIM |=== == Weiterführende Seiten diff --git a/docs/Anwendungsfaelle.adoc b/docs/Anwendungsfaelle.adoc index ecc94ca..c92bdce 100644 --- a/docs/Anwendungsfaelle.adoc +++ b/docs/Anwendungsfaelle.adoc @@ -38,7 +38,7 @@ IMPORTANT: Alle Operationen die vom Administrationsmodul am Account Manager üb === Registrierung durchführen Zukünftige KIM-Teilnehmer registrieren sich im ersten Schritt am Account Manager über das Frontend (GUI) des Administrationsmoduls (optional ist dies auch über das Primärsystem möglich - das Clientsystem mit dem Administrationsmodul ist in diesem Fall Bestandteil des Primärsystems). Bei Aufruf der Operation `registerAccount()` baut das Administrationsmodul eine TLS-Verbindung zum Account Manager auf. -Informationen mit den für die Registrierung benötigten Parametern erhält der Teilnehmer vorab von seinem gewählten KIM-Anbieter. Dazu gehören die `referenceID`, das initiale Passwort (`iniPassword`) und ggf. eine vom Anbieter festgelegte KIM-E-Mail-Adresse, die dann als `referenceID` genutzt wird. Nach erfolgreicher Registrierung wird die PKCS#12-Datei mit dem Zertifikat vom Account Manager heruntergeladen, automatisiert entpackt und dem Clientmodul zur Verfügung gestellt. Das Zertifikat wird nur beim Account Manager durch den Aufruf der Operation `createCert()` beantragt, wenn im Clientmodul nicht bereits ein Zertifikat hinterlegt wurde. Das Administrationsmodul muss vor Ablauf dieses Zertifikates ein neues Zertifikat beim Account Manager beantragen und dem Clientmodul zur Verfügung stellen, welches damit das abgelaufene Zertifikat ersetzt. Die während der Registrierung übergebenen KIM-Fachdaten des Nutzers werden vom Account Manager in den zum Nutzer gehörenden Eintrag im Verzeichnisdienst eingetragen (z. B. KIM-Version). +Informationen mit den für die Registrierung benötigten Parametern erhält der Teilnehmer vorab von seinem gewählten KIM-Anbieter. Dazu gehören die `referenceID`, das initiale Passwort (`iniPassword`) und ggf. eine vom Anbieter festgelegte KIM-E-Mail-Adresse, die dann als `referenceID` genutzt wird. Das an der Registrierung beteiligte Clientmodul kann über eine Abfrage an der Schnittstelle `I_ServiceInformation` prüfen, welche Paramater für die Registrierung am jeweiligen KIM Fachdienst benötigt werden und dem Nutzer eine dem entsprechende Eingabemaske anbieten. Nach erfolgreicher Registrierung wird die PKCS#12-Datei mit dem Zertifikat vom Account Manager heruntergeladen, automatisiert entpackt und dem Clientmodul zur Verfügung gestellt. Das Zertifikat wird nur beim Account Manager durch den Aufruf der Operation `createCert()` beantragt, wenn im Clientmodul nicht bereits ein Zertifikat hinterlegt wurde. Das Administrationsmodul muss vor Ablauf dieses Zertifikates ein neues Zertifikat beim Account Manager beantragen und dem Clientmodul zur Verfügung stellen, welches damit das abgelaufene Zertifikat ersetzt. Die während der Registrierung übergebenen KIM-Fachdaten des Nutzers werden vom Account Manager in den zum Nutzer gehörenden Eintrag im Verzeichnisdienst eingetragen (z. B. KIM-Version). Im folgenden Sequenzdiagramm ist die Interaktion zwischen Administrationsmodul und dem Account Manager dargestellt. @@ -62,7 +62,7 @@ Im folgenden Sequenzdiagramm ist die Interaktion zwischen Administrationsmodul u ++++ === Deregistrierung zurücknehmen -KIM-Teilnehmer können über das Frontend (GUI) des Administrationsmoduls eine ausgelöste Deregistrierung innerhalb von 30 Tagen zurücknehmen. Dafür baut das Administrationsmodul eine TLS-Verbindung durch den Aufruf der Operation `revokeDeregistration()` zum Account Manager auf. Nach einem erfolgreichen Aufruf der Operation steht dem Anwender der Account wieder in vollem Umfang zur Verfügung. +KIM-Teilnehmer können über das Frontend (GUI) des Administrationsmoduls eine ausgelöste Deregistrierung bis mindestens nach 30 Tagen zurücknehmen. Dafür baut das Administrationsmodul eine TLS-Verbindung durch den Aufruf der Operation `revokeDeregistration()` zum Account Manager auf. Nach einem erfolgreichen Aufruf der Operation steht dem Anwender der Account wieder in vollem Umfang zur Verfügung. ++++
@@ -105,6 +105,17 @@ Im folgenden Sequenzdiagramm ist die Interaktion zwischen Administrationsmodul u
++++ +== Anwendungskennzeichen +KIM-Teilnehmer können über das Frontend (GUI) des Administrationsmoduls Anwendungskennzeichen für ihren e-Mail Account konfigurieren oder einsehen. Für das konfigurieren eines Anwendungskennzeichens ruft das Administrationsmodul `setAccount()` am Account Manager auf. Für das Abfragen von konfigurierten Anwendungskennzeichen wird die Operation `getAccount()` am Account Manager verwendet. Für jede Operation baut das Administrationsmodul eine TLS-Verbindung zum Account Manager auf. + +Im folgenden Sequenzdiagramm ist die Interaktion zwischen Administrationsmodul und dem Account Manager dargestellt. + +++++ ++ +
+++++ + == Abwesenheitnotizen KIM-Teilnehmer können über das Frontend (GUI) des Administrationsmoduls Abwesenheitsnotizen für einen definierten Zeitraum konfigurieren oder einsehen. Für das konfigurieren einer Abwesenheitsnotiz ruft das Administrationsmodul `updateOutOfOffice()` am Account Manager auf. Für das Abfragen von konfigurierten Abwesenheitsnotizen wird die Operation `getOutOfOffice()` am Account Manager verwendet. Für jede Operation baut das Administrationsmodul eine TLS-Verbindung zum Account Manager auf. @@ -128,7 +139,7 @@ Das Senden bzw. Empfangen von KIM-Mails wird durch die Schnittstelle `I_Message_ === KIM-Mail senden Will der KIM-Teilnehmer eine E-Mail versenden, wird im ersten Schritt die erstellte KIM-Nachricht vom Primärsystem/Mail-Client an das Clientmodul übergeben. Das Clientmodul überprüft zunächst die Größe der übergebenen Nachricht. Ist die Nachricht kleiner als 15 MiB behandelt das Clientmodul die Nachricht wie in KIM 1.0 beschrieben. -Übersteigt die Größe der Nachricht die 15 MiB, dann wird zunächst das Header-Element `X-KOM-LE-Version: 1.5` in den E-Mail-Header hinzugefügt. Anschließend prüft das Clientmodul die maximal zulässige Mailgröße für den Nutzer-Account. Danach erzeugt das Clientmodul für die Client-Mail einen symmetrischen Schlüssel, sowie einen Hashwert. Mit Hilfe des symmetrischen Schlüssels wird die Client-Mail verschlüsselt. Anschließend wird die Operation `add_Attachment()` am KAS seines Anbieters aufgerufen, um die verschlüsselte Client-Mail (E-Mail-Daten) hochzuladen. Danach befüllt das Clientmodul die KIM-Attachement Datenstruktur und fügt diese als Ersatz in den Body der originalen Client-Mail ein. Anschließend wird die Client-Mail durch das Clientmodul weiter verarbeitet(z.B. weitere Header Elemente) durch den Konnektor signiert und mit dem asymmetrischen Schlüssel des Empfängers verschlüsselt und als KOM-LE Mail an den Fachdienst versendet. + +Übersteigt die Größe der Nachricht die 15 MiB, dann wird zunächst das Header-Element `X-KOM-LE-Version: 1.5` in den E-Mail-Header hinzugefügt. Anschließend prüft das Clientmodul die maximal zulässige Mailgröße für den Nutzer-Account. Danach erzeugt das Clientmodul für die Client-Mail einen symmetrischen Schlüssel, sowie einen Hashwert. Mit Hilfe des symmetrischen Schlüssels wird die Client-Mail verschlüsselt. Anschließend wird die Operation `add_Attachment()` am KAS seines Anbieters aufgerufen, um die verschlüsselte Client-Mail (E-Mail-Daten) hochzuladen. Danach befüllt das Clientmodul die KIM-Attachement Datenstruktur und fügt diese als Ersatz in den Body der originalen Client-Mail ein. Anschließend wird die Client-Mail durch das Clientmodul weiter verarbeitet (z.B. weitere Header Elemente), durch den Konnektor signiert, mit dem asymmetrischen Schlüssel des Empfängers verschlüsselt und als KIM Mail an den Fachdienst versendet. + Die folgende Abbildung veranschaulicht den beschriebenen Ablauf: @@ -141,7 +152,7 @@ Die folgende Abbildung veranschaulicht den beschriebenen Ablauf: === KIM-Mail empfangen Will ein KIM-Teilnehmer eine KIM-E-Mail abrufen, überprüft das Clientmodul im ersten Schritt ob beim Mailserver eine neue Nachricht im Postfach vorliegt. Ist dies der Fall, werden die zur Abholung selektierten Nachrichten vom Mailserver an das Clientmodul übergeben. Anschließend wird die Nachricht mit dem asymmetrischen Schlüssel des Empfängers entschlüsselt und die Signatur der Nachricht geprüft. Weiterhin prüft das Clientmodul, um welche KIM-Version es sich bei der Nachricht handelt. Bei einer KIM 1.0 Nachricht wird diese vom Clientmodul entsprechend den Vorgaben aus KIM 1.0 bearbeitet. -Handelt es sich um eine KIM 1.5 Nachricht, verwendet das Clientmodul den in der KIM-Attachment-Datenstruktur hinterlegten Freigabelink, um mittels der Operation `read_Attachment()` die verschlüsselte Client-Mail vom KAS herunterzuladen. Anschließend wird die Client-Mail mit dem in der KOM-LE-Mail enthaltenen symmetrischen Schlüsseln entschlüsselt, der Hashwert berechnet und mit dem in der KIM-Attachment-Datenstruktur enthaltenen Hashwert verglichen. Im letzten Schritt wird die entschlüsselte Client-Mail durch das Clientmodul an das Primärsystem oder den E-Mail Client des Leistungserbringers übermittelt. + +Handelt es sich um eine KIM 1.5 Nachricht, verwendet das Clientmodul den in der KIM-Attachment-Datenstruktur hinterlegten Freigabelink `link`, um mittels der Operation `read_Attachment()` die verschlüsselte Client-Mail vom KAS herunterzuladen. Anschließend wird die Client-Mail mit dem in der KIM-Mail enthaltenen symmetrischen Schlüsseln `k` entschlüsselt, der Hashwert berechnet und mit dem in der KIM-Attachment-Datenstruktur enthaltenen Hashwert `hash` verglichen. Im letzten Schritt wird die entschlüsselte Client-Mail durch das Clientmodul an das Primärsystem oder den E-Mail Client des Leistungserbringers übermittelt. + Das folgende Sequenzdiagramm stellt den Ablauf des Empfanges einer Nachricht dar: @@ -152,9 +163,12 @@ Das folgende Sequenzdiagramm stellt den Ablauf des Empfanges einer Nachricht dar ++++ == KIM-Dienstkennung -Der KIM-Teilnehmer kann eine zu versendende Nachricht mit einer Dienstkennung - z. B. "eAU;Lieferung;v1.0" - versehen. Wird durch den Mailclient keine Dienstkennung übergeben wird vom Clientmodul ein default-Dienstkennung eingetragen ("KIM-Mail;Default;V1.0"). +Der KIM-Teilnehmer kann eine zu versendende Nachricht mit einer Dienstkennung - z. B. "eAU;Lieferung;v1.0" - versehen. Wird durch den Mailclient in der für den Versand durch das Clientmodul übergebenen Mail keine Dienstkennung eingetragen, wird vom Clientmodul ein default-Dienstkennung nachträglich ergänzt ("KIM-Mail;Default;V1.0"). Die Dienstkennung wird in den Nachrichten-Header eingetragen, und kann auf der Empfängerseite für eine automatisierte Bearbeitung verwendet werden. Der Bezeichner des hierfür vorgesehenen Header-Feldes lautet `X-KIM-Dienstkennung`. Die Dienstkennung der ursprünglichen Mail wird nach der Verschlüsselung in den Header der verschlüsselten Mail übernommen. Ein Empfänger kann auf Basis der Dienstkennung entscheiden, wie er mit den zur Abholung auf dem Mail-Server bereitstehenden Nachrichten verfahren möchte. +== KIM Anwendungskennzeichen +Der KIM-Teilnehmer kann für seinen e-Mail Account Anwendungskennzeichen konfigurieren, die dann durch den Acount Manager seines KIM Fachdienstes im Verzeichnisdienst in den KIM-Fachdaten für die betroffene Mail-Adresse eintragen werden. Der KIM-Teilnehmer nutzt dazu die in seinem KIM Clientmodule angebotene Konfigurations-Option. Für die Übertragung zum Verzeichnisdienst stellt der KIM Fachdienst eine Operation an der Schnittstelle `I_AccountManager_Service` des Account Manager zur Verfügung. + == Multikonnektor Umgebungen Ab KIM 1.5 ist es möglich, dass mehrere Konnektoren in einer Umgebung von einem Clientmodul unterstützt werden. Dies ist vor allem im Krankenhausumfeld im Interesse einer notwendigen Lastverteilung sinnvoll. Das folgende Bild veranschaulicht den Einsatz von mehreren Konnektoren in einer Umgebung: diff --git a/docs/Authentisierung.adoc b/docs/Authentisierung.adoc index 7fcfe6c..bc7a352 100644 --- a/docs/Authentisierung.adoc +++ b/docs/Authentisierung.adoc @@ -23,5 +23,5 @@ Der Mail-Server nimmt SMTP-Nachrichten von Clientmodulen entgegen und leitet die === Account Manager Der Accout Manager bietet für die Registrierung sowie die Kontoverwaltung eine Reihe von Operationen an. Die Operationen werden durch zwei REST-Schnittstellen (`I_AccountManager_Service` und `I_AccountLimit_Service`) am Account Managers bereitgestellt. Für den Aufruf der Operationen an der Schnittstelle `I_AccountManager_Service` durch das Administrationsmodul ist eine Authentifizierung des KIM-Teilnehmers notwendig. Für die Authentisierung erzeugt das Administrationsmodul ein JSON-Web-Token (JWT) gemäß *[RFC7519]* mit von der gematik definierten Elementen und übersendet dies mit dem Passwort des Nutzers an den Account Manager. Anschließend überprüft der Account Manager das ihm übergebene JWT auf Gültigkeit und Zugehörigkeit zur KIM-Mail-Adresse (Account). Die Anforderungen sind in *[gemSpec_CM_KOMLE#3.7.1]* und *[gemSpec_FD_KOMLE#4.3]* spezifiziert. Für den Aufruf der Operationen an der Schnittstelle `I_AccountLimit_Service` durch das Clientmodul ist eine HTTP-Basic-Authentifizierung mit Username und Passwort als Credentials am Account Manager erforderlich -=== KOMLE-Attachment Service (KAS) -Der KOMLE-Attachment Service (KAS) des Fachdienstes dient als Speicherort für verschlüsselte Anhänge von Mails. Das sendende Clientmodul legt Anhänge in verschlüsselter Form auf dem KAS ab. Hierfür ruft das Clientmodul die Operation `add_attachment()` auf. Um nur berechtigten KIM-Teilnehmern die Ablage von Anhängen zu ermöglichen, erfolgt eine Authentifizierung am KAS seines Anbieters. Hierfür wird bei Aufruf der Operation `add_attachment()` eine HTTP-Basic-Authentifizierung mit Username und Passwort als Credentials gefordert. Die Anforderungen sind in *[gemSpec_FD_KOMLE#4.2]* spezifiziert. +=== KIM-Attachment Service (KAS) +Der KIM-Attachment Service (KAS) des Fachdienstes dient als Speicherort für verschlüsselte E-Mail-Daten. Das sendende Clientmodul legt die E-Mail-Daten in verschlüsselter Form auf dem KAS ab. Hierfür ruft das Clientmodul die Operation `add_attachment()` auf. Um nur berechtigten KIM-Teilnehmern die Ablage von Anhängen zu ermöglichen, erfolgt eine Authentifizierung am KAS seines Anbieters. Hierfür wird bei Aufruf der Operation `add_attachment()` eine HTTP-Basic-Authentifizierung mit Username und Passwort als Credentials gefordert. Die Anforderungen sind in *[gemSpec_FD_KOMLE#4.2]* spezifiziert. diff --git a/docs/Email_Verarbeitung.adoc b/docs/Email_Verarbeitung.adoc index e98428d..5e07376 100644 --- a/docs/Email_Verarbeitung.adoc +++ b/docs/Email_Verarbeitung.adoc @@ -108,7 +108,7 @@ fHx3d3cuZGFzaW50ZXJuZXQubmV[...] ==== === Client-Mail hochgeladen -Von der korrigierten(*_From_* Header) und um die Dienstkennung erweiterte Mail wird eine Kopie angelegt, die die Basis für die an den Fachdienst zu übermittelnde KOM-LE Nachricht bildet. Anschließen wir modifizierte Client-Mail signiert und verschlüsselt und das binäre Ergebnis und durch Aufruf der Methode addAttachment auf den KIM Attachment Service hochgeladen. Nach einem erfolgreichen Upload ersetzt das KOM-LE Modul den Body der KOM-LE Nachricht durch die KIM Attachment Datenstruktur. +Von der korrigierten (*_From_* Header) und um die Dienstkennung erweiterte Mail wird eine Kopie angelegt, die die Basis für die an den Fachdienst zu übermittelnde KOM-LE Nachricht bildet. Anschließen wir die modifizierte Client-Mail signiert und verschlüsselt und das binäre Ergebnis und durch Aufruf der Methode addAttachment auf den KIM Attachment Service hochgeladen. Nach einem erfolgreichen Upload ersetzt das KOM-LE Modul den Body der KOM-LE Nachricht durch die KIM Attachment Datenstruktur. .KOM-LE Nachricht mit Attachment Datenstruktur [%collapsible%open] diff --git a/docs/Fachdienst.adoc b/docs/Fachdienst.adoc index 4e3c901..fd84cf7 100644 --- a/docs/Fachdienst.adoc +++ b/docs/Fachdienst.adoc @@ -9,7 +9,7 @@ image:gematik_logo.svg[width=70%] toc::[] = Fachdienst -Der Fachdienst besteht aus den drei Teilkomponenten Account Manager, Mail Server und dem KOM-LE-Attachment Service. Dieser stellt dem Clientmodul verschiedene Schnittstellen bereit, um die Kommunikations mit der jeweiligen Teilkomponente zu ermöglichen. In der folgenden Abbildung (links) sind alle Schnittstellen, die der Fachdienst anbietet, mit der jeweiligen Teilkomponente, dargestellt. +Der Fachdienst besteht aus den drei Teilkomponenten Account Manager, Mail Server und dem KIM-Attachment Service. Dieser stellt dem Clientmodul verschiedene Schnittstellen bereit, um die Kommunikations mit der jeweiligen Teilkomponente zu ermöglichen. In der folgenden Abbildung (links) sind alle Schnittstellen, die der Fachdienst anbietet, mit der jeweiligen Teilkomponente, dargestellt. ++++
@@ -20,16 +20,17 @@ Der Fachdienst besteht aus den drei Teilkomponenten Account Manager, Mail Server
Im folgenden Kapitel werden die Teilkomponenten weiter beschrieben.
== Mail-Server
-Die Teilkomponente Mail-Server stellt die Schnittstelle `I_Message_Service` bereit. Diese wird über die Protokolle SMTP und POP3 aufgerufen. Die beim Mail-Server ankommenden E-Mails sind verschlüsselt, sodass nicht auf deren Inhalt geschlossen werden kann. Gehört eine dem Mail-Server übergebene E-Mail nicht zu einem lokalen Nutzer-Account, wird diese an den zuständigen KOM-LE Mail-Server weitergeleitet. Die Teilkomponente Mail Server des Fachdienstes ist in *[gemSpec_FD_KOMLE#4.1]* spezifiziert.
+Die Teilkomponente Mail-Server stellt die Schnittstelle `I_Message_Service` bereit. Diese wird über die Protokolle SMTP und POP3 aufgerufen. Die beim Mail-Server ankommenden E-Mails sind verschlüsselt, sodass nicht auf deren Inhalt geschlossen werden kann. Gehört eine dem Mail-Server übergebene E-Mail nicht zu einem lokalen Nutzer-Account, wird diese an den zuständigen KIM Mail-Server weitergeleitet. Die Teilkomponente Mail Server des Fachdienstes ist in *[gemSpec_FD_KOMLE#4.1]* spezifiziert.
== Account Manager
-Die Teilkomponente Account Manager ermöglicht die Konfiguration von Nutzer-Accounts am Fachdienst. Beginnend mit KIM 1.5 müssen die verschiedenen Clientmodule zu jedem Fachdienst interoperabel sein. Um dies zu gewährleisten, werden die Schnittstellen des Account Managers durch die gematik normiert. Die Schnittstelle `I_AccountManager_Service` ermöglicht eine einheitliche Durchführung der Registrierung eines KIM-Teilnehmers sowie die Verwaltung der Nutzer-Accounts. Für die Registrierung bzw. Kontoverwaltung wird das im Clientmodul integrierte Administrationsmodul genutzt, welches die Schnittstlle `I_AccountManager_Service` am Account Manager des Fachdienstes aufruft. Weitere Funktionen des Account Managers sind das Einstellen von Abwesenheitsnotizen durch einen KIM-Teilnehmer sowie die Portierung einer KIM-E-Mail zu einer neuen Telematik-ID. Für die Abfrage von technischen Konfigurationsparametern eines Nutzer-Accounts bietet der Account Manager dem Clientmodul die Schnittstelle `I_AccountLimit_Service` an. Für die Pflege der Fachdaten in den Verzeichniseinträgen ruft der Account Manager die REST-Schnittstelle `I_Directory_Application_Maintenance` auf. Die Teilkomponente Account Manager des Fachdienstes ist in *[gemSpec_FD_KOMLE#4.3]* spezifiziert.
+Die Teilkomponente Account Manager ermöglicht die Konfiguration von Nutzer-Accounts am Fachdienst. Beginnend mit KIM 1.5 müssen die verschiedenen Clientmodule zu jedem Fachdienst interoperabel sein. Um dies zu gewährleisten, werden die Schnittstellen des Account Managers durch die gematik normiert. Die Schnittstelle `I_AccountManager_Service` ermöglicht eine einheitliche Durchführung der Registrierung eines KIM-Teilnehmers sowie die Verwaltung der Nutzer-Accounts. Für die Registrierung bzw. Kontoverwaltung wird das im Clientmodul integrierte Administrationsmodul genutzt, welches die Schnittstlle `I_AccountManager_Service` am Account Manager des Fachdienstes aufruft. Weitere Funktionen des Account Managers sind das Einstellen von Abwesenheitsnotizen durch einen KIM-Teilnehmer sowie die Portierung einer KIM-E-Mail zu einer neuen Telematik-ID. Für die Abfrage von technischen Konfigurationsparametern eines Nutzer-Accounts bietet der Account Manager dem Clientmodul die Schnittstelle `I_AccountLimit_Service` an. Für die Abfrage von technischen Konfigurationsparametern des Fachdienstes bietet der Account Manager dem Clientmodul die Schnittstelle `I_ServiceInformation` an. Für die Pflege der Fachdaten in den Verzeichniseinträgen ruft der Account Manager die REST-Schnittstelle `I_Directory_Application_Maintenance` auf. Die Teilkomponente Account Manager des Fachdienstes ist in *[gemSpec_FD_KOMLE#4.3]* spezifiziert.
Die Beschreibung der REST-Schnittstelle `I_AccountManager_Service` ist hier zu finden: link:../src/openapi/AccountManager.yaml[AccountManager.yaml] +
-Die Beschreibung der REST-Schnittstelle `I_AccountLimit_Service` ist hier zu finden: link:../src/openapi/AccountLimit.yaml[AccountLimit.yaml]
+Die Beschreibung der REST-Schnittstelle `I_AccountLimit_Service` ist hier zu finden: link:../src/openapi/AccountLimit.yaml[AccountLimit.yaml] +
+Die Beschreibung der REST-Schnittstelle `I_ServiceInformation` ist hier zu finden: link:../src/openapi/ServiceInformation.yaml[ServiceInformation.yaml]
-== KOM-LE Attachment Service (KAS)
-Ab KIM 1.5 werden die E-Mail-Daten einer Mail, die größer 15 MiB ist, ausgelagert. Für die Ablage der E-Mail-Daten wird der Fachdienst um die Teilkomponente KOM-LE Attachment Service (KAS) erweitert. Die Teilkomponente KAS des Fachdienstes stellt dem Clientmodul die REST-Schnittstelle `I_Attachment_Service` bereit. Die Teilkomponente KAS ist in *[gemSpec_FD_KOMLE#4.2]* spezifiziert.
+== KIM Attachment Service (KAS)
+Ab KIM 1.5 werden die E-Mail-Daten einer Mail, die größer 15 MiB ist, ausgelagert. Für die Ablage der E-Mail-Daten wird der Fachdienst um die Teilkomponente KIM Attachment Service (KAS) erweitert. Die Teilkomponente KAS des Fachdienstes stellt dem Clientmodul die REST-Schnittstelle `I_Attachment_Service` bereit. Die Teilkomponente KAS ist in *[gemSpec_FD_KOMLE#4.2]* spezifiziert.
Die Beschreibung der REST-Schnittstelle `I_Attachment_Service` ist hier zu finden: link:../src/openapi/AttachmentService.yaml[AttachmentService.yaml]
diff --git a/docs/KIM_API.adoc b/docs/KIM_API.adoc
index 7199c91..10ee288 100644
--- a/docs/KIM_API.adoc
+++ b/docs/KIM_API.adoc
@@ -10,12 +10,12 @@ toc::[]
= Clientsystem
-Beginnend mit der KIM Version 1.5 werden weitere Funktionalitäten im Clientmodul bereitgestellt, die im folgenden Kapitel weiter beschrieben werden. Darüberhinaus kann ab dieser Version das Clientmodul optional in das Primärsystem integriert werden. Zur Sicherstellung der Interoperabilität zwischen den Clientmodulen und den Fachdiensten wird eine weitere Schnittstelle durch die gematik am Account Manager normativ festgelegt. Diese wird durch das Administrationsmodul aufgerufen und ermöglicht die Konfiguration der Nutzer-Accounts.
+Beginnend mit der KIM Version 1.5 werden weitere Funktionalitäten im Clientmodul bereitgestellt, die im folgenden Kapitel näher beschrieben werden. Darüber hinaus kann ab dieser Version das Clientmodul optional in das Primärsystem integriert werden. Zur Sicherstellung der Interoperabilität zwischen den Clientmodulen und den Fachdiensten wird eine Schnittstelle (`I_AccountManager_Service`) durch die gematik am Account Manager normativ festgelegt. Diese wird durch das Administrationsmodul aufgerufen und ermöglicht die Konfiguration der Nutzer-Accounts.
== Änderungen im Clientmodul ab KIM 1.5
=== Optionale Integration in das Clientsystem
-Ab der KIM Version 1.5 ist es möglich das Clientmodul in ein Clientsystem zu integrieren. Ein seperates Clientmodul ist in diesem Fall nicht mehr notwendig.
+Ab der KIM Version 1.5 ist es möglich das Clientmodul in ein Clientsystem zu integrieren. Ein seperates Clientmodul ist in diesem Fall nicht mehr notwendig. Zur Sicherstellung einer spezifikationskonformen Umsetzung der Intergration in das Clientsystem wird durch die gematik ein entsprechender Prokttypsteckbrief (gemProdT_iCM_KIM) bereitgestellt.
=== Umgang mit E-Mail-Kategorien
@@ -25,11 +25,11 @@ Eine Übersicht über alle Dienstkennungen kann hier eingesehen werden: link:htt
=== Umgang mit großen Anhängen
-E-Mails mit einer Gesamtgröße bis zu 15 MiB werden entsprechend den Festlegungen im KIM 1.0 behandelt. Übersteigt die Größe einer E-Mail die 15 MiB Grenze, wird die gesamte Client-Mail auf dem KOM-LE-Attachment-Service (KAS) des Fachdiensts des Absenders abgelegt. Das Clientmodul ersetzt den Body der originalen Mail mit der KIM-Attachment Datenstruktur und versendet diese nach der weiteren Verarbeitung durch das Clientmodul als KOM-LE Nachricht an den Fachdienst. Das KIM-Clientmodul des Empfängers erkennt den Link in der KIM-Attachment Datenstruktur, lädt die E-Mail-Daten vom KAS des Absenders und entschlüsselt sie. Die damit wieder hergestellte originale Client-Mail wird dem Mail-Client des Empfängers zugestellt. Der Umgang mit großen Anhängen ist in *[gemSpec_CM_KOMLE#3.2]* spezifiziert. Die vom KAS dazu bereitgestellte Schnittstelle wird im folgenden genauer beschrieben.
+E-Mails mit einer Gesamtgröße bis zu 15 MiB werden entsprechend den Festlegungen im KIM 1.0 behandelt. Übersteigt die Größe einer E-Mail die 15 MiB Grenze, wird die gesamte Client-Mail, durch das Clientmodul des Senders verschlüsselt, auf dem KIM-Attachment-Service (KAS) des Fachdiensts des Absenders abgelegt. Das Clientmodul ersetzt den Body der originalen Mail mit der KIM-Attachment Datenstruktur (*[gemSpec_CM_KOMLE#Tabelle 2]*) und versendet diese nach der weiteren Verarbeitung durch das Clientmodul als KIM Nachricht an den Fachdienst. Das KIM-Clientmodul des Empfängers erkennt den `link` in der KIM-Attachment Datenstruktur, lädt die E-Mail-Daten vom KAS des Absenders und entschlüsselt sie. Die damit wieder hergestellte originale Client-Mail wird dem Mail-Client des Empfängers zugestellt. Der Umgang mit großen Anhängen ist in *[gemSpec_CM_KOMLE#3.2]* spezifiziert. Die vom KAS dazu bereitgestellte Schnittstelle wird im folgenden genauer beschrieben.
==== I_Attachment_Service
-Über die Schnittstelle `I_Attachment_Service` stellt der KAS dem Clientmodul die logischen Operationen `add_Attachment()`, und `read_Attachment()` zum Hoch- und Herunterladen von verschlüsselten E-Mail-Daten zur Verfügung. Im folgenden Kapitel wird der Aufruf der Operationen beschrieben.
+Über die Schnittstelle `I_Attachment_Service` stellt der KAS dem Clientmodul die logischen Operationen `add_Attachment()`, und `read_Attachment()` zum Hoch- und Herunterladen von verschlüsselten E-Mail-Daten sowie die Operation `delete_Maildata` für das Löschen der E-Mail-Daten, unmittelbar nach dem Hochladen, zur Verfügung. Im folgenden Kapitel wird der Aufruf der Operationen beschrieben.
//image:I_KAS.png[width=45%]
@@ -166,6 +166,56 @@ Body:
|Internal Server Error
|===
+===== delete_Maildata() +
+Mit Hilfe der Opertion `delete_Maildata()` kann ein Clientmodul die auf dem KAS abgelegten E-Mail Daten, im Falle des fehlerhaften Versands der dazugehörenden KIM-Nachricht, wieder löschen.
+
+*Beispiel einer HTTP Nachricht*
+
+[cols="h,a",]
+|===
+|URI |\https://kas.hrst1.kim.telematik/attachments/v2.3/attachment/+{attachmentId}+ +
+[normal]#`attachmentId` - Freigabelink, unter dem die E-Mail-Daten gespeichert wurden#
+|Method |DELETE
+|Header |
+[source, bash]
+----
+HTTP-Version: "HTTP/1.1"
+Content-Type: "multipart/form-data"
+Authorization: "Basic Z2VtYXRpazpraW0="
+----
+|Body |
+keine Parameter
+|===
+
+*Beispielabfrage:*
+[source, bash]
+-----------------
+curl -X 'DELETE' \
+'https://kas.hrst1.kim.telematik/attachments/v2.3/attachment/b2deea19-c37f-4ef0-a95f-d4e8b5817824' \
+-H 'accept: application/octet-stream' \
+-----------------
+
+*Beispielantwort*
+[source, ruby]
+-----------------
+Code: 200
+-----------------
+
+*HTTP-Status Codes:*
+|===
+|Status |Bedeutung
+
+|200 | OK +
+[small]#Daten wurden gelöscht#
+|400 | Bad Request +
+[small]#Fehler in den Eingangsdaten, Beschreibung des Fehlers erfolgt in dem Fehlertext#
+|401 | Unauthorized +
+[small]#Authentifizierung fehlgeschlagen.#
+|404 |no Ressource +
+[small]#Ressource unter dem angegebenen Link nicht gefunden#
+|500
+|Internal Server Error
+|===
==== I_AccountLimit_Service
Über die Schnittstelle `I_AccountLimit_Service` stellt der Account Manager dem Clientmodul die logische Operationen `getLimits()` zur Abfrage von technisch konfigurierbaren Parametern eines Nutzer-Accounts zur Verfügung.
@@ -215,6 +265,7 @@ Body:
{
"dataTimeToLive": 90,
"maxMailSize": 734003200,
+ "kasMailSizeThreshold": 15728640;
"quota": 160000000000,
"remainQuota": 112000000000
}
@@ -274,15 +325,17 @@ Mittels der Operation `registerAccount()` wird die Registrierung eines KIM-Teiln
"username": "user@example.kim.telematik",
"password": "new_password",
"kimVersion": "1.5"
+ "appTags": "
-
+
+
-
+
+
-
+
+