latest






Elektronische Gesundheitskarte und Telematikinfrastruktur




Spezifikation Authentisierung des Versicherten ePA




    
Version 1.6.0
Revision 930337
Stand 25.07.2022
Status freigegeben
Klassifizierung öffentlich
Referenzierung gemSpec_Authentisierung_Vers

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
gematik
1.1.0
15.05.19

Einarbeitung Änderungsliste P18.1
gematik
1.2.0 02.03.20 Einarbeitung Änderungsliste P21.1 gematik
1.2.1 26.05.20 Einarbeitung Änderungsliste P21.3 gematik
Einarbeitung offener Punkte für Release 4.0.0
1.3.0. 30.06.20 freigegeben
gematik
1.4.0 19.02.21 Einarbeitung Änderungsliste P22.5 gematik
1.4.1 02.06.21 Einarbeitung Änderungsliste ePA_Maintenance_21.1 gematik
1.5.0 31.01.22 Einarbeitung Änderungsliste ePA_Maintenance_21.4 und ePA_Maintenance_21.5 gematik
1.5.1 31.03.22 Einarbeitung Änderungsliste ePA_Maintenance_22.1  gematik
1.6.0 25.07.22 Änderungsliste ePA_Maintenance_22.2, redaktionell: diskriminierungsfreie Sprache (Black-/Whitelist) gematik

Inhaltsverzeichnis

1 Einordnung des Dokumentes

1.1 Zielsetzung

Die vorliegende Spezifikation definiert die Anforderungen an die Teilkomponente "Authentisierung Versicherter" der Komponente "Zugangsgateway" (s.a. [gemSpec_Zugangsgateway_Vers]) des Produkttyps ePA-Aktensystem (s.a. [gemSpec_Aktensystem]).

Die Teilkomponente "Authentisierung Versicherter" ist zuständig für die Authentisierung von Versicherten und deren Vertretern innerhalb der Fachanwendung ePA (s.a. [gemSysL_ePA]).

1.2 Zielgruppe

Das Dokument ist maßgeblich für Anbieter und Hersteller des Produkttyps ePA-Aktensystem sowie für Anbieter und Hersteller von Produkten, die die Schnittstellen der Teilkomponente "Authentisierung Versicherter" 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) fest­gelegt 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 dem Produkttyp 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 Kapitel 8.5).

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.

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.

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 Systemkontext

Die Teilkomponente "Authentisierung Versicherter" der Komponente "Zugangsgateway" des ePA-Aktensystems ist Teil des Produkttyps ePA. Der Systemüberblick ist in [gemSysL_ePA] dargestellt.

Von der dezentralen Fachlogik im "ePA-Frontend des Versicherten" und dem Fachmodul ePA wird die Komponente verwendet, um die Authentifizierung von Versicherten und deren berechtigten Vertretern zu bestätigen.

Auf Anwendungsebene findet dabei ein Dialog zwischen aufrufendem Client (C) und der Komponente "Authentisierung Versicherter" (S) statt:

  • C fordert S auf, einen Authentisierungs-Token zu erstellen.
  • S antwortet C mit der Aufforderung (Challenge), eine Zufallszahl zu signieren, um sicherzustellen, dass die nachfolgende Authentisierungsnachricht frisch erzeugt wird.
  • C antwortet auf die Challenge mit einer Signatur für die Zufallszahl aus der Challenge. Die Signatur erzeugt er mittels der Authentisierungsidentität ID.CH.AUT der eGK oder der alternativen Versichertenidentität ID.CH.AUT_ALT.  
  • S authentifiziert C durch Prüfung der Signatur.
    S stellt eine Authentifizierungsbestätigung aus und sendet sie an C.

Um Prüfungen durchzuführen, greift die Komponente auf Dienste der TI-Plattform zentral zurück.

3 Zerlegung der Komponente

Eine weitere Untergliederung der Aufbaustruktur der Komponente ist nicht erforderlich.

4 Übergreifende Festlegungen

