gemSpec_IDP_FD_V1.1.0







Elektronische Gesundheitskarte und Telematikinfrastruktur





Spezifikation Identity Provider – Nutzungsspezifikation
für Fachdienste




    
Version 1.1.0
Revision 548770
Stand 12.11.2020
Status freigegeben
Klassifizierung öffentlich
Referenzierung gemSpec_IDP_FD

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 30.06.20 initiale Erstellung des Dokuments gematik
1.1.0 12.11.20 Einarbeitung Scope-Themen zu R4.0.1
gematik

Inhaltsverzeichnis

1 Einordnung des Dokumentes

1.1 Zielsetzung

Die vorliegende Spezifikation definiert die Anforderungen zu Herstellung, Test und Betrieb der Schnittstellen von Fachdiensten, die den Identity Provider-Dienst (IdP-Dienst) nutzen wollen.

1.2 Zielgruppe

Das Dokument richtet sich an Hersteller und Anbieter von Fachdiensten und Fachanwendungen, welche die Funktion des IdP-Dienst nutzen wollen.

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 bekanntgegeben.

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 diesem Dokument die von dem Produkttyp IdP-Dienst bereitgestellten Schnittstellen sowie die Bedingungen, unter denen diese zu nutzen sind. Weitere Details zu den benutzten Schnittstellen werden in der Spezifikation des IdP-Dienstes beschrieben. Auf die entsprechenden Dokumente wird referenziert (siehe auch Anhang 6).

Die vollständige Anforderungslage für den Produkttyp IdP-Dienst ergibt sich aus den weiteren Konzept- und Spezifikationsdokumenten; diese sind in dem Produkttypsteckbrief des Produkttyps IdP-Dienst verzeichnet.

Nicht Bestandteil des vorliegenden Dokumentes sind die Festlegungen und Anforderungen, welche sich an den IdP-Dienst selbst richten.

1.5 Methodik

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

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

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

Hinweis auf offene Punkte

Offene Punkten werden im Dokument in dieser Darstellung ausgewiesen.

2 Systemüberblick

In der Telematikinfrastruktur (TI) werden zahlreiche Fachdienste angeboten. Anwendungsfrontends können über die Authentifizierung des Nutzers am IdP-Dienst Zugriff zu den von den Fachdiensten angebotenen Daten erhalten. Der IdP-Dienst stellt durch gesicherte JSON Web Token (JWT) attestierte Identitäten aus. Gegen Vorlage eines "ACCESS_TOKENerhalten Anwendungsfrontends, entsprechend der im Token attestierten professionOID, Zugriff auf die Inhalte der Fachdienste.

Abbildung 1: Systemüberblick (vereinfacht)

Die Abbildung stellt den Systemüberblick dar. Der Authentifizierungsprozess, welcher mit der Ausstellung und Übergabe der Token an das Anwendungsfrontend endet, wird dabei zur besseren Übersicht vereinfacht dargestellt.

Der IdP-Dienst übernimmt für den Fachdienst die Aufgabe der Identifikation des Nutzers. Der IdP-Dienst fasst die professionOID sowie weitere für den Fachdienst notwendige Attribute in signierten JSON Web Token ("ID_TOKEN", "ACCESS_-" und "SSO_TOKEN") zusammen. Fachdienste müssen keine Überprüfung des Nutzers selbst implementieren, sondern können sich darauf verlassen, dass der Besitzer des bei ihnen vorgetragenen "ACCESS_TOKEN" bereits identifiziert wurde. Des Weiteren stellt der IdP-Dienst sicher, dass die vom Nutzer vorgetragenen Attribute (aus dem Signaturzertifikat) gültig sind.

Der IdP-Dienst prüft, ob das vorgetragene X.509-nonQES-Signatur-Zertifikat der verwendeten Prozessor-Chipkarte (eGK, HBA oder SMC-B) für die vorgesehene Laufzeit des Tokens zeitlich gültig und ob dessen Integrität sichergestellt ist.

Der IdP-Dienst stellt nur solche "ACCESS_TOKEN" aus, welche auf gültigen AUT-Zertifikaten (d.h. C.CH.AUT, C.HP.AUT oder C.HCI.AUT) basieren.

Fachdienste, welche den IdP-Dienst nutzen, müssen die folgenden Prozesse und Schnittstellen bedienen:

  • Registrierung des Fachdienstes beim IdP-Dienst (organisatorischer Prozess gemäß Abschnitt 5.1)
  • Abstimmen der Claims (Key/Value-Paare im Payload eines JSON Web Token) mit dem IdP-Dienst (organisatorischer Prozess gemäß Abschnitt 5.1.1)
  • Abstimmen der Rahmenbedingungen für die Gültigkeit von "ACCESS_TOKEN" (siehe Abschnitt 5.4)

Alle Fachdienste müssen zur Absicherung der JSON Web Token gegen Einsichtnahme durch Dritte den Transportweg mit Transport Layer Security (TLS) gemäß [gemSpec_Krypt] absichern. Der Fachdienst muss sowohl im Internet, als auch innerhalb der TI über ein überprüfbares TLS-Serverzertifikat verfügen. Innerhalb der TI werden Fachdienste mit TLS-Zertifikaten durch die Komponenten-Public Key Infrastructure (PKI) ausgestattet. Im Internet müssen die Fachdienste durch ein öffentlich prüfbares Serverzertifikat gesichert werden.

Fachdienste sind ebenfalls Nutzer des IdP-Dienstes als Resource Server und sind bei diesem organisatorisch als Open Authorization 2.0 (OAuth 2.0) Client registriert. Sie verwenden die vom IdP-Dienst ausgegebenen "ACCESS_TOKEN", um Nutzern Zugriff auf die von ihnen bereitgestellten geschützten Ressourcen, die Fachdaten, zu gewähren.

3 Systemkontext

Der Systemkontext besteht für den Fachdienst aus dem Identity Provider und dem Anwendungsfrontend.

