gemSpec_Autorisierung_V1.52.0




Elektronische Gesundheitskarte und Telematikinfrastruktur



Spezifikation Autorisierung ePA



    
Version 1.52.0
Revision 548770
Stand 01.12.2022
Status freigegeben
Klassifizierung öffentlich
Referenzierung gemSpec_Autorisierung

Dokumentinformationen

Änderungen zur Vorversion

Anpassungen des vorliegenden Dokumentes im Vergleich zur Vorversion können Sie der nachfolgenden Tabelle entnehmen.

Dokumentenhistorie

Version Stand Kap./ Seite Grund der Änderung, besondere Hinweise Bearbeitung
1.0.0 18.12.18 initiale Erstellung des Dokuments gematik
1.1.0 15.05.19 Einarbeitung Änderungsliste P18.1 gematik
1.2.0 28.06.19 Einarbeitung Änderungsliste P19.1 gematik
 1.3.0 02.10.19 Einarbeitung Änderungsliste P20.1/2 gematik
1.4.0 02.03.20 Einarbeitung Änderungsliste P21.1 gematik
1.4.1 26.06.20 Einarbeitung Änderungsliste P21.3 gematik
1.5.0 30.06.20 Anpassungen gemäß Änderungsliste P22.1 und Scope-Themen aus Systemdesign R4.0.0, Einarbeitung offener Punkte gematik
1.6.0 12.10.20 Einarbeitung der Scope-Themen aus R4.0.1
gematik
1.7.0 19.02.21 Einarbeitung Änderungsliste P22.5 gematik
1.8.0 02.06.21 Einarbeitung Änderungsliste ePA_Maintenance_21.1 gematik
1.8.1 09.07.21 Einarbeitung Anpassung IOP-WS (ePA_Maintenance_21.2)  gematik
1.8.2 30.09.21 Einarbeitung ePA_Maintenance_21.3 und red. Anpassung (Pfad auf github) gematik
1.9.0 31.01.22 Einarbeitung ePA_Maintenance_21.4 und ePA_Maintenance_21.5
gematik
1.9.1 31.03.22 Einarbeitung ePA_Maintenance_22.1 gematik
1.50.0 13.04.22 ePA-Stufe 2.5: gemF_ePA_DiGA_Anbindung, gemF_ePA_FDZ_Anbindung gematik
1.51.0 25.07.22 Änderungsliste ePA_Maintenance_22.2, redaktionell: diskriminierungsfreie Sprache (Black-/Whitelist)  gematik
1.52.0 01.12.22 6.2.3.8 Einarbeitung ePA_Maintenance_22.3 gematik

Inhaltsverzeichnis

1 Einordnung des Dokumentes

1.1 Zielsetzung

Das vorliegende Dokument spezifiziert die Anforderungen an die Komponente "Autorisierung" des Produkttyps ePA-Aktensystem. Die Komponente Autorisierung ist verantwortlich für die zentrale Verwaltung des empfängerbezogenen verschlüsselten Schlüsselmaterials.

1.2 Zielgruppe

Das Dokument richtet sich an Hersteller und Anbieter der Komponente "Autorisierung" für die Nutzung in einem ePA-Aktensystem sowie an Hersteller und Anbieter von Produkttypen ePA, die Schnittstellen der Komponente "Autorisierung" nutzen.

1.3 Geltungsbereich

Dieses Dokument enthält normative Festlegungen zur Telematikinfrastruktur des deutschen Gesundheitswesens. Der Gültigkeitszeitraum der vorliegenden Version und deren Anwendung in Zulassungs- oder Abnahmeverfahren wird durch die gematik GmbH in gesonderten Dokumenten (z.B. Dokumentenlandkarte, Produkttypsteckbrief, Leistungsbeschreibung) festgelegt und bekannt gegeben.

Schutzrechts-/Patentrechtshinweis

Die nachfolgende Spezifikation ist von der gematik allein unter technischen Gesichtspunkten erstellt worden. Im Einzelfall kann nicht ausgeschlossen werden, dass die Implementierung der Spezifikation in technische Schutzrechte Dritter eingreift. Es ist allein Sache des Anbieters oder Herstellers, durch geeignete Maßnahmen dafür Sorge zu tragen, dass von ihm aufgrund der Spezifikation angebotene Produkte und/oder Leistungen nicht gegen Schutzrechte Dritter verstoßen und sich ggf. die erforderlichen Erlaubnisse/Lizenzen von den betroffenen Schutzrechtsinhabern einzuholen. Die gematik GmbH übernimmt insofern keinerlei Gewährleistungen.

1.4 Abgrenzungen

Spezifiziert werden in dem Dokument die von der Komponente bereitgestellten (angebotenen) Schnittstellen. Benutzte Schnittstellen werden hingegen in der Spezifikation desjenigen Produkttypen beschrieben, der diese Schnittstelle bereitstellt. Auf die entsprechenden Dokumente wird referenziert (siehe auch Anhang A5).

Die vollständige Anforderungslage für den Produkttyp ergibt sich aus weiteren Konzept- und Spezifikationsdokumenten. Diese sind in dem Produkttypsteckbrief des Produkttyps <ePA-Aktensystem> verzeichnet.

Nicht Bestandteil des vorliegenden Dokumentes sind die Festlegungen zum Themenbereich Betrieb.

1.5 Methodik

Anforderungen als Ausdruck normativer Festlegungen werden durch eine eindeutige ID sowie die dem RFC 2119 [RFC2119] entsprechenden, in Großbuchstaben geschriebenen deutschen Schlüsselworte MUSS, DARF NICHT, SOLL, SOLL NICHT, KANN gekennzeichnet.

Da in dem Beispielsatz „Eine leere Liste DARF NICHT ein Element besitzen.“ die Phrase „DARF NICHT“ semantisch irreführend wäre (wenn nicht ein, dann vielleicht zwei?), wird in diesem Dokument stattdessen „Eine leere Liste DARF KEIN Element besitzen.“ verwendet. Die Schlüsselworte werden außerdem um Pronomen in Großbuchstaben ergänzt, wenn dies den Sprachfluss verbessert oder die Semantik verdeutlicht.

Anforderungen werden im Dokument wie folgt dargestellt:
<AFO-ID> - <Titel der Afo>
Text / Beschreibung
[<=]

Dabei umfasst die Anforderung sämtliche zwischen Afo-ID und Textmarke [<=] angeführten Inhalte.

2 Systemüberblick

