├── .github
└── workflows
│ └── GenerateImagesFromSrc.yml
├── .gitignore
├── .vscode
└── settings.json
├── LICENSE
├── README.adoc
├── ReleaseNotes.adoc
├── SECURITY.adoc
├── docs
├── .gitkeep
├── Anwendungsfaelle.adoc
├── Authentisierung.adoc
├── Email_Verarbeitung.adoc
├── Fachdienst.adoc
├── KIM_API.adoc
├── Lastverteilung und Performance beim Einsatz von KIM 1.0.pdf
├── Primaersystem.adoc
├── Versionierung.adoc
├── Verzeichnisdienst.adoc
└── faq.adoc
├── images
├── .gitkeep
├── A_email_empfangen.jpg
├── A_email_senden.jpg
├── Anw_account_mgr_v1.PNG
├── Anw_email_receive.PNG
├── Anw_email_send.PNG
├── CM_Integration.png
├── I_AccountLimit.png
├── I_AccountManager.png
├── I_Fachdienst.png
├── I_KAS.png
├── Int_PS-KIM.svg
├── Int_PS-KOMLE.png
├── KIM_Varianten.png
├── KOMLE_Fachdaten.PNG
├── KOMLE_Fachdaten.svg
├── MTA_SMTP_Benutzername.png
├── Multikonnektoren.png
├── SMTP_KIM_Adapter.svg
├── Seq_acc_abwesenheitsnotiz.png
├── Seq_acc_anwendungskennzeichen.png
├── Seq_acc_deregister.png
├── Seq_acc_kontoverwaltung.png
├── Seq_acc_mgr.PNG
├── Seq_acc_portierung.png
├── Seq_acc_register.png
├── Seq_acc_zertifikat.png
├── Seq_email_empfangen.PNG
├── Seq_email_senden.PNG
├── UC_PS-KIM.svg
├── UC_PS-KOMLE.png
├── acmgr_overview.png
├── diagrams
│ ├── Fachdienst
│ │ ├── Seq_acc_abwesenheitsnotiz.png
│ │ ├── Seq_acc_abwesenheitsnotiz.svg
│ │ ├── Seq_acc_anwendungskennzeichen.png
│ │ ├── Seq_acc_anwendungskennzeichen.svg
│ │ ├── Seq_acc_deregister.png
│ │ ├── Seq_acc_deregister.svg
│ │ ├── Seq_acc_kontoverwaltung.png
│ │ ├── Seq_acc_kontoverwaltung.svg
│ │ ├── Seq_acc_portierung.png
│ │ ├── Seq_acc_portierung.svg
│ │ ├── Seq_acc_register.png
│ │ ├── Seq_acc_register.svg
│ │ ├── Seq_acc_revoke_deregister.png
│ │ ├── Seq_acc_revoke_deregister.svg
│ │ ├── Seq_acc_zertifikat.png
│ │ ├── Seq_acc_zertifikat.svg
│ │ ├── Seq_kas_email_empfangen.png
│ │ ├── Seq_kas_email_empfangen.svg
│ │ ├── Seq_kas_email_senden.png
│ │ └── Seq_kas_email_senden.svg
│ ├── Int_PS-KIM.png
│ ├── Int_PS-KIM.svg
│ ├── KIM_2.0_Architektur-Seite-1.png
│ ├── KIM_2.0_Architektur-Seite-1.svg
│ ├── UC_PS-KIM.png
│ ├── UC_PS-KIM.svg
│ ├── eMail_status_empfangen.png
│ ├── eMail_status_empfangen.svg
│ ├── eMail_status_senden.png
│ └── eMail_status_senden.svg
├── gematik_logo.svg
├── gematik_logo_simple.jpg
├── kas_overview.png
└── kim_overview.png
├── samples
├── .gitkeep
├── KAS
│ ├── .gitkeep
│ ├── 1_1_Client-Mail_empfangen.txt
│ ├── 1_2_Client-Mail_prozessiert.txt
│ ├── 1_3_Client-Mail_hochgeladen.txt
│ ├── 1_4_KOM-LE-Mail_finalisiert.txt
│ ├── 2_1_KOM-LE-Mail_empfangen.txt
│ ├── 2_2_KOM-LE-Mail_prozessiert.txt
│ ├── 2_3_Client-Mail_heruntergeladen.txt
│ └── 2_4_Client-Mail_finalisiert.txt
└── SMIME-Profil.zip
└── src
├── .gitkeep
├── drawio
└── KIM_2.0_Architektur.drawio
├── json
├── README.adoc
└── badges.json
├── openapi
├── .gitkeep
├── AccountLimit.yaml
├── AccountManager.yaml
├── AttachmentService.yaml
├── CommonSchemas.yaml
└── ServiceInformation.yaml
├── plantuml
├── Fachdienst
│ ├── Seq_acc_abwesenheitsnotiz.puml
│ ├── Seq_acc_anwendungskennzeichen.puml
│ ├── Seq_acc_deregister.puml
│ ├── Seq_acc_kontoverwaltung.puml
│ ├── Seq_acc_portierung.puml
│ ├── Seq_acc_register.puml
│ ├── Seq_acc_revoke_deregister.puml
│ ├── Seq_acc_zertifikat.puml
│ ├── Seq_kas_email_empfangen.puml
│ └── Seq_kas_email_senden.puml
├── Int_PS-KIM.puml
├── UC_PS-KIM.puml
├── architecture
│ ├── KIM, receive 500MB, proof of concept.puml
│ └── KIM, send 500MB, proof of concept.puml
├── eMail_status_empfangen.puml
└── eMail_status_senden.puml
└── schema
├── .gitkeep
└── Attachment_schema.json
/.github/workflows/GenerateImagesFromSrc.yml:
--------------------------------------------------------------------------------
1 | name: GenerateImagesFromSrc
2 |
3 | on:
4 | push:
5 | branches:
6 | - '**'
7 | paths:
8 | - 'src/plantuml/**'
9 | - 'src/drawio/**'
10 |
11 | workflow_dispatch:
12 |
13 | jobs:
14 | build:
15 | runs-on: ubuntu-latest
16 |
17 | steps:
18 |
19 | # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
20 | - uses: actions/checkout@v3
21 |
22 | # Installs Java distribution for running the plantUML jar
23 | - name: Install Java
24 | uses: actions/setup-java@v3
25 | with:
26 | distribution: 'temurin'
27 | java-version: '11'
28 | check-latest: true
29 |
30 | # Install graphviz for plantuml
31 | - name: Setup Graphviz
32 | uses: ts-graphviz/setup-graphviz@v1
33 |
34 | # Download plantUML jar
35 | - name: Download plantuml file
36 | run: |
37 | wget -O plantuml.jar "https://github.com/plantuml/plantuml/releases/download/v1.2023.10/plantuml-1.2023.10.jar"
38 |
39 | # Runs a single command using the runners shell
40 | - name: Generate images
41 | run: |
42 | imagedir=images/diagrams
43 | mkdir -p $imagedir
44 | rm -rf images/diagrams/*
45 | for fullname in $(find src/plantuml/ -type f -name '*.puml')
46 | do
47 | echo "Fullname: ${fullname}"
48 | base=$(basename "${fullname}" .puml)
49 | dir=$(dirname $fullname)
50 | echo "Basename: ${base}"
51 | outdir=$(dirname $fullname | sed s+src/plantuml+${imagedir}+)
52 | echo "Outdir: ${outdir}"
53 | mkdir -p $outdir
54 | plantoutdir="${PWD}/${outdir}"
55 | echo "PlantOutdir: ${plantoutdir}"
56 |
57 | # PlantUML arguments:
58 | # -v for verbose output (Debugging)
59 | # -checkmetadata checks whether the target png/svg has the same source
60 | # and if there are no changes, doesn't regenerate the image file
61 | # -o sets the output folder for the png/svg files
62 | plantargs="-v -checkmetadata -o ${plantoutdir} ${fullname}"
63 |
64 | # separate calls are needed, because only one file type can be set
65 | # per call
66 | java -jar plantuml.jar -tpng ${plantargs}
67 | java -jar plantuml.jar -tsvg ${plantargs}
68 |
69 | # method with pipes
70 | #cat "${fullname}" | java -jar plantuml.jar -p -tpng -checkmetadata > "${outdir}/${base}.png"
71 | #cat "${fullname}" | java -jar plantuml.jar -p -tsvg -checkmetadata > "${outdir}/${base}.svg"
72 | done
73 | tree ./images
74 |
75 | # creates png files from draw io image files
76 | - name: Export drawio files as png
77 | uses: rlespinasse/drawio-export-action@v2
78 | with:
79 | path: ./src/drawio/
80 | output: .
81 | format: png
82 | action-mode: all
83 |
84 | # creates svg files from draw io image files
85 | - name: Export drawio files
86 | uses: rlespinasse/drawio-export-action@v2
87 | with:
88 | path: ./src/drawio/
89 | output: .
90 | format: svg
91 | action-mode: all
92 |
93 | # copies the created png & svg files to the images/diagrams folder and deletes the drawio files
94 | - name: Copy draw io
95 | run: |
96 | imagedir=images/diagrams
97 | cp -RT ./src/drawio $imagedir
98 | find $imagedir -name '*.drawio' -exec rm -rv {} \;
99 | tree ./images
100 |
101 | # add and commit the new generated files
102 | - name: Add & Commit
103 | uses: EndBug/add-and-commit@v9
104 | with:
105 | add: 'images/diagrams/'
106 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .vscode/settings.json
2 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "cSpell.words": [
3 | "JWTs"
4 | ],
5 | "asciidoc.antora.enableAntoraSupport": true
6 | }
7 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2022 gematik GmbH
2 |
3 | Licensed under the Apache License, Version 2.0 (the License);
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 |
7 | http://www.apache.org/licenses/LICENSE-2.0
8 |
9 | Unless required by applicable law or agreed to in writing, software
10 | distributed under the License is distributed on an 'AS IS' BASIS,
11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | See the License for the specific language governing permissions and
13 | limitations under the License.
14 |
--------------------------------------------------------------------------------
/README.adoc:
--------------------------------------------------------------------------------
1 | :imagesdir: images
2 | = KIM - Dokumentation
3 |
4 | image:gematik_logo.svg[width=70%]
5 |
6 | image:https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fraw.githubusercontent.com%2Fgematik%2Fapi-kim%2Fmain%2Fsrc%2Fjson%2Fbadges.json&query=%24.badges.releaseNotes.version&prefix=%20&style=plastic&logo=github&logoColor=blue&label=ReleaseNotes&labelColor=%24.badges.releaseNotes.color&color=blue[link="ReleaseNotes.adoc"] +
7 | image:https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fraw.githubusercontent.com%2Fgematik%2Fapi-kim%2Fmain%2Fsrc%2Fjson%2Fbadges.json&query=%24.badges.kimClientmodulSpec.version&style=plastic&logo=adobeacrobatreader&logoColor=red&label=Spezifikation%20KIM%20Clientmodul&color=red&[link=https://fachportal.gematik.de/Fanwendungen/kommunikation-im-medizinwesen]
8 | image:https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fraw.githubusercontent.com%2Fgematik%2Fapi-kim%2Fmain%2Fsrc%2Fjson%2Fbadges.json&query=%24.badges.kimFachdienstSpec.version&style=plastic&logo=adobeacrobatreader&logoColor=red&label=Spezifikation%20KIM%20Fachdienst&color=red&[link=https://fachportal.gematik.de/Fanwendungen/kommunikation-im-medizinwesen] +
9 | image:https://img.shields.io/badge/dynamic/yaml?url=https%3A%2F%2Fraw.githubusercontent.com%2Fgematik%2Fapi-kim%2Fmain%2Fsrc%2Fopenapi%2FAccountManager.yaml&query=%24.info.version&style=plastic&logo=openapiinitiative&logoColor=green&label=AccountManager&color=green[link="src/openapi/AccountManager.yaml"]
10 | image:https://img.shields.io/badge/dynamic/yaml?url=https%3A%2F%2Fraw.githubusercontent.com%2Fgematik%2Fapi-kim%2Fmain%2Fsrc%2Fopenapi%2FAttachmentService.yaml&query=%24.info.version&style=plastic&logo=openapiinitiative&logoColor=green&label=AttachmentService&color=green[link="src/openapi/attachmentService.yaml"]
11 | image:https://img.shields.io/badge/dynamic/yaml?url=https%3A%2F%2Fraw.githubusercontent.com%2Fgematik%2Fapi-kim%2Fmain%2Fsrc%2Fopenapi%2FAccountLimit.yaml&query=%24.info.version&style=plastic&logo=openapiinitiative&logoColor=green&label=AccountLimit&color=green[link="src/openapi/AccountLimit.yaml"]
12 | image:https://img.shields.io/badge/dynamic/yaml?url=https%3A%2F%2Fraw.githubusercontent.com%2Fgematik%2Fapi-kim%2Fmain%2Fsrc%2Fopenapi%2FServiceInformation.yaml&query=%24.info.version&style=plastic&logo=openapiinitiative&logoColor=green&label=ServiceInformation&color=green[link="src/openapi/ServiceInformation.yaml"]
13 | image:https://img.shields.io/badge/dynamic/yaml?url=https%3A%2F%2Fraw.githubusercontent.com%2Fgematik%2Fapi-kim%2Fmain%2Fsrc%2Fopenapi%2FCommonSchemas.yaml&query=%24.info.version&style=plastic&logo=openapiinitiative&logoColor=green&label=CommonSchemas&color=green[link="src/openapi/CommonSchemas.yaml"]
14 |
15 | == Allgemeines
16 |
17 | Die folgende Dokumentation beschreibt KIM 1.5.3. An dieser Stelle werden insbesondere die Komponenten der Lösung sowie deren Schnittstellen dargestellt und erläutert. Die Version KIM 1.5.3 ist vollständig abwärtskompatibel. Dadurch wird gewährleistet, dass Teilnehmer mit einer früheren Version uneingeschränkt Nachrichten an Teilnehmer versenden können, die bereits KIM 1.5.3 verwenden.
18 |
19 | Der Funktionsumfang der KIM Version 1.5 erweitert sich gegenüber KIM 1.0 wie folgt:
20 |
21 | * die Aufhebung der Größenbeschränkung von Nachrichten
22 |
23 | * die optionale Integration des Clientmoduls in das Primärsystem
24 |
25 | * ein Administrationsmodul für die Konfiguration des Nutzer-Accounts
26 |
27 | * das Einrichten von Abwesenheitsnotizen
28 |
29 | * das Einrichten von Anwendungskennzeichen
30 |
31 | * die Unterstützung syntaktischer Nachrichtenkategorien (Dienstkennungen)
32 |
33 | * die Unterstützung von Multikonnektor-Umgebungen
34 |
35 | _Hinweis: Seit März 2020 verwendet die gematik die Bezeichnung „KIM – Kommunikation im Medizinwesen“ für die Anwendung KOM-LE. Diese neue Benennung findet sich insbesondere in Informationsmaterialien für die Zielgruppe Leistungserbringer, sowie in Presseveröffentlichungen. Eine Umbenennung in den technisch-normativen Dokumenten wie Spezifikationen, Konzepten, Zulassungsdokumenten etc. mit Ausnahme von Angaben zu Domänen, E-Mail-Adressen, technischen Schnittstellen, Parametern u.ä. erfolgt schrittweise und an geeigneter Stelle._
36 |
37 | == Systemarchitektur
38 |
39 | Die folgende Abbildung gibt einen Überblick über die Systemarchitektur von KIM 1.5. Die Änderungen bei Komponenten und Schnittstellen von KIM 1.0 zu KIM 1.5 sind in der Abbildung rot dargestellt.
40 |
41 | ++++
42 |
43 |
44 |
45 | ++++
46 |
47 | link:docs/KIM_API.adoc[*Clientsystem*]
48 |
49 | * *Clientmodul:* +
50 | Das Clientmodul kann jetzt optional in das Clientsystem (z. B. Primärsystem) integriert werden.
51 |
52 | * *Administrationsmodul:* +
53 | Die Erweiterung des Clientmoduls um das Administrationsmodul ermöglicht die Kommunikation mit dem Account Manager des Fachdienstes zur Administration und Konfiguration des Accounts eines KIM-Teilnehmers.
54 |
55 | link:docs/Fachdienst.adoc[*Fachdienst*]
56 |
57 | * *Mail Server:* +
58 | 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.
59 |
60 | * *Account Manager:* +
61 | 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.
62 |
63 | * *KIM Attachment Service:* +
64 | 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.
65 |
66 | link:docs/Verzeichnisdienst.adoc[*Verzeichnisdienst*]
67 |
68 | * 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.
69 | * Der Verzeichnisdienst wird um die REST-Schnittstelle `I_Directory_Application_Maintenance` erweitert.
70 |
71 | == Ordnerstruktur
72 |
73 | Im Folgenden ist die Organisation der Ordnerstruktur dargestellt.
74 |
75 | ----
76 | KIM-API
77 | ├─ docs
78 | ├─ images
79 | ├─ samples
80 | | ├──── KAS
81 | │ └──── SMIME-Profil.zip
82 | ├─ src
83 | │ ├──── json
84 | │ │ └── badges.json
85 | | ├──── openapi
86 | │ │ ├── AccountLimit.yaml
87 | │ │ ├── AccountManager.yaml
88 | │ │ ├── AttachmentServices.yaml
89 | │ │ ├── CommonSchemas.yaml
90 | │ │ └── ServiceInformation.yaml
91 | │ ├──── plantuml
92 | │ │ └── Fachdienst
93 | │ └──── schema
94 | │ └── Attachment_schema.json
95 | ├── LICENSE
96 | ├── README.adoc
97 | ├── ReleaseNotes.md
98 | └── SECURITY.adoc
99 | ----
100 |
101 | == Ausbaustufen
102 |
103 | Mit der Einführung von KIM unterstützt die gematik das Gesundheitswesen durch einen sektorenübergreifenden, sicheren E-Maildienst. In mehreren Versionen wird der Funktionsumfang von KIM kontinuierlich erweitert. Aktuell existieren die folgenden Versionen mit ihren dazugehörigen aktuellen Releases.
104 |
105 | |===
106 | |KIM 1.0 |KIM 1.5
107 |
108 | |https://fachportal.gematik.de/schnelleinstieg/downloadcenter/releases#c6557[R1.3.3-2] |https://fachportal.gematik.de/schnelleinstieg/downloadcenter/releases#c8094[KIM 1.6.3-0]
109 | |===
110 |
111 | Weitere Informationen zu den Versionen finden Sie hier: https://fachportal.gematik.de/anwendungen/kommunikation-im-medizinwesen[KIM]
112 |
113 | == Referenzierte Dokumente
114 |
115 | Die nachfolgende Tabelle enthält die in der vorliegenden Online Dokumentation referenzierten Dokumente der gematik zur Telematikinfrastruktur. Deren zu diesem Dokument jeweils gültige Versionsnummer entnehmen Sie bitte der aktuellen, auf der Internetseite der gematik veröffentlichten, Dokumentenlandkarte, in der die vorliegende Version aufgeführt wird.
116 |
117 | |===
118 | |[Quelle] |Herausgeber: Titel
119 |
120 | |*[gemSysL_KOMLE]* |gematik: Systemspezifisches Konzept Kommunikation Leistungserbringer (KOM-LE)
121 | |*[gemSMIME_KOMLE]* |gematik: S/MIME-Profil Kommunikation Leistungserbringer (KOM-LE)
122 | |*[gemSpec_CM]* |gematik: Spezifikation KOM-LE-Clientmodul
123 | |*[gemSpec_FD]* |gematik: Spezifikation Fachdienst KOM-LE
124 | |*[gemSpec_VZD]* |gematik: Spezifikation Verzeichnisdienst
125 | |*[gemSpec_OM]* |gematik: Übergreifende Spezifikation Operations und Maintenance
126 | |*[gemProdT_CM_KOMLE_PTV]* |gematik: Produkttypsteckbrief Prüfvorschrift KOM-LE-Clientmodul
127 | |*[gemProdT_iCM_KIM]* |gematik: Produkttypsteckbrief Prüfvorschrift Integriertes Clientmodul KIM
128 | |===
129 |
130 | == Weiterführende Seiten
131 | *Anwendungsfälle* +
132 | link:docs/Anwendungsfaelle.adoc[- Anwendungsfälle]
133 |
134 | *Produkttypen* +
135 | link:docs/KIM_API.adoc[- Clientsystem] +
136 | link:docs/Fachdienst.adoc[- Fachdienst] +
137 | link:docs/Verzeichnisdienst.adoc[- Verzeichnisdienst]
138 |
139 | *Leitfaden für Primärsystemhersteller* +
140 | link:docs/Primaersystem.adoc[- Primärsystem]
141 |
142 | *Diverses* +
143 | link:docs/Authentisierung.adoc[- Authentisierung] +
144 | link:docs/Versionierung.adoc[- Versionierung] +
145 | link:docs/Email_Verarbeitung.adoc[- Beispiel für große E-Mails] +
146 | link:docs/faq.adoc[- Fragen und Antworten zur aktuellen Spezifikation [FAQ]]
147 |
148 |
149 | *Referenz-Implementierungen* +
150 | https://github.com/gematik/kim-attachment-service[- KIM-Attachment-Service] +
151 | https://github.com/gematik/app-thunderbird-kim-plugin[- KIM-Thunderbird Plugin]
152 |
153 | == api-kim Branch Modell
154 |
155 | Im GitHub gematik/api-kim Repository werden Branches verwendet um den Status der Weiterentwicklung und das Review von Änderungen abzubilden.
156 |
157 | Folgende Branches werden verwendet
158 |
159 | - *main* (enthält den letzten freigegebenen Stand der Entwicklung; besteht permanent)
160 | - *develop* (enthält den Stand der fertig entwickelten Features und wird zum Review durch Industriepartner und Gesellschafter verwendet; basiert auf main; nach Freigabe erfolgt ein merge in main und ein Release wird erzeugt; besteht permanent)
161 | - *feature/* (in feature branches werden neue Features entwickelt; basiert auf develop; nach Fertigstellung erfolgt ein merge in develop; wird nach dem merge gelöscht)
162 | - *hotfix/* (in hotfix branches werden Hotfixes entwickelt; basiert auf main; nach Fertigstellung erfolgt ein merge in develop und in main; wird nach dem merge gelöscht)
163 | - *concept/* (in feature branches werden neue Konzepte entwickelt; basiert auf develop; dient der Abstimmung mit Dritten; es erfolgt kein merge; wird nach Bedarf gelöscht)
164 | - *misc/* (nur für internen Gebrauch der gematik; es erfolgt kein merge; wird nach Bedarf gelöscht)
165 |
166 | == Lizenzbedingungen
167 |
168 | Copyright (c) 2022 gematik GmbH
169 |
170 | Licensed under the Apache License, Version 2.0 (the "License");
171 | you may not use this file except in compliance with the License.
172 | You may obtain a copy of the License at
173 |
174 | http://www.apache.org/licenses/LICENSE-2.0
175 |
176 | Unless required by applicable law or agreed to in writing, software
177 | distributed under the License is distributed on an "AS IS" BASIS,
178 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
179 | See the License for the specific language governing permissions and
180 | limitations under the License.
181 |
--------------------------------------------------------------------------------
/SECURITY.adoc:
--------------------------------------------------------------------------------
1 | = Security Policy
2 |
3 | Please submit an issue or pull request for any non critical bugs
4 | or non critical vulnerabilities you find.
5 |
6 | In case of a responsible disclosure, please follow instructions
7 | on https://www.gematik.de/datensicherheit#c1227.
8 |
--------------------------------------------------------------------------------
/docs/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/docs/.gitkeep
--------------------------------------------------------------------------------
/docs/Authentisierung.adoc:
--------------------------------------------------------------------------------
1 | :imagesdir: ../images
2 | :doctype: book
3 | :toc: macro
4 | :toclevels: 3
5 | :toc-title: Inhaltsverzeichnis
6 | :numbered:
7 |
8 | image:gematik_logo.svg[width=70%]
9 |
10 | toc::[]
11 |
12 | == Authentifizierung
13 | In KIM-Umfeld gibt es drei Authentisierungsmechanismen, um sich bei einem Dienst zu authentifizieren. Dazu gehören:
14 |
15 | - die SMTP/POP3-Authentifizierung,
16 | - die HTTP-Basic-Authentifizierung und
17 | - das Verwenden eines JSON-Web-Tokens.
18 |
19 | Die Details sowie Verweise auf die entsprechenden Anforderungen werden im folgenden beschrieben.
20 |
21 | === Mail-Server
22 | Der Mail-Server nimmt SMTP-Nachrichten von Clientmodulen entgegen und leitet diese an die Ziel-Mail-Server weiter. Empfangene Nachrichten werden vom Mail-Server zur Abholung bereitgestellt und auf Anforderung über POP3 an Clientmodule ausgeliefert. Für das Senden sowie das Empfangen von Mails ist eine Authentifizierung am Mail-Server über Username und Passwort notwendig. Die Anforderungen sind in *[gemSpec_FD_KOMLE#3.1]* spezifiziert.
23 |
24 | === Account Manager
25 | 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
26 |
27 | === KIM-Attachment Service (KAS)
28 | 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.
29 |
--------------------------------------------------------------------------------
/docs/Email_Verarbeitung.adoc:
--------------------------------------------------------------------------------
1 | ifdef::env-github[]
2 | :tip-caption: :bulb:
3 | :note-caption: :information_source:
4 | :important-caption: :heavy_exclamation_mark:
5 | :caution-caption: :fire:
6 | :warning-caption: :warning:
7 | endif::[]
8 |
9 | :imagesdir: ../images
10 | :maildir: ../samples/Mails
11 | :doctype: book
12 | :toc: macro
13 | :toclevels: 3
14 | :toc-title: Inhaltsverzeichnis
15 | :numbered:
16 |
17 | image:gematik_logo.svg[width=70%]
18 |
19 | toc::[]
20 |
21 | = E-Mail Handling
22 | Diese Seite gibt einen Überblick über den Prozess der E-Mail Verarbeitung durch ein KIM-Clientmodul und einen beispielhaften Einblick in den Aufbau der E-Mail nach den jeweiligen Prozesschritten. Als Beispiel wird das Happy Day Szenario vom Versand einer Mail gewählt, die wegen ihrer Größe(20 MiB) einen Versand unter Einbezug des KIM-Attachment Service nach sich zieht. In die Client-Mail wurde ebenfalls die Verwendung eines modifizierten From Headers inkludiert. Das folgende Kapitel befasst sich mit dem Versandvorgang einer Clientmail, während der Empfangsvorgang dann in Kapitel <> beschrieben wird.
23 |
24 | == Versand einer E-Mail
25 | Der Versand einer Mail startet, wenn von einem Client-System über SMTP eine MIME-Mail an das KIM-Clientmodul übergeben wird.
26 |
27 | Ablauf beim Versand einer E-Mail
28 | ++++
29 |
30 |
31 |
32 | ++++
33 |
34 | === Client-Mail empfangen
35 | Das KOM-LE Clientmodul empfängt eine BASE64 kodierte Nachricht von einem Clientsystem(KIS, PVS, etc). Diese Mail verfügt über einen Anhang der eine Verarbeitung mit dem KIM-Attachment Service nötig macht und über den From Header wird versucht einen falschen Absender zu simulieren. Vom Clientsystem wurde keine X-KIM-Dienstkennung gesetzt.
36 |
37 | .Client Mail
38 | [%collapsible%open]
39 | ====
40 | [source,txt, linenums]
41 | ----
42 | Message-ID:
43 | Date: Fri, 9 Sep 2022 15:47:00 +0200
44 | MIME-Version: 1.0
45 | User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
46 | Thunderbird/91.13.0
47 | To: "user.test15@gematik.kim.telematik-test"
48 | ,
49 | not_allowed_recipient@not.telematik-test
50 | From: "not allowed mail sender"
51 |
52 | Subject: KIM 1.5 Testnachricht
53 | Sender: user.test15@gematik.kim.telematik-test
54 | Content-Type: multipart/mixed; boundary="------------v0Sp8vvZ1qGfAWh1MYiwrJ0W"
55 |
56 | --------------v0Sp8vvZ1qGfAWh1MYiwrJ0W
57 | Content-Type: text/plain; charset=UTF-8; format=flowed
58 | Content-Transfer-Encoding: 7bit
59 |
60 | Text der Testnachricht
61 |
62 | --------------v0Sp8vvZ1qGfAWh1MYiwrJ0W
63 | Content-Type: text/plain; charset=UTF-8; name="20mb.test"
64 | Content-Disposition: attachment; filename="20mb.test"
65 | Content-Transfer-Encoding: base64
66 |
67 | fHx3d3cuZGFzaW50ZXJuZXQubmV0f[...]
68 |
69 | --------------v0Sp8vvZ1qGfAWh1MYiwrJ0W--
70 | ----
71 | ====
72 |
73 | === Client-Mail prozessiert
74 | Das KOM-LE Clientmodul verarbeitet die Client-Mail und ergänzt die fehlende X-KIM-Dienstkennung. Es wird erkannt, dass die im *_From_* Header angegebene E-Mail Adresse nicht mit der Adresse des Senders aus dem *_SMTP FROM_* Kommando übereinstimmt und die Adresse im *_From_* Header entsprechend ersetzt.
75 |
76 | .Mail mit Header und Senderkorrektur
77 | [%collapsible%open]
78 | ====
79 | [source,txt, linenums]
80 | ----
81 | Message-ID:
82 | Date: Fri, 9 Sep 2022 15:47:00 +0200
83 | MIME-Version: 1.0
84 | User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
85 | Thunderbird/91.13.0
86 | Subject: KIM 1.5 Testnachricht
87 | X-KIM-Dienstkennung: KIM-Mail;Default;V1.0
88 | From: "user.test15@gematik.kim.telematik-test"
89 |
90 | To: "user.test15@gematik.kim.telematik-test"
91 |
92 | Content-Type: multipart/mixed; boundary="------------v0Sp8vvZ1qGfAWh1MYiwrJ0W"
93 |
94 | --------------v0Sp8vvZ1qGfAWh1MYiwrJ0W
95 | Content-Type: text/plain; charset=UTF-8; format=flowed
96 | Content-Transfer-Encoding: 7bit
97 |
98 | Text der Testnachricht
99 |
100 | --------------v0Sp8vvZ1qGfAWh1MYiwrJ0W
101 | Content-Type: text/plain; charset=UTF-8; name="1mb.test"
102 | Content-Disposition: attachment; filename="1mb.test"
103 | Content-Transfer-Encoding: base64
104 |
105 | fHx3d3cuZGFzaW50ZXJuZXQubmV[...]
106 |
107 | --------------v0Sp8vvZ1qGfAWh1MYiwrJ0W--
108 | ----
109 | ====
110 |
111 | === Client-Mail hochgeladen
112 | 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.
113 |
114 | .KOM-LE Nachricht mit Attachment Datenstruktur
115 | [%collapsible%open]
116 | ====
117 | [source,txt, linenums]
118 | ----
119 | Message-ID:
120 | Date: Fri, 9 Sep 2022 15:47:00 +0200
121 | MIME-Version: 1.0
122 | User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
123 | Thunderbird/91.13.0
124 | Subject: KIM 1.5 Testnachricht
125 | X-KIM-Dienstkennung: KIM-Mail;Default;V1.0
126 | From: "user.test15@gematik.kim.telematik-test"
127 |
128 | To: "user.test15@gematik.kim.telematik-test"
129 |
130 | Content-Type: text/plain; charset=utf-8
131 | Content-Disposition: x-kas
132 |
133 | {"link":"https://kas.gematik.kim.telematik-test/attachments/v2.3/attachment/a566f001-7fa6-4f87-a088-7def2d609c87","k":"AZtUCtV3M5mTC/XzfDDl25mZ4FwoOADyaIi3Fn8wH6w=","hash":"Wc148UGImi84VG3H/fF+3x6ouGMknls6hf2wn0qcqjU=","size":27262976}
134 | ----
135 | ====
136 |
137 | === KOM-LE Mail finalisiert
138 | Der Body der KOM-LE Nachricht wird ebenfalls signiert und verschlüsselt und im Header Informationen zum verwendeten Clientmodul, der Produkltypversion und dem verwendeten Konnektor hinterlegt. Anschließend wird die Nachricht per SMTP an den Fachdienst übertragen.
139 |
140 | .signierte und verschlüsselte KOM-LE Nachricht
141 | [%collapsible%open]
142 | ====
143 | [source,txt, linenums]
144 | ----
145 | Subject: KOM-LE-Nachricht
146 | Date: Fri, 9 Sep 2022 15:47:00 +0200
147 | From: "user.test15@gematik.kim.telematik-test"
148 |
149 | To: "user.test15@gematik.kim.telematik-test"
150 |
151 | Message-ID:
152 | X-KIM-Dienstkennung: KIM-Mail;Default;V1.0
153 | X-KOM-LE-Version: 1.5
154 | X-KIM-CMVersion: AKNET_1.1.0-0
155 | X-KIM-PTVersion: 1.2.1
156 | X-KIM-KONVersion: <5.0.2><2.0.0><5.0.5>
158 | MIME-Version: 1.0
159 | Expires: Thu, 08 Dec 2022 15:48:35 +0200
160 | Content-Type: application/pkcs7-mime; smime-type=authenticated-enveloped-data;
161 | name=smime.p7m
162 | Content-Disposition: attachment; filename=smime.p7m
163 | Content-Transfer-Encoding: base64
164 |
165 | MIAGCyqGSIb3DQEJEA[...]
166 | ----
167 | ====
168 |
169 | == Empfang einer E-Mail
170 | Die folgenden Kapitel befassen sich mit der empfangenden Seite des KIM Clientmoduls, die nun die in den vorherigen Kapiteln zusammengestellte KOM-LE Mail vom Fachdienst abrufen und verarbeiten wird.
171 |
172 | Ablauf beim Empfang einer E-Mail
173 | ++++
174 |
175 |
176 |
177 | ++++
178 |
179 | === KOM-LE Mail empfangen
180 | Über POP3 ruft das KIM Clientmodul eine KOM-LE Nachricht beim Fachdienst ab.
181 |
182 | .abgerufene KOM-LE Nachricht
183 | [%collapsible%open]
184 | ====
185 | [source,txt, linenums]
186 | ----
187 | Return-Path:
188 | Received: from 10.65.0.11 (EHLO 192.168.169.20:64500) ([10.65.0.11])
189 | by mailserver.gematik.kim.telematik-test (JAMES SMTP Server ) with ESMTPA ID 54965859
190 | for ;
191 | Fri, 09 Sep 2022 15:50:05 +0200 (CEST)
192 | Subject: KOM-LE-Nachricht
193 | Date: Fri, 9 Sep 2022 15:47:00 +0200
194 | From: "user.test15@gematik.kim.telematik-test"
195 |
196 | To: "user.test15@gematik.kim.telematik-test"
197 |
198 | Message-ID:
199 | X-KIM-Dienstkennung: KIM-Mail;Default;V1.0
200 | X-KOM-LE-Version: 1.5
201 | X-KIM-CMVersion: KIM_CM_1.1.0-0
202 | X-KIM-PTVersion: 1.2.1
203 | X-KIM-KONVersion: <5.0.2><2.0.0><5.0.5>
205 | MIME-Version: 1.0
206 | Expires: Thu, 08 Dec 2022 15:48:35 +0200
207 | Content-Type: application/pkcs7-mime; smime-type=authenticated-enveloped-data;
208 | name=smime.p7m
209 | Content-Disposition: attachment; filename=smime.p7m
210 | Content-Transfer-Encoding: base64
211 |
212 | MIAGCyqGSIb3DQEJEAEXoIAwg[...]
213 |
214 | ----
215 | ====
216 |
217 | === KOM-LE Mail prozessiert
218 | Das KIM-Clientmodul entschlüsselt die KOM-LE Nachricht und führt die Integritätsprüfungsschritte durch.
219 | Nach der Entschlüsselung ist die KIM-Attachment Datenstruktur lesbar und die Informationen können genutzt werden, um die auf dem KAS abgelegte Client Mail abzurufen.
220 |
221 | .entschlüsselte KOM-LE Mail
222 | [%collapsible%open]
223 | ====
224 | [source,txt, linenums]
225 | ----
226 | Message-ID:
227 | Date: Fri, 9 Sep 2022 15:47:00 +0200
228 | MIME-Version: 1.0
229 | User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
230 | Thunderbird/91.13.0
231 | Subject: KIM 1.5 Testnachricht
232 | X-KIM-Dienstkennung: KIM-Mail;Default;V1.0
233 | From: "user.test15@gematik.kim.telematik-test"
234 |
235 | To: "user.test15@gematik.kim.telematik-test"
236 |
237 | Content-Type: text/plain; charset=utf-8
238 | Content-Disposition: x-kas
239 |
240 | {"link":"https://kas.gematik.kim.telematik-test/attachments/v2.3/attachment/a566f001-7fa6-4f87-a088-7def2d609c87","k":"AZtUCtV3M5mTC/XzfDDl25mZ4FwoOADyaIi3Fn8wH6w=","hash":"Wc148UGImi84VG3H/fF+3x6ouGMknls6hf2wn0qcqjU=","size":27262976}
241 | ----
242 | ====
243 |
244 | === Client-Mail heruntergeladen
245 | Mit den Informationen aus der KIM-Attachment Datenstruktur wird die auf dem KAS abgelegte Mail heruntergeladen, entschlüsselt und die Signatur geprüft.
246 |
247 | .vom KAS heruntergeladene entschlüsselte Nachricht
248 | [%collapsible%open]
249 | ====
250 | [source,txt, linenums]
251 | ----
252 | Message-ID:
253 | Date: Fri, 9 Sep 2022 15:47:00 +0200
254 | MIME-Version: 1.0
255 | User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
256 | Thunderbird/91.13.0
257 | Subject: KIM 1.5 Testnachricht
258 | X-KIM-Dienstkennung: KIM-Mail;Default;V1.0
259 | From: "user.test15@gematik.kim.telematik-test"
260 |
261 | To: "user.test15@gematik.kim.telematik-test"
262 |
263 | Content-Type: multipart/mixed; boundary="------------v0Sp8vvZ1qGfAWh1MYiwrJ0W"
264 |
265 | --------------v0Sp8vvZ1qGfAWh1MYiwrJ0W
266 | Content-Type: text/plain; charset=UTF-8; format=flowed
267 | Content-Transfer-Encoding: 7bit
268 |
269 | Text der Testnachricht
270 |
271 | --------------v0Sp8vvZ1qGfAWh1MYiwrJ0W
272 | Content-Type: text/plain; charset=UTF-8; name="1mb.test"
273 | Content-Disposition: attachment; filename="1mb.test"
274 | Content-Transfer-Encoding: base64
275 |
276 | fHx3d3cuZGFzaW50ZXJuZX[...]
277 |
278 |
279 |
280 | --------------v0Sp8vvZ1qGfAWh1MYiwrJ0W--
281 | ----
282 | ====
283 |
284 | === Client-Mail finalisiert
285 | Die Header Felder der vom KAS heruntergeladenen Client-Mail werden mit den Header Feldern der KOM-LE Nachricht abgeglichen. In der Client-Mail werden die Header Felder (Received, Return Path, X-KIM Check Results) befüllt und Fehlertexte im Body ergänzt. Anschließend wird die Client-Mail Base64 codiert an das via POP3 abfragende Clientsystem ausgeliefert.
286 |
287 | .Fertige Client Mail
288 | [%collapsible%open]
289 | ====
290 | [source,txt, linenums]
291 | ----
292 | Message-ID:
293 | Date: Fri, 9 Sep 2022 15:47:00 +0200
294 | MIME-Version: 1.0
295 | User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
296 | Thunderbird/91.13.0
297 | Subject: KIM 1.5 Testnachricht
298 | X-KIM-Dienstkennung: KIM-Mail;Default;V1.0
299 | From: "user.test15@gematik.kim.telematik-test"
300 |
301 | To: "user.test15@gematik.kim.telematik-test"
302 |
303 | X-KIM-DecryptionResult: 00
304 | X-KIM-IntegrityCheckResult: 01
305 | Return-Path:
306 | Received: from 10.65.0.11 (EHLO 192.168.169.20:64500) ([10.65.0.11])
307 | by mailserver.gematik.kim.telematik-test (JAMES SMTP Server ) with ESMTPA ID 54965859
308 | for ;
309 | Fri, 09 Sep 2022 15:50:05 +0200 (CEST)
310 | Content-Type: multipart/mixed; boundary="------------v0Sp8vvZ1qGfAWh1MYiwrJ0W"
311 |
312 | --------------v0Sp8vvZ1qGfAWh1MYiwrJ0W
313 | Content-Type: text/plain; charset=utf-8; format=flowed
314 | Content-Transfer-Encoding: 7bit
315 |
316 | Text der Testnachricht
317 |
318 |
319 | ---------------------------------------------
320 | Die Nachricht wurde entschlüsselt.
321 | Die Signatur wurde erfolgreich geprüft.
322 |
323 | --------------v0Sp8vvZ1qGfAWh1MYiwrJ0W
324 | Content-Type: text/plain; charset=UTF-8; name="1mb.test"
325 | Content-Disposition: attachment; filename="1mb.test"
326 | Content-Transfer-Encoding: base64
327 |
328 | fHx3d3cuZGFzaW50ZXJuZX[...]
329 |
330 |
331 | --------------v0Sp8vvZ1qGfAWh1MYiwrJ0W--
332 |
333 | ----
334 | ====
335 |
336 |
--------------------------------------------------------------------------------
/docs/Fachdienst.adoc:
--------------------------------------------------------------------------------
1 | :imagesdir: ../images
2 | :doctype: book
3 | :toc: macro
4 | :toclevels: 5
5 | :toc-title: Inhaltsverzeichnis
6 | :numbered:
7 |
8 | image:gematik_logo.svg[width=70%]
9 |
10 | toc::[]
11 |
12 | = Fachdienst
13 | 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.
14 |
15 | ++++
16 |
17 |
18 |
19 | ++++
20 |
21 | Im folgenden Kapitel werden die Teilkomponenten weiter beschrieben.
22 |
23 | == Mail-Server
24 | 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.
25 |
26 | == Account Manager
27 | 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.
28 |
29 | Die Beschreibung der REST-Schnittstelle `I_AccountManager_Service` ist hier zu finden: link:../src/openapi/AccountManager.yaml[AccountManager.yaml] +
30 | Die Beschreibung der REST-Schnittstelle `I_AccountLimit_Service` ist hier zu finden: link:../src/openapi/AccountLimit.yaml[AccountLimit.yaml] +
31 | Die Beschreibung der REST-Schnittstelle `I_ServiceInformation` ist hier zu finden: link:../src/openapi/ServiceInformation.yaml[ServiceInformation.yaml]
32 |
33 | == KIM Attachment Service (KAS)
34 | 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.
35 |
36 | Die Beschreibung der REST-Schnittstelle `I_Attachment_Service` ist hier zu finden: link:../src/openapi/AttachmentService.yaml[AttachmentService.yaml]
37 |
38 | Die gematik stellt für den KAS eine Referenzimplementierung bereit. Diese ist unter dem folgenden Link zu finden: link:https://github.com/gematik/kim-attachment-service[KIM-Attachment-Service]
39 |
--------------------------------------------------------------------------------
/docs/Lastverteilung und Performance beim Einsatz von KIM 1.0.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/docs/Lastverteilung und Performance beim Einsatz von KIM 1.0.pdf
--------------------------------------------------------------------------------
/docs/Versionierung.adoc:
--------------------------------------------------------------------------------
1 | :imagesdir: ../images
2 | :doctype: book
3 | :toc: macro
4 | :toclevels: 3
5 | :toc-title: Inhaltsverzeichnis
6 | :numbered:
7 |
8 | image:gematik_logo.svg[width=70%]
9 |
10 | toc::[]
11 |
12 | == Versionierung
13 | Im Folgenden wird die Versionierung der REST-Schnittstelle sowie die Versionierung der YAML-Files beschrieben.
14 |
15 | === Versionierung der REST-Schnittstelle
16 |
17 | Mittels der URI-Versionierung wird die Rückwärtskompatibilität der KIM-REST-API gewährleistet.
18 | +
19 | In der URI wird das folgende Versionierungsschema verwendet: **.**
20 |
21 | *Beispiel*
22 |
23 | [source,bash]
24 | -----------------
25 | https://account-manager.hrst1.kim.telematik/AccountMgmt/v2.2/account
26 | https://account-manager.hrst1.kim.telematik/AccountMgmt/v2.0/account
27 | -----------------
28 |
29 | Die Änderung der URI sollte möglichst selten erfolgen, damit der Implementierungaufwand bei den Clients gering gehalten wird. Daher erhöhen sich *MAJOR* und *MINOR* nur
30 | dann, wenn es die Notwendigkeit gibt, die Schnittstelle unter einer neuen URI zur Verfügung zu stellen. Zum Beispiel wenn inkompatible API-Änderungen vorgenommen wurden.
31 |
32 | === Versionierung der YAML-Files
33 |
34 | Für die Versionierung der YAML-Files gelten die gematik-Vorgaben aus *[gemSpec_OM#2]*. Die Versionierung ist in allen REST-Schnittstellendefinitionen (YAML-Files) enthalten.
35 |
36 | *Beispiel*
37 |
38 | [source,bash]
39 | -----------------
40 | openapi: 3.0.3
41 | info:
42 | title: I_AccountManager_Service
43 | description: Über diese Schnittstelle wird der KIM Account verwaltet.
44 | # Für alle Operationen muss der Zeichensatz "utf-8” unterstützt werden.
45 | version: 2.2.0
46 | ### 2.2.0
47 | # - updated url to https://account-manager.hrst1.kim.telematik/AccountMgmt/v2.2
48 | # - changed /components/schemas/Account:
49 | # added parameter dataTimeToLive & maxMailSize
50 | # specified kimVersion with enum
51 | # - changed operation createCert:
52 | # added error codes 400 & 404
53 | ### 2.0.0
54 | # - included new operations for outOfOffice
55 | # - included new operations for porting an e-mail address to new telematikID
56 | # - removed operations: register_State, cm_version and pw_change
57 | # - added new operations setAccount and getAccount
58 | # - renamed and updated operations for user account (e.g. registerAccount and
59 | # deregisterAccount)
60 | # - added operation createCert to generate PKCS#12 files
61 | # - added HTTP error code 500
62 | # - changed authentication to JWT
63 | -----------------
64 |
--------------------------------------------------------------------------------
/docs/Verzeichnisdienst.adoc:
--------------------------------------------------------------------------------
1 | ifdef::env-github[]
2 | :tip-caption: :bulb:
3 | :note-caption: :information_source:
4 | :important-caption: :heavy_exclamation_mark:
5 | :caution-caption: :fire:
6 | :warning-caption: :warning:
7 | endif::[]
8 |
9 | :imagesdir: ../images
10 | :doctype: book
11 | :toc: macro
12 | :toclevels: 3
13 | :toc-title: Inhaltsverzeichnis
14 | :numbered:
15 |
16 | image:gematik_logo.svg[width=70%]
17 |
18 | toc::[]
19 |
20 | == Verzeichnisdienst
21 | Ab der KIM Version 1.5 können zur Abfrage der KIM-Fachdaten ausschließlich die Protokolle LDAPv3 und HTTP (REST) an der Schnittstelle `I_Directory_Application_Maintenance` am Verzeichnisdienst verwenden werden. Zu den Fachdaten gehören die KIM-Mail-Adressen, die verwendete KOM-LE-Version der Clientmodule sowie ein oder mehrere Anwendungskennzeichen. Ausgehend von dieser KOM-LE-Version entscheidet das Clientmodul des Senders, ob das Clientmodul des Empfängers kompatibel ist. Mit dem Hinterlegen eines oder mehrerer Anwendungskennzeichen signalisiert der jeweilige KIM Teilnehmer die Möglichkeit Nachrichten im Rahmen spezieller Anwendungen (z. B. eAU, eArztbrief u.a.) entgegenzunehmen und zu verarbeiten. Ein Primär- bzw. Clientsystem kann, mit Kenntnis der für einen geplanten Empfänger hinterlegten Anwendungskennzeichen, bereits bei der Erstellung einer Nachricht entscheiden ob diese vom Empfänger verarbeitet werden kann und die Bearbeitung im Negativfall abbrechen. Die neuen Datenstrukturen `komLeData` und `kimData` sind in *[gemSpec_VZD#5]* spezifiziert.
22 |
23 | Die Beschreibung der REST-Schnittstelle `I_Directory_Application_Maintenance` für KIM ist hier zu finden: link:https://github.com/gematik/api-vzd/blob/main/src/openapi/DirectoryApplicationMaintenance.yaml[DirectoryApplicationMaintenance.yaml]
24 |
25 | Im Folgenden sind die LDAP-Directory-Attribute der KIM-Fachdaten dargestellt: +
26 |
27 | //image:KOMLE_Fachdaten.PNG[width=45%]
28 |
29 | ++++
30 |
31 |
32 |
33 | ++++
34 |
35 | TIP: Die Abfrage der KIM-Fachdaten sollte aus den strukturierten KIM-Fachdaten erfolgen (nicht aus der flachen Liste). Die flache Liste enthält die niedrigste KIM-Version aller KIM-Anbieter für diesen Verzeichniseintrag.
36 |
--------------------------------------------------------------------------------
/images/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/.gitkeep
--------------------------------------------------------------------------------
/images/A_email_empfangen.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/A_email_empfangen.jpg
--------------------------------------------------------------------------------
/images/A_email_senden.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/A_email_senden.jpg
--------------------------------------------------------------------------------
/images/Anw_account_mgr_v1.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/Anw_account_mgr_v1.PNG
--------------------------------------------------------------------------------
/images/Anw_email_receive.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/Anw_email_receive.PNG
--------------------------------------------------------------------------------
/images/Anw_email_send.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/Anw_email_send.PNG
--------------------------------------------------------------------------------
/images/CM_Integration.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/CM_Integration.png
--------------------------------------------------------------------------------
/images/I_AccountLimit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/I_AccountLimit.png
--------------------------------------------------------------------------------
/images/I_AccountManager.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/I_AccountManager.png
--------------------------------------------------------------------------------
/images/I_Fachdienst.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/I_Fachdienst.png
--------------------------------------------------------------------------------
/images/I_KAS.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/I_KAS.png
--------------------------------------------------------------------------------
/images/Int_PS-KIM.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/images/Int_PS-KOMLE.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/Int_PS-KOMLE.png
--------------------------------------------------------------------------------
/images/KIM_Varianten.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/KIM_Varianten.png
--------------------------------------------------------------------------------
/images/KOMLE_Fachdaten.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/KOMLE_Fachdaten.PNG
--------------------------------------------------------------------------------
/images/KOMLE_Fachdaten.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
130 |
--------------------------------------------------------------------------------
/images/MTA_SMTP_Benutzername.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/MTA_SMTP_Benutzername.png
--------------------------------------------------------------------------------
/images/Multikonnektoren.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/Multikonnektoren.png
--------------------------------------------------------------------------------
/images/Seq_acc_abwesenheitsnotiz.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/Seq_acc_abwesenheitsnotiz.png
--------------------------------------------------------------------------------
/images/Seq_acc_anwendungskennzeichen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/Seq_acc_anwendungskennzeichen.png
--------------------------------------------------------------------------------
/images/Seq_acc_deregister.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/Seq_acc_deregister.png
--------------------------------------------------------------------------------
/images/Seq_acc_kontoverwaltung.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/Seq_acc_kontoverwaltung.png
--------------------------------------------------------------------------------
/images/Seq_acc_mgr.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/Seq_acc_mgr.PNG
--------------------------------------------------------------------------------
/images/Seq_acc_portierung.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/Seq_acc_portierung.png
--------------------------------------------------------------------------------
/images/Seq_acc_register.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/Seq_acc_register.png
--------------------------------------------------------------------------------
/images/Seq_acc_zertifikat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/Seq_acc_zertifikat.png
--------------------------------------------------------------------------------
/images/Seq_email_empfangen.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/Seq_email_empfangen.PNG
--------------------------------------------------------------------------------
/images/Seq_email_senden.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/Seq_email_senden.PNG
--------------------------------------------------------------------------------
/images/UC_PS-KIM.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/images/UC_PS-KOMLE.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/UC_PS-KOMLE.png
--------------------------------------------------------------------------------
/images/acmgr_overview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/acmgr_overview.png
--------------------------------------------------------------------------------
/images/diagrams/Fachdienst/Seq_acc_abwesenheitsnotiz.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/diagrams/Fachdienst/Seq_acc_abwesenheitsnotiz.png
--------------------------------------------------------------------------------
/images/diagrams/Fachdienst/Seq_acc_abwesenheitsnotiz.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/images/diagrams/Fachdienst/Seq_acc_anwendungskennzeichen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/diagrams/Fachdienst/Seq_acc_anwendungskennzeichen.png
--------------------------------------------------------------------------------
/images/diagrams/Fachdienst/Seq_acc_anwendungskennzeichen.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/images/diagrams/Fachdienst/Seq_acc_deregister.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/diagrams/Fachdienst/Seq_acc_deregister.png
--------------------------------------------------------------------------------
/images/diagrams/Fachdienst/Seq_acc_deregister.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/images/diagrams/Fachdienst/Seq_acc_kontoverwaltung.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/diagrams/Fachdienst/Seq_acc_kontoverwaltung.png
--------------------------------------------------------------------------------
/images/diagrams/Fachdienst/Seq_acc_kontoverwaltung.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/images/diagrams/Fachdienst/Seq_acc_portierung.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/diagrams/Fachdienst/Seq_acc_portierung.png
--------------------------------------------------------------------------------
/images/diagrams/Fachdienst/Seq_acc_portierung.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/images/diagrams/Fachdienst/Seq_acc_register.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/diagrams/Fachdienst/Seq_acc_register.png
--------------------------------------------------------------------------------
/images/diagrams/Fachdienst/Seq_acc_register.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/images/diagrams/Fachdienst/Seq_acc_revoke_deregister.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/diagrams/Fachdienst/Seq_acc_revoke_deregister.png
--------------------------------------------------------------------------------
/images/diagrams/Fachdienst/Seq_acc_revoke_deregister.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/images/diagrams/Fachdienst/Seq_acc_zertifikat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/diagrams/Fachdienst/Seq_acc_zertifikat.png
--------------------------------------------------------------------------------
/images/diagrams/Fachdienst/Seq_acc_zertifikat.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/images/diagrams/Fachdienst/Seq_kas_email_empfangen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/diagrams/Fachdienst/Seq_kas_email_empfangen.png
--------------------------------------------------------------------------------
/images/diagrams/Fachdienst/Seq_kas_email_senden.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/diagrams/Fachdienst/Seq_kas_email_senden.png
--------------------------------------------------------------------------------
/images/diagrams/Int_PS-KIM.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/diagrams/Int_PS-KIM.png
--------------------------------------------------------------------------------
/images/diagrams/Int_PS-KIM.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/images/diagrams/KIM_2.0_Architektur-Seite-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/diagrams/KIM_2.0_Architektur-Seite-1.png
--------------------------------------------------------------------------------
/images/diagrams/UC_PS-KIM.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/diagrams/UC_PS-KIM.png
--------------------------------------------------------------------------------
/images/diagrams/UC_PS-KIM.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/images/diagrams/eMail_status_empfangen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/diagrams/eMail_status_empfangen.png
--------------------------------------------------------------------------------
/images/diagrams/eMail_status_empfangen.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/images/diagrams/eMail_status_senden.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/diagrams/eMail_status_senden.png
--------------------------------------------------------------------------------
/images/diagrams/eMail_status_senden.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/images/gematik_logo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/images/gematik_logo_simple.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/gematik_logo_simple.jpg
--------------------------------------------------------------------------------
/images/kas_overview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/kas_overview.png
--------------------------------------------------------------------------------
/images/kim_overview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/images/kim_overview.png
--------------------------------------------------------------------------------
/samples/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/samples/.gitkeep
--------------------------------------------------------------------------------
/samples/KAS/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/samples/KAS/.gitkeep
--------------------------------------------------------------------------------
/samples/KAS/1_1_Client-Mail_empfangen.txt:
--------------------------------------------------------------------------------
1 | Message-ID:
2 | Date: Fri, 9 Sep 2022 15:47:00 +0200
3 | MIME-Version: 1.0
4 | User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
5 | Thunderbird/91.13.0
6 | To: "user.test15@gematik.kim.telematik-test"
7 | ,
8 | not_allowed_recipient@not.telematik-test
9 | From: "not allowed mail sender"
10 |
11 | Subject: KIM 1.5 Testnachricht
12 | Sender: user.test15@gematik.kim.telematik-test
13 | Content-Type: multipart/mixed; boundary="------------v0Sp8vvZ1qGfAWh1MYiwrJ0W"
14 |
15 | --------------v0Sp8vvZ1qGfAWh1MYiwrJ0W
16 | Content-Type: text/plain; charset=UTF-8; format=flowed
17 | Content-Transfer-Encoding: 7bit
18 |
19 | Text der Testnachricht
20 |
21 | --------------v0Sp8vvZ1qGfAWh1MYiwrJ0W
22 | Content-Type: text/plain; charset=UTF-8; name="20mb.test"
23 | Content-Disposition: attachment; filename="20mb.test"
24 | Content-Transfer-Encoding: base64
25 |
26 | fHx3d3cuZGFzaW50ZXJuZXQubmV0f[...]
27 |
28 |
29 | --------------v0Sp8vvZ1qGfAWh1MYiwrJ0W--
--------------------------------------------------------------------------------
/samples/KAS/1_2_Client-Mail_prozessiert.txt:
--------------------------------------------------------------------------------
1 | Message-ID:
2 | Date: Fri, 9 Sep 2022 15:47:00 +0200
3 | MIME-Version: 1.0
4 | User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
5 | Thunderbird/91.13.0
6 | Subject: KIM 1.5 Testnachricht
7 | X-KIM-Dienstkennung: KIM-Mail;Default;V1.0
8 | From: "user.test15@gematik.kim.telematik-test"
9 |
10 | To: "user.test15@gematik.kim.telematik-test"
11 |
12 | Content-Type: multipart/mixed; boundary="------------v0Sp8vvZ1qGfAWh1MYiwrJ0W"
13 |
14 | --------------v0Sp8vvZ1qGfAWh1MYiwrJ0W
15 | Content-Type: text/plain; charset=UTF-8; format=flowed
16 | Content-Transfer-Encoding: 7bit
17 |
18 | Text der Testnachricht
19 |
20 | --------------v0Sp8vvZ1qGfAWh1MYiwrJ0W
21 | Content-Type: text/plain; charset=UTF-8; name="1mb.test"
22 | Content-Disposition: attachment; filename="1mb.test"
23 | Content-Transfer-Encoding: base64
24 |
25 | fHx3d3cuZGFzaW50ZXJuZXQubmV[...]
26 |
27 | --------------v0Sp8vvZ1qGfAWh1MYiwrJ0W--
--------------------------------------------------------------------------------
/samples/KAS/1_3_Client-Mail_hochgeladen.txt:
--------------------------------------------------------------------------------
1 | Message-ID:
2 | Date: Fri, 9 Sep 2022 15:47:00 +0200
3 | MIME-Version: 1.0
4 | User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
5 | Thunderbird/91.13.0
6 | Subject: KIM 1.5 Testnachricht
7 | X-KIM-Dienstkennung: KIM-Mail;Default;V1.0
8 | From: "user.test15@gematik.kim.telematik-test"
9 |
10 | To: "user.test15@gematik.kim.telematik-test"
11 |
12 | Content-Type: text/plain; charset=utf-8
13 | Content-Disposition: x-kas
14 |
15 | {"link":"https://kas.gematik.kim.telematik-test/attachments/v2.3/attachment/a566f001-7fa6-4f87-a088-7def2d609c87","k":"AZtUCtV3M5mTC/XzfDDl25mZ4FwoOADyaIi3Fn8wH6w=","hash":"Wc148UGImi84VG3H/fF+3x6ouGMknls6hf2wn0qcqjU=","size":27262976}
--------------------------------------------------------------------------------
/samples/KAS/1_4_KOM-LE-Mail_finalisiert.txt:
--------------------------------------------------------------------------------
1 | Subject: KOM-LE-Nachricht
2 | Date: Fri, 9 Sep 2022 15:47:00 +0200
3 | From: "user.test15@gematik.kim.telematik-test"
4 |
5 | To: "user.test15@gematik.kim.telematik-test"
6 |
7 | Message-ID:
8 | X-KIM-Dienstkennung: KIM-Mail;Default;V1.0
9 | X-KOM-LE-Version: 1.5
10 | X-KIM-CMVersion: AKNET_1.1.0-0
11 | X-KIM-PTVersion: 1.2.1
12 | X-KIM-KONVersion: <5.0.2><2.0.0><5.0.5>
14 | MIME-Version: 1.0
15 | Expires: Thu, 08 Dec 2022 15:48:35 +0200
16 | Content-Type: application/pkcs7-mime; smime-type=authenticated-enveloped-data;
17 | name=smime.p7m
18 | Content-Disposition: attachment; filename=smime.p7m
19 | Content-Transfer-Encoding: base64
20 |
21 | MIAGCyqGSIb3DQEJEA[...]
--------------------------------------------------------------------------------
/samples/KAS/2_1_KOM-LE-Mail_empfangen.txt:
--------------------------------------------------------------------------------
1 | Return-Path:
2 | Received: from 10.65.0.11 (EHLO 192.168.169.20:64500) ([10.65.0.11])
3 | by mailserver.gematik.kim.telematik-test (JAMES SMTP Server ) with ESMTPA ID 54965859
4 | for ;
5 | Fri, 09 Sep 2022 15:50:05 +0200 (CEST)
6 | Subject: KOM-LE-Nachricht
7 | Date: Fri, 9 Sep 2022 15:47:00 +0200
8 | From: "user.test15@gematik.kim.telematik-test"
9 |
10 | To: "user.test15@gematik.kim.telematik-test"
11 |
12 | Message-ID:
13 | X-KIM-Dienstkennung: KIM-Mail;Default;V1.0
14 | X-KOM-LE-Version: 1.5
15 | X-KIM-CMVersion: KIM_CM_1.1.0-0
16 | X-KIM-PTVersion: 1.2.1
17 | X-KIM-KONVersion: <5.0.2><2.0.0><5.0.5>
19 | MIME-Version: 1.0
20 | Expires: Thu, 08 Dec 2022 15:48:35 +0200
21 | Content-Type: application/pkcs7-mime; smime-type=authenticated-enveloped-data;
22 | name=smime.p7m
23 | Content-Disposition: attachment; filename=smime.p7m
24 | Content-Transfer-Encoding: base64
25 |
26 | MIAGCyqGSIb3DQEJEAEXoIAwg[...]
27 |
--------------------------------------------------------------------------------
/samples/KAS/2_2_KOM-LE-Mail_prozessiert.txt:
--------------------------------------------------------------------------------
1 | Message-ID:
2 | Date: Fri, 9 Sep 2022 15:47:00 +0200
3 | MIME-Version: 1.0
4 | User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
5 | Thunderbird/91.13.0
6 | Subject: KIM 1.5 Testnachricht
7 | X-KIM-Dienstkennung: KIM-Mail;Default;V1.0
8 | From: "user.test15@gematik.kim.telematik-test"
9 |
10 | To: "user.test15@gematik.kim.telematik-test"
11 |
12 | Content-Type: text/plain; charset=utf-8
13 | Content-Disposition: x-kas
14 |
15 | {"link":"https://kas.gematik.kim.telematik-test/attachments/v2.3/attachment/a566f001-7fa6-4f87-a088-7def2d609c87","k":"AZtUCtV3M5mTC/XzfDDl25mZ4FwoOADyaIi3Fn8wH6w=","hash":"Wc148UGImi84VG3H/fF+3x6ouGMknls6hf2wn0qcqjU=","size":27262976}
--------------------------------------------------------------------------------
/samples/KAS/2_3_Client-Mail_heruntergeladen.txt:
--------------------------------------------------------------------------------
1 | Message-ID:
2 | Date: Fri, 9 Sep 2022 15:47:00 +0200
3 | MIME-Version: 1.0
4 | User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
5 | Thunderbird/91.13.0
6 | Subject: KIM 1.5 Testnachricht
7 | X-KIM-Dienstkennung: KIM-Mail;Default;V1.0
8 | From: "user.test15@gematik.kim.telematik-test"
9 |
10 | To: "user.test15@gematik.kim.telematik-test"
11 |
12 | Content-Type: multipart/mixed; boundary="------------v0Sp8vvZ1qGfAWh1MYiwrJ0W"
13 |
14 | --------------v0Sp8vvZ1qGfAWh1MYiwrJ0W
15 | Content-Type: text/plain; charset=UTF-8; format=flowed
16 | Content-Transfer-Encoding: 7bit
17 |
18 | Text der Testnachricht
19 |
20 | --------------v0Sp8vvZ1qGfAWh1MYiwrJ0W
21 | Content-Type: text/plain; charset=UTF-8; name="1mb.test"
22 | Content-Disposition: attachment; filename="1mb.test"
23 | Content-Transfer-Encoding: base64
24 |
25 | fHx3d3cuZGFzaW50ZXJuZX[...]
26 |
27 |
28 |
29 | --------------v0Sp8vvZ1qGfAWh1MYiwrJ0W--
--------------------------------------------------------------------------------
/samples/KAS/2_4_Client-Mail_finalisiert.txt:
--------------------------------------------------------------------------------
1 | Message-ID:
2 | Date: Fri, 9 Sep 2022 15:47:00 +0200
3 | MIME-Version: 1.0
4 | User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
5 | Thunderbird/91.13.0
6 | Subject: KIM 1.5 Testnachricht
7 | X-KIM-Dienstkennung: KIM-Mail;Default;V1.0
8 | From: "user.test15@gematik.kim.telematik-test"
9 |
10 | To: "user.test15@gematik.kim.telematik-test"
11 |
12 | X-KIM-DecryptionResult: 00
13 | X-KIM-IntegrityCheckResult: 01
14 | Return-Path:
15 | Received: from 10.65.0.11 (EHLO 192.168.169.20:64500) ([10.65.0.11])
16 | by mailserver.gematik.kim.telematik-test (JAMES SMTP Server ) with ESMTPA ID 54965859
17 | for ;
18 | Fri, 09 Sep 2022 15:50:05 +0200 (CEST)
19 | Content-Type: multipart/mixed; boundary="------------v0Sp8vvZ1qGfAWh1MYiwrJ0W"
20 |
21 | --------------v0Sp8vvZ1qGfAWh1MYiwrJ0W
22 | Content-Type: text/plain; charset=utf-8; format=flowed
23 | Content-Transfer-Encoding: 7bit
24 |
25 | Text der Testnachricht
26 |
27 |
28 | ---------------------------------------------
29 | Die Nachricht wurde entschlüsselt.
30 | Die Signatur wurde erfolgreich geprüft.
31 |
32 | --------------v0Sp8vvZ1qGfAWh1MYiwrJ0W
33 | Content-Type: text/plain; charset=UTF-8; name="1mb.test"
34 | Content-Disposition: attachment; filename="1mb.test"
35 | Content-Transfer-Encoding: base64
36 |
37 | fHx3d3cuZGFzaW50ZXJuZX[...]
38 |
39 |
40 | --------------v0Sp8vvZ1qGfAWh1MYiwrJ0W--
41 |
--------------------------------------------------------------------------------
/samples/SMIME-Profil.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/samples/SMIME-Profil.zip
--------------------------------------------------------------------------------
/src/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/src/.gitkeep
--------------------------------------------------------------------------------
/src/json/README.adoc:
--------------------------------------------------------------------------------
1 | = Documentation for json files
2 |
3 | == badges.json
4 |
5 | This file is used to create dynamic badges for api-kim.
6 |
7 | Badges
8 |
9 | - Release Notes version, color red, style plastic, logo github, logoColor red
10 |
11 | - KIM Clientmodul Spezifikationen version, color green, style plastic, logo github, logoColor green
12 | - KIM Fachdienst Spezifikationen version, color green, style plastic, logo github, logoColor green
13 |
14 | - AccountManager.yaml version, color blue, style plastic, logo github, logoColor lightBlue
15 | - AttachmentService.yaml version, color blue, style plastic, logo github, logoColor lightBlue
16 | - AccountLimit.yaml version, color blue, style plastic, logo github, logoColor lightBlue
17 | - ServiceInformation.yaml version, color blue, style plastic, logo github, logoColor lightBlue
18 |
--------------------------------------------------------------------------------
/src/json/badges.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "Dynamic badges for api-kim",
3 | "badges": {
4 | "releaseNotes": {
5 | "version": " v1.5.3-2"
6 | },
7 | "kimClientmodulSpec": {
8 | "version": " v1.5.3"
9 | },
10 | "kimFachdienstSpec": {
11 | "version": " v1.5.3"
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/openapi/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/src/openapi/.gitkeep
--------------------------------------------------------------------------------
/src/openapi/AccountLimit.yaml:
--------------------------------------------------------------------------------
1 | openapi: 3.0.3
2 | info:
3 | title: I_AccountLimit_Service
4 | description: The limits of a user account are queried via this interface
5 | version: 1.1.3
6 | ### 1.1.3
7 | # - removed operation setLimits for compatibility with KIM 1.5.2
8 | # - changed security to basic auth for compatibility with KIM 1.5.2
9 | # - changed dataTimeToLive maximum value for compatibility with KIM 1.5.2
10 | # - changed servers -url for compatibility with KIM 1.5.2
11 | ### 1.1.2
12 | # - changed servers -url
13 | # - adding new operation setLimits
14 | # - added object property AccountLimit.kasMailSizeThreshold
15 | # - added traceId to Error object
16 | ### 1.1.1
17 | # - changed minimum value for maxMailSize
18 | # - changed descriptions
19 | ### 1.1.0
20 | # - changed version number in server url
21 | # - removed quotation marks and added minimum value for maxMailSize
22 | ### 1.0.0
23 | # - initial Version of I_AccountLimit_Service
24 |
25 | externalDocs:
26 | description: GitHub - documentation
27 | url: https://github.com/gematik/api-kim
28 | servers:
29 | - url: /AccountLimit/v1.1/
30 | # Die URL muss wie folgt gebildet werden:
31 | # https://:
32 | # Die SRV und TXT RR sind unter dem Resource Record Bezeichner zu finden.
33 | tags:
34 | - name: AccountLimit
35 |
36 | paths:
37 | /limit:
38 | get:
39 | tags:
40 | - AccountLimit
41 | summary: Query the limits of an account
42 | description: Query the limits of an account
43 | operationId: getLimits
44 |
45 | responses:
46 | 200:
47 | description: OK
48 | # Returning the metadata of a user account
49 | content:
50 | application/json; charset=utf-8:
51 | schema:
52 | $ref: '#/components/schemas/AccountLimit'
53 | 401:
54 | $ref: 'CommonSchemas.yaml#/components/responses/401'
55 | 404:
56 | $ref: 'CommonSchemas.yaml#/components/responses/404'
57 | 500:
58 | $ref: 'CommonSchemas.yaml#/components/responses/500'
59 |
60 | components:
61 | schemas:
62 | AccountLimit:
63 | type: object
64 | properties:
65 | dataTimeToLive:
66 | type: integer
67 | minimum: 10
68 | maximum: 365
69 | default: 90
70 | example: 90
71 | description: Storage duration of emails on the mail server and attachments on the KAS backend service. Specified in days.
72 | maxMailSize:
73 | type: integer
74 | format: int64
75 | minimum: 734003200
76 | example: 734003200
77 | description: Sets the maximum size of a KIM email in bytes.
78 | quota:
79 | type: integer
80 | format: int64
81 | readOnly: true
82 | example: 160000000000
83 | description: Specifies the maximum storage volume for a user account.
84 | remainQuota:
85 | type: integer
86 | format: int64
87 | readOnly: true
88 | example: 112000000000
89 | description: Specifies the remaining storage volume for a user account.
90 |
91 | securitySchemes:
92 | KIMBasicAuth:
93 | $ref: 'CommonSchemas.yaml#/components/securitySchemes/KIMBasicAuth'
94 |
--------------------------------------------------------------------------------
/src/openapi/AttachmentService.yaml:
--------------------------------------------------------------------------------
1 | openapi: 3.0.3
2 | info:
3 | title: I_Attachment_Service
4 | description: Encrypted email attachments can be sent via this interface
5 | uploaded and made available.
6 | version: 2.3.3
7 | ### 2.3.3
8 | # - changed operationId readMaildata
9 | ### 2.3.2
10 | # - added distinct definition for header element Content-Length in add_Attachment:
11 | # - Content-Length full request body
12 | # - Content-Length of the actual mail data of the "attachment" form-data in body, which is required in order to check against maxMailSize + performant storage streaming
13 | # - added traceId to Error object
14 | # - changed servers -url
15 | # - changed operationId readAttachment
16 | ### 2.3.1
17 | # - added delete_Maildata feature
18 | ### 2.3.0
19 | # - changed server url to new api version
20 | # - added response code for wrong input parameters
21 | # - added response type object for operation add_Attachment
22 | ### 2.2.0
23 | # - updated url to https://kas.hrst1.kim.telematik/attachments/v2.2/
24 | # - deleted operation read_MaxMailSize
25 | # - changed operation add_Attachment:
26 | # renamed "Shared-Link" to "sharedLink"
27 | # added parameters: expires, recipients, messageID
28 | # added error code 507
29 | # - changed operation read_Attachment:
30 | # added parameter recipient
31 | # added error code 429
32 | ### 2.0.0
33 | # - added client authentication for operation add_Attachment
34 | # - changed URI for operations add_attachment and read_attachment
35 | # - added error message strings
36 | # - added HTTP error code 500
37 | ### 1.1.0
38 | # - changed data type in operation read_maxMailSize
39 | # - changed error code 405 to 400 in operation add_Attachment
40 | # - changed MIME type multipart/form-data to application/octet-stream in operation add_Attachment() and read_Attachment()
41 | ### 1.0.1
42 | # - added errorcode 413 in operation add_Attachment
43 | # - extended URI to interface releases
44 | ### 1.0.0
45 | # - initial Version of I_Attachment_Service
46 |
47 | externalDocs:
48 | description: GitHub - documentation
49 | url: https://github.com/gematik/api-kim
50 | servers:
51 | - url: /attachments/v2.3/
52 | # Die URL muss wie folgt gebildet werden:
53 | # https://:
54 | # Die SRV und TXT RR sind unter dem Resource Record Bezeichner zu finden.
55 | tags:
56 | - name: Maildata
57 |
58 | paths:
59 | /attachment/{attachmentId}:
60 | get:
61 | tags:
62 | - Maildata
63 | summary: Download an attachment
64 | description: returns the attachment encrypted under a share link.
65 | operationId: readMaildata
66 |
67 | parameters:
68 | - name: attachmentId
69 | in: path
70 | description: Link reference to the encrypted attachment in the service.
71 | required: true
72 | schema:
73 | type: string
74 | - name: recipient
75 | in: header
76 | description: The recipient's passed email (KIM) address.
77 | required: true
78 | schema:
79 | type: string
80 | format: email
81 |
82 | responses:
83 | 200:
84 | description: OK
85 | # Attachment was downloaded successfully
86 | content:
87 | application/octet-stream:
88 | schema:
89 | type: string
90 | format: binary
91 | 400:
92 | $ref: 'CommonSchemas.yaml#/components/responses/400'
93 | 403:
94 | description: Recipient not included in the KIM email recipient list.
95 | content:
96 | application/json; charset=utf-8:
97 | schema:
98 | $ref: 'CommonSchemas.yaml#/components/schemas/Error'
99 | 404:
100 | description: Resource not found at the specified link.
101 | content:
102 | application/json; charset=utf-8:
103 | schema:
104 | $ref: 'CommonSchemas.yaml#/components/schemas/Error'
105 | 429:
106 | description: Downloaded attachment too many times.
107 | content:
108 | application/json; charset=utf-8:
109 | schema:
110 | $ref: 'CommonSchemas.yaml#/components/schemas/Error'
111 | 500:
112 | $ref: 'CommonSchemas.yaml#/components/responses/500'
113 |
114 | delete:
115 | tags:
116 | - Maildata
117 | summary: Delete email data from KAS
118 | description: Deletion of email data stored on the KAS, Uri corresponds to sharedLink from add_Attachment.
119 | operationId: deleteMaildata
120 |
121 | security:
122 | - KIMBasicAuth: []
123 | # Authentication takes place with username/password from the mail account of the data creator/sender.
124 |
125 | parameters:
126 | - name: attachmentId
127 | in: path
128 | description: Link reference to the encrypted attachment in the service.
129 | required: true
130 | schema:
131 | type: string
132 |
133 | responses:
134 | 200:
135 | description: OK - data has been deleted.
136 | 400:
137 | $ref: 'CommonSchemas.yaml#/components/responses/400'
138 | 401:
139 | $ref: 'CommonSchemas.yaml#/components/responses/401'
140 | 404:
141 | description: Resource not found at the specified link.
142 | content:
143 | application/json; charset=utf-8:
144 | schema:
145 | $ref: 'CommonSchemas.yaml#/components/schemas/Error'
146 | 500:
147 | $ref: 'CommonSchemas.yaml#/components/responses/500'
148 |
149 | /attachment/:
150 | post:
151 | tags:
152 | - Maildata
153 | summary: Add an attachment
154 | description: An encrypted attachment is added under a newly created sharing link.
155 | operationId: addMaildata
156 |
157 | security:
158 | - KIMBasicAuth: []
159 | # Authentication takes place with username/password from the mail account.
160 |
161 | parameters:
162 | - name: Content-Length
163 | in: header
164 | description: Total size/length of the request body.
165 | required: true
166 | schema:
167 | type: integer
168 | format: int64
169 | example: 524299123
170 |
171 | requestBody:
172 | content:
173 | multipart/form-data:
174 | schema:
175 | type: object
176 | required: [messageID, attachment, recipients, expires]
177 | properties:
178 | messageID:
179 | type: string
180 | description: MessageID of the associated KIM email.
181 | recipients:
182 | type: array
183 | description: List of all recipients (KIM addresses) of the KIM email recipients;
184 | Exactly one address is specified per form part and the form part is
185 | specified multiple times (exploded=true).
186 | # curl e.g.
187 | # -F 'recipients=user1@example.kim.telematik' \
188 | # -F 'recipients=user2@example.kim.telematik' \
189 | items:
190 | type: string
191 | format: email
192 | expires:
193 | type: string
194 | description: Time at which the attachment must be deleted.
195 | (Format RFC5322 date-time)
196 | attachment:
197 | type: string
198 | format: binary
199 | description: Contains the encrypted maildata.
200 |
201 | encoding:
202 | attachment:
203 | contentType: application/octet-stream
204 | headers:
205 | Content-Length:
206 | required: true
207 | description: Amount of data in bytes of the mail data to be transmitted on the KAS.
208 | schema:
209 | type: integer
210 | format: int64
211 | example: 524288000
212 | Content-Disposition:
213 | required: true
214 | schema:
215 | type: string
216 | example: "Content-Disposition: form-data; name=attachment; filename=attachment.enc"
217 |
218 | responses:
219 | 201:
220 | description: Created
221 | # The attachment was successfully created under the shared link provided.
222 | content:
223 | application/json; charset=utf-8:
224 | schema:
225 | type: object
226 | properties:
227 | sharedLink:
228 | type: string
229 | # Contains the link to the download point.
230 | # The attachment can be accessed from KAS via the link.
231 | # The link contains the attachmentID - required in operation read_Attachment.
232 | 400:
233 | $ref: 'CommonSchemas.yaml#/components/responses/400'
234 | 401:
235 | $ref: 'CommonSchemas.yaml#/components/responses/401'
236 | 413:
237 | description: Payload Too Large
238 | # The maximum permitted document size has been exceeded.
239 | content:
240 | application/json; charset=utf-8:
241 | schema:
242 | $ref: 'CommonSchemas.yaml#/components/schemas/Error'
243 | 500:
244 | $ref: 'CommonSchemas.yaml#/components/responses/500'
245 | 507:
246 | description: Not enough memory available.
247 | content:
248 | application/json; charset=utf-8:
249 | schema:
250 | $ref: 'CommonSchemas.yaml#/components/schemas/Error'
251 |
252 | components:
253 | securitySchemes:
254 | KIMBasicAuth:
255 | $ref: 'CommonSchemas.yaml#/components/securitySchemes/KIMBasicAuth'
--------------------------------------------------------------------------------
/src/openapi/CommonSchemas.yaml:
--------------------------------------------------------------------------------
1 | info:
2 | title: I_CommonSchemas
3 | version: 1.0.2
4 |
5 | ### 1.0.2
6 | # - new eror code 424, when default Anwendungskennzeichen will be lost or is necessary
7 | ### 1.0.1
8 | # - removed minLength from Password for KIM 1.5.2 compatability
9 | ### 1.0.0
10 | # - created
11 |
12 | components:
13 | schemas:
14 | Username:
15 | type: string
16 | maxLength: 256
17 | format: email
18 | description: Username/email of the account.
19 | Password:
20 | type: string
21 | maxLength: 256
22 | format: byte
23 | description: The password is transmitted base64 encoded.
24 | writeOnly: true
25 | Error:
26 | type: object
27 | properties:
28 | message:
29 | type: string
30 | traceId:
31 | type: string
32 | maxLength: 255
33 | example: 19aaf69260f63694
34 | description: Unique character string for tracing the error in the KIM service
35 |
36 | responses:
37 | 400:
38 | description: Error in the input data, description of the error is in the error text
39 | content:
40 | application/json; charset=utf-8:
41 | schema:
42 | $ref: '#/components/schemas/Error'
43 | 401:
44 | description: Authentification failed
45 | content:
46 | application/json; charset=utf-8:
47 | schema:
48 | $ref: '#/components/schemas/Error'
49 | 404:
50 | description: Email account not available.
51 | content:
52 | application/json; charset=utf-8:
53 | schema:
54 | $ref: '#/components/schemas/Error'
55 | 423:
56 | description: VZD entry is locked.
57 | content:
58 | application/json; charset=utf-8:
59 | schema:
60 | $ref: '#/components/schemas/Error'
61 | 424:
62 | description: default Anwendungskennzeichen will be lost or is necessary.
63 | content:
64 | application/json; charset=utf-8:
65 | schema:
66 | $ref: '#/components/schemas/Error'
67 | 500:
68 | description: Internal Server Error
69 | content:
70 | application/json; charset=utf-8:
71 | schema:
72 | $ref: '#/components/schemas/Error'
73 | 502:
74 | description: VZD cannot be reached or returns errors
75 | content:
76 | application/json; charset=utf-8:
77 | schema:
78 | $ref: '#/components/schemas/Error'
79 |
80 | securitySchemes:
81 | KIMBearerAuth:
82 | type: http
83 | scheme: bearer
84 | bearerFormat: JWT
85 | # The JWT is encoded in compact serialization (RFC 7515, Section 3.1) and transmitted in the HTTP header Authorization according to the bearer schema.
86 |
87 | KIMBasicAuth:
88 | type: http
89 | scheme: basic
90 |
--------------------------------------------------------------------------------
/src/openapi/ServiceInformation.yaml:
--------------------------------------------------------------------------------
1 | openapi: 3.0.3
2 | info:
3 | title: I_ServiceInformation
4 | description: Information about the KIM service is requested via this interface.
5 | version: 1.0.2
6 | ### 1.0.2
7 | # - added operation GET /appTags
8 | ### 1.0.1
9 | # - added kimServiceVersion and jwtExpirations to the ServiceInformation object
10 | ### 1.0.0
11 | # - initial Version of I_ServiceInformation
12 | # - added traceId to Error object
13 |
14 | externalDocs:
15 | description: GitHub - documentation
16 | url: https://github.com/gematik/api-kim
17 | servers:
18 | - url: /ServiceInformation/v1.0/
19 | # The URL must be formed as follows:
20 | # https://:
21 | # Die SRV und TXT RR sind unter dem Resource Record Bezeichner zu finden.
22 | tags:
23 | - name: ServiceInformation
24 |
25 | paths:
26 | /serviceinfo:
27 | get:
28 | tags:
29 | - ServiceInformation
30 | summary: Request information via the KIM backend service
31 | description: Request information via the KIM backend service
32 | operationId: getServiceInformation
33 | responses:
34 | 200:
35 | description: OK
36 | # Return the information via the KIM backend service
37 | content:
38 | application/json; charset=utf-8:
39 | schema:
40 | $ref: '#/components/schemas/ServiceInformation'
41 | 500:
42 | $ref: 'CommonSchemas.yaml#/components/responses/500'
43 |
44 | /appTags:
45 | get:
46 | tags:
47 | - appTags
48 | summary: Request information for application identifiers (Anwendungskennzeichen)
49 | description: The list of application identifiers (Anwendungskennzeichen) is queried.
50 | The application identifiers are used as the FHIR code system in the
51 | Submit response
52 | operationId: getAppTags
53 |
54 | responses:
55 | 200:
56 | description: OK
57 | # Return of the application identifiers as FHIR CodeSystem (ServiceIdentifierCS)
58 | # Please refer https://simplifier.net/app-transport-framework/service-identifier-cs/~json
59 | content:
60 | application/json; charset=utf-8:
61 | schema:
62 | externalDocs:
63 | description: Return of the application identifiers as FHIR CodeSystem (ServiceIdentifierCS)
64 | url: https://simplifier.net/app-transport-framework/service-identifier-cs/~json
65 | 500:
66 | $ref: 'CommonSchemas.yaml#/components/responses/500'
67 |
68 | components:
69 | schemas:
70 | ServiceInformation:
71 | type: object
72 | properties:
73 | kimServiceVersion:
74 | type: string
75 | description: Specifies the version of the KIM backend service.
76 | passwordPolicyRegEx:
77 | type: string
78 | description: Specifies the password policy that the AccountManager requires as a regular expression (in java compatible style).
79 | passwordPolicyDisplay:
80 | type: string
81 | description: Specifies the password policy that the AccountManager requires in text form.
82 | jwtExpiration:
83 | type: integer
84 | minimum: 300
85 | maximum: 21600
86 | description: Specifies the configured expiration time range for JWTs. The value is given in seconds.
87 | referenceIdRequired:
88 | type: boolean
89 | description: Specifies whether the referenceID is required during initial registration.
90 | initialPasswordRequired:
91 | type: boolean
92 | description: Specifies whether the initial password is required during initial registration.
93 | example:
94 | kimServiceVersion: 1.5.3
95 | passwordPolicyRegEx: ^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[*.!@#$%^&(){}\[\]:;'<>,?/~_+\-=|\\]).{12,256}$
96 | passwordPolicyDisplay: At least one number [0-9]
97 | At least one lowercase letter [a-z]
98 | At least one capital letter [A-Z]
99 | At least one special character [*.!@#$%^&(){}[]:;'<>,?/~_+-=|\]
100 | Minimum length 12 characters
101 | Maximum length 256 characters.
102 | jwtExpiration: 300
103 | referenceIdRequired: true
104 | initialPasswordRequired: false
105 |
106 |
--------------------------------------------------------------------------------
/src/plantuml/Fachdienst/Seq_acc_abwesenheitsnotiz.puml:
--------------------------------------------------------------------------------
1 | /'
2 | # KIM 1.5
3 | # Account Manager
4 | # Sequence Diagram
5 | # Name: Operation Abwesenheitsnotiz
6 | '/
7 |
8 | @startuml
9 | skinparam sequenceMessageAlign direction
10 | skinparam minClassWidth 200
11 | skinparam BoxPadding 15
12 | skinparam sequenceReferenceHeaderBackgroundColor palegreen
13 | scale max 2048 width
14 | hide footbox
15 |
16 | skinparam sequence {
17 | ArrowColor black
18 | ArrowFontSize 17
19 | ActorBorderColor black
20 | LifeLineBorderColor black
21 | LifeLineBackgroundColor Gainsboro
22 |
23 | ParticipantBorderColor Motivation
24 | ParticipantBackgroundColor Motivation
25 | ParticipantFontSize 20
26 | ParticipantFontColor black
27 | ParticipantBorderColor Black
28 | ParticipantBackgroundColor MOTIVATION
29 |
30 | ActorBackgroundColor Gainsboro
31 | ActorFontColor black
32 | ActorFontSize 20
33 | ActorFontName Aapex
34 | }
35 | actor L as "Leistungserbringer"
36 | box Clientmodul\n #WhiteSmoke
37 | participant A as "Administrationsmodul"
38 | end box
39 | box Fachdienst\n #WhiteSmoke
40 | participant AM as "Account-Manager"
41 | end box
42 |
43 | L->A: Abwesenheit \nkonfigurieren
44 | activate A
45 | A->AM: getOutOfOffice
46 | activate AM
47 | AM --> A: Konfiguration
48 | deactivate AM
49 |
50 | opt Abwesenheitsnotiz bearbeiten
51 | A->AM: updateOutOfOffice
52 | activate AM
53 | AM --> A: status
54 | deactivate AM
55 | end
56 | A-->L: status
57 | deactivate A
58 | @enduml
--------------------------------------------------------------------------------
/src/plantuml/Fachdienst/Seq_acc_anwendungskennzeichen.puml:
--------------------------------------------------------------------------------
1 | /'
2 | # KIM 1.5
3 | # Account Manager
4 | # Sequence Diagram
5 | # Name: Operation Abwesenheitsnotiz
6 | '/
7 |
8 | @startuml
9 | skinparam sequenceMessageAlign direction
10 | skinparam minClassWidth 200
11 | skinparam BoxPadding 15
12 | skinparam sequenceReferenceHeaderBackgroundColor palegreen
13 | scale max 2048 width
14 | hide footbox
15 |
16 | skinparam sequence {
17 | ArrowColor black
18 | ArrowFontSize 17
19 | ActorBorderColor black
20 | LifeLineBorderColor black
21 | LifeLineBackgroundColor Gainsboro
22 |
23 | ParticipantBorderColor Motivation
24 | ParticipantBackgroundColor Motivation
25 | ParticipantFontSize 20
26 | ParticipantFontColor black
27 | ParticipantBorderColor Black
28 | ParticipantBackgroundColor MOTIVATION
29 |
30 | ActorBackgroundColor Gainsboro
31 | ActorFontColor black
32 | ActorFontSize 20
33 | ActorFontName Aapex
34 | }
35 | actor L as "Leistungserbringer"
36 | box Clientmodul\n #WhiteSmoke
37 | participant A as "Administrationsmodul"
38 | end box
39 | box Fachdienst\n #WhiteSmoke
40 | participant AM as "Account-Manager"
41 | end box
42 |
43 | L->A: Anwendungskennzeichen \nkonfigurieren
44 | activate A
45 | A->AM: getAccount
46 | activate AM
47 | AM --> A: Konfiguration
48 | deactivate AM
49 |
50 | opt Anwendungskennzeichen bearbeiten
51 | A->AM: setAccount
52 | activate AM
53 | AM --> A: status
54 | deactivate AM
55 | end
56 | A-->L: status
57 | deactivate A
58 | @enduml
--------------------------------------------------------------------------------
/src/plantuml/Fachdienst/Seq_acc_deregister.puml:
--------------------------------------------------------------------------------
1 | /'
2 | # KIM 1.5
3 | # Account Manager
4 | # Sequence Diagram
5 | # Name: Operation deregister
6 | '/
7 |
8 | @startuml
9 | skinparam sequenceMessageAlign direction
10 | skinparam minClassWidth 200
11 | skinparam BoxPadding 15
12 | skinparam sequenceReferenceHeaderBackgroundColor palegreen
13 | scale max 2048 width
14 | hide footbox
15 |
16 | skinparam sequence {
17 | ArrowColor black
18 | ArrowFontSize 17
19 | ActorBorderColor black
20 | LifeLineBorderColor black
21 | LifeLineBackgroundColor Gainsboro
22 |
23 | ParticipantBorderColor Motivation
24 | ParticipantBackgroundColor Motivation
25 | ParticipantFontSize 20
26 | ParticipantFontColor black
27 | ParticipantBorderColor Black
28 | ParticipantBackgroundColor MOTIVATION
29 |
30 | ActorBackgroundColor Gainsboro
31 | ActorFontColor black
32 | ActorFontSize 20
33 | ActorFontName Aapex
34 | }
35 | actor L as "Leistungserbringer"
36 | box Clientmodul\n #WhiteSmoke
37 | participant A as "Administrationsmodul"
38 | end box
39 | box Fachdienst\n #WhiteSmoke
40 | participant AM as "Account-Manager"
41 | end box
42 |
43 | L->A: Deregistrierung aufrufen
44 | activate A
45 | A->AM: deregisterAccount
46 | activate AM
47 | AM --> A: status
48 | deactivate AM
49 | A-->L: status
50 | deactivate A
51 | @enduml
--------------------------------------------------------------------------------
/src/plantuml/Fachdienst/Seq_acc_kontoverwaltung.puml:
--------------------------------------------------------------------------------
1 | /'
2 | # KIM 1.5
3 | # Account Manager
4 | # Sequence Diagram
5 | # Name: Operation Kontodaten abfragen/ändern
6 | '/
7 |
8 | @startuml
9 | skinparam sequenceMessageAlign direction
10 | skinparam minClassWidth 200
11 | skinparam BoxPadding 15
12 | skinparam sequenceReferenceHeaderBackgroundColor palegreen
13 | scale max 2048 width
14 | hide footbox
15 |
16 | skinparam sequence {
17 | ArrowColor black
18 | ArrowFontSize 17
19 | ActorBorderColor black
20 | LifeLineBorderColor black
21 | LifeLineBackgroundColor Gainsboro
22 |
23 | ParticipantBorderColor Motivation
24 | ParticipantBackgroundColor Motivation
25 | ParticipantFontSize 20
26 | ParticipantFontColor black
27 | ParticipantBorderColor Black
28 | ParticipantBackgroundColor MOTIVATION
29 |
30 | ActorBackgroundColor Gainsboro
31 | ActorFontColor black
32 | ActorFontSize 20
33 | ActorFontName Aapex
34 | }
35 | actor L as "Leistungserbringer"
36 | box Clientmodul\n #WhiteSmoke
37 | participant A as "Administrationsmodul"
38 | end box
39 | box Fachdienst\n #WhiteSmoke
40 | participant AM as "Account-Manager"
41 | end box
42 |
43 | L->A: Kontoverwaltung
44 | activate A
45 | opt Kontodaten abfragen
46 | A->AM: getAccount
47 | activate AM
48 | AM --> A: status
49 | deactivate AM
50 | end
51 | opt Kontodaten ändern
52 | A->AM: setAccount
53 | activate AM
54 | AM --> A: status
55 | deactivate AM
56 | end
57 | A-->L: status
58 | deactivate A
59 | @enduml
--------------------------------------------------------------------------------
/src/plantuml/Fachdienst/Seq_acc_portierung.puml:
--------------------------------------------------------------------------------
1 | /'
2 | # KIM 1.5
3 | # Account Manager
4 | # Sequence Diagram
5 | # Name: Operation Account portieren
6 | '/
7 |
8 | @startuml
9 | skinparam sequenceMessageAlign direction
10 | skinparam minClassWidth 200
11 | skinparam BoxPadding 15
12 | skinparam sequenceReferenceHeaderBackgroundColor palegreen
13 | scale max 2048 width
14 | hide footbox
15 |
16 | skinparam sequence {
17 | ArrowColor black
18 | ArrowFontSize 17
19 | ActorBorderColor black
20 | LifeLineBorderColor black
21 | LifeLineBackgroundColor Gainsboro
22 |
23 | ParticipantBorderColor Motivation
24 | ParticipantBackgroundColor Motivation
25 | ParticipantFontSize 20
26 | ParticipantFontColor black
27 | ParticipantBorderColor Black
28 | ParticipantBackgroundColor MOTIVATION
29 |
30 | ActorBackgroundColor Gainsboro
31 | ActorFontColor black
32 | ActorFontSize 20
33 | ActorFontName Aapex
34 | }
35 | actor L as "Leistungserbringer"
36 | box Clientmodul\n #WhiteSmoke
37 | participant A as "Administrationsmodul"
38 | end box
39 | box Fachdienst\n #WhiteSmoke
40 | participant AM as "Account-Manager"
41 | end box
42 | box Directory\n #WhiteSmoke
43 | participant VZD as "VZD"
44 | end box
45 |
46 | L->A: Portierung durchführen
47 | activate A
48 | A->AM: getOTP
49 | activate AM
50 | AM-->A: OTP
51 | deactivate AM
52 |
53 | A -> AM: setTID
54 | activate AM
55 | AM->VZD: Mail-Adresse entfernen
56 | activate VZD
57 | VZD -> VZD: Mail-Adresse für \nalte Telematik-ID\n entfernen
58 | VZD --> AM: status
59 | deactivate VZD
60 |
61 | AM->VZD: Mail-Adresse hinzufügen
62 | activate VZD
63 | VZD -> VZD: Mail-Adresse für \nneue Telematik-ID\n hinzufügen
64 | VZD --> AM: status
65 | deactivate VZD
66 |
67 | AM-->A: status
68 | A-->L: status
69 | deactivate A
70 | @enduml
--------------------------------------------------------------------------------
/src/plantuml/Fachdienst/Seq_acc_register.puml:
--------------------------------------------------------------------------------
1 | /'
2 | # KIM 1.5
3 | # Account Manager
4 | # Sequence Diagram
5 | # Name: Operation Account registrieren
6 | '/
7 |
8 | @startuml
9 | skinparam sequenceMessageAlign direction
10 | skinparam minClassWidth 200
11 | skinparam BoxPadding 15
12 | skinparam sequenceReferenceHeaderBackgroundColor palegreen
13 | scale max 2048 width
14 | hide footbox
15 |
16 | skinparam sequence {
17 | ArrowColor black
18 | ArrowFontSize 17
19 | ActorBorderColor black
20 | LifeLineBorderColor black
21 | LifeLineBackgroundColor Gainsboro
22 |
23 | ParticipantBorderColor Motivation
24 | ParticipantBackgroundColor Motivation
25 | ParticipantFontSize 20
26 | ParticipantFontColor black
27 | ParticipantBorderColor Black
28 | ParticipantBackgroundColor MOTIVATION
29 |
30 | ActorBackgroundColor Gainsboro
31 | ActorFontColor black
32 | ActorFontSize 20
33 | ActorFontName Aapex
34 | }
35 | actor L as "Leistungserbringer"
36 | box Clientmodul\n #WhiteSmoke
37 | participant A as "Administrationsmodul"
38 | end box
39 | box Fachdienst\n #WhiteSmoke
40 | participant AM as "Account-Manager"
41 | end box
42 | box Directory\n #WhiteSmoke
43 | participant VZD as "VZD"
44 | end box
45 |
46 | L->A: Registrierung aufrufen
47 | activate A
48 | A->AM: registerAccount
49 | activate AM
50 | AM -> VZD: KIM Fachdaten eintragen
51 | activate VZD
52 | VZD --> AM: status
53 | deactivate VZD
54 | AM --> A: status
55 | deactivate AM
56 |
57 | opt PKCS#12 != true
58 | A->AM: createCert
59 | activate AM
60 | AM --> A: PKCS#12
61 | deactivate AM
62 | end
63 | A-->L: status
64 | deactivate A
65 | @enduml
--------------------------------------------------------------------------------
/src/plantuml/Fachdienst/Seq_acc_revoke_deregister.puml:
--------------------------------------------------------------------------------
1 | /'
2 | # KIM 1.5
3 | # Account Manager
4 | # Sequence Diagram
5 | # Name: Operation revokeDeregistration
6 | '/
7 |
8 | @startuml
9 | skinparam sequenceMessageAlign direction
10 | skinparam minClassWidth 200
11 | skinparam BoxPadding 15
12 | skinparam sequenceReferenceHeaderBackgroundColor palegreen
13 | scale max 2048 width
14 | hide footbox
15 |
16 | skinparam sequence {
17 | ArrowColor black
18 | ArrowFontSize 17
19 | ActorBorderColor black
20 | LifeLineBorderColor black
21 | LifeLineBackgroundColor Gainsboro
22 |
23 | ParticipantBorderColor Motivation
24 | ParticipantBackgroundColor Motivation
25 | ParticipantFontSize 20
26 | ParticipantFontColor black
27 | ParticipantBorderColor Black
28 | ParticipantBackgroundColor MOTIVATION
29 |
30 | ActorBackgroundColor Gainsboro
31 | ActorFontColor black
32 | ActorFontSize 20
33 | ActorFontName Aapex
34 | }
35 | actor L as "Leistungserbringer"
36 | box Clientmodul\n #WhiteSmoke
37 | participant A as "Administrationsmodul"
38 | end box
39 | box Fachdienst\n #WhiteSmoke
40 | participant AM as "Account-Manager"
41 | end box
42 |
43 | L->A: Deregistrierung zurücknehmen
44 | activate A
45 | A->AM: revokeDeregistration
46 | activate AM
47 | AM --> A: status
48 | deactivate AM
49 | A-->L: status
50 | deactivate A
51 | @enduml
--------------------------------------------------------------------------------
/src/plantuml/Fachdienst/Seq_acc_zertifikat.puml:
--------------------------------------------------------------------------------
1 | /'
2 | # KIM 1.5
3 | # Account Manager
4 | # Sequence Diagram
5 | # Name: Operation Account registrieren
6 | '/
7 |
8 | @startuml
9 | skinparam sequenceMessageAlign direction
10 | skinparam minClassWidth 200
11 | skinparam BoxPadding 15
12 | skinparam sequenceReferenceHeaderBackgroundColor palegreen
13 | scale max 2048 width
14 | hide footbox
15 |
16 | skinparam sequence {
17 | ArrowColor black
18 | ArrowFontSize 17
19 | ActorBorderColor black
20 | LifeLineBorderColor black
21 | LifeLineBackgroundColor Gainsboro
22 |
23 | ParticipantBorderColor Motivation
24 | ParticipantBackgroundColor Motivation
25 | ParticipantFontSize 20
26 | ParticipantFontColor black
27 | ParticipantBorderColor Black
28 | ParticipantBackgroundColor MOTIVATION
29 |
30 | ActorBackgroundColor Gainsboro
31 | ActorFontColor black
32 | ActorFontSize 20
33 | ActorFontName Aapex
34 | }
35 | box Clientmodul\n #WhiteSmoke
36 | participant A as "Administrationsmodul"
37 | end box
38 | box Fachdienst\n #WhiteSmoke
39 | participant AM as "Account-Manager"
40 | end box
41 |
42 |
43 | activate A
44 | A->A: Prüfung Ablauf\n TLS Zertifikat
45 | A->AM: createCert
46 | activate AM
47 | AM --> A: PKCS#12
48 | deactivate AM
49 | deactivate A
50 | @enduml
--------------------------------------------------------------------------------
/src/plantuml/Fachdienst/Seq_kas_email_empfangen.puml:
--------------------------------------------------------------------------------
1 | /'
2 | # KIM 1.5
3 | # Account Manager
4 | # Sequence Diagram
5 | # Name: Operation kas mail empfangen
6 | '/
7 |
8 | @startuml
9 | skinparam sequenceMessageAlign direction
10 | skinparam minClassWidth 200
11 | skinparam BoxPadding 15
12 | skinparam sequenceReferenceHeaderBackgroundColor palegreen
13 | scale max 2048 width
14 | hide footbox
15 |
16 | skinparam sequence {
17 | ArrowColor black
18 | ArrowFontSize 17
19 | ActorBorderColor black
20 | LifeLineBorderColor black
21 | LifeLineBackgroundColor Gainsboro
22 |
23 | ParticipantBorderColor Motivation
24 | ParticipantBackgroundColor Motivation
25 | ParticipantFontSize 20
26 | ParticipantFontColor black
27 | ParticipantBorderColor Black
28 | ParticipantBackgroundColor MOTIVATION
29 |
30 | ActorBackgroundColor Gainsboro
31 | ActorFontColor black
32 | ActorFontSize 20
33 | ActorFontName Aapex
34 | }
35 | actor L as "Leistungserbringer"
36 | box Primärsystem\n #WhiteSmoke
37 | participant P as "PVS/KIS/Mailclient"
38 | end box
39 | box Clientmodul\n #WhiteSmoke
40 | participant KM as "KIM-Dienst"
41 | end box
42 | box Fachdienst\n #WhiteSmoke
43 | participant AM as "Account-Manager"
44 | participant K as "KAS"
45 | participant MS as "Mailserver"
46 | end box
47 |
48 | L->P: Mail abrufen
49 | activate P
50 | P->KM: Mail abrufen
51 | activate KM
52 | KM->MS++: receive Message
53 | MS-->KM--: KOM-LE-Mail
54 | KM->KM: E-Mail entschlüsseln und\n Signatur prüfen
55 | KM->KM: Prüfen der KIM-Version
56 | opt KIM-Attachment-Datenstruktur vorhanden
57 | KM->KM: KAS-Informationen aus der\nKIM-Attachment-Datenstruktur\nextrahieren
58 | KM->K: readAttachement
59 | activate K
60 | K->K: Berechtigung prüfen
61 | K->K: verschlüsselte Client-Mail suchen
62 | K-->KM: verschlüsselte Client-Mail
63 | deactivate K
64 | KM->KM: Client-Mail mit dem\nsymmetrischen Schlüssel\nentschlüsseln
65 | KM->KM: Bildung des Hashwertes
66 | KM->KM: Vergleich der Hashwerte
67 | KM->KM: Client-Mail aufbereiten
68 | end
69 | KM-->P: Client-Mail
70 | deactivate K
71 | P-->L: Client-Mail
72 | deactivate P
73 | @enduml
74 |
--------------------------------------------------------------------------------
/src/plantuml/Fachdienst/Seq_kas_email_senden.puml:
--------------------------------------------------------------------------------
1 | /'
2 | # KIM 1.5
3 | # Account Manager
4 | # Sequence Diagram
5 | # Name: Operation kas mail senden
6 | '/
7 |
8 | @startuml
9 | skinparam sequenceMessageAlign direction
10 | skinparam minClassWidth 200
11 | skinparam BoxPadding 15
12 | skinparam sequenceReferenceHeaderBackgroundColor palegreen
13 | scale max 2048 width
14 | hide footbox
15 |
16 | skinparam sequence {
17 | ArrowColor black
18 | ArrowFontSize 17
19 | ActorBorderColor black
20 | LifeLineBorderColor black
21 | LifeLineBackgroundColor Gainsboro
22 |
23 | ParticipantBorderColor Motivation
24 | ParticipantBackgroundColor Motivation
25 | ParticipantFontSize 20
26 | ParticipantFontColor black
27 | ParticipantBorderColor Black
28 | ParticipantBackgroundColor MOTIVATION
29 |
30 | ActorBackgroundColor Gainsboro
31 | ActorFontColor black
32 | ActorFontSize 20
33 | ActorFontName Aapex
34 | }
35 | actor L as "Leistungserbringer"
36 | box Primärsystem\n #WhiteSmoke
37 | participant P as "PVS/KIS/Mailclient"
38 | end box
39 | box Clientmodul\n #WhiteSmoke
40 | participant KM as "KIM-Dienst"
41 | end box
42 | box Fachdienst\n #WhiteSmoke
43 | participant AM as "Account-Manager"
44 | participant K as "KAS"
45 | participant MS as "Mailserver"
46 | end box
47 |
48 | L->P: Email mit großen\n Anhängen erzeugen
49 | activate P
50 | P->KM: E-Mail weiterleiten
51 | activate KM
52 | KM->KM: Prüfen der E-Mailgröße
53 | KM->KM: Prüfen der KIM-Version\n des Empfängers
54 | opt Mailgröße>15 MB
55 | KM->AM: getLimits
56 | activate AM
57 | AM-->KM: Limits
58 | deactivate AM
59 | KM->KM: Erzeugung eines symmetrischen\n Schlüssels für die Mail
60 | KM->KM: Bildung des Hashwertes
61 | KM->KM: Verschlüsselung der Mail \nmit dem symmetrischen Schlüssel
62 | KM->K: add_Maildata (recipients, messageID, expires, verschlüsselte E-Mail)
63 | activate K
64 | K->K: Berechtigung prüfen
65 | K->K: Dateigröße prüfen
66 | K->K: Freigabelink erzeugen
67 | K->K: E-Mail Daten ablegen
68 | K-->KM: Freigabelink
69 | deactivate K
70 | KM->KM: KIM-Attachment-Datenstruktur \nim Body der KOM-LE-Mail einfügen
71 | end
72 | KM->KM: KOM-LE-Mail signieren \nund asymmetrisch verschlüsseln
73 | KM->MS++: send Message
74 | MS-->KM--: status
75 | KM-->P:status
76 | deactivate KM
77 | P-->L:status
78 | deactivate P
79 | @enduml
80 |
--------------------------------------------------------------------------------
/src/plantuml/Int_PS-KIM.puml:
--------------------------------------------------------------------------------
1 | @startuml
2 | /'
3 | # KIM 1.5.x
4 | # Primaersystemleitfaden
5 | # KIM Schnittstellen
6 | '/
7 |
8 |
9 | skinparam actorStyle awesome
10 | left to right direction
11 | scale 6/3
12 |
13 | skinparam sequence {
14 | ArrowColor black
15 | ArrowFontSize 17
16 | ActorBorderColor black
17 | LifeLineBorderColor black
18 | LifeLineBackgroundColor Gainsboro
19 |
20 | skinparam component {
21 | FontSize 10
22 | BackgroundColor<> LightCoral
23 | BorderColor<> #FF6655
24 | FontName Courier
25 | BorderColor black
26 | BackgroundColor gold
27 | ArrowFontName Impact
28 | ArrowFontSize 8
29 | ArrowColor #FF6655
30 | ArrowFontColor #777777
31 | }
32 |
33 | ParticipantBorderColor Motivation
34 | ParticipantBackgroundColor Motivation
35 | ParticipantFontName Impact
36 | ParticipantFontSize 20
37 | ParticipantFontColor black
38 | ParticipantBorderColor Black
39 | ParticipantBackgroundColor MOTIVATION
40 |
41 | ActorBackgroundColor Gainsboro
42 | ActorFontColor black
43 | ActorFontSize 13
44 | ActorFontName Aapex
45 | }
46 |
47 | package SchnittstellenPS-KIM {
48 | [Primärsystem] ..> [POP3-Proxy\n[KIM-Clientmodul]] :use
49 | [Primärsystem] ..> [SMTP-Proxy\n[KIM-Clientmodul]] :use
50 | [Primärsystem] ..> [LDAPv3-Proxy\n[Konnektor]] :use
51 | [LDAPv3-Proxy\n[Konnektor]] ..> [Verzeichnisdienst] :use
52 | [SMTP-Proxy\n[KIM-Clientmodul]] ..> [Verzeichnisdienst] :use
53 | [POP3-Proxy\n[KIM-Clientmodul]] ..> [KIM-Provider] :use
54 | [SMTP-Proxy\n[KIM-Clientmodul]] ..> [KIM-Provider] :use
55 | }
56 |
57 | @enduml
--------------------------------------------------------------------------------
/src/plantuml/UC_PS-KIM.puml:
--------------------------------------------------------------------------------
1 | @startuml
2 | /'
3 | # KIM 1.5.x
4 | # Primaersystemleitfaden
5 | # Use Case Diagram
6 | # Anwendungsfaelle
7 | '/
8 |
9 |
10 | skinparam actorStyle awesome
11 | left to right direction
12 | scale 6/3
13 |
14 | skinparam sequence {
15 | ArrowColor black
16 | ArrowFontSize 17
17 | ActorBorderColor black
18 | LifeLineBorderColor black
19 | LifeLineBackgroundColor Gainsboro
20 |
21 | ParticipantBorderColor Motivation
22 | ParticipantBackgroundColor Motivation
23 | ParticipantFontName Impact
24 | ParticipantFontSize 20
25 | ParticipantFontColor black
26 | ParticipantBorderColor Black
27 | ParticipantBackgroundColor MOTIVATION
28 |
29 | ActorBackgroundColor Gainsboro
30 | ActorFontColor black
31 | ActorFontSize 13
32 | ActorFontName Aapex
33 | }
34 |
35 | package Clientsystem {
36 | actor "Leistungserbringer" as le
37 | }
38 |
39 | package Anwendungsfälle {
40 | usecase "Empfänger ermitteln" as UC1 #AliceBlue
41 | usecase "Nachricht generieren \nund übernehmen" as UC2 #AliceBlue
42 | usecase "Nachricht versenden" as UC3 #AliceBlue
43 | usecase "Nachricht empfangen" as UC4 #AliceBlue
44 | }
45 |
46 | le --> UC1
47 | le --> UC2
48 | le --> UC3
49 | le --> UC4
50 |
51 | @enduml
--------------------------------------------------------------------------------
/src/plantuml/architecture/KIM, receive 500MB, proof of concept.puml:
--------------------------------------------------------------------------------
1 | @startuml "KIM Anwendungsfall 500MB senden"
2 | skinparam sequenceMessageAlign direction
3 | skinparam minClassWidth 200
4 | skinparam BoxPadding 1
5 | skinparam sequenceReferenceHeaderBackgroundColor palegreen
6 | scale max 2048 width
7 |
8 | skinparam sequence {
9 | ArrowColor black
10 | ArrowFontSize 17
11 | ActorBorderColor black
12 | LifeLineBorderColor black
13 | LifeLineBackgroundColor Gainsboro
14 |
15 | ParticipantBorderColor Motivation
16 | ParticipantBackgroundColor Motivation
17 | ParticipantFontName Impact
18 | ParticipantFontSize 20
19 | ParticipantFontColor black
20 | ParticipantBorderColor Black
21 | ParticipantBackgroundColor MOTIVATION
22 |
23 | ActorBackgroundColor Gainsboro
24 | ActorFontColor black
25 | ActorFontSize 20
26 | ActorFontName Aapex
27 | }
28 |
29 | actor u as "User"
30 | participant mc as "Mail-Client"
31 | participant cm as "Clientmodul"
32 | participant kon as "Konnektor"
33 | participant kas as "KAS"
34 | participant ms as "Mailserver"
35 | participant vzd as "VZD"
36 |
37 | activate mc
38 | mc -> cm: POP3 (STAT, LIST)
39 | activate cm
40 | cm -> ms: POP3 (STAT, LIST)
41 | activate ms
42 | ms --> cm: POP3 OK Message list
43 | cm --> mc: POP3 OK Message list
44 | mc -> cm: POP3 RETR 1
45 | group #WhiteSmoke Mailclient and Mailserver must wait, keep alive required
46 | cm -> ms: POP3 RETR 1
47 | ms --> cm: POP3 OK Message 1
48 | cm -> kon: decryptDocument (KIM-Mail)
49 | kon --> cm: decrypted KIM-Mail
50 | cm -> kon: verifyDocument (decrypted KIM-Mail)
51 | kon --> cm: verificationStatus
52 | cm -> cm: process KIM-Mail\nextract KAS download url\nextract symmetric key
53 | cm -> kas: HTTP download from url
54 | activate kas
55 | kas --> cm: encrypted E-Mail data
56 | deactivate kas
57 | cm -> cm: decrypt encrypted E-Mail data\nwith symmetric key
58 | cm -> cm: create hash and\nverify with KAS hash value
59 | cm --> mc: POP3 OK decrypted Message 1
60 | end
61 | deactivate cm
62 | deactivate ms
63 |
64 | @enduml
--------------------------------------------------------------------------------
/src/plantuml/architecture/KIM, send 500MB, proof of concept.puml:
--------------------------------------------------------------------------------
1 | @startuml "KIM Anwendungsfall 500MB senden"
2 | skinparam sequenceMessageAlign direction
3 | skinparam minClassWidth 200
4 | skinparam BoxPadding 1
5 | skinparam sequenceReferenceHeaderBackgroundColor palegreen
6 | scale max 2048 width
7 |
8 | skinparam sequence {
9 | ArrowColor black
10 | ArrowFontSize 17
11 | ActorBorderColor black
12 | LifeLineBorderColor black
13 | LifeLineBackgroundColor Gainsboro
14 |
15 | ParticipantBorderColor Motivation
16 | ParticipantBackgroundColor Motivation
17 | ParticipantFontName Impact
18 | ParticipantFontSize 20
19 | ParticipantFontColor black
20 | ParticipantBorderColor Black
21 | ParticipantBackgroundColor MOTIVATION
22 |
23 | ActorBackgroundColor Gainsboro
24 | ActorFontColor black
25 | ActorFontSize 20
26 | ActorFontName Aapex
27 | }
28 |
29 | actor u as "User"
30 | participant mc as "Mail-Client"
31 | participant cm as "Clientmodul"
32 | participant kon as "Konnektor"
33 | participant kas as "KAS"
34 | participant ms as "Mailserver"
35 | participant vzd as "VZD"
36 |
37 | u -> mc: compose E-Mail\n(with big attachment 500MB)
38 | activate mc
39 | u -> mc: E-Mail senden
40 | mc -> cm: SMTP (MAIL from, RCPT to, DATA)
41 | activate cm
42 | cm -> ms: SMTP (MAIL from, RCPT to, DATA)
43 | activate ms
44 | ms --> cm: SMTP START
45 | group #WhiteSmoke Mailserver must wait, keep alive required
46 | cm --> mc: SMTP START
47 | mc -> cm: send E-Mail data
48 | mc -> cm: send "." + CRLF
49 | mc -> cm: SMTP QUIT
50 | deactivate mc
51 | cm -> vzd: LDAP query mail=to
52 | vzd --> cm: LDAP entry with komLeData
53 | cm -> cm: to-address has KIM-version "1.5+"
54 | cm -> cm: create symmetric key
55 | cm -> cm: encrypt E-Mail data
56 | cm -> kas: http upload encrypted E-Mail data
57 | activate kas
58 | kas --> cm: http response with KAS download url
59 | deactivate kas
60 | cm -> cm: create new E-Mail with\nKIM attachment data structure
61 | cm -> kon: signDocument(new E-Mail)
62 | activate kon
63 | kon --> cm: new E-Mail with signature
64 | cm -> kon: encryptDocument(new E-Mail with signature)
65 | kon --> cm: encrypted KIM-Mail
66 | deactivate kon
67 | cm -> ms: send KIM-Mail
68 | end
69 | cm -> ms: send "." + CRLF
70 | cm -> ms: SMTP QUIT
71 | deactivate cm
72 | deactivate ms
73 |
74 | @enduml
--------------------------------------------------------------------------------
/src/plantuml/eMail_status_empfangen.puml:
--------------------------------------------------------------------------------
1 | @startuml
2 | scale max 2048 width
3 |
4 | state "KOM-LE Mail empfangen" as rkm
5 | rkm: do / Entschlüsselung des Mail Bodys
6 | rkm: do / Prüfung der Signatur
7 | rkm: exit / Entschlüsselung erfolgreich abgeschlossen
8 |
9 | state "KOM-LE Mail prozessiert" as dkm
10 | dkm: do / Auslesen der KIM-Attachment Struktur
11 | dkm: do / Binary vom KAS herunterladen
12 | dkm: exit / Download erfolgreich
13 |
14 | state "Client-Mail heruntergeladen" as kdcm
15 | kdcm: do / Entschlüsselung der heruntergeladenen Mail-Daten
16 | kdcm: do / Prüfen der Signatur der heruntergeladenen Mail
17 | kdcm: do / Integritätsprüfung
18 | kdcm: do / Nachverarbeitung (z.B. hinzufügen der KIM-header Felder)
19 | kdcm: exit / Nachverarbeitung abgeschlossen
20 |
21 | state "Client-Mail finalisiert" as cm
22 | cm: do / Übermittlung der Client-Mail an das Client-System
23 | cm: exit / Übermittlung erfolgreich abgeschlossen
24 |
25 | [*] -d-> rkm : POP3 Abruf vom Fachdienst
26 | rkm -d-> dkm
27 | dkm -d-> kdcm
28 | kdcm -d-> cm
29 | cm -d-> [*]
30 |
31 | @enduml
32 |
--------------------------------------------------------------------------------
/src/plantuml/eMail_status_senden.puml:
--------------------------------------------------------------------------------
1 | @startuml
2 | scale max 2048 width
3 |
4 | state "Client-Mail empfangen" as cm
5 | cm : do / decodiere Base64
6 | cm : exit / finished decoding
7 |
8 | state "Client-Mail prozessiert" as dcm
9 | dcm: do / Integritätsprüfung
10 | dcm: do / Mailgröße bestimmen
11 | dcm: do / KIM header hinzufügen
12 | dcm: exit / Verarbeitung der Client Mail abgeschlossen
13 |
14 | state "Client-Mail hochgeladen" as cmcm
15 | cmcm: do / erstelle Kopie der prozessierten Client-Mal als Basis für die KOM-LE Mail
16 | cmcm: do / signiere und verschlüssele die prozessierte Client-Mail
17 | cmcm: do / upload des verschlüsselten Binaries auf den KAS
18 | cmcm: do / ersetze den Mail body in der Basis für die KOM-LE Mail mit der KIM-Attachment Struktur
19 | cmcm: exit / initiale KOM-LE Mail erstellt
20 |
21 | state "KOM-LE Mail finalisiert" as ckm
22 | ckm: do / hinzufügen der Header mit Versionsinformationen(Konnektor, Clientmodul, Produkttyp)
23 | ckm: do / signiere und verschlüssle den Mail Body
24 | ckm: exit / finale KOM-LE Mail erstellt
25 |
26 | [*] -d-> cm
27 | cm -d-> dcm
28 | dcm -d-> cmcm
29 | cmcm -d-> ckm
30 | ckm -d-> [*] : Versand an den Fachdienst
31 |
32 | @enduml
33 |
--------------------------------------------------------------------------------
/src/schema/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gematik/api-kim/eddf625807846385f9d1e6e90854ffd05b7cb36c/src/schema/.gitkeep
--------------------------------------------------------------------------------
/src/schema/Attachment_schema.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "Structure of Attachment",
3 | "type": "object",
4 | "properties":
5 | {
6 | "link": { "type": "string" },
7 | "k": { "type": "string" },
8 | "hash": { "type": "string" },
9 | "size": { "type": "integer" }
10 | },
11 | "required": ["link", "k", "hash", "size"]
12 | }
13 |
--------------------------------------------------------------------------------