Der Fachdienst muss beim Identity Provider eine organisatorische Registrierung durchführen, bei der die vom Fachdienst erwarteten Werte, welche ein "ACCESS_TOKEN" für einen Zugriff auf die Fachdaten des Fachdienstes enthalten muss, hinterlegt werden.

Das Anwendungsfrontend erlangt nach Vorlage des "ACCESS_TOKEN" und positiver Validierung der Inhalte des Tokens durch den Fachdienst Zugang zu den angeforderten Fachdaten.

Die folgende Abbildung stellt den Systemkontext aus Sicht eines Fachdienstes dar. Eine Kommunikationsbeziehung besteht nur mit dem Identity Provider und dem Anwendungsfrontend.

Abbildung 2: Systemkontext aus Sicht des Fachdienstes

3.1 Akteure und Rollen

Im Systemkontext des Fachdienstes interagieren verschiedene Akteure (Nutzer und aktive Komponenten) in unterschiedlichen OAuth2-Rollen gemäß [RFC6749 # section-1.1].

Tabelle 1: TAB_IDP_FD_0001 Akteure und OAuth2-Rollen

Akteur OAuth2-Rolle
Nutzer Resource Owner
Fachdienst Resource Server
Anwendungsfrontend Teil des Clients
Authenticator-Modul Teil des Clients
IdP-Dienst Authorization Server
Fachdaten Protected Resource

Nutzer (Rolle: Resource Owner)

Der Resource Owner ist der Nutzer, welcher auf die beim Fachdienst (Resource Server) für ihn bereitgestellten Daten (Protected Resource) zugreift.

Der Resource Owner verfügt über die folgenden Komponenten:

·         Endgerät des Nutzers

·         Authenticator-Modul

·         Anwendungsfrontend

Fachdienst (Rolle: Resource Server)

Der Resource Server ist der Fachdienst, der dem Nutzer (Resource Owner) Zugriff auf seine Fachdaten (Protected Resource) gewährt. Der Fachdienst, der die geschützten Fachdaten (Protected Resources) anbietet, ist in der Lage, auf Basis von "ACCESS_TOKEN" Zugriff für Clients zu gewähren. Ein solches Token repräsentiert die delegierte Identifikation des Resource Owners.

Anwendungsfrontend/Authenticator-Modul kombiniert in einer Applikation (Rolle: Client)

Der Client  greift mit dem Authenticator-Modul und dem Anwendungsfrontend (OIDC Relying Party bzw. OAuth2 Client) auf  Fachdienste (Resource Server) und ihre geschützten Fachdaten (Protected Resource) zu. Das Anwendungsfrontend kann auf einem Server als Webanwendung (Primärsystem als Terminalserver), auf einem Desktop-PC oder einem mobilen Gerät (z.B. Smartphone) ausgeführt werden.

IdP-Dienst (Rolle: Authorization Server)

Der Authorization Server authentifiziert den Resource Owner (Nutzer) und stellt "ID_TOKEN", "ACCESS_TOKEN" und "SSO_TOKEN" für den vom Resource Owner erlaubten Anwendungsbereich (SCOPE) aus, welche dieser wiederum beim Fachdienst einreicht.

Tabelle 2: TAB_IDP_FD_0002 Kurzbezeichnung der Schnisttstellen des IdP-Dienstes

Kurzzeichen Schnittstelle
AUTH Authorization-Endpunkt
TOKEN Token-Endpunkt
REDIR Redirection-Endpunkt
DD Discovery Document-Endpunkt            

Weitere Akteure im Kontext IdP-Dienst sind:

Fachdaten (Rolle: Protected Resource)

Die geschützten Fachdaten, welche vom Fachdienst (Resource Server) angeboten werden.

3.2 Nachbarsysteme

Die vom Fachdienst angebotene Schnittstelle, um Fachdaten zu erhalten, wird vom Anwendungsfrontend, welches auf dem Endgerät des Nutzers installiert ist, genutzt. Nutzer wollen über das Anwendungsfrontend Daten vom Fachdienst zur Anzeige, Änderung etc. erhalten. Die Identifikation des Nutzers wird anhand einer Smartcard und der Auswertung des vom Authenticator-Modul an den IdP-Dienst übergebenen Authentifizierungszertifikats (aus der Smartcard) sichergestellt.

Fachdienste registrieren sich über einen organisatorischen Prozess beim IdP-Dienst.

In der nächsten Abbildung werden die Systeme, welche keine direkten Kommunikationsbeziehungen mit Fachdiensten unterhalten, grau angedeutet:

Abbildung 3: Nachbarsysteme des Fachdienstes

4 Registrierung des Fachdienstes beim IdP-Dienst

Fachdienste müssen sich beim IdP-Dienst registrieren. Die Registrierung erfolgt als organisatorischer Prozess, bevor ein Fachdienst am vom IdP-Dienst angebotenen Authentifizierungsprozess teilnehmen kann. Erst nach erfolgter Registrierung, bei der die Adresse des Fachdienstes, sein öffentlicher Schlüssel und die von ihm erwarteten Attribute, in Form von Claims, angegeben wurden, kann der IdP-Dienst "ACCESS_TOKEN" für den Zugriff zum Fachdienst ausstellen. 

A_20295 - Adressen des Dienstes werden registriert

Der Anbieter des Fachdienstes MUSS, um die Erreichbarkeit des Fachdienstes zu gewährleisten, entsprechende Adressen im TI-Namensraum beantragen. In Fällen, in denen der Fachdienst ebenfalls aus dem Internet erreichbar sein soll, MUSS der Anbieter des Fachdienstes neben der TI-internen auch die notwendigen öffentlichen Adressen bei einem Internet Service Provider (ISP) seiner Wahl beantragen. [<=]

Hinweis:
Die Beantragung beinhaltet neben einer sprechenden Fachdienstbezeichnung eine statische IP-Adresse, auf deren Basis die URI adressiert wird. Die URI des Fachdienstes "URI_FD" muss dem Authorization Server, welcher Teil des IdP-Dienstes ist, bekanntgegeben werden.

A_20296 - Adressen des Schlüsselmaterials werden registriert

Fachdienste MÜSSEN die URI "URI_PUK_FD" des von ihnen verwendeten öffentlichen Schlüssels "PUK_FD" beim IdP-Dienst registrieren lassen, damit der IdP-Dienst die "ACCESS_TOKEN" zielgerichtet für den entsprechenden Fachdienst verschlüsseln kann. [<=]

A_20739 - Registrierung der Claims des Fachdienstes

Anbieter von Fachdiensten MÜSSEN bei der Registrierung ihrer Fachdienste am IdP-Dienst die von ihnen erwarteten Attribute in einem Claim (siehe Anschnitt  ) beschreiben und dem IdP-Dienst zur Verfügung stellen. Die Registrierung MUSS ebenso die absoluten URI des Fachdienstes in der TI sowie im Internet – wenn der Fachdienst auch im Internet erreichbar sein muss – umfassen. [<=]

Hinweis: Als Claims werden Key/Value-Paare im Payload eines JWT bezeichnet. Ein vereinbarter Claim sagt aus, welche Key/Value-Paare im Payload erwartet werden. Die Vereinbarung wird zwischen dem Fachdienst und dem IdP-Dienst während der Registrierung des Fachdienstes getroffen. Anwendungsfrontends, welche Zugang zum Fachdienst erhalten wollen, müssen die geforderten Claims liefern.

4.1 Inhalte des Claims

Der Payload eines JSON Web Tokens beinhaltet Key/Value-Paare, welche als Claims bezeichnet werden. Inhalte eines Claims sind die Attribute, welche der IdP-Dienst auf Basis der vorgetragenen Identität aus deren Signaturzertifikat extrahieren kann.   Als Basis kommen eGK [gemSpec_PKI # Abschnitt 5.1.3.1 Authentisierung eGK] und HBA [gemSpec_PKI # Abschnitt 5.2.1 Authentisierung HBA] bzw. SMC-B [gemSpec_PKI # 5.3 Ausweis einer Organisation/Einrichtung des Gesundheitswesens] in Frage. Davon abgesehen könnten zukünftig auch Identitäten, welche in einem eigenen oder externen Identity Management gehalten werden, vom IdP-Dienst bestätigt werden.

Die Claims beinhalten die für diesen Fachdienst abgestimmten Attribute (die Claims werden pro Fachdienst in einem organisatorischen Prozess gesondert vom jeweiligen Fachdienst mit dem IdP-Dienst abgestimmt) und den Wertebereich, welchen diese annehmen können.

Neben den im Standard vorgesehenen Attributen (siehe openid-connect-core-1_0.html#IDToken) erwarten Fachdienste weitere Attribute, welche vom Standard nicht bereitgestellt werden.

Im Falle des E-Rezept-Dienstes sind dies z. B.:

Für Versicherte (eGK):

  • Rolle des Nutzers (oid_Versicherter, siehe [gemSpec_OID # Tab_PKI_402])
  • ID des Nutzers (KVNR)
  • Vorname und Nachname der Person

Für Leistungserbringer (SMC-B LEI):

  • Rolle des Nutzers (OID-Festlegung Institutionen, siehe [gemSpec_OID #Tab_PKI_403])
  • ID des Nutzers (Telematik-ID)
  • Bezeichnung der Organisation

Das Attribut "iss" beschreibt, wer den "ACCESS_TOKEN" ausgestellt hat.

Das Attribut "sub" beschreibt das Subjekt, mit welchem der Fachdienst kommuniziert. Anhand dieses Attributes lassen sich Vorgänge einer bestimmen Entität zuordnen.

Das Attribut "professionOID" beschreibt die Rolle der agierenden Entität und ist im Falle eines Versicherten immer mit der OID eines Versicherten "oid_Versicherter" befüllt. Im Falle eines Leistungserbringers oder einer Leistungserbringerinstitution wird hier die sektorspezifische professionOID gemäß [gemSpec_OID # Tab_PKI_402] bzw.[gemSpec_OID # Tab_PKI_403] eingesetzt. 

A_20676 - Nutzer-Informationen im Claim

Fachdienste MÜSSEN die im Claim benötigten, anforderbaren Informationen über den Nutzer bei ihrer Registrierung beim IdP-Dienst angeben. [<=]

A_20297-01 - Inhalte des Claims für Versicherte (eGK)

Fachdienste MÜSSEN bei ihrer Registrierung am IdP-Dienst sicherstellen, dass für Versicherte mit einer eGK als Nutzer die folgenden Attribute als Claims beantragt sind - Standardclaims sind mit "public", eigene Claims mit "private" gekennzeichnet:

Tabelle 3: TAB_IDP_FD_0003 Inhalte des Claims für Versicherte (eGK)

Attribut Inhalt
"iss" (public) Beinhaltet die URL des IdP-Dienstes als HTTPS-Adresse mit Pfad und Angabe des Ports, wenn dieser vom Standard abweicht. Zusätzliche Query-Parameter sind nicht erlaubt.
"sub" (public) Beinhaltet einen verschlüsselten Identifikator, der sich aus der "client_id" und dem Host-Teil der "redirect_uri" des Anwendungsfrontends zusammensetzt. Dieser zusammengesetzte Wert wird mit dem privaten Schlüssel des Authorization Servers "PrK_SUBJECT_ENC" nach der pairwise-Methode [openid-connect-core-1_0 # PairwiseAlg] vom IdP-Dienst verschlüsselt.
"nonce" (public) Beinhaltet einen Zufallswert, welchen der IdP-Dienst nach den Vorgaben des Anwendungsfrontends befüllt und anhand dessen das Anwendungsfrontend seine Vorgänge unterscheiden kann.
"acr" (public) Authentication Context Class Reference gemäß [openid-connect-core-1_0 # IDToken ]
"aud" (public)
Hier sind gemäß [RFC7519 # section-4.1.3] entweder die URI des Fachdienstes oder ein entsprechender eindeutiger String eingetragen, die bzw. der den Fachdienst identifiziert.
"professionOID"
(private)
Beinhaltet die professionOID des Versicherten gemäß [gemSpec_OID#Tab_PKI_402].
"given_name" (public) Vorname des Versicherten – der IdP-Dienst liest dies aus dem nonQES-Signaturzertifikat aus.
"family_name" (public) Nachname des Versicherten – der IdP-Dienst liest dies aus dem nonQES-Signaturzertifikat aus.
"organizationName" (private) Herausgeber - der IdP-Dienst liest dies aus dem nonQES-Signaturzertifikat aus.
"idNummer" (private) Beinhaltet die KVNR des Versicherten – der IdP-Dienst liest dies aus dem nonQES-Signaturzertifikat aus.
"jti" ID des Token
[<=]

Hinweise:

  • Die Befüllung des Claims erfolgt grundsätzlich gemäß [rfc7519 # section-4]
  • Beispiel-Wert des Attributes "iss": "https://erp.telematik/pfad/login"
  • Das Attribut "iss" wird durch den IdP-Dienst befüllt.
  • Das Attribut "aud" enthält die eindeutige URI des Fachdienstes oder einen beim IdP-Dienst ausschließlich diesem Fachdienst zugesprochenen Wert z. B. "E-Rezept" oder "eRp".
  • Das Attribut "professionOID" des Versicherten wird durch den IdP-Dienst befüllt.
  • Das Attribut "idNummer" wird mit den Informationen aus dem Signaturzertifikat durch den IdP-Dienst befüllt.
  • Das Attribut "jti" kann als eindeutiger Identifikator für einen Replay-Schutz genutzt werden. Anhand des Attributs "jti" lassen sich "ID_TOKEN" und "SSO_TOKEN" einem bestimmten Vorgang zuordnen.

A_20505-01 - Inhalte der Claims für Leistungserbringer (HBA)

Fachdienste MÜSSEN bei ihrer Registrierung am IdP-Dienst sicherstellen, dass für Leistungserbringer mit einer HBA als Nutzer, die folgenden Attribute als Claims beantragt sind - Standardclaims sind mit "public", eigene Claims mit "private" gekennzeichnet:

Tabelle 4: TAB_IDP_FD_0004 Inhalte des Claims für Leistungserbringer (HBA)

Attribut Inhalt
"iss" (public) Beinhaltet die URL des IdP-Dienstes als HTTPS-Adresse mit Pfad und Angabe des Ports, wenn dieser vom Standard abweicht. Zusätzliche Query-Parameter sind nicht erlaubt.
"sub" (public) Beinhaltet einen verschlüsselten Identifikator, der sich aus der "client_id" und dem Host-Teil der "redirect_uri" des Anwendungsfrontends zusammensetzt. Dieser zusammengesetzte Wert wird mit dem privaten Schlüssel des Authorization Servers "PrK_SUBJECT_ENC" nach der pairwise-Methode [openid-connect-core-1_0 # PairwiseAlg] vom IdP-Dienst verschlüsselt. 
"nonce" (public) Beinhaltet einen Zufallswert, welchen der IdP-Dienst nach den Vorgaben des Anwendungsfrontends bzw. Primärsystems befüllt und anhand dessen das Primärsystem seine Vorgänge unterscheiden kann.
"acr" (public) Authentication Context Class Reference gemäß [openid-connect-core-1_0 # IDToken]
"aud" (public)
Hier sind gemäß [RFC7519 # section-4.1.3] entweder die URI des Fachdienstes oder ein entsprechender eindeutiger String eingetragen, die bzw. der den Fachdienst identifizieren.
"professionOID" (private) Beinhaltet die professionOID des Leistungserbringers gemäß [gemSpec_OID # Tab_PKI_402].
"given_name" (public) Vorname des Leistungserbringers – der IdP-Dienst liest dies aus dem nonQES-Signaturzertifikat aus.
"family_name" (public) Nachname des Leistungserbringers – der IdP-Dienst liest dies aus dem nonQES-Signaturzertifikat aus.
"organizationName" (private) leer
"idNummer" (private) Beinhaltet die Telematik-ID des Leistungserbringers – der IdP-Dienst liest dies aus dem nonQES-Signaturzertifikat aus.
"jti" ID des Tokens
[<=]

Hinweise:

  • Die Befüllung des Claims erfolgt grundsätzlich gemäß [rfc7519 # section-4]
  • Beispiel-Wert des Attributs "iss": "https://erp.telematik/pfad/login"
  • Das Attribut "iss" wird durch den IdP-Dienst befüllt.
  • Das Attribut "aud" beschreibt den Fachdienst durch dessen eindeutige URI oder einen beim IdP-Dienst ausschließlich diesem Fachdienst zugesprochenendiscovery Wert z.B. "E-Rezept" oder "eRP".
  • Das Attribut "professionOID" des Leistungserbringers wird durch den IdP-Dienst befüllt. Andere als die in dieser Tabelle gemäß [gemSpec_OID # Tab_PKI_402] aufgeführten OID sind in diesem Attribut nicht zulässig.
  • Das Attribut "idNummer" wird mit den Informationen aus dem Signaturzertifikat durch den IdP-Dienst befüllt.
  • Das Attribut "jti" kann als eindeutiger Identifikator für einen Replay-Schutz genutzt werden. Anhand des Attributs "jti" lassen sich Zugriffs- und SSO-Token einem bestimmten Vorgang zuordnen.

Das Claim einer Leistungserbringerinstitution beschreibt nicht die Entität, welche im Namen der Institution agiert, sondern die Institution selbst.

A_20506-01 - Inhalte der Claims für Leistungserbringerinstitutionen (SMC-B)

Fachdienste MÜSSEN bei ihrer Registrierung am IdP-Dienst sicherstellen, dass für Leistungserbringerinstitutionen mit einer SMC-B für Nutzer, die folgenden Attribute als Claims beantragt sind - Standardclaims sind mit "public", eigene Claims mit "private" gekennzeichnet:

Tabelle 5: AB_IDP_FD_0005 Inhalte des Claims für Leistungserbringerinstitutionen (SMC-B)

Attribut Inhalt
"iss" (public) Beinhaltet die URL des IdP-Dienstes als HTTPS-Adresse mit Pfad und Angabe des Ports, wenn dieser vom Standard abweicht. Zusätzliche Query-Parameter sind nicht erlaubt.
"sub" (public) Beinhaltet einen verschlüsselten Identifikator, der sich aus der "client_id" und dem Host-Teil der "redirect_uri" des Anwendungsfrontends zusammensetzt. Dieser zusammengesetzte Wert wird mit dem privaten Schlüssel des Authorization Servers "PrK_SUBJECT_ENC" nach der pairwise-Methode [openid-connect-core-1_0 # PairwiseAlg] vom IdP-Dienst verschlüsselt.  
"nonce" (public) Beinhaltet einen Zufallswert, welchen der IdP-Dienst nach den Vorgaben des Anwendungsfrontends befüllt und anhand dessen das Anwendungsfrontend seine Vorgänge unterscheiden kann.
"acr" (public) Authentication Context Class Reference gemäß
[openid-connect-core-1_0 # IDToken]
"aud" (public)
Hier sind gemäß [RFC7519 # section-4.1.3] entweder die URI des Fachdienstes oder ein entsprechender eindeutiger String eingetragen, die bzw. der den Fachdienst identifizieren.
"professionOID" (private) Beinhaltet die professionOID der Leistungserbringerinstitution gemäß [gemSpec_OID#Tab_PKI_403]
"given_name" (public) Vorname des Verantwortlichen/Inhabers – der IdP-Dienst liest dies aus dem nonQES-Signaturzertifikat aus.
"family_name" (public) Nachname des Verantwortlichen/Inhabers – der IdP-Dienst liest dies aus dem nonQES-Signaturzertifikat aus
"organizationName" (private) Beinhaltet die Bezeichnung der Institution, so wie diese im nonQES-Signaturzertifikat im Attribut "subject/organisationName" eingetragen ist. Der IdP-Dienst liest dies aus dem nonQES-Signaturzertifikat aus.
"idNummer" (private) Beinhaltet die Telematik-ID der Leistungserbringerinstitution – der IdP-Dienst liest dies aus dem nonQES-Signaturzertifikat aus.
"jti" ID des Tokens
[<=]

Hinweise:

  • Die Befüllung des Claims erfolgt grundsätzlich gemäß [rfc7519 # section-4]
  • Beispiel-Wert des Attributs "iss": "https://erp.telematik/pfad/login"
  • Das Attribut "iss" wird durch den IdP-Dienst befüllt.
  • Das Attribut "aud" beschreibt den Fachdienst durch dessen eindeutige URI oder einen beim IdP-Dienst ausschließlich diesem Fachdienst zugesprochenen Wert z.B. "e-Rezept" oder "eRp".
  • Das Attribut "professionOID" der Leistungserbringerinstitution wird durch den IdP-Dienst befüllt. Andere als die in dieser Tabelle gemäß [gemSpec_OID # Tab_PKI_402] aufgeführten OID sind in diesem Attribut nicht zulässig.
  • Das Attribut "idNummer" wird mit den Informationen aus dem Signaturzertifikat durch den IdP-Dienst befüllt.
  • Das Attribut "jti" kann als eindeutiger Identifikator für einen Replay-Schutz genutzt werden. Anhand des Attributes "jti" lassen sich "ACCESS_TOKEN" und "SSO_TOKEN" einem bestimmten Vorgang zuordnen.

Das folgende Beispiel eines vom IdP-Dienst ausgestellten "ACCESS_TOKEN beschreibt die möglichen Inhalte anhand des Beispiels E-Rezept. Grundsätzlich besteht der Aufbau aus einem Header, dem Payload und der Signatur. Die jeweiligen Teile sind durch das Trennzeichen Punkt "." voneinander separiert. Als Trennzeichen zwischen den einzelnen Attribut-Wert-Paaren ist ein Komma "," vorgesehen. Nicht nummerische Werte sind in doppelte Anführungszeichen '"' zu setzen. Innerhalb eines Attribut-Wertes sind Aufzählungen durch Doppelpunkte ":" und Wertegruppen durch Komma "," zu trennen. Werte innerhalb eines Attributs können verschachtelte JSON Web Token enthalten. Diese sind durch Eingrenzung mit geschweiften Klammern "{}" einzugrenzen. 

Das im folgenden Beispiel verwendete Schlüsselmaterial lautet:

Privater Schlüssel des IdP-Dienstes "PRK_TOKEN"

MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDAamStb0Xep3y3sWw2u
SSAdUPkgQ9Rvhlnx8XEVOYy2teh69T0on77ja02m03n8t8WhZANiAARUNSar38Rz
lKPyZFsNSGUanzpNRth0C+MikVEH8FAlDHMMpAs34dyF4IK0uxgbiEe9bQ+ieLrl
6xwFR0yaTivuwoyXC+ScGUnwnpaXmid6UUgw4ypbneHsaKuZ9JLdMAo=

Öffentlicher Schlüssel des IdP-Dienstes "PUK_TOKEN"

MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEVDUmq9/Ec5Sj8mRbDUhlGp86TUbYdAvj
IpFRB/BQJQxzDKQLN+HcheCCtLsYG4hHvW0Poni65escBUdMmk4r7sKMlwvknBlJ
8J6Wl5onelFIMOMqW53h7GirmfSS3TAK

Der Zeitstempel "exp" liegt 300 Sekunden nach dem Erstellungszeitpunkt des Tokens "iat". Das Attribut "jti" beinhaltet die Kennzeichnung des Providers, einen 20 Ziffern langen Zufallswert sowie die mit dem Token beantragten Rechte.

Die folgenden Attribute sind mit Beispielen befüllt.

{

"iss": "https://idp1.telematik.de/jwt",
"sub": "RabcUSuuWKKZEEHmrcNm_kUDOW13uaGU5Zk8OoBwiNk",
"professionOID": "1.2.276.0.76.4.50",
"nbf": 1585336956,
"exp": 1585337256,
"iat": 1585336956,
"given_name": "der Vorname",
"family_name"
: "der Nachname",
"organizationName": "Institutions- oder Organisations-Bezeichnung",
"idNummer": "3-15.1.1.123456789",
"jti": "<IDP>_01234567890123456789",
"aud": "https://erp.telematik.de/login"

}

Aus den im Beispiel aufgeführten Attributen ergibt sich unter Verwendung obigen Schlüsselmaterials das folgende Token:

Base64-Darstellung des Token-Header, bestehend aus den JWT-Standard-Headern (siehe [RFC7519 # section-3.1]) "alg" = "ES256" und "typ" = "JWT"

eyJhbGciOiJFUzM4NCIsInR5cCI6IkpXVCJ9

Trennzeichen (Punkt) gefolgt vom base64-codierten Payload des mit Parametern befüllten Claims

eyJpc3MiOiJodHRwczovL2lkcDEudGVsZW1hdGlrLmRlL2p3dCIsInN1YiI6InJmYzkyMjptZWluZVRlbGVtYXRp
lEQHRlbGVtYXRpay5kZSIsIm9pZCI6IjEuMi4yNzYuMC43Ni40LjQ5IiwibmJmIjoxNTg1MzM2OTU2LCJleHAiOj
1ODUzMzcyNTYsImlhdCI6MTU4NTMzNjk1Niwidm4xIjoiSGFucyIsIm5uMSI6Ild1cnN0IiwianRpIjoiYXZhcnR
XzAxMjM0NTY3ODkwMTIzNDU2Nzg5IGVSUDpyZWFkLGRlbGV0ZSIsInR5cCI6Imh0dHBzOi8vZXJwLnRlbGVtYXRp
ay5kZS9sb2dpbiJ9

Trennzeichen (Punkt) gefolgt von der Signatur des Tokens

NwlB-Qd2eniyqCjJFzEohC227QJ4m2ar0_ar1xUn-Ld29XFxUyxY6L-orZR-rtQhpEcR6QiZDqzhN9tauDRqQ-jpoGdcgjpVj0IwHxb9sc3ckOLKGaIFUbcEZNQ2R0ox

5 Blacklisting von Client-IP-Adressen

Bekommt ein Fachdienst Kenntnis davon, dass ein "ACCESS_TOKEN" zur Durchführung eines Angriffs, z. B. einer Distributed Denial of Service DDOS-Attacke (DDOS),  verwendet wird, muss der Fachdienst die IP-Adresse des Absenders in eine Blacklist eintragen, um sich vor weiteren Angriffen von dieser Adresse ausgehend zu schützen. Der Fachdienst muss diese IP-Adresse nach einer  Stunde wieder aus der Blacklist entfernen, wenn von der gefilterten IP-Adresse keine weiteren Angriffe mehr verzeichnet werden, damit im Falle dynamisch vergebener IP-Adressen diese wieder genutzt werden kann.

A_20019 - Blacklisting von IP-Adressen

Der Fachdienst MUSS eine Blacklist führen, in welcher er IP-Adressen oder ganze Subnetze einträgt, wenn Angriffsszenarien von diesen Adressen oder Netzen erfolgen. [<=]

A_20020 - Bereinigung der "IP-Adress"-Blacklist Host-Adressen

Fachdienste MÜSSEN Host-Adressen mit einer Verzögerung von einer Stunde aus der Blacklist streichen, wenn von der gefilterten IP-Adresse keine weiteren Angriffe mehr verzeichnet werden. [<=]

A_20631 - Einschränkung zur Bereinigung der "IP-Adress"-Blacklist Subnetze

Fachdienste DÜRFEN Netzadressen NICHT aus der Blackliste streichen, wenn es sich hierbei um Blacklisting auf Basis von Geo-IP-Adressbereichen handelt. [<=]

6 "ACCESS_TOKEN"

Der IdP-Dienst stellt den authentifizierten Entitäten "ACCESS_TOKEN" aus, mit welchen diese den Zugriff auf die im Claim des Fachdienstes bereitgestellten Systeme realisieren können.

A_20362 - "ACCESS_TOKEN" generelle Struktur

Fachdienste MÜSSEN die gemäß [RFC7519 # section-7.1] vorgeschriebene Struktur der "ACCESS_TOKEN" gemäß [RFC7519 # section-7.2] validieren.
[<=]

A_20363 - "ACCESS_TOKEN" sind verschlüsselt

Der Fachdienst MUSS die für ihn vom IdP-Dienst gemäß [RFC6750 # section-5.2 Abs. 7] verschlüsselten "ACCESS_TOKEN" mit seinem privaten Schlüssel "PRK_FD" gemäß [RFC 7523 # Abschnitt 7 Absatz 1 Satz 2 i.V.m. RFC6750 # Abschnitt 5.2 Absatz 7] entschlüsseln.
[<=]

A_20364 - Unverschlüsselt eingehende ACCESS_TOKEN sind ungültig

Fachdienste DÜRFEN unverschlüsselt eingehende "ACCESS_TOKEN" NICHT annehmen.
[<=]

A_20365 - Die Signatur des "ACCESS_TOKEN" ist zu prüfen

Fachdienste MÜSSEN die Signatur der "ACCESS_TOKEN" gegen den öffentlichen Schlüssel des Token-Endpunktes "PUK_TOKEN" prüfen. [<=]

A_20504 - Reaktion bei ungültiger oder fehlender Signatur des "ACCESS_TOKEN"

Der Fachdienst MUSS alle mit dem "ACCESS_TOKEN" verbundenen Vorgänge abbrechen, wenn das "ACCESS_TOKEN" nicht signiert oder dessen Signatur fehlerhaft ist.
[<=]

A_20367 - Fehlermeldungen bei Übertragungsfehler des "ACCESS_TOKEN" melden

Fachdienste MÜSSEN Fehler, welche bei der Annahme des "ACCESS_TOKEN" entstehen, melden. Die Fehlermeldung MUSS mit dem privaten Schlüssel "PRK_FD" signiert sein. Die Fehlermeldungen MÜSSEN für den Anwender verständlich formuliert sein. [<=]

A_20368 - Auswertung des Claims

Fachdienste MÜSSEN die im "ACCESS_TOKEN" übertragenen Attribute mit denen vergleichen, die mit dem IdP-Dienst bei der Registrierung vereinbart wurden. [<=]

A_20369 - Abbruch bei unerwarteten Inhalten

Der Fachdienst MUSS alle mit dem "ACCESS_TOKEN" in Verbindung stehenden Vorgänge abbrechen, wenn das "ACCESS_TOKEN" andere als die im Claim mit dem IdP-Dienst vereinbarten Attribute enthält. [<=]

A_20370 - Abbruch bei falschen Datentypen der Attribute

Fachdienste MÜSSEN "ACCESS_TOKEN" ablehnen, wenn die in einem Attribut vorgetragenen Werte nicht dem schematisch erwarteten Datentyp des Attributes entsprechen. [<=]

A_20372 - Prüfung der zeitlichen Gültigkeit des "ACCESS_TOKEN"

Fachdienste MÜSSEN die zeitliche Gültigkeit des "ACCESS_TOKEN" prüfen. Der Zeitpunkt der Überprüfung MUSS zeitlich zwischen den Zeitstempeln "iat" und "exp" liegen.
[<=]

A_20373 - Prüfung der Gültigkeit des "ACCESS_TOKEN" für den Zugriff auf Fachdienste ohne "nbf"

Fachdienste MÜSSEN sicherstellen, dass der Zeitraum der Verwendung des Tokens zwischen den im Token mitgelieferten Werten der Attribute "iat" und "exp" liegt. [<=]

A_20374 - Prüfung der Gültigkeit des "ACCESS_TOKEN" für den Zugriff auf Fachdienste mit "nbf"

Fachdienste MÜSSEN sicherstellen, dass der Zeitraum der Verwendung des Tokens zwischen den im Token mitgelieferten Werten der Attribute "nbf" und "exp" liegt. [<=]

7 Abstimmen der Rahmenbedingungen "ACCESS_TOKEN"-Gültigkeit

Die Registrierung eines Fachdienstes erfolgt in enger Abstimmung zwischen Fachdienst und IdP-Dienst. Fachdienste geben dem IdP-Dienst gegenüber bei der Registrierung an, mit welchen Gültigkeitszeiträumen die "ACCESS_TOKEN" und "SSO_TOKEN" ausgestattet werden sollen. Der Fachdienst selbst sieht vor, welche Nutzergruppe generell Zugriff erhalten, indem nur für diese Nutzer Claims vorgesehen sind. Registriert beispielsweise ein Fachdienst für die von ihm bereitgestellten Fachdaten kein Claim für Versicherte, können diese am Authorization-Endpunkt auch kein "ACCESS_TOKEN" zu diesem Fachdienst erhalten.

A_20679 - Beantragung eines Claims für Fachdienste

Der Fachdienst MUSS sich für die Beantragung eines Claims beim IdP-Dienst registrieren, um ein Claim für eine bestimmte Nutzergruppe für seinen Fachdienst zu beantragen. [<=]

A_20375 - Angabe der Lebensdauer des "ACCESS_TOKEN"

Fachdienste MÜSSEN bei der Registrierung der Claims im Attribut "tokenTimeout" angeben, welche Lebensdauer das "ACCESS_TOKEN" haben soll. [<=]

A_20503 - Mit Fachdiensten abgestimmte Lebenszyklen

Fachdienste MÜSSEN die in ihrem Claim abgestimmten Attributwerte der folgenden Liste mit Werten aus den hier vorgegebenen Bereichen füllen.
Liste der Lebenszyklen der Token registrierter Fachdienste:

Tabelle 6 AB_IDP_FD_0006 Lebenszyklen der Token

Fachdienst tokenTimeout auth_time
<STRING> <60-900> <900-43.200>
eRp 300 43.200
[<=]

Beschreibung am Beispiel E-Rezept (eRp):

Der Fachdienst E-Rezept sieht vor, dass Nutzer mit "ACCESS_TOKEN" und "SSO_TOKEN" ausgestattet werden. Die Gültigkeit des "SSO_TOKEN" beträgt immer 43.200 Sekunden = 12 Stunden.

Für diesen Zeitraum braucht das Authenticator-Modul keine erneute Nutzer-Authentifizierung durchzuführen, um beim IdP-Dienst einen neuen "ACCESS_TOKEN" für den Fachdienst zu erlangen.

Die Gültigkeitsdauer des "ACCESS_TOKEN" beträgt im Beispiel E-Rezept 300 Sekunden = 5 Minuten.

8 Anhang A – Verzeichnisse

8.1 Abkürzungen

Kürzel
Erläuterung
AVS Apothekenverwaltungssystem
DDOS Distributed Denial of Service
eGK Elektronische Gesundheitskarte
eRp
E-Rezept
HBA Heilberufsausweis
IdP Identity Provider
ISP Internet Service Provider
JSON JavaScript Object Notaion
JWT JSON Web Token
KVNR Krankenversichertennummer
NFC Near Field Communication
OAuth 2.0 Open Authorization 2.0 
PIN Personal Identification Number
PKI Public Key Infrastructure
PVS Praxisverwaltungssystem
QES Qualifizierte Elektronische Signatur
SMC-B Security Module Card Typ B, Institutionenkarte
TI Telematikinfrastruktur
TLS Transport Layer Security
URI Uniform Resource Identifier

8.2 Glossar

Begriff
Erläuterung
Access Token Ein Access Token (nach [RFC6749 # section-1.4]) wird vom Client (Anwendungsfrontend) benötigt, um auf geschützte Daten eines Resource Servers zuzugreifen. Die Representation kann als JSON Web Token erfolgen.
Authorization Server OAuth2 Rolle (siehe [RFC6749 # section-1.1]): Der Authorization Server ist Teil des IdP-Dienstes. Der Server authentifiziert den Resource Owner (Nutzer) und stellt Access Tokens für den vom Resource Owner erlaubten Anwendungsbereich (Scope) für einen Resource Server bzw. eine auf einem Resource Server existierende Protected Resource aus. 
Claim Ein Key/Value-Paar im Payload eines JSON Web Token.
Client OAuth2 Rolle (siehe [RFC6749 # section-1.1]): Eine Anwendung (Relying Party), die auf geschützte Ressourcen des Resource Owners zugreifen möchte, die vom Resource Server bereitgestellt werden. Der Client kann auf einem Server (Webanwendung), Desktop-PC, mobilen Gerät etc. ausgeführt werden.
Discovery Dokument Ein OpenID Connect Metadatendokument (siehe [openid-connect-discovery 1.0]), das den Großteil der Informationen enthält, die für eine App zum Durchführen einer Anmeldung erforderlich sind. Hierzu gehören Informationen wie z.B. die zu verwendenden URLs und der Speicherort der öffentlichen Signaturschlüssel des Dienstes.
Funktionsmerkmal Der Begriff beschreibt eine Funktion oder auch einzelne, eine logische Einheit bildende Teilfunktionen der TI im Rahmen der funktionalen Zerlegung des Systems.
ID Token Ein auf JSON basiertes und nach [RFC7519] (JWT) genormtes Identitäts-Token, mit dem ein Client (Anwendungsfrontend) die Identität eines Nutzers überprüfen kann.
Open Authorization 2.0 Ein Protokoll zur Autorisierung für Web-, Desktop und Mobile Anwendungen. Dabei wird es einem Endbenutzer (Resource Owner) ermöglicht, einer Anwendung (Client) den Zugriff auf Daten oder Dienste (Resources) zu ermöglichen, die von einem Dritten (Resource Server) bereitgestellt werden.
OpenID Connect OpenID Connect (OIDC) ist eine Authentifizierungsschicht, die auf dem Autorisierungsframework OAuth 2.0 basiert. Es ermöglicht Clients, die Identität des Nutzers anhand der Authentifizierung durch einen Autorisierungsserver zu überprüfen (siehe [openid-connect-core 1.0]).
JSON Web Token Ein auf JSON basiertes und nach [RFC7519] (JWT) genormtes Access-Token. Das JWT ermöglicht den Austausch von verifizierbaren Claims innerhalb seines Payloads.
Resource Owner OAuth2-Rolle (siehe [RFC6749 # section-1.1]): Eine Entität (Nutzer), die einem Dritten den Zugriff auf ihre geschützten Ressourcen gewähren kann. Diese Ressourcen werden durch den Resource Server bereitgestellt. Ist der Resource Owner eine Person, wird dieser als Nutzer bezeichnet.
Resource Server  OAuth2 Rolle (siehe [RFC6749 # section-1.1]): Der Server (Dienst), auf dem die geschützten Ressourcen (Protected Resources) liegen. Er ist in der Lage, auf Basis von Access Tokens darauf Zugriff zu gewähren. Ein solcher Token repräsentiert die delegierte Autorisierung des Resource Owners.
SSO Token Gegen Vorlage eines gültigen SSO Token ist keine erneute Nutzerauthentifizierung für die Ausstellung eines Access Tokens am IdP-Dienst nötig. 

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. 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 Versionsnummern sind in der aktuellen, von der gematik veröffentlichten Dokumentenlandkarte enthalten, in der die vorliegende Version aufgeführt wird.

[Quelle]
Herausgeber: Titel
[gemGlossar] gematik: Einführung der Gesundheitskarte – Glossar
[gemSpec_IDP_Dienst] gematik: Spezifikation Identity Provider-Dienst
[gemSpec_IDP_Frontend] gematik: Spezifikation Identity Provider-Frontend
[gemSpec_Krypt] gematik:Übergreifende Spezifikation Verwendung kryptographischer Algorithmen in der Telematikinfrastruktur
[gemSpec_OID] gematik: Spezifikation Festlegung von OIDs
[gemSpec_PKI] gematik: Übergreifende Spezifikation Spezifikation PKI

8.5.2 Weitere Dokumente

[Quelle]
Herausgeber (Erscheinungsdatum): Titel
[openid-connect-core]  OpenID Connect Core 1.0 (November 2014)
https://openid.net/specs/openid-connect-core-1_0.html 
[openid-connect-discovery] OpenID Connect Discovery 1.0 (November 2014)
https://openid.net/specs/openid-connect-discovery-1_0.html  
[RFC6749] The OAuth 2.0 Authorization Framework (Oktober 2012)
https://tools.ietf.org/html/rfc6749 
[RFC6750] The OAuth 2.0 Authorization Framework: Bearer Token Usage (Oktober 2012)
https://tools.ietf.org/html/rfc6750 
[RFC7519]  JSON Web Token (Mai 2015)
https://tools.ietf.org/html/rfc7519 
[RFC7523] JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication and Authorization Grants (Mai 2015)
https://tools.ietf.org/html/rfc7523