Der Autorisierungsdienst ePA ist eine Komponente des Produkttyps ePA-Aktensystem. Die Systemzerlegung der Fachanwendung ePA in Komponenten und Produkttypen sowie die Verteilung der Komponenten auf Produkttypen der Telematikinfrastruktur (TI) ist in [gemSysL_ePA#2.1] und in [gemSysL_ePA#4.1] definiert.

Die Komponente Autorisierungsdienst ePA verwaltet das empfängerverschlüsselte Schlüsselmaterial der Nutzer eines Aktenkontos eines Versicherten (kryptografische Autorisierung). Mit dem Vorhandensein einer kryptografischen Berechtigung ist ein Nutzer in der Lage, auf den symmetrischen Aktenschlüssel sowie den Kontextschlüssel zuzugreifen. Um dieses Schlüsselmaterial für den Zugriff auf medizinische Daten und Dokumente eines Versicherten zu nutzen, benötigt ein Nutzer ggfs. zusätzlich Berechtigungen auf Objektebene in anderen Komponente und Produkttypen, die die Daten und Dokumente des Versicherten verwalten.

3 Systemkontext

Der folgende Abschnitt setzt die Komponente Autorisierung in den Systemkontext der Fachanwendung ePA.

3.1 Akteure und Rollen

Die Komponente Autorisierung wird als Provider technischer Schnittstellen von weiteren technischen Komponenten und Produkttypen der Fachanwendung ePA aufgerufen. Diese weiteren Komponenten und Produkttypen nutzen die Schnittstellen der Komponente Autorisierung im Zusammenhang von fachlichen Anwendungsfällen der Nutzer der Fachanwendung ePA.

Die Nutzer sind dabei gesetzlich Versicherte, Leistungserbringerinstitutionen und Kostenträger, welche durch ihre jeweilige Karte der TI repräsentiert werden. Über eine kartenbasierte Authentifizierungsbestätigung authentisieren sie sich gegenüber der Komponente Autorisierung. Ein Spezialfall des gesetzlichen Versicherten ist der berechtigte Vertreter.

Für die oben genannten Nutzer verwaltet die Komponente Autorisierung empfängerbezogen verschlüsseltes Schlüsselmaterial

  • für Versicherte, plus den Spezialfall des Vertreters - verschlüsselt für die individuelle KVNR
  • für Leistungserbringerinstitutionen und  Kostenträger - verschlüsselt für die individuelle Telematik-ID

Die Komponente Autorisierung wird je nach Erfordernis zur Laufzeit von einem Administrator administriert. Gemäß der Festlegungen des Rollenmodells "Personenkreise der Telematikinfrastruktur" in [gemKPT_Arch_TIP] haben Anbieter, Betreiber und Administratoren keinen Zugriff auf medizinische Daten der Anwendungen des §291a SGB V [SGB V]. Die Komponente Autorisierung speichert personenbezogene Informationen, jedoch keine medizinischen Daten im Sinne des § 291a SGB V [SGB V].

Das folgende Bild gibt eine Übersicht der durch die Schnittstellen realisierten Anwendungsfälle zur Schlüsselverwaltung der Komponente Autorisierung. Zur Vereinfachung sind die Anwendungsfälle der Protokollierung und Geräteverwaltung nicht dargestellt.

Abbildung 1: Anwendungsfälle der Schlüsselverwaltung nach Umgebung

Die Berechtigung für Anwendungsfälle der Schlüsselverwaltung durch einen Nutzer unterscheidet sich nach Umgebung. Dem Versicherten stehen in der Umgebung der Leistungserbringer keine Anwendungsfälle zum Löschen bestehender Berechtigungen zur Verfügung, da ihm dort kein geeignetes Benutzerinterface zur Verfügung steht. Ein Ersetzen des Schlüsselmaterials erfolgt bei Vergabe einer Änderungsberechtigung für eine Leistungserbringerinstitution, wenn bspw. die Gültigkeitsdauer der Berechtigung angepasst wird.

Eine Leistungserbringerinstitution kann auf das für sie hinterlegte Schlüsselmaterial lesend zugreifen. Analog kann ein  Kostenträger nur auf das für ihn hinterlegte Schlüsselmaterial lesend zugreifen.

In der Umgebung des Versicherten hat ein Versicherter vollen Zugriff auf das hinterlegte Schlüsselmaterial mit folgender Ausnahme - ein Versicherter darf das eigene Schlüsselmaterial für die eGK des Versicherten nicht löschen. Ebenso darf der Vertreter nicht das Schlüsselmaterial des Versicherten löschen und auch nicht Schlüsselmaterial für andere eGK-Inhaber hinzufügen (kein Einrichten weiterer Vertretungen durch einen Vertreter).

Ergänzende Informationen zu Bezeichnern und Datentypen finden sich im Informationsmodell in Abschnitt 7. 

Tabelle 1: Anwendungsfälle der Schlüsselverwaltung nach Umgebung

Assoziation
Actor
Regel zur Identifikation des Nutzers*
A
Versicherter

 
 

subject-id == OwnerKVNR == ActorID

 
 

B
C

D

Leistungserbringer-institution
subject-id == ActorID != OwnerKVNR (für HBA – erst in Folgestufe)
organization-id == ActorID != OwnerKVNR (für SMC-B)

E
Versicherter
subject-id == OwnerKVNR
F
Vertreter
subject-id == ActorID != OwnerKVNR (beim Verwalten des Vertretungsschlüssels)
subject-id != ActorID != OwnerKVNR (beim Verwalten aller übrigen Schlüssel)

G
Kostenträger
organization-id == ActorID != OwnerKVNR (für SMC-B KTR)
H DiGA
(Digitale Gesundheitsanwendung)
organization-id == ActorID != OwnerKVNR (für SMC-B DiGA)


* subject-id/organization-id ist Teil der Authentication- bzw. AuthorizationAssertion (als Behauptung gemäß [gemSpec_TBAuth#TAB_TBAuth_02_1/2]), OwnerKVNR ist ein Attribut der KeyChain (vgl. Kap. 7 Informationsmodell), der mehrere AuthorizationKeys untergeordnet werden, ActorID meint hier den Teil des AuthorizationKeys der dessen Besitzer identifiziert, (einige Schnittstellenoperationen verfügen über einen Parameter ActorID, dieser ist hier jedoch nicht Gegenstand der Betrachtung)

Der Versicherte wird beim Einsatz der eGK in der Umgebung der Leistungserbringer (Anwendungsfälle A und B) und in Anwendungsfällen aus der Umgebung des Versicherten (Anwendungsfälle zu E) anhand der KVNR als subject-id eines AuthenticationTokens erkannt. Diese stimmt gleichzeitig mit der OwnerKVNR des Eigentümers der Akte überein. Im Regelfall existiert für den Versicherten ein AuthorizationKey mit der KVNR des Versicherten als ActorID. Im Zustand der Kontoeröffnung und bei Anbieterwechsel wird das Schlüsselmaterial für den Versicherten extern erzeugt. Ein Nicht-Vorhandensein eines AuthorizationKeys für den Versicherten wird nicht als Fehler behandelt, sondern als Autorisierung im Zusammenhang mit Anwendungsfällen der Kontoverwaltung. 

Eine Leistungserbringerinstitution wird bei Einsatz einer SMC-B (Anwendungsfälle C und D) anhand ihrer Telematik-ID aus der  organization-id eines AuthenticationTokens erkannt. Für diese Telematik-ID muss ein AuthorizationKey mit gleichlautender ActorID vorhanden sein, andernfalls ist diese Leistungserbringerinstitution nicht autorisiert. Das gleiche gilt für die Kostenträger  (Anwendungsfall G) und DiGA (Anwendungsfall H).

Der Vertreter wird zunächst als Versicherter mit eigener eGK anhand der KVNR als subject-id eines AuthenticationTokens erkannt. In der Wahrnehmung einer Vertretung (Anwendungsfälle F)  ist seine KVNR ungleich der OwnerKVNR des Eigentümers der Akte. Für seine KVNR muss ein AuthorizationKey mit gleichlautender ActorID vorhanden sein, andernfalls ist der Vertreter für den Zugriff nicht autorisiert.

3.2 Nachbarsysteme

Der folgende Abschnitt beschreibt die Positionierung der Komponente Autorisierung im Kontext der Fachanwendung ePA. 

Die folgende Abbildung zeigt die Beziehung zu benachbarten Produkttypen innerhalb der Fachanwendung mit den von der Komponente Autorisierung bereitgestellten Schnittstellen.

Abbildung 2: Komponente Autorisierung, benachbarte Komponenten und Produkttypen

Die Komponente Autorisierung stellt die Schnittstellen I_Authorization und I_Authorization_Management zur Nutzung aus der Umgebung der Leistungserbringer und Kostenträger bereit. Von dort werden sie aus der Secure Consumer Zone aufgerufen.

Die Schnittstellen I_Authorization_Insurant und I_Authorization_Management_Insurant werden aus der Personal Zone in der Umgebung des Versicherten aufgerufen. In dieser Umgebung nutzt der Versicherte das ePA-Frontend des Versicherten auf einem Gerät des Versicherten.

Die Komponente Autorisierung wird als Teil des Produkttyps ePA-Aktensystem in der Provider Zone der Telematikinfrastruktur betrieben. Sie verfügt über einen logischen, internen Speicher, an den in diesem Dokument keine Umsetzungsanforderungen gestellt werden. Er dient der Persistierung der im Informationsmodell (siehe ) strukturierten Inhalte.

A_13956 - Komponente Autorisierung -Separierung der Schnittstellen für verschiedene Umgebungen

Die Komponente Autorisierung MUSS die Bereitstellungspunkte der Schnittstellen für die Nutzung durch benachbarte Komponenten und Produkttypen aus verschiedenen Einsatzumgebungen voneinander separieren.  [<=]

Diese Separierung kann beispielsweise umgesetzt werden durch die Erreichbarkeit der Schnittstellen über verschiedene Netzwerkadressen. 

3.3 Tokenbasierte Autorisierung

Die Komponente Autorisierung bietet eine Single-Sign-On (SSO)-Lösung an, um einem zuvor authentifizierten Nutzer den Zugriff auf weitere Ressourcen zu ermöglichen. Hierbei wird nach einer erfolgreichen Autorisierung eine Autorisierungsbestätigung (AuthorizationAssertion gemäß SAML 2.0 Assertions [SAML2.0]) ausgestellt.

Für die Initialisierung sowie für den Zugriff auf den Aktenkontext eines Versicherten erwartet die Komponente Dokumentenverwaltung eine gültige Assertion von der Komponente Autorisierung. Die Assertion wird ungültig, wenn der Aktenkontext eines Versicherten geschlossen wird oder der Gültigkeitszeitraum der Assertion abgelaufen ist.

4 Zerlegung der Komponente Autorisierung

Eine detaillierte Zerlegung der Komponente Autorisierung wird nicht vorgegeben. Gleichwohl muss die Komponente Autorisierung privates Schlüsselmaterial in einem HSM speichern, das den Anforderungen einer bestimmten Prüftiefe entspricht. Auf eine grafische Darstellung wird an dieser Stelle verzichtet.

5 Übergreifende Festlegungen

5.1 Datenschutz und Datensicherheit

Im folgenden Abschnitt werden die für die Komponente Autorisierung notwendigen Anforderungen für den Schutz personenbezogener Daten bzw. Anforderungen für den Schutz von Daten beschrieben, um beispielsweise vor Datenmanipulation oder Datenverlust zu schützen.

A_14417 - Komponente Autorisierung - Akzeptieren von Identitätsbestätigungen

Die Komponente Autorisierung MUSS Identitätsbestätigungen (AuthenticationAssertion) als ungültig mit dem Fehler ASSERTION_INVALID ablehnen, wenn die Identität des Ausstellers (Issuer) nicht als vertrauenswürdiger Dienst für die Durchführung einer Authentifizierung konfiguriert ist oder dessen X.509-Signatur-Zertifkat nicht zu der Signatur der Identitätsbestätigung passt.
[<=]

A_13990 - Komponente Autorisierung - Vorgaben für Identitätsbestätigung

Die Komponente Autorisierung MUSS eine übergebene Identitätsbestätigung (AuthenticationAssertion) als ungültig mit dem Fehler ASSERTION_INVALID ablehnen, wenn diese nicht konform zu den Vorgaben der Tabelle [gemSpec_TBAuth#TAB_TBAuth_03 Identitätsbestätigung] ist. [<=]

A_14688-01 - Komponente Autorisierung - Prüfung einer Identitätsbestätigung

Die Komponente Autorisierung MUSS eine übergebene Identitätsbestätigung (AuthenticationAssertion) als ungültig mit dem Fehler ASSERTION_INVALID ablehnen, die nach einer Prüfung gemäß [gemSpec_TBAuth#A_15557] (vgl. auch gemSpec_TBAuth#3.2 Prüfen von Identitätsbestätigungen) als nicht gültig betrachtet wird. Insbesondere MUSS die Komponente Autorisierung das Signaturzertifikat der Ausstelleridentität eines Vertrauensraums außerhalb des Vertrauensraums der Komponente Autorisierung mittels [gemSpec_PKI#TUC_PKI_018] mit den folgenden Parametern prüfen:

Parameter Belegung für SAML 2.0 Assertions des Fachmoduls ePA
Zertifikat
Signaturzertifikat (eingebettet in Identitätsbestätigung) C.HCI.OSIG
PolicyList
oid_smc_b_osig 
intendedKeyUsage
nonRepudiation
intendedExtendedKeyUsage
(leer)
OCSP-Graceperiod
60 Minuten
Offline-Modus
nein
Prüfmodus
OCSP

Das Signaturzertifikat muss anhand der Zertifikatsprüfung für [mathematisch gültig UND zeitlich gültig UND online gültig ] befunden werden. Die Telematik-ID im Signaturzertifikat muss identisch mit der Telematik-ID in der Identitätsbestätigung sein. [<=]

A_18989 - Komponente Autorisierung – Beschränkung gültiger Identitätsbestätigungen

Die Komponente Autorisierung DARF in Aufrufen aus Richtung der Komponente Zugangsgateway KEINE Identitätsbestätigung akzeptieren, die nicht durch die Komponente Authentisierung (Versicherter) erstellt wurde. [<=]

A_17839-04 - Komponente Autorisierung - Prüfung der Empfänger-Rolle

Die Komponente Autorisierung MUSS beim Aufruf einer der Operation

  • I_Authorization::getAuthorizationKey
den übergebenen Parameter AuthenticationAssertion  dahingehend prüfen, ob mindestens eine ProfessionOID der ZertifikatsExtension Admission gemäß [gemSpec_PKI#Tab_PKI_226] im Signaturzertifikat C.HCI.OSIG
/saml2:Assertion/ds:Signature/ds:KeyInfo/ds:X509Data/ds:X509Certificate 
in der Liste der zulässigen Autorisierungsempfänger-Rollen gemäß [gemSpec_OID#Tab_PKI_403]
  • oid_praxis_arzt
  • oid_zahnarztpraxis
  • oid_praxis_psychotherapeut
  • oid_krankenhaus
  • oid_oeffentliche_apotheke
  • oid_epa_ktr
  • oid_institution-pflege
  • oid_institution-geburtshilfe
  • oid_praxis-physiotherapeut
  • oid_institution-oegd
  • oid_institution-arbeitsmedizin
  • oid_institution-vorsorge-reha
  • oid_sanitaetsdienst-bundeswehr 
  • oid_diga
enthalten ist und sofern nicht, die Operation mit dem Fehler AUTHORIZATION_ERROR abbrechen. [<=]

Ist die AuthenticationAssertion vom Aktensystem selbst erstellt worden (/saml2:Assertion/ds:Signature/ds:KeyInfo/ds:X509Data/ds:X509Certificate enthält das Signaturzertifikat C.FD.SIG des Aktensystems), entfällt die Rollenprüfung, da die Rolle des Versicherten bereits durch Komponente Authentisierung Versicherter geprüft wurde.

A_17840 - Komponente Autorisierung Vers. - Prüfung Identitätswechsel des Versicherten

Die Komponente Autorisierung MUSS eine übergebene  AuthenticationAssertion für einen Versicherten (das SAML:Assertion/SAML:AttributeStatement/SAML:Attribute urn:gematik:subject:subject-id enthält eine KVNR) dahingehend prüfen, ob die in der Behauptung urn:gematik:subject:authreference mit der serialNumber des zur Authentifizierung verwendeten AUT- bzw. AUT_ALT-Zertifikats in der Liste der bekannten AUT-Referenzen an der KeyChain des im RecordIdentifier benannten Aktenkontos ist und falls nicht, MUSS die Komponente Autorisierung den Versicherten sowie im Vertretungsfall zusätzlich den Vertreter über die Nutzung eines neuen Authentisierungsmittels in einer E-Mail-Nachricht an die hinterlegte E-Mail-Adresse NotificationInfo des Versicherten bzw. des Vertreters informieren. Anschließend MUSS die benannte serialNumber in die Liste der erlaubten AUT-Referenzen an der KeyChain des im RecordIdentifier benannten Aktenkontos übernommen werden. [<=]

Nutzt der Versicherte ein im Aktensystem bisher unbekanntes Authentisierungsmittel (z.B. eine Folge-eGK) erhält er eine E-Mailbenachrichtigung, der Anwendungsfall wird nicht unterbrochen. Es obliegt dem Versicherten die Legitimität des Zugriffs bzw. des Authentisierungsmittels zu prüfen und sich gegebenenfalls mit dem ePA-Aktenanbieter und seinem Kostenträger in Verbindung zu setzen.

Nutzt der Vertreter des Versicherten ein bisher unbekanntes Authentisierungsmittel, erhalten sowohl der Versicherte als auch der Vertreter eine Benachrichtigung.

A_17655 - Komponente Autorisierung – Prüfung von Identitätsbestätigungen des Aktensystems

Die Komponente Autorisierung MUSS sicherstellen, dass Identitätsbestätigungen für Versicherte nur akzeptiert werden, wenn das zugehörige  Signaturzertifikat zeitlich gültig ist, nicht gesperrt wurde und nach dem Zertifikatsprofil C.FD.SIG auf die Identität der Komponente Authentisierung Versicherter ausgestellt wurde.
[<=]

Dies kann durch eine aktuell gehaltene Konfiguration vertrauenswürdiger Zertifikate umgesetzt werden und ersetzt eine detaillierte Prüfung des Signaturzertifikats gemäß [gemSpec_TBAuth#A_15557], um die Prüfung solcher vom ePA-Aktensystem selbst ausgestellten Identitätsbestätigungen zu vereinfachen.

Eine Prüfung von Identitätsbestätigungen gemäß den Festlegungen für TBAuth bezieht sich auf Identitätsbestätigungen für Leistungserbringerinstitutionen und Kostenträger.

A_14270 - Komponente Autorisierung - Zugriff aus der Umgebung des Versicherten

Die Komponente Autorisierung MUSS Zugriffe auf Daten eines Versicherten aus der Personal Zone heraus verhindern, wenn das verwendete Gerät des Versicherten nicht in der Liste der bekannten/freigeschalteten Geräte vorhanden ist. [<=]

Bei Zugriffen aus der Umgebung des Versicherten wird ein Identitätsmerkmal des verwendeten Geräts abgefragt (DeviceID). Bei Zugriffen aus der Umgebung der Leistungserbringer erfolgt dies nicht, da hier als zugreifende Geräte ausschließlich zugelassene Konnektoren mit geprüfter Fachlogik zum Einsatz kommen. Ebenso wird keine Geräteidentität für den Zugang der Kostenträger über ihr jeweiliges Rechenzentrum geprüft, da auch hier ausschließlich zugelassene Produkttypen in einer kontrollierten Betriebsumgebung zum Einsatz kommen.

A_14402 - Komponente Autorisierung - Integritätsschutz für Autorisierungsbestätigungen

Die Komponente Autorisierung MUSS jede ausgestellte Autorisierungsbestätigung mit dem privaten Schlüssel der Ausstelleridentität C.FD.SIG in seiner fachlichen Rolle oid_epa_authz gemäß [gemSpec_OID] signieren. [<=]

A_14740 - Komponente Autorisierung - TLS-Identität innerhalb der TI

Die Komponente Autorisierung MUSS sich beim TLS-Verbindungsaufbau an den Schnittstellen innerhalb der TI mit der technischen Rolle oid_epa_authz der TLS-Identität C.FD.TLS-S authentisieren. [<=]

Hinweis zu A_14740: Die Komponente Autorisierung soll für seine serverseitigen TLS-Endpunkte in der TI die Server TLS-Identität C.FD.TLS-S verwenden.

A_14529 - Komponente Autorisierung - Absicherung gegenüber dem Internet

Die Komponente Autorisierung MUSS alle Operationsaufrufe der Schnittstellen I_Authorization_Insurant und I_Authorization_Management_Insurant auf Wohlgeformtheit und Zulässigkeit gemäß Protokoll SOAP 1.2 prüfen und bei Schema-, Semantik- oder Protokollverletzungen eine aufgerufene Operation mit dem HTTP-Statuscode 400 gemäß [RFC-7231]  abbrechen. [<=]

Die Prüfung der eingehenden Nachrichten auf Syntax-, Semantik- und Protokollverletzungen soll insbesondere den Angriffstypen XML InjectionXPath Query Tampering und XML External Entity Injection entgegenwirken.

Im Fall der Sperrung der Signaturidentität der Komponente Autorisierung, darf diese nicht für die Ausstellung einer Autorisierungsbestätigung genutzt werden. Da diese Identität aus dem gleichen Vertrauensraum stammt wie die Signaturidentität der Identitätsbestätigung eines Authentisierungsdienstes im gleichen Aktensystem, dürfen in diesem Fall auch keine Identitätsbestätigungen des gleichen Vertrauensraums mehr akzeptiert werden.

A_16260 - Komponente Autorisierung - Periodische Prüfung Signaturidentität

Die Komponente Autorisierung MUSS den Sperrstatus der eigenen Signaturidentität C.FD.SIG mittels [gemSpec_PKI#TUC_PKI_018] periodisch (einmal täglich) prüfen:

Parameter Belegung
Zertifikat Signaturzertifikat C.FD.SIG der Komponente Autorisierung
PolicyList oid_fd_sig
intendedKeyUsage digitalSignature
intendedExtendedKeyUsage (leer)
OCSP-Graceperiod 60 Minuten
Offline-Modus nein
Prüfmodus OCSP

Das Signaturzertifikat muss anhand der Zertifikatsprüfung für [mathematisch gültig UND zeitlich gültig UND online gültig] befunden werden. [<=]

A_16261 - Komponente Autorisierung - Keine Autorisierung bei gesperrter Signaturidentität

Die Komponente Autorisierung MUSS das Ausstellen einer Autorisierungsbestätigung mit dem Fehler INTERNAL_ERROR abbrechen, wenn das Signaturzertifikat der Komponente Autorisierung gemäß einer Statusprüfung nach [A_16260] nicht gültig ist. [<=]

A_16262 - Komponente Autorisierung - Keine Identitätsbestätigung bei gesperrter Signaturidentität

Die Komponente Autorisierung MUSS alle Identitätsbestätigungen aller Issuer des gleichen Vertrauensraums der Signaturidentität C.FD.SIG der Komponente Autorisierung mit dem Fehler INTERNAL_ERROR als ungültig ablehnen, wenn das Signaturzertifikat der Komponente Autorisierung gemäß einer Statusprüfung nach [A_16260] nicht gültig ist.
[<=]

A_22570 - Komponente Autorisierung – Kein Zugriff auf gesperrte Akten

Die Komponente Autorisierung MUSS eine aufgerufene Operation mit dem Standardfehler ACCESS_DENIED abbrechen, wenn die Akte gemäß [gemSpec_Aktensystem#A_22569] gesperrt wurde. [<=]

5.2 Verwendete Standards

Für die Sicherstellung der Interoperabilität wird auf verwendete Standards zurückgegriffen.
Durch die Verwendung des IHE-Frameworks (Integrating the Healthcare Enterprise) zum einheitlichen Datenaustausch im Gesundheitssystem ist die Verwendung von SAML zum Austausch von Authentisierungsinformationen notwendig.

Für die Übertragung von Nachrichten zwischen dem Fachmodul und den Teilkomponenten von ePA wird das vom W3C standardisierte Protokoll SOAP 1.2 in Verbindung mit HTTP verwendet.

A_13801 - Komponente Autorisierung - Verwendung von SAML 2.0

Die Komponente Autorisierung MUSS Authentisierungsbestätigung im Format SAML 2.0 Assertions [SAML2.0] unterstützen.
[<=]

A_13802 - Komponente Autorisierung - Ausstellung im Format SAML 2.0

Die Komponente Autorisierung MUSS Autorisierungsbestätigungen im Format SAML 2.0 Assertions [SAML2.0] ausstellen. [<=]

A_14969 - Komponente Autorisierung - Kodierung in UTF-8

Die Komponente Autorisierung MUSS bei der Erstellung von XML-Fragmenten das Encoding UTF-8 verwenden.
[<=]

A_17760 - Komponente Autorisierung - AuthenticationAssertion im SOAP-Header

Die Komponente Autorisierung MUSS die Identitätsbestätigungen eines Nutzers (AuthenticationAssertion) im Header eines eingehenden SOAP-Requests akzeptieren.
[<=]

A_17761 - Komponente Autorisierung - Verwendung des SAML Token Profile 1.1 für Web Services Security bei SAML 2.0 Assertions

Die Komponente Autorisierung MUSS die Anforderungen aus [WSS-SAML] umsetzen, wenn eine SAML 2.0 Assertion Teil einer SOAP 1.2-Eingangsnachricht ist.
[<=]

A_17762 - Komponente Autorisierung - Verwendung von SOAP Message Security 1.1

Die Komponente Autorisierung MUSS die Sicherheitsanforderungen aus SOAP Message Security 1.1 [WSS] für die Verarbeitung von SOAP 1.2-Nachrichten umsetzen.
[<=]

A_17763 - Komponente Autorisierung - Unterstützung von Profilen der Web Services Interoperability Organization (WS-I)

Die Komponente Autorisierung MUSS das WS-I Basic Profile V2.0 [WSIBP], das WS-I Basic Security Profile Version V1.1 [WSIBSP] sowie das WS-I Attachment Profile V1.0 [WSIAP] für die Kommunikation über Web Services berücksichtigen.
[<=]

5.3 Protokollierung

Die Anforderungen an die Protokollierung für die Komponente Autorisierung leiten sich aus dem Konzept der Protokollierung aus [gemSysL_ePA#2.5.5] ab.

A_14403-02 - Komponente Autorisierung - Verwaltungsprotokollierung Autorisierung

Die Komponente Autorisierung MUSS beim Aufruf einer der folgenden Operationen:

  • I_Authorization_Insurant::getAuthorizationKey
  • I_Authorization::getAuthorizationKey
  • I_Authorization_Management::putAuthorizationKey
  • I_Authorization_Management
  • I_Authorization_Management_Insurant::putAuthorizationKey
  • I_Authorization_Management_Insurant::deleteAuthorizationKey
  • I_Authorization_Management_Insurant::replaceAuthorizationKey
  • I_Authorization_Management_Insurant::getAuditEvents
  • I_Authorization_Management_Insurant::getSignedAuditEvents
  • I_Authorization_Management_Insurant::putNotificationInfo
  • I_Authorization_Management_Insurant::getNotificationInfo
  • I_Authorization_Management_Insurant::getAuthorizationList 
  • I_Authorization_Management_Insurant::startKeyChange
  • I_Authorization_Management_Insurant::finishKeyChange
je einen Eintrag im Verwaltungsprotokoll für den Versicherten gemäß [gemSpec_DM_ePA#A_14471-*] mit folgenden vom Operationsaufruf abhängigen Parameterwerten vornehmen: UserID, UserName, ObjectID, ObjectName, DeviceID, ObjectDetail.
[<=]

A_20514 - Komponente Autorisierung - Verwaltungsprotokollierung Rollback Umschlüsselung

Die Komponente Autorisierung MUSS beim Rollback, der bei einer abgebrochenen Umschlüsselung erfolgt, einen Eintrag im Verwaltungsprotokoll für den Versicherten mit PHR-850 vornehmen. [<=]

A_15753-01 - Komponente Autorisierung - Verwaltungsprotokollierung E-Mail-Adresse ändern

Die Komponente Autorisierung MUSS das manuelle Ändern der Benachrichtigungsadresse (z.B. durch den Anbieter im Supportfall) im Verwaltungsprotokoll des Versicherten mit PHR-451 protokollieren. [<=]

A_14427-01 - Komponente Autorisierung - Verwaltungsprotokollierung Gerät hinzufügen

Die Komponente Autorisierung MUSS beim Hinzufügen eines Geräts in die Liste der registrierten Geräte einen Eintrag im Verwaltungsprotokoll für den Versicherten mit PHR-470 vornehmen. [<=]

A_14188-05 - Komponente Autorisierung - Umfang Verwaltungsprotokoll

Die Komponente Autorisierung MUSS dem Versicherten oder berechtigten Vertreter die Einträge des Verwaltungsprotokolls gemäß der Festlegung in [gemSpec_DM_ePA#A_14471-*] übergeben:

Tabelle 2: Parameter des Verwaltungsprotokolls

Protokoll-parameter
Parameterwerte gemäß aufgerufener Operation

UserID

Wert des AttributeStatements der übergebenen übergebenen AuthenticationAssertion in
SAML:Assertion/SAML:AttributeStatement

Variante a: Akteur des Aufrufs ist Versicherter bzw. Vertreter 
(unveränderbare Anteil der KVNR des aufrufenden Versicherten bzw. Vertreters)
XPath-Ausdruck zur "Subject-ID" der im Operationsaufruf übergebenen Authentication Assertion:
//*[local-name()='Assertion' and namespace-uri() = 'urn:oasis:names:tc:SAML:2.0:assertion']//*[local-name()='Attribute' and namespace-uri() = 'urn:oasis:names:tc:SAML:2.0:assertion'][@Name= 'urn:gematik:subject:subject-id']/*[local-name()='AttributeValue']/*[local-name()='InstanceIdentifier']/data(@extension)

Hinweis: Bei Aufrufen der Fälle PHR-451 sowie PHR-470 (via Webseite) kann der Wert für die UserID nicht aus der AuthenticationAssertion bezogen werden, sondern es MUSS die actorID aus dem AuthorizationKey des Betroffenen (Versicherter oder Vertreter) entnommen werden.

Variante b: Akteur des Aufrufs ist LEI, DiGA oder Kostenträger
(Telematik-ID der aufrufenden LEI, DiGA oder Kostenträgers)
XPath-Ausdruck zur "Organization-ID" der im Operationsaufruf übergebenen Authentication Assertion:
//*[local-name()='Assertion' and namespace-uri() = 'urn:oasis:names:tc:SAML:2.0:assertion']//*[local-name()='Attribute' and namespace-uri() = 'urn:oasis:names:tc:SAML:2.0:assertion'][@Name= 'urn:gematik : subject:organization-id']/*[local-name()='AttributeValue']/*[local-name()='InstanceIdentifier']/data(@extension)

UserName
XPath-Ausdruck zur Behauptung "name" (beinhaltet commonName aus dem X.509-Zertifikat), der im Operationsaufruf übergebenen Authentication Assertion:
//*[local-name()='Assertion' and namespace-uri() = 'urn:oasis:names:tc:SAML:2.0:assertion']//*[local-name()='Attribute' and namespace-uri() = 'urn:oasis:names:tc:SAML:2.0:assertion'][@Name='http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name']/*[local-name()='AttributeValue']

Hinweis: Bei Aufrufen der Fälle PHR-451 sowie PHR-470 (via Webseite) kann der Wert für den UserName nicht aus der AuthenticationAssertion bezogen werden sondern es MUSS der DisplayName aus dem AuthorizationKey des Betroffenen (Versicherter oder Vertreter) entnommen werden.

ObjectID

ActorID des im Operationsaufruf gelesenen, gespeicherten oder geänderten AuthorizationKey
Hinweis: Bei Aufruf von Operationen ohne Bezug zu einem AuthorizationKey wird der Wert im Protokolleintrag nicht belegt (z.B. getAuditEvents).
ObjectName

DisplayName des AuthorizationKeys
Hinweis: Bei Aufruf von Operationen ohne DisplayName wird der Wert im Protokolleintrag nicht belegt.
DeviceID

DeviceID-Parameter DeviceIdType::Displayname  des Operationsaufrufs
Hinweis: Bei Aufruf der Operationen der Schnittstelle I_Authorization_Management gibt es den Parameter nicht, DeviceID wird  im Protokolleintrag demzufolge nicht belegt.
ObjectDetail Falls die Operation mit einem Fehler ASSERTION_INVALID aufgrund einer ungültigen übergebenen Authentication Assertion abbricht, MUSS ParticipantObjectDetail mit folgenden Wertepaaren (type/value) belegt werden:
type value
ErrorInformation "fehlgeschlagene Authentifizierung des Zugreifenden"

[<=]

A_14189 - Komponente Autorisierung - Protokollierung Schutz vor Manipulation

Die Komponente Autorisierung MUSS sicherstellen, dass die Verwaltungsprotokolldaten gegen Veränderung und unberechtigtes Löschen geschützt sind.
[<=]

5.4 Fehlerbehandlung in Schnittstellenoperationen

Bei Fehlern in der internen Verarbeitung oder fachlichen Fehlern in der Nutzung der von der Komponente Autorisierung bereitgestellten Schnittstellen werden Operationsaufrufe mit gematik-Fehlermeldungen gemäß der Definition in [gemSpec_OM] beantwortet. Die Fehlermeldungen werden als SOAP-Fault gemäß [TelematikError.xsd] strukturiert. Abweichend von den Festlegungen in [gemSpec_OM] sind zu meldende Fehler wie folgt mit Informationen zu füllen.

A_15068 - Komponente Autorisierung - Fehlername

Die Komponente Autorisierung MUSS in einer GERROR-Fehlermeldung gemäß [TelematikError.xsd] den in der Operationsdefinition festgelegten Fehlernamen Name im Feld tel:Error/tel:Trace/tel:EventID verwenden. [<=]

Die folgende Abbildung illustriert das Schema der GERROR-Struktur in TelematikError.xsd:

Abbildung 3: GERROR-Struktur zur Rückgabe einer Fehlermeldung

A_15069 - Komponente Autorisierung - Fehlertext

Die Komponente Autorisierung MUSS in einer GERROR-Fehlermeldung gemäß [TelematikError.xsd] den in der Operationsdefinition festgelegten Fehlerdetailtext Fehlertext im Feld tel:Error/tel:Trace/tel:ErrorText verwenden. [<=]

A_15101-06 - Komponente Autorisierung - Fehlernummer

Die Komponente Autorisierung MUSS in einer GERROR-Fehlermeldung gemäß [TelematikError.xsd] die folgenden Fehlercodes im Feld tel:Error/tel:Trace/tel:Code verwenden:

Tabelle 3: Fehlercodes zu Fehlern gemäß Operationsdefinition

Name
Fehlercode
TECHNICAL_ERROR
7900
KEY_ERROR
7910
SYNTAX_ERROR
7930
ASSERTION_INVALID
7940
DEVICE_UNKNOWN
7950
ACCESS_DENIED
7960
AUTHORIZATION_ERROR
7970
REPRESENTATIVE_ PENDING
7980
INTERNAL_ERROR 7990
KEY_LOCKED 8000
KEY_CORRUPT 8010
ACTOR_UNKNOWN 8020
DEVICE_LOCKED 8030

[<=]

Die Operationsdefinitionen der Schnittstellen der Komponente Autorisierung beschränken die Liste möglicher Fehler auf fachliche Fehler. Daneben sind weitere, technische Gründe für Fehler anderer Art denkbar. Für diese kann der Hersteller der Komponente einen generischen Fehler für den Transport geeigneter Fehlerinformationen (z.B. für Supportzwecke) verwenden.

A_15102 - Komponente Autorisierung - Herstellerspezifische Fehlermeldungen

Die Komponente Autorisierung MUSS komponenteninterne und   herstellerspezifische Fehlermeldungen in einer GERROR-Fehlermeldung gemäß [TelematikError.xsd] mit folgender Festlegung transportieren:

Tabelle 4: Herstellerspezifische Fehlerdefinition

GERROR-Element
Herstellerspezifisch zu belegen
tel:Error/tel:Trace/tel:Code
Fester Wert: "7900"
tel:Error/tel:Trace/tel:EventID
Fester Wert: "TECHNICAL_ERROR"
tel:Error/tel:Trace/tel:ErrorText
Je Fehlerfall zufällig gewählte Fehlernummer

[<=]

A_15249 - Komponente Autorisierung - Herstellerspezifische Fehlermeldungen Detailtext

Die Komponente Autorisierung MUSS Details zu herstellerspezifischen Fehlermeldungen ausschließlich in einem internen Fehlerprotokoll und zusammen mit der zum Zeitpunkt des Fehlers gewählten zufälligen Fehlernummer speichern. [<=]

Die herstellerspezifische und je Fehlerfall zufällig gewählte Fehlernummer dient der Kapselung von Implementierungs- und Fehlerbehebungsdetails und zum Auffinden der Fehlermeldungsdetails in einem internen Fehlerprotokoll im Supportfall.

A_23127 - http-Statuscode bei SOAP-Fehler ACCESS_DENIED

Falls in der Antwortnachricht an einen Client der SOAP-Fehler ACCESS_DENIED enthalten ist, MUSS die Komponente Autorisierung den http-Statuscode 400 senden.
[<=]

5.5 Nicht-Funktionale Anforderungen

5.5.1 Skalierbarkeit

Die für die Komponente Autorisierung relevanten Informationen zur Skalierbarkeit sind in [gemSpec_Perf] zu entnehmen.

5.5.2 Performance

Die durch die Komponente Autorisierung zu erfüllende Performance-Anforderung befinden sich in [gemSpec_Perf].

5.5.3 Mengengerüst

Das für die Komponente Autorisierung relevante Mengengerüst befindet sich in [gemSpec_Perf].

6 Funktionsmerkmale

Die Komponente Autorisierung realisiert die Funktionsmerkmale der kryptografischen Autorisierung und eine Geräteverwaltung. Das Funktionsmerkmal der Autorisierung wird über die Implementierung der Schnittstellen I_AuthorizationI_Authorization_ManagementI_Authorization_Insurant und I_Authorization_Management_Insurant realisiert.

Die Nutzung des Funktionsmerkmals der Geräteverwaltung durch den Versicherten erfolgt über einen separaten Verwaltungszugang abseits der I_Authorization*-Schnittstellen. Dieser Zugang ist für den Versicherten über das Internet erreichbar.

6.1 Übergreifende Festlegungen

Im Folgenden werden übergreifende Festlegungen formuliert, die in allen Operationen umgesetzt werden.

Wenn im Folgenden die KVNR als ActorID, OwnerKVNR oder subject-id referenziert wird ist immer der unveränderliche Anteil als 10-stellige Kennung gemeint.

A_14469 - Komponente Autorisierung - Identifizierung des Versicherten anhand einer AuthenticationAssertion

Die Komponente Autorisierung MUSS jeden Versicherten anhand des unveränderlichen Teils der KVNR als   urn:gematik:subject:subject-id in SAML:Assertion/SAML:AttributeStatement/SAML:Attribute/@Name einer übergebenen, gültigen AuthenticationAssertion eindeutig identifizieren, wenn die subject-id mit der OwnerKVNR zu einem im Operationsaufruf angegebenen RecordIdentifier übereinstimmt.

[<=]

A_14499 - Komponente Autorisierung - Identifizierung einer Institution anhand einer AuthenticationAssertion

Die Komponente Autorisierung MUSS jede Leistungserbringerinstitution und jeden Kostenträger anhand der Telematik-ID als   urn:gematik:subject:organization-id in SAML:Assertion/SAML:AttributeStatement/SAML:Attribute/@Name einer übergebenen, gültigen AuthenticationAssertion eindeutig identifizieren, wenn für diese ein AuthorizationKey zu einem im Operationsaufruf angegebenen RecordIdentifier existiert.

[<=]

A_14500 - Komponente Autorisierung - Identifizierung eines Vertreters anhand einer AuthenticationAssertion

Die Komponente Autorisierung MUSS einen berechtigten Vertreter anhand seiner KVNR als     urn:gematik:subject:subject-id in SAML:Assertion/SAML:AttributeStatement/SAML:Attribute/@Name einer übergebenen, gültigen AuthenticationAssertion eindeutig identifizieren, wenn die subject-id ungleich der OwnerKVNR zu einem im Operationsaufruf angegebenen RecordIdentifier ist und für die KVNR der AuthenticationAssertion ein AuthorizationKey zu der im Operationsaufruf angegebenen RecordIdentifier existiert.

[<=]

A_14434 - Komponente Autorisierung - Prüfung der Schnittstellenparameter

Die Komponente Autorisierung MUSS in jeder Operation alle übergebenen Eingangsparameter auf Konformität zum Schema AuthorizationService.xsd prüfen und bei Nichtkonformität die jeweilige Operation mit dem Fehler TECHNICAL_ERROR gemäß den Festlegungen zur   abbrechen.
[<=]

A_14369-02 - Komponente Autorisierung - Prüfung des Geräts des Versicherten

Die Komponente Autorisierung MUSS in allen Operationen der Schnittstellen I_Authorization_Insurant und I_Authorization_Management_Insurant anhand des Wertes DeviceID::Device prüfen, ob das vom Nutzer verwendete Gerät in der Geräteliste des AuthorizationKeys des Nutzers bekannt/freigeschaltet ist und andernfalls die Operation mit dem Fehler DEVICE_UNKNOWN abbrechen, in dessen SOAP-Error in tel:Error/tel:Trace/tel:ErrorText eine gemäß  generierte phr:DeviceID::Device einfügen und den Freischaltprozess neuer Geräte auslösen. Wenn das Gerät bekannt und gesperrt ist, MUSS die Operation mit dem Fehler DEVICE_LOCKED abgebrochen werden. Eine neue Geräte-ID DARF in diesem Fall NICHT generiert und an das FdV übergeben werden. [<=]

Greift ein Nutzer mit einem Gerät erstmalig auf die in A_14369-* genannten Schnittstellen zu, sind die Elemente phr:DeviceID@ und phr:DeviceID::Device in den aufgerufenen Operationen ggfs. leer bzw. enthalten eine Zeichenkette der Länge 0 ("").

A_14634 - Komponente Autorisierung - Prüfung auf vorhandenen AuthorizationKey

Die Komponente Autorisierung MUSS eine aufgerufene Operationen mit dem Standardfehler KEY_ERROR abbrechen, wenn es zu fachlichen Fehlern in Lese- oder Schreiboperationen eines AuthorizationKey kommt oder dieser für einen in der ActorID benannten Nutzer in der KeyChain eines benannten RecordIdentifier nicht vorhanden ist. [<=]

A_14768 - Komponente Autorisierung - Prüfung auf Berechtigung

Die Komponente Autorisierung MUSS eine aufgerufene Operation mit dem Standardfehler ACCESS_DENIED abbrechen, wenn ein über die subject-id bzw. organization-id einer AuthenticationAssertion identifizierter Nutzer eine Operation auf einem im RecordIdentifier benannten Datensatz aufruft, für den kein AuthorizationKey hinterlegt und er nicht der Eigentümer ist, d.h.  OwnerKVNR != subject-id bzw. organization-id und es existiert kein AuthorizationKey mit ActorID == subject-id bzw. organization-id. [<=]

Der Fehler ACCESS_DENIED wird ebenso erwartet, wenn im jeweiligen Aufrufparameter ein RecordIdentifier mit einer falschen HomeCommunityID übergeben wird.  Eine leere HomeCommunityID führt hingegen nicht zu einem Fehler.

A_16487 - Komponente Autorisierung - Prüfung auf Tokenherkunft

Die Komponente Autorisierung MUSS jeden Aufruf an den Schnittstellen I_Authorization_Insurant und I_Authorization_Management_Insurant mit dem Fehler ACCESS_DENIED ablehnen, der mittels einer AuthenticationAssertion erfolgt, die nicht aus dem Vertrauensraum der Komponente Autorisierung erfolgt. [<=]

A_17102 - Komponente Autorisierung - Maximale Berechtigungsstufe für Konto-Eigentümer

Die Komponente Autorisierung MUSS sicherstellen, dass der AuthorizationType am hinterlegten AuthorizationKey des Versicherten immer "DOCUMENT_AUTHORIZATION" lautet.
[<=]

6.2 Schnittstellen der Komponente Autorisierung

Das Funktionsmerkmal 'Autorisierung' der Komponente Autorisierung wird durch die in der folgenden Tabelle beschriebenen Schnittstellen mit den jeweiligen Operationen umgesetzt.

Tabelle 5: Schnittstellen der Komponente Autorisierung

Schnittstellen der Komponente Autorisierung
I_Authorization
getAuthorizationKey
Mit der Operation getAuthorizationKey wird das für einen Berechtigten verschlüsselte Schlüsselmaterial für ein konkretes Aktenkonto eines Versicherten in der Leistungserbringer-Umgebung und durch den Kostenträger heruntergeladen.
I_Authorization_Management
putAuthorizationKey
Mit der Operation putAuthorizationKey wird das für einen Berechtigten verschlüsselte Schlüsselmaterial für ein konkretes Aktenkonto  eines Versicherten im Aktensystem ePA gespeichert.
checkRecordExists
Mit der Operation checkRecordExists kann ein anderer Anbieter bei einem Anbieter einer Aktenlösung den Status und die Existenz eines Aktenkontos über die KVNR eines Versicherten abfragen.
getAuthorizationList
Die Operation getAuthorizationList liefert die Liste aller OwnerKVNRs des Aktensystems, in denen für die anfragende Institution ein AuthorizationKey hinterlegt ist. 
(horizontale Abfrage) 
getAuthorizationState Die Operation getAuthorizationState liefert für das Aktenkonto der im Aufruf übergebenen KVNR, ob Berechtigungen für die anfragende Identität vorliegen und gibt bei existierender Berechtigung das Tupel Fachanwendung und das Endedatum der Berechtigung zurück.
I_Authorization_Insurant
getAuthorizationKey
Mit der Operation getAuthorizationKey wird das für einen Berechtigten verschlüsselte Schlüsselmaterial (kryptografische Berechtigung) für ein konkretes Aktenkonto eines Versicherten in der Personal-Zone heruntergeladen.
I_Authorization_Management_Insurant
putAuthorizationKey
Mit der Operation putAuthorizationKey wird das für einen Berechtigten verschlüsselte Schlüsselmaterial AuthorizationKey für ein konkretes Aktenkonto eines Versicherten im ePA-Aktensystem gespeichert.
deleteAuthorizationKey
Mit der Operation deleteAuthorizationKey kann ein authentifizierter Versicherter bzw. ein berechtigter Vertreter die kryptografische Berechtigung für einen Nutzer innerhalb seines Aktenkontos löschen.
replaceAuthorizationKey
Mit der Operation replaceAuthorizationKey kann ein authentifizierter Versicherter bzw. ein berechtigter Vertreter das im Aktenkonto für einen benannten Nutzer hinterlegte kryptografische Schlüsselmaterial  ersetzen. Die Operation kann insbesondere dazu benutzt werden, den Berechtigungszeitraum für einen AuthorizationKey anzupassen. 
getAuditEvents
Mit der Operation getAuditEvents kann ein authentifizierter Versicherter bzw. ein berechtigter Vertreter das Verwaltungsprotokoll der Komponente Autorisierung auslesen.
getSignedAuditEvents Die Operation getSignedAuditEvents liefert für einen authentifizierten Versicherten bzw. einen berechtigten Vertreter eine signierte Liste (SignedAuditEventList) der Verwaltungsprotokolle des Versicherten der Komponente Autorisierung.
putNotificationInfo
Mit der Operation putNotificationInfo kann ein authentifizierter Versicherter bzw. ein berechtigter Vertreter die eigene, im Benachrichtigungskanal hinterlegten Daten aktualisieren.
getNotificationInfo Mit der Operation getNotificationInfo kann ein authentifizierter Versicherter Email-Adressen abfragen, die für zugriffsberechtige Versicherten bzw. ihre Vertreter im Benachrichtigungskanal seines Aktenkontos hinterlegt sind.
getKtrTelematikID Die Operation liefert die TelematikID des Kostenträgers, der das Kontos im Aktensystems anbietet.
getRecordProviderList Die Operation liefert eine Liste der Internet-FQDN aller ePA-Aktensysteme.
getAuthorizationList
Die Operation getAuthorizationList liefert die Liste aller AuthorizationKeys zu einer angefragten Akte eines Versicherten. 
(vertikale Abfrage)
startKeyChange Mit dieser Operation kann der Versicherte den Prozess der Umschlüsselung an der Komponente Autorisierung initiieren und die Autorisierungskomponente bis zur Beendigung der Verarbeitung für andere Aktivitäten sperren.
putForReplacement Mit dieser Operation übergibt der Versicherte die für die Umschlüsselung an der Komponente Autorisierung erforderlichen verschlüsselten AuthorizationKeys, damit diese die bisher verwendeten AuthorizationKeys ersetzen können.
finishKeyChange Mit dieser Operation beendet der Versicherte die Umschlüsselung an der Komponente Autorisierung und hebt die Sperre der Autorisierungskomponente für anderweitige Autorisierungsaktivitäten auf.

6.2.1 Schnittstelle I_Authorization

Diese Schnittstelle setzt die in [gemSysL_ePA#4.2.2.2] definierte Schnittstelle I_Authorization technisch um.

Die Schnittstelle stellt dem Fachmodul eine Operation zum Bezug eines Autorisierungs-Tokens für bereits authentifizierte Leistungserbringer und Kostenträger bereit, um die ePA-Komponente Dokumentenverwaltung verwenden zu können.

6.2.1.1 Operationsdefinition I_Authorization::getAuthorizationKey

A_14045-01 - Komponente Autorisierung - I_Authorization::getAuthorizationKey

Die Komponente Autorisierung MUSS die Operation I_Authorization::getAuthorizationKey gemäß der folgenden Signatur implementieren:

Tabelle 6: I_Authorization::getAuthorizationKey Definition

Operation
I_Authorization::getAuthorizationKey 
Beschreibung
Mit dieser Operation wird für einen authentifizierten Nutzer eine Autorisierung des Zugriffs auf Daten eines Versicherten geprüft.
Formatvorgaben
Die Definition der Ein- und Ausgabeparameter erfolgt in [AuthorizationService.xsd].
Diejenigen Parameter, die im XSD-Schema optional gekennzeichnet, aber hier nicht aufgeführt sind, werden in der Operation an dieser Schnittstelle nicht verwendet.
Eingangsparameter
Name
 Beschreibung
Typ
opt.
AuthenticationAssertion
Die AuthenticationAssertion ist eine von einem Identitiy Provider ausgestellte Authentifizierungsbestätigung für einen Nutzer.
SAML Assertion im SOAP-Header des Requests
-
RecordIdentifier
Der RecordIdentifier referenziert ein konkretes Aktenkonto eines Versicherten bei einem Anbieter. Mit diesem wird der Datensatz der kryptografischen Autorisierung in der Komponente Autorisierung für den anfragenden Nutzer lokalisiert.
RecordIdentifierType
-
Ausgangsparameter
Name
Beschreibung
Typ
opt.
AuthorizationAssertion
Die AuthorizationAssertion ist eine signierte Autorisierungsbestätigung für einen Nutzer und enthält Informationen über die Art und den Umfang der in der Komponente Autorisierung hinterlegten Autorisierung.
SAML Assertion
base64-codiert
-
AuthorizationKey
Die kryptografische Autorisierung eines Nutzers. 
AuthorizationKeyType
ja
Fehlermeldungen 
Name
Fehlertext
Details
TECHNICAL_ERROR
Zufallszahl
ASSERTION_INVALID
Authentifizierungsbestätigung ungültig
Die Authentifizierungsbestätigung des aufrufenden Nutzers wird nicht akzeptiert.
ACCESS_DENIED
Zugriff verweigert
Die Operation ist mit den angegebenen Parametern nicht zulässig.
KEY_ERROR
Fehler im Schlüsseldatensatz
Kein Datensatz für diesen Nutzer für den benannten RecordIdentifier vorhanden.
REPRESENTATIVE_PENDING
Vertretungsberechtigung erfordert Freischaltung
Die Vertretung kann erst wahrgenommen werden, wenn diese über den Freischaltprozess autorisiert wurde.
AUTHORIZATION_ERROR
Autorisierung nicht zulässig
Die zu hinterlegte Berechtigtenrolle ist nicht zulässig.

Sollte bei der Autorisierung für einen Versicherten kein zugehöriger Datensatz gefunden werden, darf dies nicht mit einer technischen Fehlermeldung behandelt werden. Hierfür MUSS eine sprechende Information (fachliches Ereignis) geliefert werden.
[<=]

6.2.1.2 Umsetzung I_Authorization::getAuthorizationKey

Die folgenden Anforderungen beschreiben die Umsetzung der Operation I_Authorization::getAuthorizationKey. Dabei gelten die übergreifenden Festlegungen zur Prüfung der Eingangsparameter.

A_17790 - Komponente Autorisierung LE - Vertretung wahrnehmen Freischaltprüfung

Die Komponente Autorisierung MUSS bei Wahrnehmung einer Vertretung für einen Versicherten mittels I_Authorization::getAuthorizationKey (subject-id der AuthenticationAssertion != OwnerKVNR) vor der Herausgabe prüfen, ob ein wartender Vertreter-Freischaltprozess für [OwnerKVNR des benannten RecordIdentifiers, subject-id als ActorID] aktiv ist und falls ja, die Operation mit dem Fehler REPRESENTATIVE_PENDING abbrechen. [<=]

A_13917 - Komponente Autorisierung LE - Ausstellen einer Autorisierungsbestätigung

Die Komponente Autorisierung MUSS in der Operation I_Authorization::getAuthorizationKey bei Vorhandensein eines AuthorizationKey in der KeyChain des benannten RecordIdentifier für den mittels AuthenticationAssertion authentifizierten Nutzer (subject-ID bzw. organization-id == ActorID) eine AuthorizationAssertion gemäß der Festlegung in [A_14491-*] ausstellen und diese in der Ausgangsnachricht der Operation zurückgeben.
Der Wert für [AuthorizationType] in der AuthorizationAssertion MUSS dem Wert des hinterlegten AuthorizationKey genau dieses authentifizierten Nutzers entsprechen. [<=]

A_17662 - Komponente Autorisierung LE - Codierung der Autorisierungsbestätigung

Die Komponente Autorisierung MUSS die erstellte und signierte Autorisierungsbestätigung in der Response der Operation I_Authorization::getAuthorizationKey Base64-codiert zurückgeben.
[<=]

A_13692 - Komponente Autorisierung LE - Herausgabe kryptografischer Berechtigung des Nutzers

Die Komponente Autorisierung MUSS in der Operation I_Authorization::getAuthorizationKey bei Vorhandensein eines AuthorizationKey in der KeyChain des benannten RecordIdentifier für den mittels AuthenticationAssertion authentifizierten Nutzer (subject-ID bzw. organization-id == ActorID) den AuthorizationKey in der Ausgangsnachricht der Operation zurückgeben. [<=]

A_14643 - Komponente Autorisierung LE - Aktivierung bei Kontoeröffnung in der Umgebung der Leistungserbringer

Die Komponente Autorisierung MUSS dem authentifizierten Versicherten als Eigentümer der Akte (subject-ID == OwnerKVNR für den benannten RecordIdentifier) eine Autorisierungsbestätigung mit AuthorizationType = ACCOUNT_AUTHORIZATION gemäß [A_14491-*] ausstellen, wenn für seine OwnerKVNR kein Schlüsseldatensatz AuthorizationKey in der KeyChain vorhanden ist.
[<=]

A_15618-01 - Komponente Autorisierung LE - keine Autorisierung bei suspendiertem Konto

Die Komponente Autorisierung MUSS bei Aufruf der Operation I_Authorization::getAuthorizationKey mit der Fehlermeldung ACCESS_DENIED abbrechen, wenn der RecordState der KeyChain des benannten RecordIdentifier den Zustand SUSPENDED oder START_MIGRATION aufweist.
[<=]

A_21741 - Komponente Autorisierung LE - keine Autorisierung vor Beendigung der Datenübernahme

Die Komponente Autorisierung MUSS bei Aufruf der Operation I_Authorization::getAuthorizationKey mit der Fehlermeldung ACCESS_DENIED abbrechen, wenn der RecordState der KeyChain des benannten RecordIdentifier den Zustand REGISTERED_FOR_MIGRATION, DL_IN_PROGRESS oder READY_FOR_IMPORT aufweist. [<=]

6.2.2 Schnittstelle I_Authorization_Insurant

Diese Schnittstelle setzt die in [gemSysL_ePA] definierte Schnittstelle I_Authorization_Insurant technisch um.

Die Schnittstelle I_Authorization_Insurant stellt Operationen zur Autorisierungsprüfung auf das Vorhandensein von kryptografischem Schlüsselmaterial für einen Nutzer des Aktenkontos eines Versicherten bereit. Sie stellt dem Frontend des Versicherten eine Schnittstelle zum Abruf eines Autorisierungs-Tokens für bereits authentifizierte Versicherte bereit.

6.2.2.1 Operationsdefinition I_Authorization_Insurant::getAuthorizationKey

A_14042-01 - Komponente Autorisierung - I_Authorization_Insurant::getAuthorizationKey

Die Komponente Autorisierung MUSS die Operation I_Authorization_Insurant::getAuthorizationKey gemäß der folgenden Signatur implementieren:

Tabelle 7: I_Authorization_Insurant::getAuthorizationKey Definition

Operation
I_Authorization_Insurant::getAuthorizationKey 
Beschreibung
Mit dieser Operation wird für einen authentifizierten Nutzer eine Autorisierung des Zugriffs auf Daten eines Versicherten geprüft.
Formatvorgaben
Die Definition der Ein- und Ausgabeparameter erfolgt in [AuthorizationService.xsd].
Diejenigen Parameter, die im XSD-Schema optional gekennzeichnet, aber hier nicht aufgeführt sind, werden in der Operation an dieser Schnittstelle nicht verwendet.
Eingangsparameter
Name
Beschreibung
Typ
opt.
AuthenticationAssertion
Die AuthenticationAssertion ist eine von einem Identitiy Provider ausgestellte Authentifizierungsbestätigung für einen Nutzer.
SAML Assertion im SOAP-Header des Requests

-

RecordIdentifier
Der RecordIdentifier referenziert ein konkretes Aktenkonto eines Versicherten bei einem Anbieter. Mit diesem wird der Datensatz der Autorisierung in der Komponente Autorisierung für den anfragenden Nutzer lokalisiert.
RecordIdentifierType
-
DeviceID
Die DeviceID enthält die Gerätekennung eines vom Nutzer verwendeten Geräts.
DeviceIdType
-
Ausgangsparameter
 Name
Beschreibung
Typ
opt.
AuthorizationAssertion
Die AuthorizationAssertion ist eine signierte Autorisierungsbestätigung für einen Nutzer und enthält Informationen über die Art und den Umfang der in der Komponente Autorisierung hinterlegten Autorisierung.
SAML Assertion mit
AuthorizationDecision Statement
base 64-codiert

-
AuthorizationKey
Die kryptografische Autorisierung eines Nutzers.
AuthorizationKeyType
ja
Fehlermeldungen 
Name
Fehlertext
Details
TECHNICAL_ERROR
Zufallszahl  
ASSERTION_INVALID
Authentifizierungsbestätigung ungültig
Die Authentifizierungsbestätigung des aufrufenden Nutzers wird nicht akzeptiert.
ACCESS_DENIED
Zugriff verweigert
Die Operation ist mit den angegebenen Parametern nicht zulässig.
KEY_ERROR
Fehler im Schlüsseldatensatz
Kein Datensatz für diesen Nutzer für den benannten RecordIdentifier vorhanden.
DEVICE_UNKOWN
generierte phr:DeviceID::Device
Das vom Nutzer verwendete Gerät des Versicherten ist nicht bekannt und muss freigeschaltet werden.
REPRESENTATIVE_PENDING
Vertretungsberechtigung erfordert Freischaltung
Die Vertretung kann erst wahrgenommen werden, wenn diese über den Freischaltprozess autorisiert wurde.

Sollte bei der Autorisierung für einen Versicherten kein zugehöriger Datensatz gefunden werden, darf dies nicht mit einer technischen Fehlermeldung behandelt werden. Hierfür MUSS eine sprechende Information (fachliches Ereignis) geliefert werden.

[<=]

6.2.2.2 Umsetzung I_Authorization_Insurant::getAuthorizationKey

Die folgenden Anforderungen beschreiben die Umsetzung der Operation I_Authorization_Insurant::getAuthorizationKey. Dabei gelten die übergreifenden Festlegungen zur Prüfung der Eingangsparameter.

A_22232 - Komponente Autorisierung Vers. - Fehler REPRESENTATIVE_PENDING

Die Komponente Autorisierung MUSS, solange der Vertreter noch nicht freigeschaltet ist, die Operation mit dem Fehler REPRESENTATIVE_PENDING abbrechen. (Siehe auch A_17674, A_17789) [<=]

A_17789 - Komponente Autorisierung Vers. - Vertretung wahrnehmen Freischaltprüfung

Die Komponente Autorisierung MUSS bei Wahrnehmung einer Vertretung für einen Versicherten mittels I_Authorization_Insurant::getAuthorizationKey (subject-id der AuthenticationAssertion != OwnerKVNR) vor der Herausgabe prüfen, ob ein wartender Vertreter-Freischaltprozess für [OwnerKVNR des benannten RecordIdentifiers, subject-id als ActorID] aktiv ist und falls ja, die Operation mit dem Fehler REPRESENTATIVE_PENDING abbrechen.

[<=]

A_14436 - Komponente Autorisierung Vers. - Ausstellen einer Autorisierungsbestätigung

Die Komponente Autorisierung MUSS in der Operation I_Authorization_Insurant::getAuthorizationKey bei Vorhandensein eines AuthorizationKey in der KeyChain des benannten RecordIdentifier für den mittels AuthenticationAssertion authentifizierten Nutzer [subject-id der AuthenticationAssertion == ActorID des vorhandenen AuthorizationKey] eine AuthorizationAssertion gemäß der Festlegung in [A_14491-*] ausstellen und diese in der Ausgangsnachricht der Operation zurückgeben.
Der Wert für [AuthorizationType] in der AuthorizationAssertion MUSS dem Wert des hinterlegten AuthorizationKey genau dieses authentifizierten Nutzers entsprechen. [<=]

A_17663 - Komponente Autorisierung Vers. - Codierung der Autorisierungsbestätigung

Die Komponente Autorisierung MUSS die erstellte und signierte Autorisierungsbestätigung in der Response der Operation I_Authorization_Insurant::getAuthorizationKey Base64-codiert zurückgeben.
[<=]

A_14439 - Komponente Autorisierung Vers. - Herausgabe kryptografischer Berechtigung des Nutzers

Die Komponente Autorisierung MUSS in der Operation I_Authorization_Insurant::getAuthorizationKey bei Vorhandensein eines AuthorizationKey in der KeyChain des benannten RecordIdentifier für den mittels AuthenticationAssertion authentifizierten Versicherten oder Vertreter (subject-id == ActorID) den AuthorizationKey  des authentifizierten Nutzers in der Ausgangsnachricht der Operation zurückgeben.
[<=]

A_14644 - Komponente Autorisierung Vers. - Aktivierung bei Kontoeröffnung in der Umgebung des Versicherten

Die Komponente Autorisierung MUSS bei Aufruf der Operation I_Authorization_Insurant::getAuthorizationKey dem authentifizierten Versicherten als Eigentümer der Akte (subject-ID == OwnerKVNR für den benannten RecordIdentifier) eine Autorisierungsbestätigung mit AuthorizationType = ACCOUNT_AUTHORIZATION gemäß [A_14491-*] ausstellen, wenn für seine OwnerKVNR kein Schlüsseldatensatz AuthorizationKey in der KeyChain vorhanden ist.
[<=]

A_21742-02 - Komponente Autorisierung Vers. - ACCOUNT_AUTHORIZATION bei Datenübernahme

Die Komponente Autorisierung MUSS bei Aufruf der Operation I_Authorization_Insurant::getAuthorizationKey  in der KeyChain des benannten RecordIdentifier für den mittels AuthenticationAssertion authentifizierten Nutzer (subject-id = OwnerKVNR) eine Autorisierungsbestätigung mit AuthorizationType = ACCOUNT_AUTHORIZATION gemäß [A_14491-*] ausstellen, wenn der RecordState der KeyChain des benannten RecordIdentifier den Zustand SUSPENDED, START_MIGRATION, REGISTERED_FOR_MIGRATION, DL_IN_PROGRESS oder READY_FOR_IMPORT aufweist. Sofern der benannte Nutzer nicht der Versicherte selbst ist (subject-id != OwnerKVNR) , MUSS die Komponente Autorisierung den Aufruf mit der Fehlermeldung ACCESS_DENIED abbrechen. [<=]

A_21810-01 - Komponente Autorisierung Vers. - Zulässige Operationen bei START_MIGRATION und SUSPENDED

Die Komponente Autorisierung MUSS bei einer AuthenticationAssertion des authentifizierten Nutzers mit subject-id = OwnerKVNR und wenn der RecordState der KeyChain des benannten RecordIdentifier den Zustand SUSPENDED oder START_MIGRATION aufweist nur den Aufruf der Operationen I_Authorization_Insurant::getAuthorizationKey,  I_Authorization_Management_Insurant::getNotificationInfo und I_Authorization_Management_Insurant::getAuthorizationList  zulassen. Ist der Nutzer nicht der Versicherte (subject-id != OwnerKVNR) oder werden andere Operationen als die aufgeführten aufgerufen, MUSS der entsprechende Aufruf mit der Fehlermeldung ACCESS_DENIED beendet werden. [<=]

6.2.3 Schnittstelle I_Authorization_Management

Diese Schnittstelle setzt die in [gemSysL_ePA] definierte Schnittstelle I_Authorization_Management technisch um.

Die Schnittstelle I_Authorization_Management dient dazu, kryptografische Berechtigungen im Autorisierungsdienst eines Aktensystems zu verwalten.

6.2.3.1 Operationsdefinition I_Authorization_Management::putAuthorizationKey

A_14180-01 - Komponente Autorisierung - I_Authorization_Management::putAuthorizationKey

Die Komponente Autorisierung MUSS die Operation I_Authorization_Management::putAuthorizationKey gemäß der folgenden Signatur implementieren:

Tabelle 8: I_Authorization_Management::putAuthorizationKey - Definition

Operation
I_Authorization_Management::putAuthorizationKey 
Beschreibung
Mit der Operation wird das für einen Berechtigten verschlüsselte Schlüsselmaterial für ein konkretes Aktenkonto eines Versicherten im ePA-Aktensystem gespeichert.
Formatvorgaben
Die Definition der Ein- und Ausgabeparameter erfolgt in [AuthorizationService.xsd].
Diejenigen Parameter, die im XSD-Schema optional gekennzeichnet, aber hier nicht aufgeführt sind, werden in der Operation an dieser Schnittstelle nicht verwendet.
Eingangsparameter
Name
Beschreibung
Typ
opt.
AuthenticationAssertion
Die AuthenticationAssertion ist eine von einem Identitiy Provider ausgestellte Authentifizierungsbestätigung für einen Nutzer.
SAML Assertion  im SOAP-Header des Requests
-

RecordIdentifier
Der RecordIdentifier referenziert ein konkretes Aktenkonto eines Versicherten bei einem Anbieter. Mit diesem wird der Datensatz der Autorisierung in der Komponente Autorisierung für den anfragenden Nutzer lokalisiert.
RecordIdentifierType
-
AuthorizationKey
Die kryptografische Autorisierung eines Nutzers, bestehend aus Listen von verschlüsselten Schlüsseln. Details zur Struktur finden sich im Kapitel 7 zum Informationsmodell.
AuthorizationKeyType 
-
Fehlermeldungen 
Name
Fehlertext
Details
TECHNICAL_ERROR
Zufallszahl
ASSERTION_INVALID
Authentifizierungsbestätigung ungültig
Die Authentifizierungsbestätigung des aufrufenden Nutzers wird nicht akzeptiert.
ACCESS_DENIED
Zugriff verweigert
Die Operation ist mit den angegebenen Parametern nicht zulässig.

[<=]

6.2.3.2 Umsetzung I_Authorization_Management::putAuthorizationKey

Die folgenden Anforderungen beschreiben die Umsetzung der Operation I_Authorization_Management::putAuthorizationKey. Dabei gelten die übergreifenden Festlegungen zur Prüfung der Eingangsparameter.

A_14212 - Komponente Autorisierung LE - Speicherung kryptografische Berechtigung des Nutzers

Die Komponente Autorisierung MUSS in der Operation I_Authorization_Management::putAuthorizationKey den im Eingangsparameter übergebenen AuthorizationKey als AuthorizationKey der KeyChain des im Eingangsparameter benannten RecordIdentifier speichern bzw. ersetzen, falls für die im AuthorizationKey benannte ActorID bereits ein AuthorizationKey in der KeyChain des benannten RecordIdentifier existiert. [<=]

A_14441 - Komponente Autorisierung LE - Berechtigungsprüfung Schlüsselhinterlegung

Die Komponente Autorisierung MUSS beim Aufruf der Operation I_Authorization_Management::putAuthorizationKey anhand der KVNR der AuthenticationAssertion und des RecordIdentifier prüfen, ob für den aufrufenden Nutzer ein AuthorizationKey mit ActorID == subject-ID hinterlegt ist, und falls nicht, die Operation mit dem Fehler ACCESS_DENIED abbrechen. [<=]

Mit dieser Prüfung wird sichergestellt, dass nur Versicherte bzw. Vertreter einen Schlüssel für einen Berechtigten hinterlegen können. Eine Berechtigung wird nicht von einer Leistungserbringerinstitution oder von einem Kostenträger hinterlegt.

A_14587 - Komponente Autorisierung LE - Initiale Schlüsselhinterlegung Kontoeröffnung

Die Komponente Autorisierung MUSS die Operation  I_Authorization_Management::putAuthorizationKey mit dem Fehler ACCESS_DENIED abbrechen, sofern für den Eigentümer der Akte noch kein AuthorizationKey vorhanden ist und der zu speichernde AuthorizationKey des Aufrufparameters für einen anderen Nutzer als den Eigentümer des RecordIdentifier (ActorID != OwnerKVNR) gespeichert werden soll. [<=]

Mit dieser Anforderung soll verhindert werden, dass die Akte genutzt wird, bevor das Schlüsselmaterial für den Versicherten erzeugt und hinterlegt wurde. Die benannte Konstellation liegt im Rahmen der Kontoeröffnung und bei einem Aktenumzug vor. Das Schlüsselmaterial für den Versicherten wird im Schritt der Kontoaktivierung erzeugt, welcher auf den Schritt der Kontoinitialisierung folgt.

A_14737-01 - Komponente Autorisierung LE - Initiale Schlüsselhinterlegung für den Versicherten

Die Komponente Autorisierung MUSS bei Aufruf der Operation I_Authorization_Management::putAuthorizationKey durch den Versicherten (subject-id (KVNR) der AuthenticationAssertion == OwnerKVNR) im Rahmen der initialen Schlüsselhinterlegung während der Kontoaktivierung das validTo-Datum des übergebenen AuthorizationKey vor der Speicherung mit einem technischen Datum gleichbedeutend mit "unendlich" (31.12.9999) ersetzen. [<=]

A_21880 - Komponente Autorisierung LE - Keine Berechtigung von Vertretern bei I_Authorization_Management::putAuthorizationKey

Die Komponente Autorisierung MUSS bei Aufruf der Operation I_Authorization_Management::putAuthorizationKey prüfen, ob die im AuthorizationKey benannte ActorID == OwnerKVNR oder eine TelematikID ist und falls nicht, die Operation mit dem Fehler ACCESS_DENIED abbrechen. [<=]

A_14999 - Komponente Autorisierung LE - Zustandswechsel bei Schlüsselhinterlegung für den Versicherten

Die Komponente Autorisierung MUSS bei Aufruf der Operation I_Authorization_Management::putAuthorizationKey durch den Versicherten (subject-id (KVNR) der AuthenticationAssertion == OwnerKVNR) bei erfolgreichem Abschluss der initialen Schlüsselhinterlegung für den Versicherten während der Kontoaktivierung den Zustand RecordState der KeyChain des Versicherten von REGISTERED auf den Wert ACTIVATED setzen.
[<=]

A_21869 - Komponente Autorisierung LE - Keine Ausführung von I_Authorization_Management::putAuthorizationKey bei SUSPENDED oder START_MIGRATION

Im Zustand RecordState der KeyChain des Versicherten von SUSPENDED oder START_MIGRATION MUSS die Operation I_Authorization_Management::putAuthorizationKey mit der Fehlermeldung ACCESS_DENIED abgebrochen werden. [<=]

6.2.3.3 Operationsdefinition I_Authorization_Management::checkRecordExists

A_14965-01 - Komponente Autorisierung - I_Authorization_Management::checkRecordExists

Die Komponente Autorisierung MUSS die Operation  I_Authorization_Management::checkRecordExists gemäß der folgenden Signatur implementieren:

Tabelle 9: I_Authorization_Management::checkRecordExists - Definition

Operation
I_Authorization_Management::checkRecordExists
Beschreibung
Die Operation liefert den Status eines Aktenkontos eines via KVNR benannten Versicherten. 
Formatvorgaben
Die Definition der Ein- und Ausgabeparameter erfolgt in [AuthorizationService.xsd].
Diejenigen Parameter, die im XSD-Schema optional gekennzeichnet, aber hier nicht aufgeführt sind, werden in der Operation an dieser Schnittstelle nicht verwendet.
Eingangsparameter
Name
Beschreibung
Typ
opt.
KVNR
Der unveränderliche Teil der Krankenversicherungsnummer eines gesetzlich Versicherten
String
-
AllMandators
  • True (Aufruf durch Konnektor aufgrund getHomeCommunityId durch PS): Alle Aktensystem-Mandanten werden ausgewertet.
  • Parameter AllMandators fehlt oder AllMandators=false: (Aktensystem oder Konnektor rufen ausgewählte Aktensystem-Mandanten auf): Aktensystem-Mandanten werden einzeln abgefragt.
boolean ja
Ausgangsparameter
Name  Beschreibung  Typ  opt 
RecordState 
Statuswert zur Existenz eines Aktenkontos in der Komponente Autorisierung zu einer angefragten KVNR
RecordStateType
-
HomeCommunityId HomeCommunityId des Aktensystem-Mandanten, in dem eine Akte zur KVNR vorliegt, die sich im Zustand REGISTERED, ACTIVATED oder DISMISSED befindet. Wird bei keinem Aktensystem-Mandanten eine solche Akte gefunden, wird keine HomeCommunityId zurück gegeben. HomeCommunityIdType ja
Fehlermeldungen
Name
Fehlertext
Details
TECHNICAL_ERROR
Zufallszahl

[<=]

6.2.3.4 Umsetzung I_Authorization_Management::checkRecordExists

Die folgenden Anforderungen beschreiben die Umsetzung der Operation I_Authorization_Management::checkRecordExists. Dabei gelten die übergreifenden Festlegungen zur Prüfung der Eingangsparameter.

A_14966-01 - Komponente Autorisierung LE - Abfrage Aktenexistenz bei AllMandators=false oder leer

Falls der Parameter AllMandators=false gesetzt ist oder fehlt, MUSS die Komponente Autorisierung bei Aufruf der Operation I_Authorization_Management::checkRecordExists den Wert RecordState des Datensatzes KeyChain eines Konto zurückliefern, wenn zu einer angefragten KVNR ein Datensatz KeyChain mit OwnerKVNR == KVNR existiert und andernfalls den Statuswert UNKNOWN zurückgeben. Bei fehlendem Parameter AllMandators oder bei RecordState mit dem Wert UNKNOWN entfällt der Rückgabeparameter HomeCommunityId. [<=]

A_22465 - Komponente Autorisierung – Abfrage Aktenexistenz bei AllMandators=true

Falls der Parameter AllMandators=true gesetzt ist MUSS die Operation   I_Authorization_Management:: checkRecordExists über alle Aktensystem-Mandanten zur angefragten KVNR alle Aktenkonten ermitteln (Datensatz KeyChain mit OwnerKVNR == KVNR existiert). Zur Konsolidierung des Auswertungsergebnisses MUSS für alle ermittelten Aktenkonten der Status REGISTERED, ACTIVATED, DISMISSED gesucht werden. Sobald der erste dieser Status gefunden wird, MUSS der gefundene Status des Aktenkontos und die HomeCommunityId des betreffenden Aktensystem-Mandanten als Response in den Ausgangsparametern RecordState und HomeCommunityId zurückgegeben werden. Andernfalls wird der RecordState mit dem Wert UNKNOWN zurückgegeben und der Rückgabeparameter HomeCommunityId entfällt. [<=]

Für die Abarbeitung der Operation checkRecordExists mit Parameter AllMandators=true kann das Aktensystem für die eigenen Aktensystem-Mandanten checkRecordExists mit Parameter AllMandators=false nutzen.

6.2.3.5 Operationsdefinition I_Authorization_Management::getAuthorizationList

A_17110-01 - Komponente Autorisierung - I_Authorization_Management::getAuthorizationList

Die Komponente Autorisierung MUSS die Operation  I_Authorization_Management::getAuthorizationList gemäß der folgenden Signatur implementieren:

Tabelle 10: I_Authorization_Management::getAuthorizationList - Definition

Operation
I_Authorization_Management::getAuthorizationList
Beschreibung
Die Operation liefert eine Liste der OwnerKVNRs von Konten im Aktensystem, in denen die anfragende Identität berechtigt ist.
Formatvorgaben
Die Definition der Ein- und Ausgabeparameter erfolgt in [AuthorizationService.xsd].
Diejenigen Parameter, die im XSD-Schema optional gekennzeichnet, aber hier nicht aufgeführt sind, werden in der Operation an dieser Schnittstelle nicht verwendet.
Eingangsparameter
Name
Beschreibung
Typ
opt.
AuthenticationAssertion
Die AuthenticationAssertion ist eine von einem Identitiy Provider ausgestellte Authentifizierungsbestätigung für einen Nutzer.
SAML Assertion im SOAP-Header des Requests
-
Ausgangsparameter
Name 
Beschreibung 
Typ 
opt. 
AuthorizationInfoList 
Liste der OwnerKVNRs von Konten im Aktensystem, in denen für die Telematik-ID der anfragenden Leistungserbringerinstitution bzw. der Kostenträger ein AuthorizationKey aktuell vorhanden ist.
AuthorizationInfo[0..*]
-
Fehlermeldungen
Name
Fehlertext
Details
ASSERTION_INVALID
Authentifizierungsbestätigung ungültig.
z.B. abgelaufen oder Misstrauen in Signatur des Tokens
TECHNICAL_ERROR
Zufallszahl

[<=]

6.2.3.6 Umsetzung I_Authorization_Management::getAuthorizationList

Die folgenden Anforderungen beschreiben die Umsetzung der Operation I_Authorization_Management::getAuthorizationList. Dabei gelten die übergreifenden Festlegungen zur Prüfung der Eingangsparameter.

A_17111 - Komponente Autorisierung LE - Abfrage Berechtigungsliste

Die Komponente Autorisierung MUSS bei Aufruf der Operation I_Authorization_Management::getAuthorizationList die Liste aller OwnerKVNRs ermitteln, in deren KeyChain für die organization-id der gültigen AuthenticationAssertion ein AuthorizationKey vorhanden ist (organization-id == ActorID) und diese Liste als AuthorizationInformation [OwnerKVNRvalidTo am jeweiligen AuthorizationKey der ActorID je KeyChain] zurückgeben.
[<=]

A_19007 - Komponente Autorisierung - Einschränkung der Häufigkeit der Abfrage getAuthorizationList

Das Aktensystem KANN getAuthorizationList-Anfragen mit dem Fehler TOO_MANY_REQUESTS zurückweisen, wenn sie von derselben LEI (bei Gleichheit der organization-id) innerhalb eines Zeitraumes von 10 Minuten wiederholt gestellt werden. 
[<=]

A_22382 - Komponente Autorisierung LE - Erstellung der Berechtigungsliste nur bei ACTIVATED und DISMISSED

Die Komponente Autorisierung MUSS bei Aufruf der Operation I_Authorization_Management::getAuthorizationList ausschließlich Aktenkonten berücksichtigen, die sich im Zustand ACTIVATED oder DISMISSED befinden. [<=]

6.2.3.7 Operationsdefinition I_Authorization_Management::getAuthorizationState

A_22447-01 - Komponente Autorisierung - I_Authorization_Management::getAuthorizationState

Die Komponente Autorisierung MUSS die Operation  I_Authorization_Management::getAuthorizationState gemäß der folgenden Signatur implementieren:

Tabelle 11: I_Authorization_Management::getAuthorizationState - Definition

Operation
I_Authorization_Management::getAuthorizationState
Beschreibung
Die Operation prüft für das Aktenkonto der im Aufruf übergebenen KVNR, ob eine Berechtigung für die anfragende Identität vorliegt und gibt bei existierender Berechtigung das Endedatum der Berechtigung zurück.
Formatvorgaben
Die Definition der Ein- und Ausgabeparameter erfolgt in [AuthorizationService.xsd].
Diejenigen Parameter, die im XSD-Schema optional gekennzeichnet, aber hier nicht aufgeführt sind, werden in der Operation an dieser Schnittstelle nicht verwendet.
Eingangsparameter
Name
Beschreibung
Typ
opt.
AuthenticationAssertion
Die AuthenticationAssertion ist eine von einem Identitiy Provider ausgestellte Authentifizierungsbestätigung für einen Nutzer.
SAML Assertion im SOAP-Header des Requests
-
UserAgents Liste der UserAgent Clients.
UserAgent dient bei der Performance-Rohdatenerfassung der Erkennung der UserAgents.
Bildungsvorschrift für UserAgent siehe A_22470.
UserAgentsType
(LIste von Strings; Gesamtlänge von 17 bis maximal 65 Zeichen)
-
InsurantId InsurantId referenziert ein konkretes Aktenkonto eines Versicherten. Mit diesem wird der Datensatz der Autorisierung in der Komponente Autorisierung für den anfragenden Nutzer lokalisiert.  InsurantIdType  -
Ausgangsparameter
Name 
Beschreibung 
Typ 
opt. 
AuthorizationStatusList
Liste aller Berechtigungen für das durch InsurantId adressierte Aktenkonto im Aktensystem, in denen für die Telematik-ID der anfragenden Leistungserbringerinstitution bzw. der Kostenträger ein AuthorizationKey aktuell vorhanden ist.
Falls eine Berechtigung für die Anwendung vorliegt wird ein Eintrag in der Liste für die berechtigte Anwendung und das Endedatum der Berechtigung übergeben. Liegt keine einzige Berechtigung vor so entfällt AuthorizationStatusList.

AuthorizedApplication[0..*]
ja
Fehlermeldungen
Name
Fehlertext
Details
ASSERTION_INVALID
Authentifizierungsbestätigung ungültig.
z.B. abgelaufen oder Misstrauen in Signatur des Tokens
TECHNICAL_ERROR
Zufallszahl
TOO_MANY_REQUESTS
(HTTP-Fehler)
Http 429 Too many Requests
[<=]

6.2.3.8 Umsetzung I_Authorization_Management::getAuthorizationState

Die folgenden Anforderungen beschreiben die Umsetzung der Operation I_Authorization_Management::getAuthorizationState. Dabei gelten die übergreifenden Festlegungen zur Prüfung der Eingangsparameter.

A_22448 - Komponente Autorisierung LE - Abfrage Berechtigungsliste

Die Komponente Autorisierung MUSS bei Aufruf der Operation I_Authorization_Management::getAuthorizationState für das durch die InsurantId adressierte Aktenkonto die Berechtigung für die Fachanwendungen ermitteln, in deren KeyChain für die organization-id der gültigen AuthenticationAssertion ein AuthorizationKey vorhanden ist (organization-id == ActorID) und bei vorhandener Berechtigung einen Eintrag in AuthorizationStatusList mit ApplicationName und dem Endedatum validTo der ermittelten Berechtigung zurückgeben. [<=]

A_22449-01 - Komponente Autorisierung - Einschränkung der Häufigkeit der Abfrage getAuthorizationState

Das Aktensystem KANN getAuthorizationState-Anfragen mit dem Fehler TOO_MANY_REQUESTS zurückweisen, wenn sie von derselben LEI (bei Gleichheit der organization-id) und derselben InsurantId innerhalb eines Zeitraumes von 30 Minuten mehr als drei Mal gestellt werden. 
[<=]

A_22568 - Komponente Autorisierung LE - Erstellung der Berechtigungsliste in getAuthorizationState nur bei ACTIVATED und DISMISSED

Die Komponente Autorisierung MUSS bei Aufruf der Operation I_Authorization_Management::getAuthorizationState ausschließlich Aktenkonten berücksichtigen, die sich im Zustand ACTIVATED oder DISMISSED befinden. [<=]

6.2.4 Schnittstelle I_Authorization_Management_Insurant

Diese Schnittstelle setzt die in [gemSysL_ePA] definierte Schnittstelle I_Authorization_Management_Insurant technisch um.

Die Schnittstelle I_Authorization_Management_Insurant stellt Operationen zur Verwaltung von kryptografischen Berechtigungen im Autorisierungsdienst eines Aktensystems bereit.

6.2.4.1 Operationsdefinition I_Authorization_Management_Insurant::putAuthorizationKey

A_14672-01 - Komponente Autorisierung - I_Authorization_Management_Insurant::putAuthorizationKey

Die Komponente Autorisierung MUSS die Operation  I_Authorization_Management_Insurant::putAuthorizationKey gemäß der folgenden Signatur implementieren:

Tabelle 12: I_Authorization_Management_Insurant::putAuthorizationKey - Definition

Operation
I_Authorization_Management_Insurant::putAuthorizationKey
Beschreibung
Mit dieser Operation wird für einen Berechtigten verschlüsseltes Schlüsselmaterial für ein konkretes Aktenkonto eines Versicherten im Aktensystem gespeichert. 
Formatvorgaben
Die Definition der Ein- und Ausgabeparameter erfolgt in [AuthorizationService.xsd].
Diejenigen Parameter, die im XSD-Schema optional gekennzeichnet, aber hier nicht aufgeführt sind, werden in der Operation an dieser Schnittstelle nicht verwendet.
Eingangsparameter
Name
Beschreibung
Typ
opt.
AuthenticationAssertion
Die AuthenticationAssertion ist eine von einem Identitiy Provider ausgestellte Authentifizierungsbestätigung für einen Nutzer.
SAML Assertion im SOAP-Header des Requests
-
RecordIdentifier
Der RecordIdentifier referenziert ein konkretes Aktenkonto eines Versicherten bei einem Anbieter. Mit diesem wird der Datensatz der Autorisierung in der Komponente Autorisierung für den anfragenden Nutzer lokalisiert.
RecordIdentifierType
-
AuthorizationKey
Die kryptografische Autorisierung eines Nutzers,  bestehend aus Listen von verschlüsselten Schlüsseln. Details zur Struktur finden sich im Kapitel 7 zum Informationsmodell.
AuthorizationKeyType
-
DeviceID
Die DeviceID enthält die Gerätekennung eines vom Nutzer verwendeten Gerätes.
DeviceIdType 
-
NotificationInfoRepresentative
Mit diesem Parameterhinterlegt der Versicherte eine Benachrichtigungsadresse der Geräteverwaltung des mittels AuthorizationKey berechtigten Vertreters.
String
ja
Fehlermeldungen
Name
Fehlertext
Details
TECHNICAL_ERROR
Zufallszahl

ASSERTION_INVALID
Authentifizierungsbestätigung ungültig 
Die Authentifizierungsbestätigung des aufrufenden Nutzers wird nicht akzeptiert.
KEY_ERROR
Fehler im Schlüsseldatensatz
Es ist bereits ein Datensatz vorhanden.
SYNTAX_ERROR
Fehlerhafte Aufrufparameter
Es wurde ein fehlerhafter Aufrufparameter übergeben.
DEVICE_UNKNOWN
generierte phr:DeviceID::Device
Das vom Nutzer verwendete Gerät des Versicherten ist nicht bekannt und muss freigeschaltet werden.
[<=]

6.2.4.2 Umsetzung I_Authorization_Management_Insurant::putAuthorizationKey

Die folgenden Anforderungen beschreiben die Umsetzung der Operation I_Authorization_Management_Insurant::putAuthorizationKey. Dabei gelten die übergreifenden Festlegungen zur Prüfung der Eingangsparameter.

A_14446 - Komponente Autorisierung Vers. - Speicherung kryptografische Berechtigung des Nutzers

Die Komponente Autorisierung MUSS in der Operation I_Authorization_Management_Insurant::putAuthorizationKey den im Eingangsparameter übergebenen AuthorizationKey als AuthorizationKey der KeyChain des im Eingangsparameter benannten RecordIdentifier speichern, sofern kein AuthorizationKey für die ActorID zu diesem RecordIdentifier bereits vorhanden ist, und andernfalls die Operation mit der Fehlermeldung  KEY_ERROR abbrechen.
[<=]

A_14447 - Komponente Autorisierung Vers. - Berechtigungsprüfung Schlüsselhinterlegung

Die Komponente Autorisierung MUSS beim Aufruf der Operation I_Authorization_Management_Insurant::putAuthorizationKey anhand der subject-id (KVNR) der AuthenticationAssertion und des RecordIdentifier prüfen, ob für den aufrufenden Nutzer ein AuthorizationKey mit ActorID = KVNR hinterlegt ist und falls nicht, die Operation mit dem Fehler ACCESS_DENIED abbrechen. [<=]

Mit dieser Prüfung wird sichergestellt, dass nur Versicherte sowie berechtigte Vertreter Schlüsselmaterial für Versicherte,  Leistungserbringerinstitutionen und Kostenträger hinterlegen können, die selbst bereits über einen AuthorizationKey verfügen.

A_21541 - Komponente Autorisierung Vers. – Einrichten Vertretungsberechtigung nicht durch einen Vertreter

Die Komponente Autorisierung MUSS das Einrichten einer Vertretungsberechtigung durch den Aufruf der Operation I_Authorization_Management_Insurant::putAuthorizationKey mit (subject-id der AuthenticationAssertion != ActorID des Übergabeparameters AuthorizationKey und ActorID des Übergabeparameters AuthorizationKey != OwnerKVNR) ablehnen, wenn die subject-id der AuthenticationAssertion nicht der OwnerKVNR des benannten RecordIdentifiers entspricht und die Operation mit dem Fehler ACCESS_DENIED beenden. Mit dieser Prüfung wird verhindert, dass ein Vertreter weitere Vertreter einrichten kann. [<=]

A_18184-01 - Komponente Autorisierung Vers. - Prüfung auf Vertretungsberechtigung für Validierungsidentität

Die Komponente Autorisierung MUSS bei einer Vertretungsberechtigung sicherstellen, dass der Vertreter für ein Aktenkonto genau dann eine Validierungsidentität gemäß [gemSpec_PK_eGK#Card-G2-A_3820] besitzt, wenn es sich um ein Validierungsaktenkonto handelt. Ansonsten ist mit dem Fehler TECHNICAL_ERROR abzubrechen.
[<=]

Hinweis: Das stellt sicher, dass auf „echte“ Konten ausschließlich „echte“ Vertreter berechtigt werden und auf Validierungskonten ausschließlich „Validierungs-Vertreter“. Die Erkennung auf eine Validierungsidentität kann über die Auswertung der ActorID des zu berechtigenden Vertreters erfolgen, wobei diese als Prüf-KVNR anhand der Bildungsregel "4 oder mehr gleiche aufeinander folgende Ziffern" eindeutig zu erkennen ist.

A_17670 - Komponente Autorisierung Vers. - Freischaltprozess Vertreterberechtigung

Die Komponente Autorisierung MUSS bei Hinterlegung einer Vertretungsberechtigung durch Aufruf der Operation I_Authorization_Management_Insurant::putAuthorizationKey mit (subject-id der AuthenticationAssertion != ActorID des Übergabeparameters AuthorizationKey und ActorID des Übergabeparameters AuthorizationKey != OwnerKVNR) die Operation abschließen, sofern kein technischer oder fachlicher Fehler dies verhindert und anschließend den Freischaltprozess für Vertretereinrichtung starten ( ), sofern für die im Übergabeparameter AuthorizationKey  benannte ActorID noch kein AuthorizationKey in der Komponente Autorisierung für die im RecordIdentifier benannte OwnerKVNR vorhanden ist. 
[<=]

A_18750 - Komponente Autorisierung Vers. - Begrenzung zu registrierender Vertreter

Die Komponente Autorisierung MUSS bei Hinterlegung einer Vertretungsberechtigung durch Aufruf der Operation I_Authorization_Management_Insurant::putAuthorizationKey (vgl. A_17670) prüfen, ob die maximale Anzahl von fünf Vertretern erreicht wurde. Trifft dies zu, MUSS der Anwendungsfall mit dem Fehler TECHNICAL_ERROR abgebrochen werden. Eine Prüfung MUSS berücksichtigen, ob zum Zeitpunkt der Vertretungsregistrierung Freischaltprozesse gestartet wurden bzw. im Gange sind. Diese Prozesse sind in der maximalen Anzahl an Vertretern zu berücksichtigen.
[<=]

A_15752 - Komponente Autorisierung Vers. - Benachrichtigungskanal für Geräteverwaltung E-Mail-Format

Die Komponente Autorisierung MUSS die OperationI_Authorization_Management_Insurant::putAuthorizationKey mit dem Fehler SYNTAX_ERROR abbrechen, wenn der Parameter NotificationInfoRepresentative nicht leer und nicht gemäß [RFC-5322] formatiert ist. [<=]

A_14318-01 - Komponente Autorisierung Vers. - Benachrichtigungskanal für Geräteverwaltung

Die Komponente Autorisierung MUSS einen in der Operation I_Authorization_Management_Insurant::putAuthorizationKey übergebenen optionalen Parameter  NotificationInfoRepresentative als Benachrichtigungsadresse der Geräteverwaltung für den im Parameter AuthorizationKey durch ActorID benannten Nutzer übernehmen, sofern ActorID eine KVNR enthält, die nicht der OwnerKVNR entspricht, anderenfalls ist der Parameter zu ignorieren. Für die Berechtigung eines Vertreters MUSS dieser Parameter immer gesetzt sein und falls nicht, ist die Operation mit dem Fehler SYNTAX_ERROR zu beenden. [<=]

A_14615 - Komponente Autorisierung Vers. - Initiale Schlüsselhinterlegung Kontoeröffnung

Die Komponente Autorisierung MUSS die Operation I_Authorization_Management_Insurant::putAuthorizationKey mit dem Fehler ACCESS_DENIED abbrechen, sofern für den Eigentümer der Akte noch kein AuthorizationKey vorhanden ist, und der zu speichernde AuthorizationKey des Aufrufparameters für einen anderen Nutzer als den Eigentümer des RecordIdentifier (ActorID != OwnerKVNR) gespeichert werden soll. [<=]

Mit dieser Anforderung soll verhindert werden, dass die Akte genutzt wird, bevor das Schlüsselmaterial für den Versicherten erzeugt und hinterlegt wurde. Die benannte Konstellation liegt im Rahmen der Kontoeröffnung und bei einem Aktenumzug vor. Das Schlüsselmaterial für den Versicherten wird im Schritt der Kontoaktivierung erzeugt, welcher auf den Schritt der Kontoinitialisierung folgt.

A_14736 - Komponente Autorisierung Vers. - Initiale Schlüsselhinterlegung für den Versicherten

Die Komponente Autorisierung MUSS bei Aufruf der Operation I_Authorization_Management_Insurant::putAuthorizationKey durch den Versicherten (subject-id (KVNR) der AuthenticationAssertion == OwnerKVNR) im Rahmen der initialen Schlüsselhinterlegung während der Kontoaktivierung das validTo-Datum des übergebenen AuthorizationKey vor der Speicherung mit einem technischen Datum gleichbedeutend mit "unendlich" (z.B. 31.12.9999) ersetzen. [<=]

A_15000-03 - Komponente Autorisierung Vers. - Zustandswechsel bei Schlüsselhinterlegung für den Versicherten

Die Komponente Autorisierung MUSS bei Aufruf der Operation I_Authorization_Management_Insurant::putAuthorizationKey durch den Versicherten (subject-id (KVNR) der AuthenticationAssertion == OwnerKVNR) bei erfolgreichem Abschluss der initialen Schlüsselhinterlegung für den Versicherten während der Kontoaktivierung den Zustand RecordState der KeyChain des Versicherten von REGISTERED auf den Wert ACTIVATED setzen. [<=]

6.2.4.3 Operationsdefinition I_Authorization_Management_Insurant::deleteAuthorizationKey

A_14674-01 - Komponente Autorisierung - I_Authorization_Management_Insurant::deleteAuthorizationKey

Die Komponente Autorisierung MUSS die Operation  I_Authorization_Management_Insurant::deleteAuthorizationKey gemäß der folgenden Signatur implementieren:

Tabelle 13: I_Authorization_Management_Insurant::deleteAuthorizationKey - Definition

Operation
I_Authorization_Management_Insurant::deleteAuthorizationKey
Beschreibung
Mit dieser Operation kann ein authentifizierter Nutzer bzw. ein berechtigter Vertreter das im Aktenkonto hinterlegte kryptografische Schlüsselmaterial für einen benannten Nutzer löschen.
Formatvorgaben
Die Definition der Ein- und Ausgabeparameter erfolgt in [AuthorizationService.xsd].
Diejenigen Parameter, die im XSD-Schema optional gekennzeichnet, aber hier nicht aufgeführt sind, werden in der Operation an dieser Schnittstelle nicht verwendet.
Eingangsparameter
Name
Beschreibung
Typ
opt.
AuthenticationAssertion
Die AuthenticationAssertion ist eine von einem Identitiy Provider ausgestellte Authentifizierungsbestätigung für einen Nutzer.
SAML Assertion  im SOAP-Header des Requests
-
RecordIdentifier
Der RecordIdentifier referenziert ein konkretes Aktenkonto eines Versicherten bei einem Anbieter. Mit diesem wird der Datensatz der Autorisierung in der Komponente Autorisierung für den anfragenden Nutzer lokalisiert.
RecordIdentifierType
-
ActorID
Identifikator des Nutzers, für den der hinterlegte Datensatz AuthorizationKey gelöscht werden soll.
String
-
DeviceID
Die DeviceID enthält die Gerätekennung eines vom Nutzer verwendeten Gerätes.
DeviceIdType
-
Fehlermeldungen
Name
Fehlertext
Details
TECHNICAL_ERROR
Zufallszahl
ASSERTION_INVALID
Authentifizierungsbestätigung ungültig 
Die Authentifizierungsbestätigung des aufrufenden Nutzers wird nicht akzeptiert.
KEY_ERROR
Fehler im Schlüsseldatensatz
Kein Datensatz vorhanden
ACCESS_DENIED
Zugriff verweigert
Die Operation ist mit den angegebenen Parametern nicht zulässig.
DEVICE_UNKNOWN
generierte phr:DeviceID::Device
Das vom Nutzer verwendete Gerät des Versicherten ist nicht bekannt und muss freigeschaltet werden.
[<=]

6.2.4.4 Umsetzung I_Authorization_Management_Insurant::deleteAuthorizationKey

Die folgenden Anforderungen beschreiben die Umsetzung der Operation I_Authorization_Management_Insurant::deleteAuthorizationKey. Dabei gelten die übergreifenden Festlegungen zur Prüfung der Eingangsparameter.

A_14451 - Komponente Autorisierung Vers. - Prüfen Löschberechtigung

Die Komponente Autorisierung MUSS bei Aufruf der Operation I_Authorization_Management_Insurant::deleteAuthorizationKey prüfen, ob der in der AuthenticationAssertion benannte Nutzer über einen AuthorizationKey mit AuthorizationType = DOCUMENT_AUTHORIZATION für den benannten RecordIdentifier verfügt, und andernfalls die Operation mit der Fehlermeldung ACCESS_DENIED abbrechen. [<=]

A_21542 - Komponente Autorisierung Vers. – Löschen Vertretungsberechtigung nicht durch einen Vertreter

Die Komponente Autorisierung MUSS das Löschen einer Vertretungsberechtigung durch den Aufruf der Operation I_Authorization_Management_Insurant::deleteAuthorizationKey mit (subject-id der AuthenticationAssertion != Übergabeparameter ActorID und Übergabeparameter ActorID != OwnerKVNR) ablehnen, wenn die subject-id der AuthenticationAssertion nicht der OwnerKVNR des benannten RecordIdentifiers entspricht und die Operation mit dem Fehler ACCESS_DENIED beenden. Mit dieser Prüfung wird verhindert, dass ein Vertreter Berechtigungen anderer Vertreter löschen kann. [<=]

A_14452 - Komponente Autorisierung Vers. - Löschen des AuthorizationKeys

Die Komponente Autorisierung MUSS bei Aufruf der Operation I_Authorization_Management_Insurant::deleteAuthorizationKey
den Datensatz AuthorizationKey des Nutzers löschen, der im Aufrufparameter als ActorID (Telematik-ID oder KVNR für Vertreter) benannt wurde. [<=]

A_21704 - Komponente Autorisierung Vers. - Benachrichtigung des Versicherten bei Löschen Vertreterschlüssel

Löscht ein Vertreter seine eigene Vertreterberechtigung MUSS der Versicherte darüber, mittels seiner hinterlegten E-Mail-Adresse, informiert werden. [<=]

A_14453 - Komponente Autorisierung Vers. - Löschverbot für Versichertenschlüssel

Die Komponente Autorisierung MUSS bei Aufruf der Operation I_Authorization_Management_Insurant::deleteAuthorizationKey
das Löschen verhindern, wenn der im Aufrufparameter als ActorID benannte Datensatz gleich der OwnerKVNR des Versicherten als Eigentümer der Akte ist, und die Operation mit der Fehlermeldung ACCESS_DENIED abbrechen. [<=]

A_14552-02 - Komponente Autorisierung Vers. - Löschen veralteter Schlüssel

Die Komponente Autorisierung MUSS alle AuthorizationKey unverzüglich löschen, deren validTo-Datum älter als die aktuelle Systemzeit der Komponente Autorisierung sind und das Löschen mit den folgenden Parametern als PHR-421 protokollieren:

  • UserID = interner, systemseitig wählbarer Identifikator
  • UserName = Automatische Löschung nach Ablauf der Berechtigungsdauer
  • ObjectID = RecordIdentifier des betroffenen Kontos
  • ObjectName = ActorID des gelöschten AuthorizationKey.
[<=]

6.2.4.5 Operationsdefinition I_Authorization_Management_Insurant::replaceAuthorizationKey

A_14325-02 - Komponente Autorisierung - I_Authorization_Management_Insurant::replaceAuthorizationKey

Die Komponente Autorisierung MUSS die Operation I_Authorization_Management_Insurant::replaceAuthorizationKey gemäß der folgenden Signatur implementieren:

Tabelle 14: I_Authorization_Management_Insurant::replaceAuthorizationKey - Definition

Operation
I_Authorization_Management_Insurant::replaceAuthorizationKey 
Beschreibung
Mit dieser Operation kann ein authentifizierter Nutzer bzw. ein berechtigter Vertreter das im Aktenkonto für einen benannten Nutzer hinterlegte kryptografische Schlüsselmaterial  ersetzen. Die Operation kann insbesondere dazu benutzt werden, den Berechtigungszeitraum für einen AuthorizationKey anzupassen.
Formatvorgaben
Die Definition der Ein- und Ausgabeparameter erfolgt in [AuthorizationService.xsd].
Diejenigen Parameter, die im XSD-Schema optional gekennzeichnet, aber hier nicht aufgeführt sind, werden in der Operation an dieser Schnittstelle nicht verwendet.
Eingangsparameter
Name
Beschreibung
Typ
opt.
AuthenticationAssertion
Die AuthenticationAssertion ist eine von einem Identitiy Provider ausgestellte Authentifizierungsbestätigung für einen Nutzer.
SAML Assertion  im SOAP-Header des Requests
-
RecordIdentifier
Der RecordIdentifier referenziert ein konkretes Aktenkonto eines Versicherten bei einem Anbieter. Mit diesem wird der Datensatz der Autorisierung in der Komponente Autorisierung für den anfragenden Nutzer lokalisiert.
RecordIdentifierType
-
NewAuthorizationKey
Die kryptografische Autorisierung eines Nutzers, bestehend aus Listen von verschlüsselten Schlüsseln. Details zur Struktur finden sich im Kapitel 7 zum Informationsmodell.
AuthorizationKeyType
-
DeviceID
Die DeviceID enthält die Gerätekennung eines vom Nutzer verwendeten Gerätes.
DeviceIdType
-
Fehlermeldungen 
Name
Fehlertext
Details
TECHNICAL_ERROR
Zufallszahl
KEY_ERROR
Fehler im Schlüsseldatensatz
Kein Datensatz vorhanden.
ASSERTION_INVALID
Authentifizierungsbestätigung ungültig
Die Authentifizierungsbestätigung des aufrufenden Nutzers wird nicht akzeptiert.
DEVICE_UNKNOWN
generierte phr:DeviceID::Device
Das vom Nutzer verwendete Gerät des Versicherten ist nicht bekannt und muss freigeschaltet werden.
ACCESS_DENIED
Zugriff verweigert
Die Operation ist mit den angegebenen Parametern nicht zulässig.


[<=]

6.2.4.6 Umsetzung I_Authorization_Management_Insurant::replaceAuthorizationKey

Die folgenden Anforderungen beschreiben die Umsetzung der Operation I_Authorization_Management_Insurant::replaceAuthorizationKey. Dabei gelten die übergreifenden Festlegungen zur Prüfung der Eingangsparameter.

A_14454 - Komponente Autorisierung Vers. - Prüfung Datensatz für bestehenden AuthorizationKey

Die Komponente Autorisierung MUSS für die Operation I_Authorization_Management_Insurant::replaceAuthorizationKey prüfen, ob ein AuthorizationKey für den benannten RecordIdentifier und den in der AuthenticationAssertion benannten Nutzer (subject-id == ActorID des vorhandenen AuthorizationKey) hinterlegt ist, und andernfalls die Operation mit der Fehlermeldung ACCESS_DENIED abbrechen. [<=]

A_21543 - Komponente Autorisierung Vers. – Ändern Vertretungsberechtigung nicht durch einen Vertreter

Die Komponente Autorisierung MUSS das Ändern einer Vertretungsberechtigung durch den Aufruf der Operation I_Authorization_Management_Insurant::replaceAuthorizationKey mit (subject-id der AuthenticationAssertion != ActorID des Übergabeparameters NewAuthorizationKey und ActorID des Übergabeparameters NewAuthorizationKey != OwnerKVNR) ablehnen, wenn die subject-id der AuthenticationAssertion nicht der OwnerKVNR des benannten RecordIdentifiers entspricht und die Operation mit dem Fehler ACCESS_DENIED beenden. Mit dieser Prüfung wird verhindert, dass ein Vertreter Berechtigungen anderer Vertreter ändern kann. [<=]

A_21544 - Komponente Autorisierung Vers. - Änderung des Schlüsselmaterials des Versicherten nur durch den Versicherten selbst

Die Komponente Autorisierung MUSS das Ändern des Schlüsselmaterial des Versicherten durch den Aufruf der Operation I_Authorization_Management_Insurant::replaceAuthorizationKey ablehnen und die Operation mit dem Fehler ACCESS_DENIED beenden, wenn (subject-id der AuthenticationAssertion != OwnerKVNR und ActorID des Übergabeparameters NewAuthorizationKey == OwnerKVNR) gilt. [<=]

A_14455 - Komponente Autorisierung Vers. - Ersetzen des AuthorizationKeys

Die Komponente Autorisierung MUSS bei Aufruf der Operation I_Authorization_Management_Insurant::replaceAuthorizationKey
den Datensatz AuthorizationKey desjenigen Nutzers durch den übergebenen NewAuthorizationKey ersetzen, der im Aufrufparameter als ActorID (Telematik-ID oder KVNR) benannt wurde und für den ein AuthorizationKey vorhanden ist. [<=]

6.2.4.7 Operationsdefinition I_Authorization_Management_Insurant::getAuditEvents

A_14676-06 - Komponente Autorisierung - I_Authorization_Management_Insurant::getAuditEvents

Die Komponente Autorisierung MUSS die Operation  I_Authorization_Management_Insurant::getAuditEvents gemäß der folgenden Signatur implementieren:


Tabelle 15: I_Authorization_Management_Insurant::getAuditEvents - Definition

Operation
I_Authorization_Management_Insurant::getAuditEvents
Beschreibung
Mit dieser Operation kann ein authentifizierter Versicherter bzw. ein berechtigter Vertreter das Verwaltungsprotokoll der Autorisierungskomponente auslesen. 
Formatvorgaben
Die Definition der Ein- und Ausgabeparameter erfolgt in [AuthorizationService.xsd].
Diejenigen Parameter, die im XSD-Schema optional gekennzeichnet, aber hier nicht aufgeführt sind, werden in der Operation an dieser Schnittstelle nicht verwendet.
Eingangsparameter
Name
Beschreibung
Typ
opt.
AuthenticationAssertion
Die AuthenticationAssertion ist eine von einem Identitiy Provider ausgestellte Authentifizierungsbestätigung für einen Nutzer.
SAML Assertion im SOAP-Header des Requests
-
RecordIdentifier
Der RecordIdentifier referenziert ein konkretes Aktenkonto eines Versicherten bei einem Anbieter. Mit diesem wird der Datensatz der Autorisierung in der Komponente Autorisierung für den anfragenden Nutzer lokalisiert.
RecordIdentifierType
-
DeviceID
Die DeviceID enthält die Gerätekennung eines vom Nutzer verwendeten Gerätes.
DeviceIdType 
-
PageSize Umsetzung gemäß [gemSpecAktensystem#] Integer (> 0) y
PageNumber Umsetzung gemäß [gemSpecAktensystem#] Integer (> 0) y
LastDay Umsetzung gemäß [gemSpecAktensystem#] YYYY-MM-DD oder
YYYY-MM-DDThh:mm:ssZ
y
Ausgangsparameter
Name 
Beschreibung 
Typ 
opt. 
AuditMessage
Liste der Verwaltungsprotokolleinträge des im RecordIdentifier referenzierten Aktenkontos
AuditMessage [0..*]
-
PageSize Umsetzung gemäß [gemSpecAktensystem#] Integer (> 0) y
PageNumber Umsetzung gemäß [gemSpecAktensystem#] Integer (> 0) y
TotalPages Umsetzung gemäß [gemSpecAktensystem#] Integer (>= 0) y
TotalEntries Umsetzung gemäß [gemSpecAktensystem#] Integer (>= 0) y
 Fehlermeldungen
Name
Fehlertext
Details
TECHNICAL_ERROR
Zufallszahl
ASSERTION_INVALID
Authentifizierungsbestätigung ungültig 
Die Authentifizierungsbestätigung des aufrufenden Nutzers wird nicht akzeptiert.
DEVICE_UNKNOWN
generierte phr:DeviceID::Device
Das vom Nutzer verwendete Gerät des Versicherten ist nicht bekannt und muss freigeschaltet werden.
SYNTAX_ERROR Fehlerhafte Aufrufparameter. Es wurde ein fehlerhafter Aufrufparameter übergeben.
[<=]

6.2.4.8 Umsetzung I_Authorization_Management_Insurant::getAuditEvents

Die folgenden Anforderungen beschreiben die Umsetzung der Operation I_Authorization_Management_Insurant::getAuditEvents. Dabei gelten die übergreifenden Festlegungen zur Prüfung der Eingangsparameter.

A_14394-01 - Komponente Autorisierung Vers. - Auslesen Verwaltungsprotokoll

Die Komponente Autorisierung MUSS beim Aufruf der Operation I_Authorization_Management_Insurant::getAuditEvents dem anhand einer AuthenticationAssertion authentifizierten Nutzer die Liste aller zum angefragten RecordIdentifier verfügbaren Verwaltungsprotokolleinträge gemäß [gemSpec_DM_ePA#A_14471-*] zurückliefern, wenn der Wert von DeviceID::Device des Aufrufparameters gleich dem Wert "urn:gematik:fa:phr:1.0:device:device-id" einer für diesen Nutzer ausgestellten Autorisierungsbestätigung ist. [<=]

Damit wird sichergestellt, dass das Auslesen des Verwaltungsprotokolls nur gestattet wird, wenn zuvor eine Autorisierungsbestätigung für diesen Nutzer ausgestellt wurde.

6.2.4.9 Operationsdefinition I_Authorization_Management_Insurant::getSignedAuditEvents

A_21165-05 - Komponente Autorisierung - I_Authorization_Management_Insurant::getSignedAuditEvents

Die Komponente Autorisierung MUSS die Operation  I_Authorization_Management_Insurant::getSignedAuditEvents gemäß der folgenden Signatur implementieren:


Tabelle 16: I_Authorization_Management_Insurant::getSignedAuditEvents - Definition

Operation
I_Authorization_Management_Insurant::getSignedAuditEvents
Beschreibung
Mit dieser Operation kann ein authentifizierter Versicherter bzw. ein berechtigter Vertreter eine signierte Liste der Verwaltungsprotokolle des Versicherten aus der Autorisierungskomponente auslesen. 
Formatvorgaben
Die Definition der Ein- und Ausgabeparameter erfolgt in [AuthorizationService.xsd].
Diejenigen Parameter, die im XSD-Schema optional gekennzeichnet, aber hier nicht aufgeführt sind, werden in der Operation an dieser Schnittstelle nicht verwendet.
Eingangsparameter
Name
Beschreibung
Typ
opt.
AuthenticationAssertion
Die AuthenticationAssertion ist eine von einem Identitiy Provider ausgestellte Authentifizierungsbestätigung für einen Nutzer.
SAML Assertion im SOAP-Header des Requests
-
RecordIdentifier
Der RecordIdentifier referenziert ein konkretes Aktenkonto eines Versicherten bei einem Anbieter. Mit diesem wird der Datensatz der Autorisierung in der Komponente Autorisierung für den anfragenden Nutzer lokalisiert.
RecordIdentifierType
-
DeviceID
Die DeviceID enthält die Gerätekennung eines vom Nutzer verwendeten Gerätes.
DeviceIdType 
-
PageSize Umsetzung gemäß [gemSpecAktensystem#] Integer (> 0) y
PageNumber Umsetzung gemäß [gemSpecAktensystem#] Integer (> 0) y
LastDay Umsetzung gemäß [gemSpecAktensystem#] YYYY-MM-DD oder
YYYY-MM-DDThh:mm:ssZ
y
Ausgangsparameter
Name 
Beschreibung 
Typ 
opt. 
  SignedAuditEventList
Signierte Liste (Teilliste bei Verwendung der Paging-Parameter) der Verwaltungsprotokolleinträge des im RecordIdentifier referenzierten Aktenkontos
Signiertes Dokument
-
PageSize Umsetzung gemäß [gemSpecAktensystem#] Integer (> 0) y
PageNumber Umsetzung gemäß [gemSpecAktensystem#] Integer (> 0) y
TotalPages Umsetzung gemäß [gemSpecAktensystem#] Integer (>= 0) y
TotalEntries Umsetzung gemäß [gemSpecAktensystem#] Integer (>= 0) y
 Fehlermeldungen
Name
Fehlertext
Details
TECHNICAL_ERROR
Zufallszahl
ASSERTION_INVALID
Authentifizierungsbestätigung ungültig 
Die Authentifizierungsbestätigung des aufrufenden Nutzers wird nicht akzeptiert.
DEVICE_UNKNOWN
generierte phr:DeviceID::Device
Das vom Nutzer verwendete Gerät des Versicherten ist nicht bekannt und muss freigeschaltet werden.
SYNTAX_ERROR Fehlerhafte Aufrufparameter. Es wurde ein fehlerhafter Aufrufparameter übergeben.

[<=]

6.2.4.10 Umsetzung I_Authorization_Management_Insurant::getSignedAuditEvents

Die folgenden Anforderungen beschreiben die Umsetzung der Operation I_Authorization_Management_Insurant::getSignedAuditEvents. Dabei gelten die übergreifenden Festlegungen zur Prüfung der Eingangsparameter.

A_21166-01 - Komponente Autorisierung - signiertes Verwaltungsprotokoll erstellen

Die Komponente Autorisierung MUSS beim Aufruf der Operation I_Authorization_Management_Insurant::getSignedAuditEvents dem anhand einer AuthenticationAssertion authentifizierten Nutzer ein signiertes Dokument zurückliefern,

  • welche alle zum angefragten RecordIdentifier verfügbaren Verwaltungsprotokolleinträge gemäß [gemSpec_DM_ePA#A_14471] enthält und
  • für die Signatur wird der private Schlüssel der Ausstelleridentität ID.FD.SIG genutzt, dessen zugehöriges Zertifikat C.FD.SIG die Rolle "oid_epa_logging" enthält,
wenn der Wert von DeviceID::Device des Aufrufparameters gleich dem Wert "urn:gematik:fa:phr:1.0:device:device-id" einer für diesen Nutzer ausgestellten Autorisierungsbestätigung ist.  Hinweis: Es ist zulässig die Verwaltungsprotokolleinträge auf mehrere Dokumente aufzuteilen [<=]

Damit wird sichergestellt, dass das Auslesen des Verwaltungsprotokolls nur gestattet wird, wenn zuvor eine Autorisierungsbestätigung für diesen Nutzer ausgestellt wurde.

Es wird das gesamte Dokument bzw. Dokumente signiert. Das Format soll dem von Audit Events entsprechen.

6.2.4.11 Operationsdefinition I_Authorization_Management_Insurant::putNotificationInfo

A_14344-01 - Komponente Autorisierung - I_Authorization_Management_Insurant::putNotificationInfo

Die Komponente Autorisierung MUSS die Operation  I_Authorization_Management_Insurant::putNotificationInfo gemäß der folgenden Signatur implementieren:

Tabelle 17: I_Authorization_Management_Insurant::putNotificationInfo - Definition

Operation
I_Authorization_Management_Insurant::putNotificationInfo
Beschreibung
Mit dieser Operation kann ein authentifizierter Versicherter bzw. ein berechtigter Vertreter seine im Benachrichtigungskanal hinterlegte Adresse aktualisieren.
Formatvorgaben
Die Definition der Ein- und Ausgabeparameter erfolgt in [AuthorizationService.xsd].
Diejenigen Parameter, die im XSD-Schema optional gekennzeichnet, aber hier nicht aufgeführt sind, werden in der Operation an dieser Schnittstelle nicht verwendet.
Eingangsparameter
Name
Beschreibung
Typ
opt.
AuthenticationAssertion
Die AuthenticationAssertion ist eine von einem Identitiy Provider ausgestellte Authentifizierungsbestätigung für einen Nutzer.
SAML Assertion im SOAP-Header des Requests
-

RecordIdentifier
Der RecordIdentifier referenziert ein konkretes Aktenkonto eines Versicherten bei einem Anbieter. Mit diesem wird der Datensatz der Autorisierung in der Komponente Autorisierung für den anfragenden Nutzer lokalisiert.
RecordIdentifierType
-
DeviceID
Die DeviceID enthält die Gerätekennung eines vom Nutzer verwendeten Gerätes.
DeviceIdType 
-
NewNotificationInfo

NewNotificationInfo beinhaltet die neue Benachrichtigungsadresse, die für den authentifizierten Nutzer gespeichert werden soll.
String
-

Fehlermeldungen 
Name
Fehlertext
Details
TECHNICAL_ERROR
Zufallszahl

SYNTAX_ERROR
Fehlerhafte Aufrufparameter
Es wurde ein fehlerhafter Aufrufparameter übergeben.
DEVICE_UNKNOWN
generierte phr:DeviceID::Device
Das vom Nutzer verwendete Gerät des Versicherten ist nicht bekannt und muss freigeschaltet werden.
ACCESS_DENIED
Zugriff verweigert
Die Operation ist mit den angegebenen Parametern nicht zulässig.

[<=]

6.2.4.12 Umsetzung I_Authorization_Management_Insurant::putNotificationInfo

Die folgenden Anforderungen beschreiben die Umsetzung der Operation I_Authorization_Management_Insurant::putNotificationInfo. Dabei gelten die übergreifenden Festlegungen zur Prüfung der Eingangsparameter.

A_14715-02 - Komponente Autorisierung Vers. - Aktualisierung Benachrichtigungsadresse

Die Komponente Autorisierung MUSS bei Aufruf der Operation I_Authorization_Management_Insurant::putNotificationInfo den Wert des Parameters NewNotificationInfo als Benachrichtigungsadresse des in der AuthenticationAssertion benannten Nutzers für den hinterlegten AuthorizationKey des Nutzers (subject-id der AuthenticationAssertion == ActorID des AuthorizationKey) speichern. [<=]

A_14716 - Komponente Autorisierung Vers. - E-Mail-Format

Die Komponente Autorisierung MUSS die Operation I_Authorization_Management_Insurant::putNotificationInfo mit dem Fehler SYNTAX_ERROR abbrechen, wenn der Parameter NewNotificationInfo nicht gemäß [RFC-5322] formatiert ist.
[<=]

Mit dieser Funktion kann ein Versicherter oder ein berechtigter Vertreter seine persönliche Benachrichtigungsadresse zur Gerätefreischaltung ändern. Sowohl für Versicherte als auch deren berechtigte Vertreter sind vor deren jeweiligem Zugriff Benachrichtigungsadressen vorhanden, da diese Operation ohne Gerätefreischaltung über ihre Adresse nicht aufrufbar ist.

Für Versicherte wird die Benachrichtigungsadresse initial im Rahmen der Kontoeröffnung hinterlegt. Für Vertreter erfolgt die initiale Hinterlegung der Benachrichtigungsadresse durch den Versicherten mittels I_Authorization_Management_Insurant::putAuthorizationKey während der Vergabe der Zugriffsberechtigung.

6.2.4.13 Operationsdefinition I_Authorization_Management_Insurant::getNotificationInfo

Mit dieser Operation kann ein Versicherter die Email-Adressen einsehen, die Nutzern zugeordnet sind, die über eine Zugriffsberechtigung für das Konto des Versicherten (Akteninhabers) verfügen, also die eigene Email-Adresse und die seiner Vertreter.

A_21250-01 - Komponente Autorisierung - I_Authorization_Management_Insurant::getNotificationInfo

Die Komponente Autorisierung MUSS die Operation 
I_Authorization_Management_Insurant::getNotificationInfo gemäß der folgenden Signatur implementieren:

Tabelle 18:  I_Authorization_Management_Insurant::getNotificationInfo - Definition

Operation
I_Authorization_Management_Insurant::getNotificationInfo
Beschreibung
Mit dieser Operation kann ein authentifizierter Versicherter die an seinem Konto hinterlegten Benachrichtigungskanal - Adressen  abfragen.
Formatvorgaben
Die Definition der Ein- und Ausgabeparameter erfolgt in [AuthorizationService.xsd].
Diejenigen Parameter, die im XSD-Schema optional gekennzeichnet, aber hier nicht aufgeführt sind, werden in der Operation an dieser Schnittstelle nicht verwendet.
Eingangsparameter
Name
Beschreibung
Typ
opt.
AuthenticationAssertion
Die AuthenticationAssertion ist eine von einem Identitiy Provider ausgestellte Authentifizierungsbestätigung für einen Nutzer (Akteninhaber).
SAML Assertion im SOAP-Header des Requests
-
RecordIdentifier Der RecordIdentifier referenziert ein konkretes Aktenkonto eines Versicherten bei einem Anbieter. Mit diesem wird der Datensatz der Autorisierung in der Komponente Autorisierung für den anfragenden Nutzer lokalisiert.  RecordIdentifierType  -
DeviceID Die DeviceID enthält die Gerätekennung eines vom Nutzer verwendeten Gerätes. DeviceIdType  -
ActorID
Identifikator des Nutzers (Vertreter oder Akteninhaber), dessen Benachrichtigungsadresse ausgegeben werden soll. Soll die Liste aller Benachrichtigungskanäle zurückgegeben werden, wird ActorID leer gelassen.
String 
ja
Ausgangsparameter
NotificationInfoList
NotificationInfoList beinhaltet die Benachrichtigungskanäle (ActorID und Benachrichtigungsadresse), die entweder zur angefragten ActorID oder aber im Aktenkonto insgesamt hinterlegt sind.
NotificationInfoListType
-
Fehlermeldungen 
Name
Fehlertext
Details
TECHNICAL_ERROR
Zufallszahl
SYNTAX_ERROR
Fehlerhafte Aufrufparameter
Es wurde ein fehlerhafter Aufrufparameter übergeben.
ACTOR_UNKNOWN
unbekannte ActorID
Die ActorID ist im angegebenen Aktenkonto nicht bekannt.
DEVICE_UNKNOWN generierte phr:DeviceID::Device Das vom Nutzer verwendete Gerät des Versicherten ist nicht bekannt und muss freigeschaltet werden.
ACCESS_DENIED
Zugriff verweigert
Die Operation ist mit den angegebenen Parametern nicht zulässig.

[<=]

6.2.4.14 Umsetzung I_Authorization_Management_Insurant::getNotificationInfo

Bei der Umsetzung der Operation I_Authorization_Management_Insurant::getNotificationInfo gelten die übergreifenden Festlegungen zur Prüfung der Eingangsparameter.

A_21722 - Komponente Autorisierung Vers. - Berechtigung für getNotificationInfo

Die Komponente Autorisierung MUSS bei Aufruf der Operation I_Authorization_Management_Insurant::getNotificationInfo prüfen, ob für den in der AuthenticationAssertion benannten User ein AuthorizationKey in der Keychain der mittels RecordIdentifier benannten Akte vorhanden ist und andernfalls die Operation mit ACCESS_DENIED abbrechen.  [<=]

A_21252-01 - Komponente Autorisierung – Abfrage Benachrichtigungsadresse

Die Komponente Autorisierung MUSS bei Aufruf der Operation I_Authorization_Management_Insurant::getNotificationInfo für das über RecordIdentifier referenzierte Aktenkonto entweder alle Benachrichtigungskanäle oder aber den im Parameter ActorID angefragten Benachrichtigungskanal zurück geben. Ist der in der AuthenticationAssertion benannte Nutzer nicht Eigentümer der Akte, also ein Vertreter, MUSS immer ausschließlich der Benachrichtigungskanal dieses Nutzers zurück gegeben werden. 
[<=]

6.2.4.15 Operationsdefinition I_Authorization_Management_Insurant::getKtrTelematikID

A_21559 - Komponente Autorisierung - I_Authorization_Management_Insurant::getKtrTelematikID

Die Komponente Autorisierung MUSS die Operation  I_Authorization_Management_Insurant::getKtrTelematikID
gemäß der folgenden Signatur implementieren:

Tabelle 19: I_Authorization_Management_Insurant::getAuthorizationList - Definition

Operation
I_Authorization_Management_Insurant::getKtrTelematikID
Beschreibung
Die Operation liefert die TelematikID des Kostenträgers, der das Kontos im Aktensystems anbietet.
Formatvorgaben
Die Definition der Ein- und Ausgabeparameter erfolgt in [AuthorizationService.xsd].
Diejenigen Parameter, die im XSD-Schema optional gekennzeichnet, aber hier nicht aufgeführt sind, werden in der Operation an dieser Schnittstelle nicht verwendet.
Eingangsparameter
Name
Beschreibung
Typ
opt.
AuthenticationAssertion
Die AuthenticationAssertion ist eine von einem Identitiy Provider ausgestellte Authentifizierungsbestätigung für einen Nutzer.
SAML Assertion im SOAP-Header des Requests
-
RecordIdentifier
Der RecordIdentifier referenziert ein konkretes Aktenkonto eines Versicherten bei einem Anbieter. Mit diesem wird der Datensatz der Autorisierung in der Komponente Autorisierung für den anfragenden Nutzer lokalisiert.
RecordIdentifierType
-
DeviceID
Die DeviceID enthält die Gerätekennung eines vom Nutzer verwendeten Gerätes.
DeviceIdType 
-
Ausgangsparameter
Name 
Beschreibung 
Typ 
opt. 
KtrTelematikID 
Telematik-ID des Kostenträgers, der das Aktenkonto anbietet.
String
-
Fehlermeldungen
Name
Fehlertext
Details
TECHNICAL_ERROR
Zufallszahl
DEVICE_UNKNOWN
generierte phr:DeviceID::Device
Das vom Nutzer verwendete Gerät des Versicherten ist nicht bekannt und muss freigeschaltet werden.
ACCESS_DENIED
Zugriff verweigert
Die Operation ist mit den angegebenen Parametern nicht zulässig.
[<=]

6.2.4.16 Umsetzung I_Authorization_Management_Insurant::getKtrTelematikID

A_21560 - Komponente Autorisierung Vers. - Berechtigung für getKtrTelematikID

Die Komponente Autorisierung MUSS bei Aufruf der Operation I_Authorization_Management_Insurant::getKtrTelematikID prüfen, ob für den in der AuthenticationAssertion benannten User ein AuthorizationKey in der Keychain der mittels RecordIdentifier benannten Akte vorhanden ist (subject-id == ActorID) und andernfalls die Operation mit ACCESS_DENIED abbrechen.  [<=]

6.2.4.17 Operationsdefinition I_Authorization_Management_Insurant::getAuthorizationList

A_17113-01 - Komponente Autorisierung - I_Authorization_Management_Insurant::getAuthorizationList

Die Komponente Autorisierung MUSS die Operation  I_Authorization_Management_Insurant::getAuthorizationList gemäß der folgenden Signatur implementieren:

Tabelle 20: I_Authorization_Management_Insurant::getAuthorizationList - Definition

Operation
I_Authorization_Management_Insurant::getAuthorizationList
Beschreibung
Die Operation liefert eine Liste aller AuthorizationKeys eines Kontos im Aktensystems, als Liste aller Berechtigten in einem Aktenkonto.
Formatvorgaben
Die Definition der Ein- und Ausgabeparameter erfolgt in [AuthorizationService.xsd].
Diejenigen Parameter, die im XSD-Schema optional gekennzeichnet, aber hier nicht aufgeführt sind, werden in der Operation an dieser Schnittstelle nicht verwendet.
Eingangsparameter
Name
Beschreibung
Typ
opt.
AuthenticationAssertion
Die AuthenticationAssertion ist eine von einem Identitiy Provider ausgestellte Authentifizierungsbestätigung für einen Nutzer.
SAML Assertion im SOAP-Header des Requests
-
RecordIdentifier
Der RecordIdentifier referenziert ein konkretes Aktenkonto eines Versicherten bei einem Anbieter. Mit diesem wird der Datensatz der Autorisierung in der Komponente Autorisierung für den anfragenden Nutzer lokalisiert.
RecordIdentifierType
-
DeviceID
Die DeviceID enthält die Gerätekennung eines vom Nutzer verwendeten Gerätes.
DeviceIdType 
-
Ausgangsparameter
Name 
Beschreibung 
Typ 
opt. 
AuthorizationKeyList 
Liste der AuthorizationKeys des per RecordIdentifier identifizierten Kontos.
AuthorizationKeyType[0..*]
-
Fehlermeldungen
Name
Fehlertext
Details
TECHNICAL_ERROR
Zufallszahl

DEVICE_UNKNOWN
generierte phr:DeviceID::Device
Das vom Nutzer verwendete Gerät des Versicherten ist nicht bekannt und muss freigeschaltet werden.
ACCESS_DENIED
Zugriff verweigert
Die Operation ist mit den angegebenen Parametern nicht zulässig.
[<=]

6.2.4.18 Umsetzung I_Authorization_Management_Insurant::getAuthorizationList

A_17115 - Komponente Autorisierung Vers. - Berechtigung für Berechtigungsliste

Die Komponente Autorisierung MUSS bei Aufruf der Operation I_Authorization_Management_Insurant::getAuthorizationList prüfen, ob für den in der AuthenticationAssertion benannten User ein AuthorizationKey in der Keychain der mittels RecordIdentifier benannten Akte vorhanden ist (subject-id == ActorID) und andernfalls die Operation mit ACCESS_DENIED abbrechen. 
[<=]

A_17114-01 - Komponente Autorisierung Vers. - Abfrage Berechtigungsliste

Die Komponente Autorisierung MUSS bei Aufruf der Operation I_Authorization_Management_Insurant::getAuthorizationList die Liste aller AuthorizationKey in der KeyChain der im RecordIdentifier benannten Akte mit Ausnahme des AuthorizationKey des Eigentümers der Akte (für alle zurückgegebenen AuthorizationKey MUSS gelten: ActorID != OwnerKVNR) in der folgenden Struktur zurückgeben


Die Elemente Ciphertext und AssociatedData innerhalb des Elements EncryptedKeyContainer MÜSSEN mit einem Leer-String belegt werden.
[<=]

6.2.4.19 Operationsdefinition I_Authorization_Management_Insurant::startKeyChange

A_20480-03 - Komponente Autorisierung - I_Authorization_Management_Insurant::startKeyChange

Die Komponente Autorisierung MUSS die Operation  I_Authorization_Management_Insurant::startKeyChange gemäß der folgenden Signatur implementieren:

Tabelle 21: Tab_Autorisierung - Operation I_Authorization_Management_Insurant::startKeyChange Definition

Operation I_Authorization_Management_Insurant::startKeyChange
Beschreibung Mit dieser Operation kann der Versicherte den Prozess der Umschlüsselung an der Komponente Autorisierung initiieren und die Autorisierungskomponente bis zur Beendigung der Verarbeitung sperren.
Formatvorgaben Die Definition der Ein- und Ausgabeparameter erfolgt in [AuthorizationService.xsd].
Diejenigen Parameter, die im XSD-Schema optional gekennzeichnet, aber hier nicht aufgeführt sind, werden in der Operation an dieser Schnittstelle nicht verwendet.
Eingangsparameter
 Name  Beschreibung Typ
opt.
AuthenticationAssertion Die AuthenticationAssertion ist eine von einem Identitiy Provider ausgestellte Authentifizierungsbestätigung für einen Nutzer. SAML Assertion im SOAP-Header des Requests -
RecordIdentifier Der RecordIdentifier referenziert ein konkretes Aktenkonto eines Versicherten bei einem Anbieter. Mit diesem wird der Datensatz der Autorisierung in der Komponente Autorisierung für den anfragenden Nutzer lokalisiert.  RecordIdentifierType -
Technische Fehlermeldungen 
Name Fehlertext Details
TECHNICAL_ERROR
Zufallszahl Interner Fehler in der Verarbeitungslogik
ASSERTION_INVALID Authentifizierungsbestätigung ungültig. Die Authentifizierungsbestätigung des aufrufenden Nutzers wird nicht akzeptiert.
ACCESS_DENIED Der Zugriff für diese Operation konnte nicht gewährt werden. Die Operation ist mit den angegebenen Parametern nicht zulässig.
[<=]

6.2.4.20 Umsetzung I_Authorization_Management_Insurant::startKeyChange

A_21670-01 - Komponente Autorisierung - Aufruf startKeyChange nur durch die Dokumentenverwaltung

Die Operation I_Authorization_Management_Insurant::startKeyChange DARF NICHT durch das FdV aufgerufen werden. Der Aufruf der Operation darf nur innerhalb des Aktensystems durch die Komponente Dokumentenverwaltung erfolgen.
Anmerkung:
Die Beschreibung der Operation ist als “logische” Definition zu verstehen. Die technische Umsetzung innerhalb des Aktensystems kann vom Hersteller frei gewählt (so das z.b. auch REST möglich ist). Die Operation verbleibt in der WSDL,  falls ein Hersteller diese nutzen möchte. Es besteht keine Pflicht die SOAP Schnittstellen zu implementieren. [<=]

Die folgenden Anforderungen beschreiben die Umsetzung der Operation I_Authorization_Management_Insurant::startKeyChange. Dabei gelten die übergreifenden Festlegungen zur Prüfung der Eingangsparameter.

A_20481-01 - Komponente Autorisierung - Prüfen Umschlüsselungsberechtigung startKeyChange

Die Komponente Autorisierung MUSS bei Aufruf der Operation I_Authorization_Management_Insurant::startKeyChange durch den Versicherten als Eigentümer der Akte (subject-id == ActorID des übergebenen AuthorizationKey == OwnerKVNR für den benannten RecordIdentifier) mit der Fehlermeldung ACCESS_DENIED abbrechen, wenn der unveränderliche Teil der KVNR des Versicherten in der übergebenen AuthenticationAssertion nicht übereinstimmt mit dem unveränderlichen Teil der KVNR des Versicherten im bereits gespeicherten AuthorizationKey.
[<=]

A_20482-03 - Komponente Autorisierung - Sperren für Autorisierungsoperationen

Die Komponente Autorisierung MUSS für den ersten berechtigten Aufruf von startKeyChange in einem Umschlüsselungsvorgang den RecordState der KeyChain auf den Zustand KEY_CHANGE setzen und Operationsaufrufe (ausgenommen checkRecordExists, putNotificationInfo, I_Authorization_Management::getAuthorizationList, getAuthorizationState, PutForReplacement, FinishKeyChange, getAuditEvents, getSignedAuditEvents, getKtrTelematikID, die Logische Operation getRecordProviderList und die Geräteverwaltungsschnittstellen) solange mit dem Fehler  KEY_LOCKED beantworten, bis die KeyChain nicht mehr auf dem Wert KEY_CHANGE steht. Ein Operationsaufruf von getAuthorizationKey darf nur durch den Versicherten selbst möglich sein und MUSS andernfalls mit dem Fehler ACCESS_DENIED beantwortet werden.

Tabelle 22 Tab_Autorisierung -Technische Fehlermeldung KEY_LOCKED

Name
Fehlertext Details
KEY_LOCKED Die Akte ist während des Schlüsselwechsels gesperrt Die Akte ist während des Schlüsselwechsels gesperrt
[<=]

A_20496 - Komponente Autorisierung - Umschlüsselung nur für aktive Aktenkonten

Die Komponente Autorisierung MUSS die Operation startKeyChange mit dem Fehler ACCESS_DENIED beenden, wenn sich das Aktenkonto des benannten Nutzers nicht im Zustand ACTIVATED befindet oder KeyChain sich bereits im Zustand KEY_CHANGE befindet. [<=]

6.2.4.21 Operationsdefinition I_Authorization_Management_Insurant::putForReplacement

A_20484-03 - Komponente Autorisierung - I_Authorization_Management_Insurant::putForReplacement

Die Komponente Autorisierung MUSS die Operation  I_Authorization_Management_Insurant::putForReplacement gemäß der folgenden Signatur implementieren:

Tabelle 23: Tab_Autorisierung - Operation I_Authorization_Management_Insurant::putForReplacement Definition

Operation I_Authorization_Management_Insurant::putForReplacement
Beschreibung Mit dieser Operation übergibt der Versicherte die für die Umschlüsselung an der Komponente Autorisierung erforderlichen verschlüsselten AuthorizationKeys, damit diese die bisher verwendeten AuthorizationKeys ersetzen können.
Formatvorgaben Die Definition der Ein- und Ausgabeparameter erfolgt in [AuthorizationService.xsd].
Diejenigen Parameter, die im XSD-Schema optional gekennzeichnet, aber hier nicht aufgeführt sind, werden in der Operation an dieser Schnittstelle nicht verwendet.
Eingangsparameter
 Name  Beschreibung Typ
opt.
AuthenticationAssertion Die AuthenticationAssertion ist eine von einem Identitiy Provider ausgestellte Authentifizierungsbestätigung für einen Nutzer. SAML Assertion im SOAP-Header des Requests -
RecordIdentifier Der RecordIdentifier referenziert ein konkretes Aktenkonto eines Versicherten bei einem Anbieter. Mit diesem wird der Datensatz der Autorisierung in der Komponente Autorisierung für den anfragenden Nutzer lokalisiert.  RecordIdentifierType -
DeviceID Die DeviceID enthält die Gerätekennung eines vom Nutzer verwendeten Gerätes. DeviceIdType -
AllEncryptedKeys Die Liste der neuen Autorisierungsschlüssel soll die bisherigen Schlüssel komplett ersetzen. AuthorizationKeyType[0..*] -
Technische Fehlermeldungen 
Name Fehlertext Details
TECHNICAL_ERROR
Zufallszahl Interner Fehler in der Verarbeitungslogik
ASSERTION_INVALID Authentifizierungsbestätigung ungültig Die Authentifizierungsbestätigung des aufrufenden Nutzers wird nicht akzeptiert.
DEVICE_UNKNOWN generierte phr:DeviceID::Device Das vom Nutzer verwendete Gerät des Versicherten ist nicht bekannt und muss freigeschaltet werden.
ACCESS_DENIED Der Zugriff für diese Operation konnte nicht gewährt werden. Die Operation ist mit den angegebenen Parametern nicht zulässig.
KEY_CORRUPT Schlüssel in AllEncryptedKeys sind korrupt Ein oder mehrere der übergebenen AuthorizationKeys lassen sich nicht verarbeiten.
[<=]

6.2.4.22 Umsetzung I_Authorization_Management_Insurant::putForReplacement

A_20493-01 - Komponente Autorisierung - Prüfen Umschlüsselungsberechtigung putForReplacement

Die Komponente Autorisierung MUSS für die Operation I_Authorization_Management_Insurant::putForReplacement durch den Versicherten als Eigentümer der Akte (subject-id == ActorID des übergebenen AuthorizationKey == OwnerKVNR für den benannten RecordIdentifier) mit der Fehlermeldung ACCESS_DENIED abbrechen, wenn der unveränderliche Teil der KVNR des Versicherten in der übergebenen AuthenticationAssertion nicht übereinstimmt mit dem unveränderlichen Teil der KVNR des Versicherten im bereits gespeicherten AuthorizationKey. Wenn die KEY_CHAIN sich nicht auf dem Wert KEY_CHANGE befindet, MUSS die Operation mit der Fehlermeldung ACCESS_DENIED abbrechen.
[<=]

A_20485 - Komponente Autorisierung - Markieren der bisherigen AuthorizationKeys als veraltet

Bei Aufruf der Operation putForReplacement MUSS die Komponente Autorisierung sämtliche bestehenden AuthorizationKeys des betroffenen Aktenkontos als veraltet markieren und in einem Zwischenspeicher von der Verwendung als produktives Schlüsselmaterial ausschließen. Die Zwischenspeicherung muss im Falle eines Rollbacks geeignet sein, das Schlüsselmaterial wieder vollständig als produktives Schlüsselmaterial herzustellen.  [<=]

A_20486 - Komponente Autorisierung - Einbringen des neuen Schlüsselmaterials als produktive Schlüssel

Die Komponente Autorisierung MUSS die in der Operation putForReplacement übergebene Liste AllEncryptedKeys (nach der Markierung der bisherigen AuthorizationKeys als veraltet) als produktive AuthorizationKeys in das betroffene Aktenkonto einbringen und benutzen.
[<=]

A_20488 - Komponente Autorisierung - Rollback bei Scheitern der Schlüsselersetzung

Die Komponente Autorisierung MUSS bei Scheitern des Einbringens neuen Schlüsselmaterials als produktive Schlüssel

  • den Fehler KEY_CORRUPT zurückgeben,
  • einen Rollback des alten Schlüsselmaterials aus dem Zwischenspeicher als produktives Schlüsselmaterial durchführen, und
  • anschließend am RecordState der KeyChain den Zustand KEY_CHANGE verlassen und stattdessen den Zustand ACTIVATED setzen.
[<=]

6.2.4.23 Operationsdefinition I_Authorization_Management_Insurant::finishKeyChange

A_20487-05 - Komponente Autorisierung - I_Authorization_Management_Insurant::finishKeyChange

Die Komponente Autorisierung MUSS die Operation  I_Authorization_Management_Insurant::finishKeyChange gemäß der folgenden Signatur implementieren:

Tabelle 24: Tab_Autorisierung - Operation I_Authorization_Management_Insurant::finishKeyChange Definition

Operation I_Authorization_Management_Insurant::finishKeyChange
Beschreibung Mit dieser Operation beendet der Versicherte die Umschlüsselung an der Komponente Autorisierung und hebt die Sperre der Autorisierungskomponente für anderweitige Autorisierungsaktivitäten auf.
Formatvorgaben Die Definition der Ein- und Ausgabeparameter erfolgt in [AuthorizationService.xsd].
Diejenigen Parameter, die im XSD-Schema optional gekennzeichnet, aber hier nicht aufgeführt sind, werden in der Operation an dieser Schnittstelle nicht verwendet.
Eingangsparameter
 Name  Beschreibung Typ
opt.
AuthenticationAssertion Die AuthenticationAssertion ist eine von einem Identitiy Provider ausgestellte Authentifizierungsbestätigung für einen Nutzer. SAML Assertion im SOAP-Header des Requests -
RecordIdentifier Der RecordIdentifier referenziert ein konkretes Aktenkonto eines Versicherten bei einem Anbieter. Mit diesem wird der Datensatz der Autorisierung in der Komponente Autorisierung für den anfragenden Nutzer lokalisiert.  RecordIdentifierType -
Success Der Erfolgszustand zeigt an, ob die Umschlüsselung erfolgreich abgeschlossen werden kann, oder ob ein Rollback des alten Schlüsselmaterials erforderlich ist. Boolean -
Technische Fehlermeldungen 
Name Fehlertext Details
TECHNICAL_ERROR
Zufallszahl Interner Fehler in der Verarbeitungslogik
ASSERTION_INVALID Authentifizierungsbestätigung ungültig Die Authentifizierungsbestätigung des aufrufenden Nutzers wird nicht akzeptiert.
ACCESS_DENIED Der Zugriff für diese Operation konnte nicht gewährt werden. Die Operation ist mit den angegebenen Parametern nicht zulässig.
[<=]

6.2.4.24 Umsetzung I_Authorization_Management_Insurant::finishKeyChange

A_21668-01 - Komponente Autorisierung - Aufruf finishKeyChange nur durch die Dokumentenverwaltung

Die Operation I_Authorization_Management_Insurant::finishKeyChange DARF NICHT durch das FdV aufgerufen werden. Der Aufruf der Operation darf nur innerhalb des Aktensystems durch die Komponente Dokumentenverwaltung erfolgen.
Anmerkung:
Die Beschreibung der Operation ist als “logische” Definition zu verstehen. Die technische Umsetzung innerhalb des Aktensystems kann vom Hersteller frei gewählt (so das z.b. auch REST möglich ist). Die Operation verbleibt in der WSDL,  falls ein Hersteller diese nutzen möchte. Es besteht keine Pflicht die SOAP Schnittstellen zu implementieren.
[<=]

A_20494-01 - Komponente Autorisierung - Prüfen Umschlüsselungsberechtigung finishKeyChange

Die Komponente Autorisierung MUSS für die Operation I_Authorization_Management_Insurant::finishKeyChange durch den Versicherten als Eigentümer der Akte (subject-id == ActorID des übergebenen AuthorizationKey == OwnerKVNR für den benannten RecordIdentifier) mit der Fehlermeldung ACCESS_DENIED abbrechen, wenn der unveränderliche Teil der KVNR des Versicherten in der übergebenen AuthenticationAssertion nicht übereinstimmt mit dem unveränderlichen Teil der KVNR des Versicherten im bereits gespeicherten AuthorizationKey. Wenn die KEY_CHAIN sich nicht auf dem Wert KEY_CHANGE befindet, MUSS die Operation mit der Fehlermeldung ACCESS_DENIED abbrechen. [<=]

A_20489 - Komponente Autorisierung - Erfolgreicher Abschluss der Umschlüsselung

Die Komponente Autorisierung MUSS bei Übergabe des Wertes true im Parameter Success am RecordState der KeyChain den Zustand KEY_CHANGE verlassen und stattdessen den Zustand ACTIVATED setzen. [<=]

A_20490 - Komponente Autorisierung - Rollback bei fehlgeschlagener Umschlüsselung

Die Komponente Autorisierung MUSS bei Übergabe des Wertes false im Parameter Success einen Rollback der als veraltet markierten AuthorizationKeys durchführen und am RecordState der KeyChain den Zustand KEY_CHANGE verlassen und stattdessen den Zustand ACTIVATED setzen. [<=]

A_21150 - Komponente Autorisierung - Protokollierungszusatz für Verwaltungsprotokolleintrag für Aufruf der Operation FinishKeyChange

Die Komponente Autorisierung MUSS im Falle des Aufrufs von FinishKeyChange bei der Protokollierung gemäß [gemSpec_DM_ePA#A_14505-*] einen Protokolleintrag (Event.code=PHR-482) hinzufügen und dabei den folgenden Parameter hinzufügen:

Tabelle 25: Tab_Autorisierung_43 - Zusätzliche Parameter des § 291a-Protokolls für ein Rollback im Rahmen der Umschlüsselung

Protokoll-parameter Parameterwerte gemäß aufgerufener Operation
ObjectDetail
Das Element ParticipantObjectDetail muss zusätzlich mit folgendem Wertepaar (type/value) belegt werden:
type value
Details Der Wert ist abhängig vom Aufrufparameter Success der Operation FinishKeyChange.
Success = 1:
"Umschlüsselung erfolgreich beenden"
Success = 0:
"Umschlüsselung abbrechen"
[<=]

6.2.4.25 Fehlerbehandlung I_Authorization_Management_Insurant

A_22401 - Komponente Autorisierung Vers. - Freischaltprüfung Vertreter an der Schnittstelle I_Authorization_Management_Insurant

Die Komponente Autorisierung MUSS bei Wahrnehmung einer Vertretung für einen Versicherten bei Aufrufen von Operationen an der Schnittstelle I_Authorization_Management_Insurant prüfen, ob ein wartender Vertreter-Freischaltprozess für [OwnerKVNR des benannten RecordIdentifiers, subject-id als ActorID] aktiv ist und falls ja, die Operation mit dem Fehler REPRESENTATIVE_PENDING abbrechen. [<=]

6.3 Berechtigungstypen der Autorisierung

Der Berechtigungstyp (AuthorizationType) steuert den Zugriff auf weitere Ressourcen für einen authentisierten Nutzer. Der Berechtigungstyp wird beim Hinzufügen des Schlüsselmaterials für einen Nutzer in der Autorisierungskomponente hinterlegt.

Es wird zwischen drei Typen unterschieden, die in der folgenden Tabelle beschrieben sind:

Tabelle 26: Berechtigungstypen für AuthorizationType

AuthorizationType
Beschreibung
DOCUMENT_AUTHORIZATION
(Dokumentenautorisierung)
Es wird für einen authentisierten Nutzer eine Autorisierungsbestätigung ausgestellt, die für den Zugang zur Dokumentenverwaltung notwendig ist.
ACCOUNT_AUTHORIZATION
(Betreiberwechselautorisierung)
Es wird dem authentisierten Nutzer eine Autorisierungsbestätigung ausgestellt, mit dem in der Komponente Dokumentenverwaltung nur ein eingeschränkter Zugriff  auf Daten des Versicherten möglich ist.

6.4 Hardware-Merkmal der Komponente Autorisierung

Es müssen die privaten Schlüssel der Ausstelleridentität für Autorisierungsbestätigungen sowie der TLS-Server-Identität sicher gespeichert werden.

A_14366 - Komponente Autorisierung - Verwendung eines HSM

Die Komponente Autorisierung MUSS das private Schlüsselmaterial der Ausstelleridentität C.FD.SIG und der TLS-Server-Identität C.FD.TLS-S in einem HSM speichern. [<=]

6.5 Geräteverwaltung

Die Komponente Autorisierung setzt zusätzlich zur kryptografischen Autorisierung eine Geräteautorisierung um. Dazu wird bei Zugriffen aus der Umgebung des Versicherten (über das Internet) geprüft, ob ein Versicherter bzw. berechtigter Vertreter ein bekanntes Gerät für den Zugriff nutzt. Ist das Gerät unbekannt, wird ein Freischaltprozess über einen separaten Benachrichtigungskanal gestartet. Die Erkennung erfolgt auf Basis einer im Gerät des Versicherten gebildeten DeviceID, welche in den Operationsaufrufen mitgeschickt werden muss. Die DeviceId als DeviceIdType gemäß [PHR_Common.xsd] enthält neben der eigentlichen Gerätekennung Device, welche für den Abgleich bekannter Geräte verwendet wird, einen DisplayName, der dem Nutzer die Verwaltung seiner genutzten Geräte erleichtert.

Die Umsetzung erfolgt in der Komponente Autorisierung, da eine vorgelagerte zustandslose Komponente der Authentifizierung von Nutzern, ggfs. nicht über einen Speicher zur Verwaltung von Gerätekennungen je Benutzerkonto verfügt bzw. dieser für diesen Zweck erst geschaffen werden müsste.

Die Prüfung auf ein autorisiertes Gerät erfolgt vor der Herausgabe des in der Komponente Autorisierung gespeicherten Schlüsselmaterials.

Für die Benachrichtigung mit anschließender Freischaltung werden E-Mails mit generierten URLs auf generierte HTML-Webseiten verwendet, da E-Mail aus Usability-Sicht am komfortabelsten erscheint und diese Methoden in verschiedensten Diensten im Internet etabliert und den Versicherten sehr wahrscheinlich bekannt sind.

6.5.1 Freischaltprozess neuer Geräte

Der Freischaltprozess dient dazu, ein Endgerät des Versicherten in der Komponente Autorisierung zu registrieren. Der folgende Ablauf zeigt informativ einen möglichen Ablauf des Freischaltprozesses.

Abbildung 4: Informativer Ablauf des Geräte-Freischaltprozesses

Die Komponente Autorisierung startet den Freischaltprozess für jedes über DeviceID::Device identifizierte Gerät, das für den AuthorizationKey eines per KVNR identifizierten Versicherten bzw. Vertreter zu einer genannten RecordID als unbekannt gilt. D.h. ein vom Vertreter im eigenen Aktenkonto verwendetes Gerät kann dort bereits registriert sein, im Rahmen der Vertretung eines anderen Versicherten kann das gleiche Gerät am Vertretungsschlüssel unbekannt sein. In diesem Fall ist der Freischaltprozess für die Wahrnehmung der Vertretung erforderlich.

Die Komponente Autorisierung generiert zu einem Freischaltprozess einen eindeutigen Link auf Basis von Zufallszahlen und verschickt ihn an die vom Nutzer hinterlegte Benachrichtigungs-E-Mail-Adresse. Durch Klicken auf diesen Link erhält der Versicherte bzw. Vertreter eine Webseite, mit der Bitte um Bestätigung der Freischaltung des genutzten Geräts. Nach Erhalt der Freischaltbestätigung fügt die Komponente Autorisierung das per DeviceID identifizierte Gerät zum AuthorizationKey des Versicherten bzw. Vertreters hinzu.

A_17866 - Komponente Autorisierung - Generierung Device-Kennung für unbekanntes Gerät des Versicherten

Die Komponente Autorisierung MUSS bei Aufruf einer Operation der Schnittstellen I_Authorization_Insurant und I_Authorization_Management_Insurant mit einem für den aufrufenden Nutzer im benannten RecordIdentifier unbekanntem Parameter phr:DeviceID::Device eine  256 Bit Zufallszahl (base64-kodiert) mit einer Mindestentropie von 120 Bit  und Erzeugung gemäß [gemSpec_Krypt#GS-A_4367] erzeugen, diese als phr:DeviceID::Device für den aufrufenden Nutzer im benannten RecordIdentifier konfigurieren und den Freischaltprozess gemäß  starten. [<=]

Mit der Generierung der Device-Kennung auf Basis einer Zufallszahl je Konto ergibt sich, dass die Verwendung eines Geräts in verschiedenen Konten (z.B. eigenes Konto + Vertretungsberechtigung in einem anderen Konto) zur Erzeugung zweier verschiedener Device-IDs führt, die im jeweiligen Aufrufkontext zu verwenden sind.

A_17947 - Komponente Autorisierung - Gültigkeitszeitraum und Löschung der Devicekennung

Die Komponente Autorisierung MUSS jede generierte und in einem Aktenkonto gespeicherte Device-Kennung phr:DeviceID::Device nach 2 Jahren löschen und darf Nutzeranfragen mit dieser Device-Kennung nach diesem Zeitpunkt nicht mehr akzeptieren.
[<=]

Daraus folgt, dass nach zwei Jahren eine Neuregistrierung des verwendeten Geräts erforderlich ist. Ein möglicher Zeitraum der Inaktivität des Geräts ist dabei irrelevant

A_14515 - Komponente Autorisierung - Freischaltprozess Freischalt-URL

Die Komponente Autorisierung MUSS im Freischaltprozess eine Freischalt-URL erzeugen, die einzig aus dem FQDN der Komponente Autorisierung und einer Zufallszahl (base64-kodiert) mit mindestens 120 Bit Entropie und Erzeugung gemäß [gemSpec_Krypt#GS-A_4367] besteht und diese Freischalt-URL an die E-Mail-Adresse am AuthorizationKey des via KVNR einer AuthenticationAssertion referenzierten Nutzers zum angefragten RecordIdentifier verschicken. [<=]

A_14518 - Komponente Autorisierung - Freischaltprozess Freischalt-URL Transportsicherheit

Die Komponente Autorisierung MUSS in der generierten Freischalt-URL das https-Protokoll verwenden.
[<=]

A_14520 - Komponente Autorisierung - Freischaltprozess Webseite zu Freischalt-URL

Die Komponente Autorisierung MUSS bei Aufruf einer generierten Freischalt-URL durch einen Versicherten bzw. Vertreter mit einer HTML-Seite mit folgendem Inhalt über den transportverschlüsselten Kanal der https-Freischalt-URL antworten:

  • DeviceID::DisplayName des freizuschaltenden Geräts
  • Zeitpunkt des Starts des Freischaltprozesses
  • RecordIdentifier
  • Bestätigungslink (submit) zur endgültigen Freischaltung des Geräts
[<=]

A_14521 - Komponente Autorisierung - Freischaltprozess DeviceID hinzufügen

Die Komponente Autorisierung MUSS bei Abruf des Bestätigungslinks eines aktiven Freischaltprozesses die generierte phr:DeviceID::Device  zum AuthorizationKey eines RecordIdentifiers des über KVNR einer AuthenticationAssertion identifizierten Versicherten bzw. Vertreters hinzufügen und den Freischaltprozess für den Vorgang zu DeviceID, KVNR und RecordIdentifier beenden.
[<=]

A_14522 - Komponente Autorisierung - Freischaltprozess beenden

Die Komponente Autorisierung MUSS den Vorgang eines Freischaltprozesses zu DeviceID, KVNR und RecordIdentifier nach 6 Stunden Wartezeit beenden. [<=]

A_14523 - Komponente Autorisierung - Freischaltprozess Löschen nach Beendigung

Die Komponente Autorisierung MUSS beim Beenden des Vorgangs eines Freischaltprozesses die generierte Freischalt-URL und alle dazugehörigen temporären Daten löschen. [<=]

6.5.2 Geräteadministration

Mit der Geräteadministration wird dem Nutzer die Möglichkeit gegeben, seine Endgeräte zu verwalten.

A_14364 - Komponente Autorisierung - Geräteverwaltung

Die Komponente Autorisierung MUSS dem authentifizierten Versicherten über eine Web-Schnittstelle folgende Funktionen zur Verfügung stellen:

  • Sperren von registrierten Geräten, so dass ein Zugriff über diese Geräte bis zur Entsperrung nicht möglich ist,
  • Entsperren von gesperrten Geräten, so dass ein Zugriff über diese Geräte möglich ist,
  • Deregistrieren von Geräten, so dass ein Zugriff über diese Geräte erst nach erneuter erfolgreicher Freischaltung möglich ist sowie
  • das Vergeben einer alternativen Bezeichnung für ein registriertes Gerät.
[<=]

A_15438 - Komponente Autorisierung - Keine negative Beeinflussung des Aktensystems durch die Geräteverwaltung

Die Komponente Autorisierung MUSS sicherstellen, dass das Web-Frontend zur Geräteverwaltung der Komponente Autorisierung so geschützt wird, dass keine negative Beeinflussung des Aktensystems über diese Schnittstelle möglich ist. [<=]

A_21709 - Komponente Autorisierung - Definition Schnittstelle Geräteverwaltung

Die Schnittstelle zur Geräteverwaltung ist als REST-Service definiert und als [DeviceManagement] veröffentlicht. Sie MUSS wie dort definiert umgesetzt werden. [<=]

A_21711 - Komponente Autorisierung - Verwaltung eigener Geräte in der Geräteverwaltung

Die Komponente Autorisierung MUSS sicherstellen, dass der jeweilige Nutzer (Versicherter, Vertreter) über die Schnittstelle zur Geräteverwaltung ausschließlich seine eigenen Geräte verwalten kann. [<=]

A_21712-01 - Komponente Autorisierung - Löschen der Informationen zur Geräteverwaltung für einen Vertreter

Die Komponente Autorisierung MUSS sicherstellen, dass beim Löschen einer Vertreterberechtigung auch die Daten zu den Geräten des Vertreters in der Geräteverwaltung gelöscht werden. [<=]

A_14595 - Komponente Autorisierung - Pflegeprozess Geräteverwaltung

Die Komponente Autorisierung MUSS die interne Liste aller bekannten Geräte derart pflegen, dass ein Gerät nach spätestens einem Jahr nach der letzten Nutzung des Gerätes automatisch aus der Liste der registrierten Geräte gelöscht wird, und bei anschließender Verwendung durch einen Versicherten als unbekanntes Gerät über den Freischaltprozess neu freizuschalten ist. [<=]

A_15551 - Komponente Autorisierung - Deregistrierung in fremden Konten

Die Komponente Autorisierung MUSS sicherstellen, dass der Versicherte nur diejenigen registrierten Geräte verwalten kann, die der Versicherte oder ein Vertreter in seinem Konto verwendet. Eine Deregistrierung eines Gerätes in einem Konto DARF NICHT automatisch zu einer Deregistrierung in einem anderen Konto führen (z.B. im Konto eines anderen Versicherten, für das der Versicherte Vertretungsrechte besitzt). [<=]

A_15755-01 - Komponente Autorisierung - Protokollierung Geräteverwaltung

Die Komponente Autorisierung MUSS alle Vorgänge der Geräteverwaltung im Verwaltungsprotokoll des Versicherten mit PHR-470 protokollieren. [<=]

6.6 Freischaltprozess Vertretereinrichtung

Die Komponente Autorisierung führt eine zusätzliche Autorisierung durch den Versicherten bei Einrichtung einer Vertretung für einen Vertreter durch. Der Versicherte wird aufgefordert, auf einen Link in einer E-Mail zu klicken, um die Speicherung eines AuthorizationKey für einen Vertreter zu autorisieren, den er über I_Authorization_Management_Insurant::putAuthorizationKey für diesen Vertreter hinterlegt. Die E-Mail mit dem Link zur Freischaltung wird an die E-Mail-Adresse des Versicherten geschickt, die auch für die Gerätefreischaltung des Versicherten verwendet wurde. Der folgende Ablauf zeigt informativ einen möglichen Ablauf des Freischaltprozesses.

Abbildung 5: Informativer Ablauf des Freischaltprozesses für Vertretung

Die Komponente Autorisierung startet den Freischaltprozess wenn der Versicherte mittels I_Authorization_Management_Insurant::putAuthorizationKey für einen konkreten mittels KVNR identifizierten Vertreter (als ActorID am AuthorizationKey) erstmalig eine Berechtigung hinterlegen möchte.  Die Operation wird zunächst erfolgreich abgeschlossen, sofern kein fachlicher oder technischer Fehler dies verhindert. Dem Vertreter wird der Zugriff auf diesen Schlüssel jedoch solange verwehrt, wie der Versicherte noch nicht auf einen Freischaltlink in einer generierten Freischalt-E-Mail klickt. Die Komponente Autorisierung generiert zum Freischaltprozess der Vertretung einen eindeutigen Link auf Basis von Zufallszahlen und verschickt ihn an die vom Versicherten hinterlegte Benachrichtigungs-E-Mail-Adresse.

Durch Klicken auf diesen Link signalisiert der Versicherte der Komponente Autorisierung, dass die Hinterlegung eines AuthorizationKey für die KVNR d.h. ActorID des Vertreters rechtmäßig ist. Die Komponente Autorisierung speichert diesen Freischaltzustand für die ActorID des Vertreters und teilt dem Versicherten über die mittels Freischaltlink abgerufene Webseite mit, dass der UseCase des Schlüsselabrufs mittels I_Authorization_Insurant::getAuthorizationKey durch den Vertreter nun autorisiert ist. Der Vertreter kann nun den hinterlegten Schlüssel abrufen und eine Vertretung wahrnehmen.

A_17672 - Komponente Autorisierung - Freischaltprozess Vertretung Freischalt-URL

Die Komponente Autorisierung MUSS im Freischaltprozess Vertretereinrichtung eine Freischalt-URL erzeugen, die einzig aus dem FQDN der Komponente Autorisierung und einer Zufallszahl (base64-kodiert) mit mindestens 120 Bit Entropie und Erzeugung gemäß [gemSpec_Krypt#GS-A_4367] besteht und diese Freischalt-URL an die E-Mail-Adresse des via OwnerKVNR referenzierten Versicherten verschicken.

[<=]

A_17673 - Komponente Autorisierung - Freischaltprozess Vertretung Freischalt-URL Transportsicherheit

Die Komponente Autorisierung MUSS in der generierten Freischalt-URL das https-Protokoll verwenden.

[<=]

A_17674 - Komponente Autorisierung - Freischaltprozess Vertretung getAuthorizationKey erlauben

Die Komponente Autorisierung MUSS bei Abruf des Bestätigungslinks eines aktiven Freischaltprozesses zur OwnerKVNR und ActorId des zukünftigen Vertreters die Operation  I_Authorization_Insurant::getAuthorizationKey für das Abrufen eines AuthorizationKey durch den Vertreter (ActorId = KVNR des zukünftigen Vertreters) erlauben und den Freischaltprozess für den Vorgang zu OwnerKVNR und ActorID beenden.
[<=]

Damit wird die Operation I_Authorization_Insurant::getAuthorizationKey bei zukünftigen Aufrufen durch den Vertreter für die freigeschaltete ActorID nicht mehr mit Fehler REPRESENTATIVE_PENDING abgebrochen.

A_17677 - Komponente Autorisierung - Freischaltprozess Vertretung Information

Die Komponente Autorisierung KANN in der HTTP-Response zum URL-Aufruf der Vertreterfreischaltung eine Meldung über die erfolgreiche Freischaltung an den aufrufenden Versicherten zurückgeben.
[<=]

A_17675 - Komponente Autorisierung - Freischaltprozess Vertretung beenden

Die Komponente Autorisierung MUSS den Vorgang eines Freischaltprozesses Vertretung zur OwnerKVNR und ActorID nach 6 Stunden Wartezeit beenden.

[<=]

A_17676 - Komponente Autorisierung - Freischaltprozess Vertretung Löschen nach Beendigung

Die Komponente Autorisierung MUSS beim Beenden des Vorgangs eines Freischaltprozesses die generierte Freischalt-URL und alle dazugehörigen temporären Daten löschen.

[<=]

6.7 Authentisierung der Forschungsdatenfreigabe

Die Komponente Autorisierung erstellt für ePA-FdV zwei unterschiedliche Transporttoken (JSON Web Token- JWT) zur Verwendung als Herkunftsnachweis. Eines zur Verwendung bei der Übermittelung von Daten an das Forschungsdatenzentrum und eines für die Vertrauensstelle. Die Ausstellung der Transporttoken erfolgt ausschließlich für autorisierte Nutzer.

Diese Transporttoken werden gleichzeitig durch einen Operationsaufruf der Schnittstelle der Komponente
Autorisierung als signierte JWT erstellt. Beide Token beinhalten die gleichen und wertidentischen Angaben, das Token
für die Vertrauensstelle zusätzlich das Lieferpseudonym LP.

Das Lieferpseudonym ist gemäß den Vorgaben der Vertrauensstelle zu bilden. Das notwendige Zertifikat der
Vertrauensstelle bezieht die Komponente Autorisierung eigenständig über den Downloadpunkt der Vertrauensstelle.

A_22700 - Komponente Autorisierung: Sicherer Download des Verschlüsselungszertifikats der Vertrauensstelle

Die Komponente Autorisierung MUSS täglich das Verschlüsselungszertifikat der Vertrauensstelle über eine vertrauliche und integritätsgeschützte Verbindung herunterladen und dabei den Server der Vertrauensstelle authentifizieren.                        [<=]

A_22701-01 - Komponente Autorisierung: Prüfung des Verschlüsselungszertifikats der Vertrauensstelle

Die Komponente Autorisierung MUSS die Gültigkeit des Verschlüsselungszertifikat der Vertrauensstelle gemäß [gemSpec_PKI#TUC_PKI_018] (OCSP-Graceperiod=4h, PolicyList enthält oid_epa_vst) prüfen.
[<=]

A_21832 - Komponente Autorisierung: Realisierung der Schnittstelle zur Erstellung der Transporttoken

Die Komponente Autorisierung MUSS die REST-Schnittstelle zur Erstellung der Transporttoken für ein ePA-FdV gemäß [I_Authorization_Token_Service] anbieten. [<=]

A_22696 - Komponente Autorisierung: Erstellung des Lieferpseudonyms

Die Komponente Autorisierung MUSS das Lieferpseudonym des Versicherten gemäß [I_VST] unter Verwendung der KVNR des Versicherten erstellen und im Transporttoken der Vertrauensstelle verwenden. [<=]

A_22697 - Komponente Autorisierung: Erstellung der Arbeitsnummer

Die Komponente Autorisierung MUSS für die Arbeitsnummer einen Zufallswert mit einer Mindestentropie von 120 Bit erzeugen und die Kodierung aus [I_VST] verwenden. [<=]

A_21799 - Komponente Autorisierung: Verwendungsdauer der Arbeitsnummer

Die Komponente Autorisierung MUSS bei jedem Aufruf der Operation getTransportToken der Schnittstelle [I_Authorization_Token_Service] eine neue Arbeitsnummer erzeugen und in den zurückgelieferten Transporttoken verwenden. [<=]

A_21892 - Komponente Autorisierung: Ausstellungszeitpunkt der Transporttoken

Die Komponente Autorisierung MUSS den Ausstellungszeitpunkt (Issued at "iat") in den Transporttoken setzen. Dieser Ausstellungszeitpunkt MUSS in allen bei einem Operationsaufruf erzeugten Transporttoken gleich sein. [<=]

A_21893 - Komponente Autorisierung: Gültigkeitsdauer der Transporttoken

Die Komponente Autorisierung MUSS den Zeitpunkt des Ablaufs der Gültigkeit (Expiration Time "exp") in den Transporttoken setzen. Dieser Wert MUSS auf den Wert "Ausstellungszeitpunkt " plus 24 Stunden gesetzt werden. Der Zeitpunkt des Ablaufs der Gültigkeit MUSS in allen bei einem Operationsaufruf erzeugten Transporttoken gleich sein. [<=]

A_22575 - Komponente Autorisierung: Signatur der Transporttoken

Die Komponente Autorisierung MUSS die Transporttoken jeweils mit der Identität ID.FD.SIG der Autorisierung signieren. Das Zertifikat zu ID.FD.SIG muss in beiden Token enthalten sein ("x5c"). [<=]

A_21821-01 - Komponente Autorisierung: Erstellung der Transporttoken

Die Komponente Autorisierung MUSS die Transporttoken als JSON-Web-Token gemäß [rfc7519] und [rfc7515] wie in [I_VST] definiert mit den folgenden Eigenschaften erstellen.


Transporttoken VST Claim Name Claim Hinweis
Protected Header
"typ" "JWT"
"alg" "ES256"
"x5c" Signaturzertifikat ID.FD.SIG
Payload
"iss" "https://authorization.gematik.de"
"iat" Zeitstempel Ausgabezeitpunkt siehe A_21892
"exp" Zeitstempel Verfallzeitpunkt siehe A_21893
"wn" Arbeitsnummer (working number) gemäß A_21796
"dp" Lieferpseudonym (delivery pseudonym) gemäß A_22696


Transporttoken FDZ Claim Name Claim Hinweis
Protected Header
"typ" "JWT"
"alg" "ES256"
"x5c" Signaturzertifikat ID.FD.SIG
Payload
"iss" "https://authorization.gematik.de"
"iat" Zeitstempel Ausgabezeitpunkt siehe A_21892
"exp" Zeitstempel Verfallzeitpunkt siehe A_21893
"wn" Arbeitsnummer (working number) gemäß A_21796

Das Signaturzertifikat zu "x5c" basiert auf der Kurve "brainpoolP256r1". Der Wert "ES256" des Parameters "alg" gilt im Kontext der Transporttoken auch für diese Kurve. [<=]

7 Informationsmodell

Das folgende Informationsmodell der Autorisierung gibt eine Übersicht über die verwendeten Objekte mit ihren Eigenschaften und Beziehungen zueinander.

Abbildung 6: Informationsmodell der intern verwalteten Daten

Das blau dargestellte Element bildet den verwalteten AuthorizationKey, der vom Versicherten für jeden berechtigten Nutzer in der Komponente Autorisierung hinterlegt wird, das Element EncryptedKeyContainer enthält dabei das mit dem Empfängerschlüssel individuell verschlüsselte Schlüsselmaterial der Akte (Akten- und Kontextschlüssel). Die Summe aller AuthorizationKeys zu einem über den RecordIdentifier identifizierten Konto eines über die OwnerKVNR identifizierten Versicherten bildet das logische Element des "Schlüsselrings" KeyChain. Zu einem über ActorID identifizierten Nutzer wird eine Liste autorisierter Geräte (grün dargestellt) geführt, die bei Zugriffen aus der Umgebung des Versicherten die Zulässigkeit des genutzten Geräts prüfen lässt. Für den Fall eines unbekannten und somit nicht in der Liste zulässiger Geräte enthaltenen Geräts wird ein Freischaltprozess über einen Benachrichtigungskanal gestartet. Die Zuordnung der Benachrichtigungsadressen zum jeweiligen Nutzer ist im Bild gelb dargestellt.

Für Versicherte und deren Vertreter wird der unveränderliche Teil der KVNR (VersichertenID) der eGK als ActorID verwendet. Für den Versicherten wird genau diese ID auch als OwnerKVNR genutzt, um den jeweiligen Versicherten als Eigentümer einer Akte zu identifizieren. Für Leistungserbringerinstitutionen und Kostenträger wird die Telematik-ID als ActorID verwendet. Für Leistungserbringerinstitutionen sowie für die Kostenträger wird keine Liste autorisierter Geräte und keine Liste von Benachrichtigungskanälen geführt. Die Eigenschaft validTo bezeichnet ein Gültigkeitsende-Datum, nach welchem (darauffolgender Tag) ein AuthorizationKey systemseitig automatisch gelöscht wird. Für den Versicherten als Eigentümer der Akte wird ein technisches Ende-Datum gleichbedeutend mit "unendlich" automatisch gesetzt. Für alle anderen AuthorizationKeys wird das Datum clientseitig belegt und definiert das Ende der vom Versicherten vergebenen Berechtigung. Mit dem optionalen Displayname je AuthorizationKey kann vom Versicherten ein lesbarer Name für eine Berechtigung vergeben werden, auf LE-Seite und den Abruf durch Kostenträger wird das Feld vollständig ignoriert.

Mittels der Angabe des RecordIdentifiers und der ActorID (Telematik-ID/KVNR) kann der zugehörige AuthorizationKey eines Berechtigten gefunden werden. Der AuthorizationKey enthält eine Liste verschlüsselter Akten- und Kontextschlüssel.

Das Element AUT-Referenz speichert in einer Liste die serialNumber der zur Authentisierung durch Versicherte in einer Akte verwendeten AUT- bzw. AUT_ALT-Zertifikate. Über diese Liste wird die Verwendung einer bisher unbekannten kryptografischen Identität erkannt und der Versicherte bzw. der Vertreter über den Benachrichtigungskanal informiert.

7.1 Namensräume

Für die Schnittstellen der Komponente Autorisierung werden die in der folgenden Tabelle definierten XML-Präfixe verwendet, um den Namensraum des XML-Dokumentes zu beschreiben.

Tabelle 27: Namensräume

Präfix
Namensraum
xmlns:phrs
http://ws.gematik.de/fd/phrs/AuthorizationService/v1.1
xmlns:SAML
urn:oasis:names:tc:SAML:2.0:assertion
xmlns:ds
http://www.w3.org/2000/09/xmldsig#
xmlns:xenc
http://www.w3.org/2001/04/xmlenc# 

7.2 SAML-Profil und Tokeninhalte

In diesem Abschnitt werden die Inhalte der auszustellenden AuthorizationAssertion festgelegt. Eine AuthorizationAssertion wird für einen mittels AuthenticationAssertion authentifizierten Nutzer ausgestellt. Aus dessen AuthenticationAssertion werden identifizierende Attribute in die AuthorizationAssertion übernommen.

A_14491-05 - Komponente Autorisierung - Inhalte AuthorizationAssertion

Die Komponente Autorisierung MUSS Autorisierungsbestätigungen als SAML2-Assertion gemäß den Festlegungen der folgenden Tabelle ausstellen:

Tabelle 28: Inhalte Autorisierungsbestätigung

Assertion Element
Usage Convention
Beschreibung
Issuer
[FQDN des authz Service der TI]
Aussteller des Tokens
Signature
[nonQES-Signatur des SAML-Tokens]
nonQES-Signatur des SAML-Tokens gemäß [SAML 2.0], die mit dem privaten Schlüssel der Ausstelleridentität C.FD.SIG der Komponente Autorisierung gemäß [ gemSpec_Krypt#A_17206] erstellt wird.
Das Element ds:Signature/ds:KeyInfo/ds:X509
Data/ds:X509Certificate muss das zugehörige C.FD.SIG Zertifikat enthalten
Subject



NameID
[SubjectDN der SMC-B] oder [SubjectDN der eGK]
wird übernommen aus der übergebenen AuthenticationAssertion

SubjectConfirmation 




@Method
urn:oasis:names:tc:SAML:2.0:cm:bearer
Protokoll zur Authentisierung
Conditions



@NotBefore
[Systemzeit der Komponente Autorisierung]
Zeitpunkt, ab wann die Assertion nutzbar ist.

@NotOnOrAfter
[Systemzeit der Komponente Autorisierung + 15 Minuten]
Zeitpunkt, zu dem die Gültigkeit der Assertion endet.

AudienceRestriction

Liste der Server, für die das Token ausgestellt wird.


 Audience
 [FQDN des ePA-Aktensystems gemäß gemSpec_Aktensystem Kapitel  ]
Empfänger des Tokens
AuthnStatement



@AuthnInstant
[Systemzeit der Komponente Autorisierung]
Systemzeitpunkt bei Erstellung des Tokens
Hinweis: UTC

AuthnContext
@ AuthnContextClassRef [Art der Authentifizierung] wird übernommen aus der übergebenen AuthenticationAssertion
AuthzDecisionStatement



@Resource
[Telematik-ID] oder [10-stelliger, unveränderlicher Teil der KVNR]
wird übernommen aus der AuthenticationAssertion
Hinweis: Informationen und Beispiele zur AuthenticationAssertion finden sich in A_14927, A_15638 und A_18985-*


@Decision
Permit


Action
[AuthorizationType]
String gemäß der Autorisierungsentscheidung über den authentifizierten Nutzer


@Namespace
"http://ws.gematik.de/fa/phr/v1.0"

AttributeStatement



Attribute





@Name
Resource ID
"urn:oasis:names:tc:xacml:1.0:resource:resource-id"



AttributeValue
[RecordIdentifier]
RecordIdentifier der Akte, für die eine Autorisierungsbestätigung für den Nutzer ausgestellt wird.

Attribute




@Name
Gerätekennung 
"urn:gematik:fa:phr:1.0:device:device-id"

Nur bei mittels ActorID authentifizierten Versicherten, bei Abruf durch Leistungserbringer und Kostenträger entfällt dieses Attribut.


AttributeValue
[DeviceID::Device]
Die DeviceID::Device ist über die ActorID des AuthorizationKey referenziert, der über die KVNR des Versicherten einer übergebenen AuthenticationAssertion gefunden wird.

Attribute




@Name
Zustand des Kontos
"urn:gematik:fa:phr:1.0:status:status-id"



AttributeValue
[RecordState]
Wert der Eigenschaft RecordState der KeyChain des via RecordIdentifier benannten Kontos.

Attribute




@Name
VersichertenID

"urn:gematik:subject:subject-id"
oder
Telematik-ID

"urn:gematik:subject:organization-id"
Benutzerkennung für den die AuthorizationAssertion ausgestellt wird.


AttributeValue
[Telematik-ID] oder [10-stelliger, unveränderlicher Teil der KVNR]
wird übernommen aus der AuthenticationAssertion

[<=]

8 Verteilungssicht

Eine Darstellung der hardwareseitigen Verteilung des Produkttyps bzw. seiner Teilsysteme und der Einbettung in die physikalische Umgebung wird nicht benötigt.

9 Anhang A – Verzeichnisse

9.1 Abkürzungen

Kürzel
Erläuterung
DiGA Digitale Gesundheitsanwendung
SAML
Security Assertion Markup Language
WS
Web Services
PKCS
Public-Key Cryptography Standards
ePA-FdV
ePA-Frontend des Versicherten, welches das das ePA-Modul FdV inkludiert
IHE
Integrating the Healthcare Enterprise
WSDL
Web Services Description Language
KVNR
Krankenversichertennummer

9.2 Glossar

Begriff
Erläuterung
HSM
Hardware Security Module, Gerät zur sicheren Speicherung kryptografischen Schlüsselmaterials
ePA-Modul FdV Modul der dezentralen ePA-Fachlogik zur Nutzung durch den Versicherten in einem ePA-Frontend des Versicherten

Das Glossar wird als eigenständiges Dokument (vgl. [gemGlossar]) zur Verfügung gestellt.

9.3 Abbildungsverzeichnis

9.4 Tabellenverzeichnis

9.5 Referenzierte Dokumente

9.5.1 Dokumente der gematik

Die nachfolgende Tabelle enthält die Bezeichnung der in dem vorliegenden Dokument referenzierten Dokumente der gematik zur Telematikinfrastruktur. Der mit der vorliegenden Version korrelierende Entwicklungsstand dieser Konzepte und Spezifikationen wird pro Release in einer Dokumentenlandkarte definiert. Version und Stand der referenzierten Dokumente sind daher in der nachfolgenden Tabelle nicht aufgeführt. Deren zu diesem Dokument jeweils gültige Versionsnummer ist in der aktuellen, von der gematik veröffentlichten Dokumentenlandkarte enthalten, in der die vorliegende Version aufgeführt wird.

Tabelle 29: Referenzierte Dokumente der gematik

[Quelle]
Herausgeber: Titel
[gemGlossar]
Glossar der Telematikinfrastruktur
[gemSysL_ePA]
Systemspezifisches Konzept ePA
[AuthorizationService.wsdl]
Schnittstellendefinition Komponente Autorisierung
(src/schema/fd/phr/AuthorizationService.wsdl), https://github.com/gematik/api-ePA 

[AuthorizationService.xsd]
Schemadefinition der Schnittstellen der Komponente Autorisierung
(src/schema/fd/phr/AuthorizationService.xsd), https://github.com/gematik/api-ePA

[TelematikError.xsd]
Schemadefinition Fehlermeldungen TelematikError
(src/schema/tel/error/TelematikError.xsd), https://github.com/gematik/api-ePA

[PHR_Common.xsd]
Schemadefinition für übergreifende ePA-Datentypen
(src/schema/fd/phr/PHR_Common.xsd), https://github.com/gematik/api-ePA

[gemKPT_Arch_TIP]
Konzept Architektur der TI-Plattform
[gemSpec_Perf]
Spezifikation Performancevorgaben und Mengengerüst
[gemSpec_Krypt]
Spezifikation der in der TI zulässigen kryptografischen Verfahren
[gemSpec_OID]
Spezifikation Festlegung von OIDs
[gemSpec_OM]
Spezifikation Operation und Maintenance
[gemSpec_PKI]
Übergreifende Spezifikation PKI
[gemSpec_TB_Auth]
Übergreifende Spezifikation Tokenbasierte Authentisierung
[gemSpec_TSL]
Spezifikation der Schnittstelle des TSL-Dienstes
[DeviceManagement] Schnittstelle zur Geräteverwaltung
(src/openapi/device_management.yaml), https://github.com/gematik/api-ePA 
[I_Authorization_Token_Service] gematik: I_Authorization_Insurant.yaml
REST-Schnittstelle zur Ausstellung der Transporttoken für die Freigabe von Dokumenten für Forschungszwecke,  Version 1.0.0
GitHub: https://github.com/gematik/api-ePA  
Path: src/openapi

9.5.2 Weitere Dokumente

Tabelle 30: Referenzierte externe Dokumente

[Quelle]
Herausgeber (Erscheinungsdatum): Titel
[I_FDZ] "Forschungsdatenzentrum - Schnittstellenkonzept zur Datenfreigabe ePA",
Bundesamt für Arzneimittel und Medizinprodukte
Version 1.0,
xxx.04.2022  
[I_VST] "Vertrauensstelle DATRAV
Pseudonymisierungskonzept zur
Datenübertragung im Rahmen der
Datenfreigabe aus der elektronischen
Patientenakte (ePA Lieferpseudonym)"
Robert Koch-Institut
Version 1.5
14.04.2022
  
[SAML2.0]
Assertions and Protocols for the OASIS Security Assertion Markup Language (SAML) V2.0
http://docs.oasis-open.org/security/saml/v2.0/
[SOAP]
W3C (2007): SOAP Version 1.2 Part 1: Messaging Framework (Second Edition),  https://www.w3.org/TR/soap12-part1/ 
[WSDL]
W3C: Web Services Description Language (WSDL) 1.1
https://www.w3.org/TR/wsdl.html 
[WSDL11SOAP12]
W3C (2006): WSDL 1.1 Binding Extension for SOAP 1.2,  https://www.w3.org/Submission/wsdl11soap12/ 
[WSIBP]
Web-Services Interoperability Consortium (2010): WS-I Basic Profile V2.0 (final material),
http://ws-i.org/Profiles/BasicProfile-2.0-2010-11-09.html
[WS-Trust1.4]
WS-Trust 1.4
http://docs.oasis-open.org/ws-sx/ws-trust/v1.4/errata01/os/ws-trust-1.4-errata01-os-complete.pdf
[WSS]
OASIS (2006): Web Services Security: SOAP Message Security 1.1 (WS-Security 2004),  http://www.oasis-open.org/committees/download.php/16790/wss-v1.1-spec-os-SOAPMessageSecurity.pdf 
[WSS-SAML]
OASIS (2006): Web Services Security: SAML Token Profile 1.1,  https://www.oasis-open.org/committees/download.php/16768/wss-v1.1-spec-os-SAMLTokenProfile.pdf 
[XSPA]
OASIS:  Cross-Enterprise Security and Privacy Authorization (XSPA) Profile of Security Assertion Markup Language (SAML) for Healthcare Version 2.0
http://docs.oasis-open.org/xspa/saml-xspa/v2.0/saml-xspa-v2.0.html 
[SGB V]
BGBl. I S.2477 (20.12.1988):
Sozialgesetzbuch, Fünftes Buch
Zuletzt geändert durch Art. 4 G v. 14.4.2010 I 410
Gesetzliche Krankenversicherung

[RFC-5322]
Internet Message Format - Format für E-Mail-Adressen
https://datatracker.ietf.org/doc/html/rfc5322 
[RFC5280]
Internet X.509 Public Key Infrastructure Certificate, Prüfung von Zertifikaten entlang einer Zertifikatskette (inkl. Cross-Zertifikaten) bis zu einem Vertrauensanker (Root-CA)
https://datatracker.ietf.org/doc/html/rfc5280 
[rfc7515] IETF (Mai 2015): JSON Web Signature (JWS), RFC 7515
https://datatracker.ietf.org/doc/html/rfc7515 
[rfc7519] IETF (Mai 2015): JSON Web Token (JWT)",  RFC 7519
https://datatracker.ietf.org/doc/html/rfc7519