Die Komponente "Authentisierung Versicherter" stellt eine X-User Assertion (XUA) gemäß [IHE#ITI-40] aus.

4.1 Datenschutz und Datensicherheit

A_14773 - Komponente Authentisierung Versicherter - Authentisierungsschlüssel

Die Komponente "Authentisierung Versicherter" MUSS die erstellten Authentifizierungsbestätigungen mit dem privaten Schlüssel der Ausstelleridentität ID.FD.SIG signieren. Das zugehörige Zertifikat C.FD.SIG MUSS die Rolle "oid_epa_authn" enthalten. [<=]

Hinweis: Da die Identität ID.FD.SIG nur durch das Aktensystem selbst verwendet wird ist dafür die Schlüsselgeneration ECDSA zu verwenden (s. [gemSpec_Krypt]).

A_15091 - Komponente Authentisierung Versicherter - Verwendung eines HSM

Die Komponente "Authentisierung Versicherter" 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. [<=]

Zur Absicherung der Schnittstelle muss der Transport der SOAP-Nachrichten mittels HTTPS erfolgen. Dabei sind die Vorgaben zu TLS gem. [gemSpec_Krypt#3.3.2] und [gemSpec_PKI#8.4.1] umzusetzen.

Die Verbindung zum ePA-Frontend des Versicherten wird auf Transportebene mit TLS abgesichert. Auf dieser Ebene erfolgt eine serverseitige Authentisierung durch die Komponente "Authentisierung Versicherter" wie in [gemSpec_Zugangsgateway_Vers#Kapitel4.2] beschrieben.

Verbindungen innerhalb der TI werden ebenfalls auf Transportebene mit TLS abgesichert. Dabei werden Zertifikate der TI verwendet.

A_14227 - Komponente Authentisierung Versicherter - TLS-Authentisierung innerhalb der TI

Die Komponente "Authentisierung Versicherter" MUSS für alle innerhalb der TI zur Verfügung gestellten Schnittstellen ausschließlich Verbindungen mit TLS akzeptieren und dabei die einseitige Serverauthentisierung unter Nutzung des X.509-Komponentenzertifikats für TLS C.FD.TLS-S  und der Rolle "oid_epa_authn" umsetzen. [<=]

A_14801 - Komponente Authentisierung Versicherter - XML Schema-Validierung für SOAP-Eingangsnachrichten

Die Komponente "Authentisierung Versicherter" MUSS vor einer Weiterverarbeitung sämtliche SOAP 1.2-Eingangsnachrichten einer XML Schema-Validierung unterziehen und gemäß [SOAP] verarbeiten. Sind Nachrichten nicht wohlgeformt oder gültig, MUSS die Komponente "Authentisierung Versicherter" die Nachricht mit einem HTTP-Statuscode 400 gemäß [RFC7231] quittieren. [<=]

A_14777 - Komponente Authentisierung Versicherter - Prüfung des Signaturzertifikats von Authentifizierungsbestätigungen

Die Komponente "Authentisierung Versicherter" MUSS sicherstellen, dass Authentifizierungsbestätigungen nur akzeptiert werden, wenn das zugehörige Signaturzertifikat zeitlich gültig ist, nicht gesperrt wurde und nach dem Zertifikatsprofil C.FD.SIG für  die Identität der Komponente Authentisierung Versicherter selbst 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].
[<=]

A_14780 - Komponente Authentisierung Versicherter - Aussteller von Authentifizierungsbestätigungen

Die Komponente "Authentisierung Versicherter" MUSS sicherstellen, dass die Authentifizierungsbestätigung von der Komponente "Authentisierung Versicherter" selbst ausgestellt wurde (s.a. [gemSpec_TBAuth#GS-A_5494]). 
[<=]

A_15605-01 - Komponente Authentisierung Versicherter - Ablehnung von SOAP 1.2-Nachrichten ohne UTF-8 Enkodierung

Die Komponente "Authentisierung Versicherter" MUSS SOAP 1.2-Nachrichten mit einem HTTP-Statuscode 415 gemäß [RFC7231] quittieren, sofern die Zeichenkodierung im HTTP Header nicht UTF-8 benennt (Content-Type: charset=utf-8). [<=]

Diese Festlegungen zur UTF-8-Enkodierung überschreibt die Festlegungen aus [WSIBP].

A_15613 - Komponente Authentisierung Versicherter – Erkennung von Denial-of-Service-Angriffen hinsichtlich dem Parsen von SOAP 1.2-Nachricht

Die Komponente "Authentisierung Versicherter" MUSS die folgenden Angriffstypen in eingehenden SOAP 1.2-Nachrichten erkennen und mit einem HTTP-Statuscode 400 gemäß [RFC7231] quittieren:

  • XML Injection
  • XPath Query Tampering
  • XML External Entity Injection
[<=]

4.2 Verwendete Standards

Für die Übertragung von Nachrichten an den Schnittstellen der Komponente "Authentisierung Versicherter" wird SOAP in Verbindung mit HTTP verwendet.

A_14352-01 - Komponente Authentisierung Versicherter - Grundlegende Standards

Die Komponente "Authentisierung Versicherter" MUSS folgende Standards umsetzen, soweit diese im Rahmen der zu implementierenden Operationen verwendet werden und sofern sie nicht durch konkrete Anforderungen überschrieben werden: 

  • IHE ITI-40 Transaction "Provide X-User Assertion" [IHE#ITI-40]
  • HTTP/1.1 [RFC7231]
  • SOAP 1.2 [SOAP]
  • WSDL 1.1 [WSDL]
  • WSDL 1.1 Binding Extension for SOAP 1.2 [WSDL11SOAP12]
  • WS-Trust 1.3 [WS-Trust]
  • WS-I Basic Profile V2.0 [WSIBP]
  • WS Security SAML Token Profile 1.1 [WSS-SAML]
  • XSPA Profile of SAML for Healthcare v2.0 [XSPA-SAML]
  • SAML V2.0 [SAML2.0]
  • WS Security [WSS]
[<=]

Generell ist [gemSpec_Krypt] für alle Algorithmen und sonstigen kryptographischen Vorgaben zu beachten.

Für die Schnittstellen der Komponente "Authentisierung Versicherter" werden die in der folgenden Tabelle definierten XML-Präfixe verwendet.

Tabelle 1: Tab_Auth_Vers_002 - Verwendete Namensräume und Präfixe

Präfix
Namensraum
Referenz
phra
http://ws.gematik.de/fd/phrs/I_Authentication_Insurant/v1.1

phr
http://ws.gematik.de/fa/phr/v1.0

xs
http://www.w3.org/2001/XMLSchema

saml
urn:oasis:names:tc:SAML:2.0:assertion
SAML 2.0 [SAML2.0]
soap
http://www.w3.org/2003/05/soap-envelope
SOAP 1.2 [SOAP]
wsoap12
http://schemas.xmlsoap.org/wsdl/soap12/
[WSDL11SOAP12]
wsdl
http://schemas.xmlsoap.org/wsdl/
WSDL 1.1 [WSDL]
ds
http://www.w3.org/2000/09/xmldsig#

xenc
http://www.w3.org/2001/04/xmlenc# 

wst
http://docs.oasis-open.org/ws-sx/ws-trust/200512
WS-Trust 1.4 [WS-Trust]
wsu
http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd

wsaw
http://www.w3.org/2006/05/addressing/wsdl

tel
http://ws.gematik.de/tel/error/v2.0

A_15604 - Komponente Authentisierung Versicherter - Kodierung in UTF-8

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

4.3 Fehlerbehandlung

Bei Fehlern in der internen Verarbeitung oder bei fachlichen Fehlern in der Nutzung der bereitgestellten Schnittstellen liefert die Komponente "Authentisierung Versicherter" Fehlermeldungen zurück. Deren Struktur hängt davon ab, ob der Meldungsablauf auf [WS-Trust] basiert oder nicht.

Aufrufe mit Meldungen nach [WS-Trust] werden entsprechend auch mit Fehlermeldungen gemäß dem Standard beantwortet.

Andere Aufrufe werden als SOAP-Fault gemäß [gemSpec_OM] strukturiert und enthalten die in den Schnittstellendefinitionen angegebenen Fehlermeldungsinhalte innerhalb einer GERROR-Struktur gemäß [TelematikError.xsd].

A_14415 - Komponente Authentisierung Versicherter - Verwendung von Webservice-Fehlern

Die Komponente "Authentisierung Versicherter" MUSS an der Schnittstelle  I_Authentication_Insurant:login den in [WS-Trust#Kapitel11] festgelegten SOAP-Fault-Mechanismus umsetzen.
[<=]

A_15138 - Komponente Authentisierung Versicherter - Inhalte der Fehlermeldungen

Die Komponente "Authentisierung Versicherter" MUSS in einer GERROR-Fehlermeldung gemäß [TelematikError.xsd] die Felder wie folgt mit den Fehlermeldungsinhalten der Schnittstellenbeschreibung befüllen:

  • Fehlername Nametel:Error/tel:Trace/tel:EventID
  • Fehlerdetailtext Fehlertexttel:Error/tel:Trace/tel:ErrorText
  • Fehlercode: in tel:Error/tel:Trace/tel:Code entsprechend dem Fehlernamen gem. folgender Tabelle:

Tabelle 2:  Tab_Auth_Vers_003 - Zuordnung Fehlercodes zu Fehlernamen

Name Fehlercode
INTERNAL_ERROR 7720
SYNTAX_ERROR 7730
ASSERTION_INVALID 7740
[<=]

4.4 Protokollierung

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

A_13877-01 - Komponente Authentisierung Versicherter - Verwaltungsprotokollierung

Die Komponente "Authentisierung Versicherter" MUSS beim Aufruf einer der in [gemSpec_DM_ePA#A_14505-*] aufgelisteten Operationen der Schnittstelle I_Authentication_Insurant unter der Voraussetzung, dass der Aufruf erfolgreich war, je einen Eintrag im Verwaltungsprotokoll für den Versicherten gemäß [gemSpec_DM_ePA#A_14471-*] vornehmen und die Parameterwerte dabei wie folgt setzen:

Tabelle 3: Tab_Auth_Vers_004 - Operationsabhängige Parameter des Verwaltungsprotokolls

Protokoll-parameter Parameterwerte gemäß aufgerufener Operation
UserID KVNR;

Ermittlung für Operation
I_Authentication_Insurant::getAuditEvents,
I_Authentication_Insurant::getSignedAuditEvents,
I_Authentication_Insurant::logoutToken
über den folgenden 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)

Ermittlung für die Operation I_Authentication_Insurant::loginCreateToken aus dem Inhalt des Elements SubjectDN des bestätigten C.CH.AUT bzw. C.CH.AUT_ALT Zertifikats, siehe Kap. 4.6 Identifikation der Akteure ).
UserName Name des Nutzers;

Ermittlung für Operation
I_Authentication_Insurant::getAuditEvents,
I_Authentication_Insurant::getSignedAuditEvents,
I_Authentication_Insurant::logoutToken über den folgenden XPath-Ausdruck zur Behauptung "name" , 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']

Ermittlung für die Operation I_Authentication_Insurant::loginCreateToken aus dem Inhalt des Elements commonName aus subjectDN des übergebenen C.CH.AUT bzw. C.CH.AUT_ALT Zertifikats.
ObjectID [nicht belegt]
ObjectName [nicht belegt]
DeviceID [nicht belegt]

ObjectDetail
gilt nur bei Operation I_Authentication_Insurant::loginCreateToken:
type value
AuthenticationType "eGK", wenn policyIdentifier = <oid_egk_aut>
"alternative Authentisierung", wenn policyIdentifier = <oid_egk_aut_alt>

policyIdentifier ist enthalten in Element Extensions/CertificatePolicies des übergebenen C.CH.AUT bzw. C.CH.AUT_ALT Zertifikats
übrige Protokolldaten s. [gemSpec_DM_ePA#A_14471-*]


Die nicht in [gemSpec_DM_ePA#A_14505-*] aufgelisteten Operationen der Schnittstelle I_Authentication_Insurant werden nicht protokolliert.
[<=]

Zur Protokollierung sind auch die Vorgaben in [gemSpec_Aktensystem#5.2] zu beachten.

A_21104-01 - Komponente Authentisierung Versicherter - Verwaltungsprotokollierung, wenn loginCreateToken fehlschlägt

Falls der Aufruf der Operation loginCreateToken fehl schlägt, MUSS die Komponente "Authentisierung Versicherter" einen Eintrag im Verwaltungsprotokoll für den Versicherten bzw. seinen Vertreter gemäß [gemSpec_DM_ePA#A_14471-*] vornehmen und zusätzlich zu den Vorgaben von A_13877-* die Parameterwerte wie in Tab_Auth_Vers_0016 setzen. Es wird die Gesamtanzahl der fehlgeschlagenen Aufrufe der Operation loginCreateToken jeweils für eGK und al.vi gezählt und genau ein Protokolleintrag je Datumstag geschrieben.

Tabelle 4: Tab_Auth_Vers_0016- Operationsabhängige Parameter des Verwaltungsprotokolls bei fehlerhaftem Aufruf der Operation loginCreateToken

Protokoll-parameter Parameterwerte gemäß aufgerufener Operation
ObjectDetail

type value
ErrorCounter_eGK Anzahl der fehlgeschlagenen Aufrufe der Operation loginCreateToken mit eGK (policyIdentifier = <oid_egk_aut>) für diesen Tag korrespondierend zu phr:AuditMessage/phr:EventIdentification/@EventDateTime
ErrorCounter_alvi Anzahl der fehlgeschlagenen Aufrufe der Operation loginCreateToken mit al.vi (policyIdentifier = <oid_egk_aut_alt>)für diesen Tag korrespondierend zu phr:AuditMessage/phr:EventIdentification/@EventDateTime
ErrorCounter_unknown Anzahl der fehlgeschlagenen Aufrufe der Operation loginCreateToken mit unbekanntem policyIdentifier (keine Rolle oder nur eine unbekannte Rollen-OID) für diesen Tag korrespondierend zu phr:AuditMessage/phr:EventIdentification/@EventDateTime
[<=]

4.5 Nicht-Funktionale Anforderungen

Die die Komponente "Authentisierung Versicherter" betreffenden Anforderungen zu Skalierbarkeit, Performance und Mengengerüst sind in [gemSpec_Perf] zu finden.

4.6 Identifikation der Akteure

Der Versicherte bzw. der von ihm berechtigte Vertreter im Sinne der Fachanwendung ePA werden über ihre Krankenversichertennummer (KVNR) eindeutig identifiziert (vgl. [gemSysL_ePA#2.4.1]. Die KVNR besteht aus einem unveränderlichen Teil (Versicherten-ID) und einem veränderlichen Teil. In diesem Dokument ist mit der Abkürzung KVNR immer nur der unveränderliche Teil (Versicherten-ID) gemeint.

In den Zertifikaten einer eGK bzw. einer alternativen Versichertenidentität ist der unveränderliche Teil der KVNR in einem Feld organizationalUnitName des SubjectDN enthalten (s. [gemSpec_PKI#5.1]). Dabei ist zu beachten, dass das Feld organizationalUnitName im SubjectDN in zwei Ausprägungen auftritt (s. [gemSpec_PKI#4.2]):

  • das zehnstellige alphanumerische Feld organizationalUnitName beinhaltet den unveränderlichen Teil der KVNR
  • das neunstellige numerische Feld organizationalUnitName beinhaltet das Institutionskennzeichen (Kassenzugehörigkeit)

Demzufolge muss für Versicherte bzw. deren berechtigte Vertreter der unveränderliche Teil der KVNR aus dem zehnstelligen alphanumerischen Feld organizationalUnitName von den Zertifikaten entnommen und zur Identifikation herangezogen werden.

5 Funktionsmerkmale

Die Komponente Authentisierung Versicherter realisiert ein Funktionsmerkmal über eine Schnittstelle:

Tabelle 5: Tab_Auth_Vers_005 - Schnittstellenübersicht der Komponente Authentisierung des Versicherten

Schnittstelle
Beschreibung und Operationen
I_Authentication_Insurant
Schnittstelle zur Authentifizierung eines Versicherten
Logische Operation
Beschreibung
login
Authentifizierung eines Versicherten
renew
Erneuern der Authentifizierungsbestätigung für einen Versicherten auf Basis einer vorliegenden Authentifizierungsbestätigung
logout
Beenden der Erneuerbarkeit der Authentifizierungsbestätigung für einen Versicherten
getAuditEvents
Abruf der Verwaltungsprotokolleinträge
getSignedAuditEvents Abruf der signierten Liste des Verwaltungsprotokolls

Die Operation 'login' wird sowohl zur initialen Erstellung der Authentifizierungsbestätigung als auch nach Ablauf der Gültigkeit der ursprünglichen Authentifizierungsbestätigung zur Erstellung einer neuen Authentifizierungsbestätigung aufgerufen.
Die Operation 'renew' erstellt eine neue Authentifizierungsbestätigung, wenn eine gültige Authentifizierungsbestätigung vorgelegt wird, zu der noch kein 'logout' stattgefunden hat.
Die Operation 'logout' beendet die Erneuerbarkeit einer Authentifizierungsbestätigung.

Die Komponente "Authentisierung Versicherter" nutzt die in der folgenden Tabelle aufgeführten Schnittstellen der Telematikinfrastruktur.

Tabelle 6: Tab_Auth_Vers_006 - Benutzte Schnittstellen der TI

Schnittstelle
Bemerkung
I_IP_Transport
Definition in [gemSpec_Net]
I_DNS_Name_Resolution
Definition in [gemSpec_Net]
I_NTP_Time_Information
Definition in [gemSpec_Net]
I_OCSP_Status_Information
Definition in [gemSpec_PKI]
I_TSL_Download
Definition in [gemSpec_TSL]
I_Cert_provisioning
Definition in [gemSpec_X.509_TSP]
I_Cert_Revocation
Definition in [gemSpec_X.509_TSP]

5.1 Authentisierung

5.1.1 Schnittstellen

5.1.1.1 Schnittstelle I_Authentication_Insurant

Das Interface I_Authentication_Insurant stellt die in [gemSysL_ePA] definierte Schnittstelle bereit.

A_14228-01 - Komponente Authentisierung Versicherter - I_Authentication_Insurant

Die Komponente "Authentisierung Versicherter" MUSS einen Webservice-Endpunkt I_Authentication_Insurant bereitstellen, welcher die logischen Schnittstellen I_Authentication_Insurant:login, I_Authentication_Insurant:renew und I_Authentication_Insurant:logout nach WS-Trust und die Schnittstellen I_Authentication_Insurant:getAuditEvents und I_Authentication_Insurant:getSignedAuditEvents zum Abruf von Protokolldaten durch die folgenden angebotenen Operationen realisiert:

Tabelle 7: Tab_Auth_Vers_007 - Schnittstellenübersicht der Authentisierung des Versicherten

Name
I_Authentication_Insurant
Version
1.2
Namensraum
http://docs.oasis-open.org/ws-sx/ws-trust/200512
Operationen
Name
Kurzbeschreibung
LoginCreateChallenge Login Teil 1
Request: RequestSecurityToken
Response: RequestSecurityTokenResponse mit einer SignChallenge
LoginCreateToken Login Teil 2
Request: RequestSecurityTokenResponse mit einer SignChallengeResponse
Response: RequestSecurityTokenResponseCollection
RenewToken Renew
Request: RequestSecurityToken
Response: RequestSecurityTokenResponse
LogoutToken
Logout
Request: RequestSecurityToken
Response: RequestSecurityTokenResponse
getAuditEvents getAuditEvents - Abruf Verwaltungsprotokoll
Request: GetAuditEvents
Response: GetAuditEventsResponse
getSignedAuditEvents getSignedAuditEvents - Abruf  signiertes Verwaltungsprotokoll
Request: GetSignedAuditEvents
Response: GetSignedAuditEventsResponse
WSDL
AuthenticationService.wsdl

Die als SAML-Assertion zurückgelieferte Authentifizierungsbestätigung ist zur Vorlage bei den im Element Audience (s. Kap. 5.1.2.1.1) angegeben Webservices bestimmt und kann durch den Aufrufer als opakes Token behandelt werden. Es ist mit der Identität der Komponente "Authentisierung Versicherter" signiert. [<=]

5.1.1.1.1 Operation login

Die Operation dient der Ausstellung von Authentifizierungsbestätigungen für Versicherte auf der Basis des Zertifikats C.CH.AUT oder C.CH.AUT_ALT des Versicherten.

Die Authentifizierungsbestätigung hat folgende wesentlichen Eigenschaften:

  • Sie enthält das Zertifikat des Versicherten C.CH.AUT bzw. C.CH.AUT_ALT .
    Der Subject-DN aus diesem Zertifikat ist in ihr als Subjekt aufgeführt und enthält in einem der Felder OrganizationalUnitName die KVNR (s. Kap. 4.6).
  • Der Authentication-Kontext im Feld saml2:AuthnContextClassRef der erzeugten Authentifizierungsbestätigung hängt vom Typ des übergebenen Zertifikats (C.CH.AUT oder C.CH.AUT_ALT) ab.
  • Sie enthält in einem Attribut die aus dem Zertifikat extrahierte KVNR separat.
  • Sie wird mit einer Gültigkeit von 5 Minuten ausgestellt.
  • Sie legt als Methode zur SubjectConfirmation "Bearer" fest.

Voraussetzung für den Dialog auf Anwendungsebene ist eine etablierte TLS-Verbindung auf Transportebene.

Analog zu [WS-Trust#8] wird auf Anwendungsebene ein Signature Challenge Dialog implementiert. Abweichend von  [WS-Trust#8.2] bzw. [WS-Trust#Appendix B] liegt der Endpunkt auch für den Austausch der Signaturchallenge auf der Seite der Komponente "Authentisierung Versicherter", d.h. der Meldungsablauf ist in zwei durch den Aufrufer initiierte Meldungspaare aufgeteilt, deren Inhalte gemäß [WS-Trust] strukturiert sind.

Die logische Operation Login setzt sich daher auf Ebene der Webservices aus einer Abfolge der zwei Operationen LoginCreateChallenge und LoginCreateToken zusammen.

Die Fehlerbehandlung für diese beiden Operationen wird gemäß [WS-Trust#11] durchgeführt (vgl. Kap. 4.3).

Im Request zur Operation LoginCreateToken wird die Signatur des Versicherten über die von der Komponente "Authentisierung Versicherter" erstellten Challenge übertragen. Diese Übertragung erfolgt per WS-Security im SOAP-Header.

Die Bestückung der Nachrichtenfelder wird an einem Beispiel illustriert und dann normativ festgelegt.

Beispiel Dialog

LoginCreateChallenge, Request:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
  <soap:Header>
    <Action xmlns="http://www.w3.org/2005/08/addressing">http://docs.oasis-open.org/ws-sx/ws-trust/200512/RST/Issue</Action>
    <To xmlns="http://www.w3.org/2005/08/addressing">https://localhost:9094/authn</To>
  </soap:Header>
  <soap:Body>
    <RequestSecurityToken xmlns="http://docs.oasis-open.org/ws-sx/ws-trust/200512">
      <TokenType>http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV2.0</TokenType>
      <RequestType>http://docs.oasis-open.org/ws-sx/ws-trust/200512/Issue</RequestType>
    </RequestSecurityToken>
  </soap:Body>
</soap:Envelope>

LoginCreateChallenge, Response:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
  <soap:Header>
    <Action xmlns="http://www.w3.org/2005/08/addressing">http://docs.oasis-open.org/ws-sx/ws-trust/200512/RSTR/Challenge</Action>
    <To xmlns="http://www.w3.org/2005/08/addressing">http://www.w3.org/2005/08/addressing/anonymous</To>
  </soap:Header>

  <soap:Body>
    <RequestSecurityTokenResponse xmlns="http://docs.oasis-open.org/ws-sx/ws-trust/200512">
      <SignChallenge>
        <Challenge>JemuBWS...</Challenge>
      </SignChallenge>
    </RequestSecurityTokenResponse>
  </soap:Body>
</soap:Envelope>

LoginCreateToken, Request:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
  <soap:Header>
    <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" soap:mustUnderstand="true">
      <wsse:BinarySecurityToken EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" wsu:Id="X509-c3b3a51c-a22b-4682-85a2-5537d56ba5e2">MIIEzTCCA7WgA...</wsse:BinarySecurityToken>
      <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="SIG-f1f0472f-2f0d-468d-b425-0b1f5c78cc5a">
        <ds:SignedInfo>
          <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
            <ec:InclusiveNamespaces xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="soap"/>
          </ds:CanonicalizationMethod>
          <ds:SignatureMethod Algorithm="http://www.w3.org/2007/05/xmldsig-more#sha256-rsa-MGF1"/>
          <ds:Reference URI="#id-6c68f4bd-153d-42fb-a640-890c5cc14771">
            <ds:Transforms>
              <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
            </ds:Transforms>
            <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
            <ds:DigestValue>9Et/DvvJ1Sb0Z1SEequKHmOYTEizKYCKZlAEiDILGFU=</ds:DigestValue>
          </ds:Reference>
        </ds:SignedInfo>
        <ds:SignatureValue>P21t+FT2tA...</ds:SignatureValue>
        <ds:KeyInfo Id="KI-bd93fc63-8828-46ad-8a6c-df08acabe5ce">
          <wsse:SecurityTokenReference xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="STR-d16144ef-1a31-45b8-b061-537a93fbd515">
            <wsse:Reference URI="#X509-c3b3a51c-a22b-4682-85a2-5537d56ba5e2" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"/>
          </wsse:SecurityTokenReference>
        </ds:KeyInfo>
      </ds:Signature>
    </wsse:Security>

    <Action xmlns="http://www.w3.org/2005/08/addressing">http://docs.oasis-open.org/ws-sx/ws-trust/200512/RSTR/ChallengeFinal</Action>
    <To xmlns="http://www.w3.org/2005/08/addressing">https://localhost:9094/authn</To>
  </soap:Header>
  <soap:Body xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="id-6c68f4bd-153d-42fb-a640-890c5cc14771"> 

    <RequestSecurityTokenResponse xmlns="http://docs.oasis-open.org/ws-sx/ws-trust/200512">
      <SignChallengeResponse>
        <Challenge>JemuBWS-...</Challenge>
      </SignChallengeResponse>
    </RequestSecurityTokenResponse>
  </soap:Body>
</soap:Envelope>

LoginCreateToken, Response:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
  <soap:Header>
    <Action xmlns="http://www.w3.org/2005/08/addressing">http://docs.oasis-open.org/ws-sx/ws-trust/200512/RSTRC/IssueFinal</Action>
    <To xmlns="http://www.w3.org/2005/08/addressing">http://www.w3.org/2005/08/addressing/anonymous</To>
  </soap:Header>

  <soap:Body>
    <RequestSecurityTokenResponseCollection xmlns="http://docs.oasis-open.org/ws-sx/ws-trust/200512">
      <RequestSecurityTokenResponse>
        <RequestedSecurityToken>
          <saml2:Assertion ...> ...        
          </saml2:Assertion>
        </RequestedSecurityToken>
      </RequestSecurityTokenResponse>
    </RequestSecurityTokenResponseCollection>
  </soap:Body>
</soap:Envelope>

Normative Festlegung zum Dialog

A_14053 - Komponente Authentisierung Versicherter - I_Authentication_Insurant:login nach WS-Trust, LoginCreateChallenge

Die Komponente "Authentisierung Versicherter" MUSS die Operation LoginCreateChallenge wie folgt anbieten:

Tabelle 8: Tab_Auth_Vers_008 - Signatur der Schnittstelle I_Authentication_Insurant:loginCreateChallenge

Operation loginCreateChallenge
Beschreibung
Login Teil 1 (Erzeugen der Challenge)
Request: RequestSecurityToken
Response: RequestSecurityTokenResponse mit einer SignChallenge
Eingangsparameter
 Name
 Beschreibung
Typ

opt.
/RequestSecurityToken Request Security Token n
/RequestSecurityToken
/TokenType
Typ des Security Tokens.
Wert:
http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV2.0 

n
/RequestSecurityToken
/RequestType

Angeforderte Funktion des Requests.
Wert:
http://docs.oasis-open.org/ws-sx/ws-trust/200512/Issue 


n

Ausgangsparameter
 Name
Beschreibung
Typ
opt.
/RequestSecurityToken
Response


n
/RequestSecurityToken
Response
/SignChallenge
n
/RequestSecurityToken
Response
/SignChallenge
/Challenge
Enthält einen Zufallswert.
Der Inhalt wird vom Aufrufer nicht ausgewertet.


String n
Fehlermeldungen 
Fault/Code/Subcode/Value
Fault/Reason/Text Details
wst:RequestFailed
The specified request failed

Interner Fehler in der Verarbeitungslogik
wst:InvalidRequest
The request was invalid or malformed 
Es wurde ein fehlerhafter Aufrufparameter übergeben.

[<=]

A_14059 - Komponente Authentisierung Versicherter - I_Authentication_Insurant:login nach WS-Trust, LoginCreateToken

Die Komponente "Authentisierung Versicherter" MUSS die Operation LoginCreateToken wie folgt anbieten:

Tabelle 9:  Tab_Auth_Vers_009 - Signatur der Schnittstelle I_Authentication_Insurant:loginCreateToken

Operation
loginCreateToken
Beschreibung
Login Teil 2
Request: RequestSecurityTokenResponse mit einer SignChallengeResponse
Response: RequestSecurityTokenResponseCollection
Eingangsparameter
 Name
Beschreibung
Typ
opt.
/wsse:Security

Der WSSE SOAP Header enthält die Signatur über den Body
sowie das zugehörige Zertifikat.


n

/wsse:Security
/wsse:BinarySecurityToken
Zertifikat C.CH.AUT oder C.CH.AUT_ALT als BinarySecurityToken (s. [WSS#Kapitel6.3])
Hinweis: dabei kann es sich um ein Zertifikat der Schlüsselgeneration RSA oder ECDSA handeln (vgl. [gemSpec_Krypt]).

n
/wsse:Security
/ds:Signature
Signatur über den SOAP Body durch die Identität ID.CH.AUT bzw. ID.CH.AUT_ALT  und Referenz auf das Zertifikat (s. [WSS#Kapitel8] und [WSS-X509#Kapitel3.2]) 

n
/RequestSecurityTokenResponse



n
/RequestSecurityTokenResponse
/SignChallengeResponse
/Challenge
Unveränderter Wert der vom Aufrufer in der Meldung zuvor empfangenen Challenge.

n
Ausgangsparameter
 Name
Beschreibung
Typ
opt.
/RequestSecurityTokenResponseCollection




/RequestSecurityToken
ResponseCollection
/RequestSecurityToken
Response



/RequestSecurityToken
ResponseCollection
/RequestSecurityToken
Response
/RequestedSecurityToken
Dieser Parameter MUSS die in Kap. 5.1.2.1.1 definierte SAML Assertion enthalten
Die Signatur der Komponente Authentisierung Versicherter ist in der SAML Assertion enthalten.




/RequestSecurityToken
ResponseCollection
/RequestSecurityToken
Response
/RequestedSecurityToken
/saml2:Assertion
Angeforderte AuthenticationAssertion als SAML Assertion


Fehlermeldungen 
Fault/Code/Subcode/Value
Fault/Reason/Text
Details
wst:RequestFailed
The specified request failed  
Interner Fehler in der Verarbeitungslogik
wst:InvalidRequest

The request was invalid or malformed
Es wurde ein fehlerhafter Aufrufparameter übergeben oder die Signatur der Eingangsnachricht ist nicht korrekt.
wst:InvalidSecurityToken
Security token has been revoked
Das als BinarySecurityToken übergebene Zertifikat ist ungültig oder gesperrt.


[<=]

A_14350 - Komponente Authentisierung Versicherter - I_Authentication_Insurant:login, Challenge Response Prüfung

Die Komponente "Authentisierung Versicherter" MUSS sicherstellen, dass die in der SignChallengeResponse verwendete Challenge folgende Eigenschaften hat:

  • der Wert in der Challenge im Request der Operation LoginCreateToken muss identisch dem Wert aus der Challenge in der Response der Operation LoginCreateChallenge sein.
  • der Zeitraum zwischen Erzeugung des Zufallswertes in der Challenge und dem Eintreffen der Nachricht Request der Operation LoginCreateToken darf nicht größer als 1 Minute sein.
[<=]

A_18985-03 - ePA-Client: Prüfen der AuthenticationAssertion

Ein ePA-Client (ePA-Frontend des Versicherten, ePA FM etc.) MUSS beim Erhalt des Authenticationtokens (AuthenticationAssertion) vergleichen, ob sich die KVNR als eineindeutiges Merkmal des Nutzers, welcher sich gegenüber dem Aktensystem authentifiziert hat, in den Behauptungen mit saml2:Attribute Name="urn:gematik:subject:subject-id" wiederfindet (vgl. A_18985-Beispiel-1).

Falls die Prüfung ein negatives Ergebnis liefert, so MUSS der ePA-Client den Vorgang (Einloggen ins Aktensystem) abbrechen.
[<=]

A_18985-Beispiel-1:

<saml2:Assertion xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ID="_3886aa57-deb8-422d-b0f8-54ff207d089a" IssueInstant="2020-05-11T16:59:53.420Z" Version="2.0" xsi:type="saml2:AssertionType">
    <saml2:Issuer>https://aktor-gateway.gematik.de/authn</saml2:Issuer>
    <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
      …
    </ds:Signature>
    <saml2:Subject>
        <saml2:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName">CN=Dr. Emilio von BurgundTEST-ONLY, T=Dr., GIVENNAME=Emilio von, SURNAME=Burgund, OU=109500969, OU=X110474929, O=Test GKV-SVNOT-VALID, C=DE</saml2:NameID>
        <saml2:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"/>
    </saml2:Subject>
    <saml2:Conditions NotBefore="2020-05-11T16:59:53.420Z" NotOnOrAfter="2020-05-11T17:04:53.420Z">
        <saml2:AudienceRestriction>
            <saml2:Audience>https://aktor-gateway.gematik.de</saml2:Audience>
        </saml2:AudienceRestriction>
    </saml2:Conditions>
    <saml2:AuthnStatement AuthnInstant="2020-05-11T16:53:53.322Z">
        <saml2:AuthnContext>
            <saml2:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:SmartcardPKI</saml2:AuthnContextClassRef>
        </saml2:AuthnContext>
    </saml2:AuthnStatement>
    <saml2:AttributeStatement>
        <saml2:Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
            <saml2:AttributeValue xsi:type="xsd:string">Dr. Emilio von BurgundTEST-ONLY</saml2:AttributeValue>
        </saml2:Attribute>
        <saml2:Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
            <saml2:AttributeValue xsi:type="xsd:string">Emilio von</saml2:AttributeValue>
        </saml2:Attribute>
        <saml2:Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
            <saml2:AttributeValue xsi:type="xsd:string">Burgund</saml2:AttributeValue>
        </saml2:Attribute>
        <saml2:Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/country" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
            <saml2:AttributeValue xsi:type="xsd:string">DE</saml2:AttributeValue>
        </saml2:Attribute>
        <saml2:Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
            <saml2:AttributeValue xsi:type="xsd:string">X110474929</saml2:AttributeValue>
        </saml2:Attribute>
        <saml2:Attribute Name="urn:gematik:subject:subject-id" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
            <saml2:AttributeValue>
                <InstanceIdentifier xmlns="urn:hl7-org:v3" extension="X110474929" root="1.2.276.0.76.4.8"/>
            </saml2:AttributeValue>
        </saml2:Attribute>
    </saml2:AttributeStatement>
</saml2:Assertion>

5.1.1.1.2 Operation renew

Die Operation dient der Erneuerung einer Authentifizierungsbestätigung.

Die Bestückung der Nachrichtenfelder wird an einem Beispiel illustriert und dann normativ festgelegt.

Beispiel Dialog

RenewToken, Request:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
  <soap:Header>
    <Action xmlns="http://www.w3.org/2005/08/addressing"> http://docs.oasis-open.org/ws-sx/ws-trust/200512/RST/Renew</Action>
    <To xmlns="http://www.w3.org/2005/08/addressing">...</To>
  </soap:Header>

<soap:Body>
    <RequestSecurityToken xmlns="http://docs.oasis-open.org/ws-sx/ws-trust/200512">
      <TokenType>http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV2.0</TokenType>
      <RequestType>http://docs.oasis-open.org/ws-sx/ws-trust/200512/Renew</RequestType>
      <RenewTarget>... the token to be renewed ...</RenewTarget>
    </RequestSecurityToken>
  </soap:Body>
</soap:Envelope>

RenewToken, Response:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">

  <soap:Header>
    <Action xmlns="http://www.w3.org/2005/08/addressing"> http://docs.oasis-open.org/ws-sx/ws-trust/200512/RSTR/RenewFinal</Action>
    <To xmlns="http://www.w3.org/2005/08/addressing">...</To>
  </soap:Header>

  <soap:Body>
    <RequestSecurityTokenResponse xmlns="http://docs.oasis-open.org/ws-sx/ws-trust/200512">
      <RequestedSecurityToken> ... the new token ... </RequestedSecurityToken>
    </RequestSecurityTokenResponse>
  </soap:Body>
</soap:Envelope>

A_17392-01 - Komponente Authentisierung Versicherter - I_Authentication_Insurant:renew nach WS-Trust, RenewToken

Die Komponente "Authentisierung Versicherter" MUSS die Operation renew wie folgt anbieten:

Operation RenewToken
Beschreibung renew
Request: RequestSecurityToken
Response: RequestSecurityTokenResponse
Eingangsparameter
 Name  Beschreibung Typ opt.
/RequestSecurityToken Request Security Token n
/RequestSecurityToken
/TokenType
Typ des Security Tokens.
Wert:
http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV2.0
n
/RequestSecurityToken
/RequestType

Angeforderte Funktion des Requests.
Wert:
http://docs.oasis-open.org/ws-sx/ws-trust/200512/Renew 

n
/RequestSecurityToken
/RenewTarget
Der Token, der verlängert werden soll
n
Ausgangsparameter
 Name Beschreibung Typ opt.
/RequestSecurityToken
Response
n
/RequestSecurityTokenResponse
/RequestedSecurityToken
Dieser Parameter MUSS die in Kap. 5.1.2.1.2 definierte SAML Assertion enthalten
Die Signatur der Komponente Authentisierung Versicherterist in der SAML Assertion enthalten.
n
Fehlermeldungen 
Fault/Code/Subcode/Value Fault/Reason/Text Details
wst:RequestFailed The specified request failed  Interner Fehler in der Verarbeitungslogik
wst:InvalidRequest The request was invalid or malformed Es wurde ein fehlerhafter Aufrufparameter übergeben.
wst:UnableToRenew The requested renewal failed Das übergebene Token ist abgelaufen oder aus anderen Gründen nicht erneuerbar.
[<=]

5.1.1.1.3 Operation logout

Die Operation beendet die Erneuerbarkeit einer Authentifizierungsbestätigung.

Die Bestückung der Nachrichtenfelder wird an einem Beispiel illustriert und dann normativ festgelegt.

Beispiel Dialog

LogoutToken, Request:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
  <soap:Header>
    <Action xmlns="http://www.w3.org/2005/08/addressing"> http://docs.oasis-open.org/ws-sx/ws-trust/200512/RST/Cancel</Action>
    <To xmlns="http://www.w3.org/2005/08/addressing">...</To>
  </soap:Header>

  <soap:Body>
    <RequestSecurityToken xmlns="http://docs.oasis-open.org/ws-sx/ws-trust/200512">
      <RequestType>http://docs.oasis-open.org/ws-sx/ws-trust/200512/Cancel</RequestType>
      <CancelTarget>... the token to be cancelled ...</CancelTarget>
    </RequestSecurityToken>
  </soap:Body>
</soap:Envelope>

LogoutToken, Response:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">

  <soap:Header>
    <Action xmlns="http://www.w3.org/2005/08/addressing">...</Action>
    <To xmlns="http://www.w3.org/2005/08/addressing"> http://docs.oasis-open.org/ws-sx/ws-trust/200512/RSTR/CancelFinal</To>
  </soap:Header>

  <soap:Body>
    <RequestSecurityTokenResponse xmlns="http://docs.oasis-open.org/ws-sx/ws-trust/200512">
      <RequestedTokenCancelled/>
    </RequestSecurityTokenResponse>
  </soap:Body>
</soap:Envelope>

A_17393-01 - Komponente Authentisierung Versicherter - I_Authentication_Insurant:Logout nach WS-Trust, LogoutToken

Die Komponente "Authentisierung Versicherter" MUSS die Operation Logout wie folgt anbieten:

Operation LogoutToken
Beschreibung Logout
Request: RequestSecurityToken
Response: RequestSecurityTokenResponse
Eingangsparameter
 Name  Beschreibung Typ opt.
/RequestSecurityToken
Request Security Token n
/RequestSecurityToken
/RequestType

Angeforderte Funktion des Requests.
Wert:
http://docs.oasis-open.org/ws-sx/ws-trust/200512/Cancel 
n
/RequestSecurityToken
/CancelTarget
Der Token, für den der Logout erfolgen soll. n
Ausgangsparameter
 Name Beschreibung Typ opt.
/RequestSecurityToken
Response
n
/RequestSecurityToken
Response
/RequestedTokenCancelled
n
Fehlermeldungen 
Fault/Code/Subcode/Value Fault/Reason/Text Details
wst:RequestFailed The specified request failed  Interner Fehler in der Verarbeitungslogik
wst:InvalidRequest
The request was invalid or malformed

Es wurde ein fehlerhafter Aufrufparameter übergeben.
[<=]

5.1.1.1.4 Operation getAuditEvents

A_14477-04 - Komponente Authentisierung Versicherter - I_Authentication_Insurant::getAuditEvents

Die Komponente "Authentisierung Versicherter" MUSS die Operation I_Authentication_Insurant::getAuditEvents gemäß der folgenden Tabelle implementieren:


Tabelle 10: Tab_Auth_Vers_010 - Signatur der Schnittstelle I_Authentication_Insurant::getAuditEvents

Operation
I_Authentication_Insurant::getAuditEvents

Beschreibung
Mit dieser Operation kann ein authentifizierter Versicherter bzw. ein berechtigter Vertreter das Verwaltungsprotokoll der Komponente "Authentisierung Versicherter" auslesen. Es werden nur Protokolleinträge zurückgegeben, die der authentifizierten Person zuzuordnen sind.
Formatvorgaben Die Definition der Ein- und Ausgabeparameter erfolgt in [AuthenticationService.xsd ].
Eingangsparameter
 Name
Beschreibung
Typ
opt.
AuthenticationAssertion
Die AuthenticationAssertion ist eine zuvor von der Komponente "Authentisierung Versicherter" ausgestellte Authentifizierungsbestätigung.
SAML Assertion(im WSSE SOAP Header gem. [WSS-SAML#3.3])

-

PageSize Umsetzung gemäß [gemSpecAktensystem#5.2.1.1] Integer (> 0) y
PageNumber Umsetzung gemäß [gemSpecAktensystem#5.2.1.1] Integer (> 0) y
LastDay Umsetzung gemäß [gemSpecAktensystem#5.2.1.1] YYYY-MM-DD oder
YYYY-MM-DDThh:mm:ssZ
y
Ausgangsparameter
 Name
Beschreibung
Typ
opt.
AuditMessage
Liste der Verwaltungsprotokolleinträge, die sich auf die KVNR beziehen, die in dem zugehörigen Attribut der übergebenen Authentication-Assertion enthalten ist.
AuditMessage[0..*]

-
PageSize Umsetzung gemäß [gemSpecAktensystem#5.2.1.1] Integer (> 0) y
PageNumber Umsetzung gemäß [gemSpecAktensystem#5.2.1.1] Integer (> 0) y
TotalPages Umsetzung gemäß [gemSpecAktensystem#5.2.1.1] Integer (>= 0) y
TotalEntries Umsetzung gemäß [gemSpecAktensystem#5.2.1.1] Integer (>= 0) y
Fehlermeldungen 
Name
Fehlertext
Details
INTERNAL_ERROR

Es ist ein interner Fehler aufgetreten.

Interner Fehler in der Verarbeitungslogik.
ASSERTION_INVALID
Die übergebene AuthenticationAssertion ist ungültig.
z. B abgelaufen oder ungültige Signatur des Tokens.
SYNTAX_ERROR
Fehlerhafte Aufrufparameter.
Es wurde ein fehlerhafter Aufrufparameter übergeben.

[<=]

5.1.1.1.5 Operation getSignedAuditEvents

A_21162-04 - Komponente Authentisierung Versicherter - I_Authentication_Insurant::getSignedAuditEvents

Die Komponente "Authentisierung Versicherter" MUSS die Operation I_Authentication_Insurant::getSignedAuditEvents gemäß der folgenden Tabelle implementieren:


Tabelle 11: Tab_Auth_Vers_016 - Signatur der Schnittstelle I_Authentication_Insurant::getSignedAuditEvents

Operation I_Authentication_Insurant::getSignedAuditEvents
Beschreibung
Mit dieser Operation kann ein authentifizierter Versicherter das signierte Verwaltungsprotokoll der Komponente "Authentisierung Versicherter" auslesen. Das signierte Verwaltungsprotokoll enthält alle Protokolleinträge, die der authentifizierten Person zuzuordnen sind.
Formatvorgaben Die Definition der Ein- und Ausgabeparameter erfolgt in [AuthenticationService.xsd ].
Eingangsparameter
 Name
Beschreibung
Typ
opt.
AuthenticationAssertion
Die AuthenticationAssertion ist eine zuvor von der Komponente "Authentisierung Versicherter" ausgestellte Authentifizierungsbestätigung.
SAML Assertion(im WSSE SOAP Header gem. [WSS-SAML#3.3])

-

PageSize Umsetzung gemäß [gemSpecAktensystem#5.2.1.1] Integer (> 0) y
PageNumber Umsetzung gemäß [gemSpecAktensystem#5.2.1.1] Integer (> 0) y
LastDay Umsetzung gemäß [gemSpecAktensystem#5.2.1.1] 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, die sich auf die KVNR beziehen, die in dem zugehörigen Attribut der übergebenen Authentication-Assertion enthalten ist. 
Signiertes Dokument

-
PageSize Umsetzung gemäß [gemSpecAktensystem#5.2.1.1] Integer (> 0) y
PageNumber Umsetzung gemäß [gemSpecAktensystem#5.2.1.1] Integer (> 0) y
TotalPages Umsetzung gemäß [gemSpecAktensystem#5.2.1.1] Integer (>= 0) y
TotalEntries Umsetzung gemäß [gemSpecAktensystem#5.2.1.1] Integer (>= 0) y
Fehlermeldungen 
Name
Fehlertext
Details
INTERNAL_ERROR

Es ist ein interner Fehler aufgetreten.

Interner Fehler in der Verarbeitungslogik.
ASSERTION_INVALID
Die übergebene AuthenticationAssertion ist ungültig.
z. B abgelaufen oder ungültige Signatur des Tokens.
SYNTAX_ERROR
Fehlerhafte Aufrufparameter.
Es wurde ein fehlerhafter Aufrufparameter übergeben.

[<=]

5.1.2 Umsetzung

5.1.2.1 Schnittstelle I_Authentication_Insurant
5.1.2.1.1 Operation login

A_15052 - Komponente Authentisierung Versicherter - loginCreateChallenge, Ablauf

Die Komponente "Authentisierung Versicherter" MUSS beim Aufruf der Operation loginCreateChallenge die folgenden Aktionen ausführen und bei den genannten Fehlerbedingungen die Fehlermeldungen (vgl. Kap. 5.1.1.1.1) entsprechend setzen:

Tabelle 12: Tab_Auth_Vers_011 - Ablauf von loginCreateChallenge

Aktion

Fehlerbedingung

Fehlermeldung

Validierung der Eingangsnachricht gegen die WSDL und die zugehörigen Schemadateien 

Fehler bei der Validierung.

wst:InvalidRequest oder allgemeiner SOAP-Fault

Eingangsparameter entsprechend A_14053 prüfen

Fehlende Elemente oder falsche Inhalte oder andere Fehler im empfangenen Request.

wst:InvalidRequest

Zufallswert für die Responsemessage gem. [gemSpec_Krypt#GS-A_4367] erzeugen

Zufallswert nicht verfügbar oder andere interne Verarbeitungsfehler.

wst:RequestFailed


[<=]

A_14229 - Komponente Authentisierung Versicherter - loginCreateToken, Ablauf

Das Komponente "Authentisierung Versicherter" MUSS beim Aufruf der Operation loginCreateToken die folgenden Aktionen ausführen und bei den genannten Fehlerbedingungen die Fehlermeldungen (vgl. Kap. 5.1.1.1.1) entsprechend setzen:

Tabelle 13: Tab_Auth_Vers_012 - Ablauf von loginCreateToken

Aktion
Fehlerbedingung
Fehlermeldung
Validierung der Eingangsnachricht gegen die WSDL und die zugehörigen Schemadateien 
Fehler bei der Validierung.
wst:InvalidRequest oder allgemeiner SOAP Fault
Prüfung WS-Security Header
Das Signaturzertifikat ist nicht vorhanden oder das Signaturverfahren entspricht nicht den Vorgaben von [gemSpec_Krypt].
wst:InvalidRequest
Prüfung mathematische Korrektheit der Signatur
Signatur nicht korrekt.
wst:InvalidRequest
Das Signaturzertifikat muss gemäß [gemSpec_PKI#TUC_PKI_018] geprüft werden. Parameter:
  • PolicyList: oid_egk_aut, oid_egk_aut_alt
  • intendedKeyUsage: digitalSignature
  • intendedExtendedKeyUsage: (leer)
  • OCSP-Graceperiod: 60 Minuten
  • Offline-Modus: nein
  • Prüfmodus: OCSP
Eine Prüfung der vom TUC zurückgelieferten Rollen-OID ist nicht erforderlich.
Fehlermeldung des aufgerufenen TUC.
wst:InvalidSecurityToken
Eingangsparameter des SOAP Body entsprechend A_14059 prüfen
Fehlende Elemente oder falsche Inhalte oder andere Fehler.
wst:InvalidRequest
Challenge Element mit abgesendeter Challenge in Response zu loginCreateChallenge vergleichen
Challenges verschieden.
wst:InvalidRequest
AuthenticationAssertion (Token) gem. A_14109-* erstellen und in Liste der Authentifizierungsbestätigung für Erneuerung aufnehmen (s. Kap. 5.1.3#A_17395)
Fehler in der  internen Verarbeitung.
wst:RequestFailed


[<=]

Die Bestückung der Authentifizierungsbestätigung wird an einem Beispiel illustriert und dann normativ festgelegt.

Beispiel Authentifizierungsbestätigung

<?xml version="1.0" encoding="UTF-8"?>
<saml2:Assertion xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ID="_108c30ac-bbcb-42c9-b306-a61c39a6d890" IssueInstant="2018-09-20T11:29:19.858Z" Version="2.0" xsi:type="saml2:AssertionType">
    <saml2:Issuer>https://[ePA_TI_FQDN]/authn</saml2:Issuer>
    <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
        <ds:SignedInfo>
            <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
            <ds:SignatureMethod Algorithm="http://www.w3.org/2007/05/xmldsig-more#sha256-rsa-MGF1"/>
            <ds:Reference URI="#_108c30ac-bbcb-42c9-b306-a61c39a6d890">
                <ds:Transforms>
                    <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
                    <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
                        <ec:InclusiveNamespaces xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="xsd"/>
                    </ds:Transform>
                </ds:Transforms>
                <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
                <ds:DigestValue>TDtN2nJ05NUB1n18GL7AalUyuMVvrIHlEklGKXLho2o=</ds:DigestValue>
            </ds:Reference>
        </ds:SignedInfo>        <ds:SignatureValue>aA4mAz3W2j7YWTKZmSXH2erR5MtfzzOroWRLsy0wVwZdSsaK3MXW5pTnVjXE87Wq2dYJ3OFhu1QGGPWwz1qNxnmynBiWlfu21UZNuroQycQCIojHqw+wguYkZJQAA7exfyDAQYG8lgQbg4YiaIHWvy7l/VPu8fKaU/BgGObbnYyLuXwg2DrTilD1XbunBpj25Hps4z6cS5zJZPPIIx8ZqOQ/keyz4Z+gcykj9Djv87lb/UZciBqtNR7nWv9PhDwvFti9VvD3KbNixgoyNozGbgAdlc9qo4gLgmDXuMhZLrOADzVwDOlmdx3/6rp+4vyMODdZGtIMA97EqPAm+QF0DQ==</ds:SignatureValue>
        <ds:KeyInfo>
            <ds:X509Data>
                <ds:X509Certificate>MIID...zA==</ds:X509Certificate>
            </ds:X509Data>
        </ds:KeyInfo>
    </ds:Signature>
    <saml2:Subject>
        <saml2:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName" NameQualifier="http://cxf.apache.org/sts">CN=Harald Graf HünschTEST-ONLY,2.5.4.42=#0c0b486172616c642047726166,2.5.4.4=#0c0748c3bc6e736368,OU=999567890,OU=X110446869,O=gematik Musterkasse1GKVNOT-VALID,C=DE</saml2:NameID>
        <saml2:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"/>
    </saml2:Subject>
    <saml2:Conditions NotBefore="2018-09-20T11:29:19.884Z" NotOnOrAfter="2018-09-20T11:44:19.884Z">
        <saml2:AudienceRestriction>
            <saml2:Audience>[ePA_TI_FQDN_autn]</saml2:Audience>
            <saml2:Audience>[ePA_TI_FQDN_autz]</saml2:Audience>

            <saml2:Audience>[ePA_TI_FQDN_dokv]</saml2:Audience>
        </saml2:AudienceRestriction>
    </saml2:Conditions>
    <saml2:AuthnStatement AuthnInstant="2018-09-20T11:29:19.878Z">
        <saml2:AuthnContext>

            <saml2:AuthnContextClassRef>

                urn:oasis:names:tc:SAML:2.0:ac:classes:SmartcardPKI

            </saml2:AuthnContextClassRef>
        </saml2:AuthnContext>
    </saml2:AuthnStatement>
    <saml2:AttributeStatement>

                  ...
        <saml2:Attribute Name="urn:gematik:subject:subject-id" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
            <saml2:AttributeValue>

               <InstanceIdentifier xmlns="urn:hl7-org:v3" extension="G995030566" root="1.2.276.0.76.4.8"/>

            </saml2:AttributeValue>
        </saml2:Attribute>
    </saml2:AttributeStatement>
</saml2:Assertion>

A_14109-02 - Komponente Authentisierung Versicherter - Befüllung der Authentifizierungsbestätigung bei Login

Die Komponente "Authentisierung Versicherter" MUSS die für die Operation loginCreateToken erzeugte Authentifizierungsbestätigung  als SAML2-Assertion gemäß [gemSpec_TBAuth#TAB_TBAuth_03] umsetzen und dabei folgende Vorgaben beachten:

  • Das Issuer-Element muss als Aussteller des Token $ePA_TI_FQDN/authn enthalten, wobei $ePA_TI_FQDN der anbieterspezifische FQDN in der TI ist.
  • Die eingebettete Signatur ds:Signature wird mit der Identität der Komponente Authentisierung Versicherter erstellt und das Element ds:Signature/ds:KeyInfo/ds:X509Data/ds:X509Certificate muss das zugehörige C.FD.SIG Zertifikat enthalten.
  • Das Element saml2:Subject/saml2:NameID muss mit dem Subject-DN des C.CH.AUT-  bzw. C.CH.AUT_ALT-Zertifikats befüllt werden.
  • Das Attribut saml2:Subject/saml2:SubjectConfirmation/@Method muss auf den Wert "urn:oasis:names:tc:SAML:2.0:cm:bearer" gesetzt werden.
  • Das Attribut saml2:Conditions/@NotBefore muss auf die Systemzeit gesetzt werden.
  • Das Attribut saml2:Conditions/@NotOnOrAfter muss auf (Systemzeit + 5 Minuten) gesetzt werden.
  • Das Element saml2:Conditions/saml2:AudienceRestriction muss mit der Liste der aller Server, für die das Token ausgestellt wird, befüllt werden. Das Element /saml2:Audience enthält jeweils einen Empfänger des Tokens mit FQDN des ePA-Aktensystems gemäß gemSpec_Aktensystem Kapitel 5.1 Akten- und Service-Lokalisierung
    Bei der Befüllung von AudienceRestriction muss eine Unterscheidung erfolgen, ob der Aufruf zur Erstellung der Authentifizierungsbestätigung TI-seitig oder Internet-seitig erfolgt.
  • Das Element saml2:AuthnStatement/saml2: AuthnContext/saml2:AuthnContextClassRef muss
    im Falle eines C.CH.AUT-Zertifikats auf den Wert "urn:oasis:names:tc:SAML:2.0:ac:classes:SmartcardPKI" und
    im Falle eines C.CH.AUT_ALT-Zertifikats auf den Wert "urn:oasis:names:tc:SAML:2.0:ac:classes:X509
    gesetzt werden
[<=]

A_15631 - Komponente Authentisierung Versicherter - Behauptungen in der Authentifizierungsbestätigung

Die Komponente "Authentisierung Versicherter" MUSS die für die Operation loginCreateToken erzeugte Authentifizierungsbestätigung im Element AttributeStatement mit den Behauptungen gemäß [gemSpec_TBAuth#TAB_TBAuth_02_2] befüllen und dabei folgende Vorgaben beachten:

  • Die Behauptungen müssen auf Basis des C.CH.AUT bzw. C.CH.AUT_ALT Zertifikats gebildet werden.
  • Die Behauptung "urn:gematik:subject:subject-id" muss enthalten sein und basierend auf  dem unveränderlichen Anteil der KVNR gebildet werden. Das Attribut Attribute/@NameFormat muss dabei den Wert "urn:oasis:names:tc:SAML:2.0:attrname-format:uri" haben.
  • Die Behauptung "urn:gematik:subject:authreference" muss mit der Seriennummer des C.CH.AUT-  bzw. C.CH.AUT_ALT-Zertifikats gebildet werden.
[<=]

5.1.2.1.2 Operation Renew

A_17398 - Komponente Authentisierung Versicherter - RenewToken

Die Komponente "Authentisierung Versicherter" MUSS beim Aufruf der Operation RenewToken die folgenden Aktionen ausführen und bei den genannten Fehlerbedingungen die Fehlermeldungen (vgl. Kap. 5.1.1.1.2) entsprechend setzen:

Tabelle 14: Tab_Auth_Vers_015 - Ablauf von RenewToken

Aktion
Fehlerbedingung
Fehlermeldung
Validierung der Eingangsnachricht gegen die WSDL und die zugehörigen Schemadateien 
Fehler bei der Validierung.
wst:InvalidRequest oder allgemeiner SOAP-Fault
Eingangsparameter entsprechend A_17392 prüfen
Fehlende Elemente oder falsche Inhalte oder andere Fehler im empfangenen Request.
wst:InvalidRequest
Prüfung gegen Liste der Authentifizierungsbestätigungen entsprechend A_17395 und Entfernen des Tokens aus der Liste
Token nicht in Liste der Authentifizierungsbestätigungen vorhanden

wst:UnableToRenew
Erstellung der neuen Authentifizierungsbestätigung gemäß A_17793-* und ggf. Aufnahme in Liste für Erneuerung (gem. Kap. 5.1.3#A_17395) 
Fehler in der internen Verarbeitung.
wst:RequestFailed
[<=]

A_17793 - Komponente Authentisierung Versicherter - Befüllung der Authentifizierungsbestätigung bei Renew

Die Komponente "Authentisierung Versicherter" MUSS die für die Operation RenewToken erzeugte Authentifizierungsbestätigung  als SAML2-Assertion gemäß [gemSpec_TBAuth#TAB_TBAuth_03] umsetzen und dabei folgende Vorgaben beachten:

  • Das Attribut saml2:Conditions/@NotBefore muss auf die Systemzeit gesetzt werden.
  • Das Attribut saml2:Conditions/@NotOnOrAfter muss auf (Systemzeit+5 Minuten) gesetzt werden.
  • Alle anderen Attribute werden aus der zu verlängernden Authentifizierungsbestätigung aus der Liste der Authentifizierungsbestätigungen (s. Kap. 5.1.3) übernommen. Insbesondere betrifft dies auch das Element saml2:AuthnStatement mit dem Attribut AuthnInstant.  
  • Die eingebettete Signatur ds:Signature wird mit der Identität der Komponente Authentisierung Versicherter erstellt und das Element ds:Signature/ds:KeyInfo/ds:X509Data/ds:X509Certificate muss das zugehörige C.FD.SIG Zertifikat enthalten.
[<=]

5.1.2.1.3 Operation Logout

A_17412 - Komponente Authentisierung Versicherter - LogoutToken

Die Komponente "Authentisierung Versicherter" MUSS beim Aufruf der Operation LogoutToken die folgenden Aktionen ausführen und bei den genannten Fehlerbedingungen die Fehlermeldungen (vgl. Kap. 5.1.1.1.3) entsprechend setzen:

Tabelle 15: Tab_Auth_Vers_015 - Ablauf von RenewToken

Aktion
Fehlerbedingung
Fehlermeldung
Validierung der Eingangsnachricht gegen die WSDL und die zugehörigen Schemadateien 
Fehler bei der Validierung.
wst:InvalidRequest oder allgemeiner SOAP-Fault
Eingangsparameter entsprechend A_17393-* prüfen
Fehlende Elemente oder falsche Inhalte oder andere Fehler im empfangenen Request.
wst:InvalidRequest
Authentifizierungsbestätigung (Token) aus Liste der Authentifizierungsbestätigungen für Erneuerung entfernen
Authentifizierungsbestätigung nicht in Liste der  Authentifizierungsbestätigungen vorhanden
(keine Fehlermeldung)
[<=]

5.1.2.1.4 Operation getAuditEvents

Die Vorgaben zur Erstellung der Protokolleinträge sind in Kap. 4.4 beschrieben. Zur Prüfung der Berechtigung des Abrufs des Protokolls wird die übergebene Authentifizierungsbestätigung geprüft.

A_14781 - Komponente Authentisierung Versicherter - getAuditEvents, Prüfschritte

Die Komponente "Authentisierung Versicherter" MUSS beim Aufruf der Operation getAuditEvents die Prüfschritte für Authentifizierungsbestätigungen gem. Kap. 4.2 mit der als Eingangsparameter übergebenen Authentifizierungsbestätigung ausführen und die Fehlermeldung (vgl. Kap. 5.1.1.1.2) wie folgt setzen:

Tabelle 16: Tab_Auth_Vers_013 - Prüfschritte bei getAuditEvents

Fehlerbedingung
Fehlermeldung
Fehler bei Validierung der Eingangsnachricht gegen die WSDL oder die zugehörigen Schemadateien SYNTAX_ERROR oder allgemeiner SOAP Fault
Fehler im empfangenen Request
SYNTAX_ERROR
Interner Fehler in der Verarbeitungslogik
INTERNAL_ERROR
Ein Prüfschritt der Signaturprüfung gem. [gemSpec_TBAuth#A_15556] bzw. [gemSpec_Authentisierung_Vers#A_14777] liefert einen Fehler. ASSERTION_INVALID
Ein Prüfschritt der Inhaltsprüfung gem. [gemSpec_TBAuth#A_15558]/[gemSpec_Authentisierung_Vers#A_14780] bzw. [gemSpec_TBAuth#A_15637] liefert einen Fehler.
ASSERTION_INVALID
[<=]

A_14803 - Komponente Authentisierung Versicherter - Umsetzung getAuditEvents

Die Komponente "Authentisierung Versicherter" MUSS beim Aufruf der Operation getAuditEvents die Liste aller Verwaltungsprotokolleinträge gemäß [gemSpec_DM_ePA#A_14471-*] zurückliefern, die der Identität in der übergebenen Authentifizierungsbestätigung entsprechen.
[<=]

5.1.2.1.5 Operation getSignedAuditEvents

Die Vorgaben zur Erstellung der Protokolleinträge sind in Kap. 4.4 beschrieben. Zur Prüfung der Berechtigung des Abrufs des Protokolls wird die übergebene Authentifizierungsbestätigung geprüft.

A_21163 - Komponente Authentisierung Versicherter - getSignedAuditEvents, Prüfschritte

Die Komponente "Authentisierung Versicherter" MUSS beim Aufruf der Operation getSignedAuditEvents die Prüfschritte für Authentifizierungsbestätigungen gem. Kap. 4.2 mit der als Eingangsparameter übergebenen Authentifizierungsbestätigung ausführen und die Fehlermeldung (vgl. Kap. 5.1.1.1.2) wie folgt setzen:

Tabelle 17: Tab_Auth_Vers_017 - Prüfschritte bei getSignedAuditEvents

Fehlerbedingung
Fehlermeldung
Fehler bei Validierung der Eingangsnachricht gegen die WSDL oder die zugehörigen Schemadateien SYNTAX_ERROR oder allgemeiner SOAP Fault
Fehler im empfangenen Request
SYNTAX_ERROR
Interner Fehler in der Verarbeitungslogik
INTERNAL_ERROR
Ein Prüfschritt der Signaturprüfung gem. [gemSpec_TBAuth#A_15556] bzw. [gemSpec_Authentisierung_Vers#A_14777] liefert einen Fehler. ASSERTION_INVALID
Ein Prüfschritt der Inhaltsprüfung gem. [gemSpec_TBAuth#A_15558]/[gemSpec_Authentisierung_Vers#A_14780] bzw. [gemSpec_TBAuth#A_15637] liefert einen Fehler.
ASSERTION_INVALID
[<=]

A_21164-02 - Komponente Authentisierung Versicherter - Umsetzung getSignedAuditEvents

Die Komponente "Authentisierung Versicherter" MUSS beim Aufruf der Operation getSignedAuditEvents ein signiertes Dokument  zurückliefern, welches alle Verwaltungsprotokolleinträge gemäß [gemSpec_DM_ePA#A_14471-*] enthält, die der Identität in der übergebenen Authentifizierungsbestätigung entsprechen, wobei für die Signatur der Liste der private Schlüssel der Ausstelleridentität ID.FD.SIG genutzt wird, dessen zugehöriges Zertifikat C.FD.SIG die Rolle "oid_epa_logging" enthält. [<=]

Es wird das gesamte Dokument bzw. Dokumente signiert. Das Format soll dem der AuditEvents entsprechen.

5.1.3 Lebensdauer der Authentifizierungsbestätigung

Die Authentifizierungsbestätigung (Token) wird mit einer kurzen Lebensdauer erstellt. Innerhalb dieser Lebensdauer kann über die Operation Renew ein neuer Token wieder mit einer kurzen Lebensdauer ausgestellt werden. Durch Aufruf der Logout Operation wird die Möglichkeit eines erneuten Renew unterbunden. Die Gesamtlebensdauer, über die ein Renew erfolgen kann, wird beschränkt.

A_17395 - Komponente Authentisierung Versicherter - Liste der aktiven Authentifizierungsbestätigungen

Die Komponente "Authentisierung Versicherter" MUSS eine Liste der aktiven Authentifizierungsbestätigungen (Token) mit folgenden Eigenschaften führen:

  • Authentifizierungsbestätigungen (Token), die als Ergebnis von Login oder Renew zurückgeliefert werden, werden in die Liste eingetragen, sofern die Zeit im Attribut saml2:Conditions/@NotOnOrAfter weniger als 120 Minuten später liegt als die Zeit im Attribut saml2:AuthnStatement@AuthnInstant.
  • Authentifizierungsbestätigungen (Token), die als Eingangsparameter von Renew verlängert werden sollen oder deren Verlängerbarkeit als Eingangsparameter von Logout beendet wird, werden aus der Liste entfernt
  • Authentifizierungsbestätigungen (Token), die zeitlich abgelaufen sind (d.h. die aktuelle Systemzeit liegt später als saml2:Conditions/@NotOnOrAfter) werden aus der Liste entfernt
[<=]

Die Liste der Authentifizierungsbestätigungen wirkt somit ausschließlich als Einschränkung für die Operation Renew:

  • Token, die nicht auf der Liste stehen, werden nicht verlängert und 
  • Token, für die der Authentifizierungszeitpunkt länger als die gegebene Zeitspanne zurückliegt, werden ebenfalls nicht verlängert.

Für die konkrete Ausgestaltung der Aktualisierung der Liste der Authentifizierungsbestätigungen werden keine Vorgaben gemacht. Die Anforderungen in dieser Spezifikation stellen nur das logische Modell des Verhaltens der Liste der Authentifizierungsbestätigungen dar. Umsetzungen sind spezifikationskonform, sofern dieses Verhalten an der Schnittstelle der Komponente reproduziert wird.

6 Informationsmodell

Ein gesondertes Informationsmodell der durch den Produkttypen verarbeiteten Daten wird nicht benötigt.

7 Verteilungssicht

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

8 Anhang A – Verzeichnisse

8.1 Abkürzungen

Kürzel
Erläuterung
CDA
Clinical Document Architecture
eGK
elektronische Gesundheitskarte
ePA
elektronische Patientenakte
FdV
ePA-Frontend des Versicherten
FQDN
Fully-Qualified Domain Name
HSM
Hardware Security Module
HTTP
Hypertext Transfer Protocol
IHE
Integrating the Healthcare Enterprise
KVNR
Krankenversichertennummer (vgl. Kap. 4.6)
OID
Object Identifier
SAML
Security Assertion Markup Language
SOAP
Simple Object Access Protocol
TI
Telematikinfrastruktur
TLS
Transport Layer Security
TUC
Technical Use Case
VAU
Vertrauenswürdige Ausführungsumgebung
W3C
World Wide Web Consortium
WS-I
Web-Services Interoperability Consortium
WSDL
Web Services Description Language
XACML
eXtensible Access Control Markup Language
XSPA
Cross-Enterprise Security and Privacy Authorization Profile
XUA
Cross-Enterprise User Assertion Profile 

8.2 Glossar

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

8.3 Abbildungsverzeichnis

    8.4 Tabellenverzeichnis

    8.5 Referenzierte Dokumente

    8.5.1 Dokumente der gematik

    Die nachfolgende Tabelle enthält die Bezeichnung der in dem vorliegenden Dokument referenzierten Dokumente der gematik zur Telematikinfrastruktur.

    [Quelle]
    Herausgeber: Titel

    [gemGlossar]
    gematik: Glossar der Telematikinfrastruktur
    [gemSysL_ePA]
    gematik: Systemspezifisches Konzept ePA
    [gemSpec_Aktensystem]
    gematik: Spezifikation Aktensystem ePA
    [gemSpec_DM_ePA]
    gematik: Datenmodell ePA
    [gemSpec_Zugangsgateway_Vers]
    gematik: Spezifikation Zugangsgateway des Versicherten ePA
    [gemSpec_Autorisierung]
    gematik: Spezifikation Autorisierung ePA
    [gemSpec_FM_ePA]
    gematik: Spezifikation Fachmodul ePA
    [gemSpec_ePA_FdV]
    gematik: Spezifikation Frontend des Versicherten ePA
    [gemKPT_Arch_TIP]
    gematik: Konzept Architektur der TI-Plattform
    [gemKPT_PKI_TIP]
    gematik: Konzept PKI der TI-Plattform
    [gemSpec_Net]
    gematik: Übergreifenden Spezifikation Netzwerk
    [gemSpec_Perf]
    gematik: Spezifikation Performancevorgaben und Mengengerüst
    [gemSpec_OID]
    gematik: Spezifikation Festlegung von OIDs
    [gemSpec_OM]
    gematik: Übergreifende Spezifikation Operations und Maintenance
    [gemSpec_PKI]
    gematik: Spezifikation PKI
    [gemSpec_Krypt]
    gematik: Übergreifende Spezifikation - Verwendung kryptographischer Algorithmen in der Telematikinfrastruktur
    [gemSpec_X.509_TSP]
    gematik: PKI für X.509-Zertifikate: Spezifikation Trust Service Provider X.509
    [gemSpec_TSL]
    gematik: Spezifikation TSL-Dienst

    8.5.2 Weitere Dokumente

    [Quelle]
    Herausgeber (Erscheinungsdatum): Titel
    [RFC2119]
    IETF (1997): Key words for use in RFCs to Indicate Requirement Levels, RFC 2119, http://tools.ietf.org/html/rfc2119
    [RFC7231]
    IETF (2014): Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content, RFC 7231,  https://tools.ietf.org/html/rfc7231 
    [SOAP]
    W3C (2007): SOAP Version 1.2 Part 1: Messaging Framework (Second Edition),  https://www.w3.org/TR/soap12-part1/ 
    [SAML2.0]
    Assertions and Protocols for the OASIS Security Assertion Markup Language (SAML) V2.0
    http://docs.oasis-open.org/security/saml/v2.0/
    [WSDL]
    W3C: Web Services Description Language (WSDL) 1.1
    https://www.w3.org/TR/wsdl.html 
    [WSDL11SOAP12]
    W3C (2006): WSDL 1.1Binding 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
    [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 
    [WS-Trust]
    WS-Trust 1.4
    OASIS Standard incorporating Approved Errata01
    25.04.2012
    http://docs.oasis-open.org/ws-sx/ws-trust/v1.4/errata01/os/ws-trust-1.4-errata01-os-complete.doc 
    [XSPA-SAML]
    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
    [IHE#ITI-40]
    IHE IT Infrastructure Technical Framework
    Volume 2b (ITI TF-2b) – Transactions Part B, Revision 15.0, Section 3.40 Provide X-User Assertion [ITI-40]
    http://www.ihe.net/uploadedFiles/Documents/ITI/IHE_ITI_TF_Vol2b.pdf