latest
Elektronische Gesundheitskarte und Telematikinfrastruktur
Konzept TI-Föderation
| Version | 1.0.0 |
| Revision | 1666101 |
| Stand | 10.07.2026 |
| Status | freigegeben |
| Klassifizierung | öffentlich |
| Referenzierung | gemKPT_TI-Foderation |
Dokumentinformationen
Gender-Hinweis
Aus Gründen der besseren Lesbarkeit wird in diesem Dokument überwiegend die männliche Form verwendet. Sämtliche Personenbezeichnungen gelten gleichermaßen für alle Geschlechter.
Änderungen zur Vorversion
Es handelt sich um eine Erstveröffentlichung.
Dokumentenhistorie
| Version
|
Stand
|
Kap./ Seite
|
Grund der Änderung, besondere Hinweise
|
Bearbeitung
|
|---|---|---|---|---|
| 1.0.0
|
10.07.2026
|
|
Initiale Erstellung
|
gematik
|
Inhaltsverzeichnis
1 Einordnung des Dokuments
1.1 Zielsetzung
Das Dokument beschreibt den Aufbau der TI-Föderation gemäß des Standards [OpenID Federation 1.1]. Die TI-Föderation ist der Vertrauensraum für eine Anwendungslandschaft im Gesundheitsheitswesen. Ziele dieses Vertrauensraums sind
- die Erhöhung der Sicherheit in der Kommunikation der Teilnehmer des Vertauensraum untereinander durch Einsatz etablierter und standardisierter Identifikations- und Authentisierungsverfahren
- die Reduktion der Komplexität von notwendigen Vertrauensbeziehungen durch Bildung von Vertrauensketten
- die Nutzung standardisierter Features zur Umsetzung von Vertrauensregeln (Policies) und Nachweisen (Trust Marks)
Die TI-Föderation bildet die Möglichkeit Technologie unabhängig die Authentifizierung von Anwendungen und Nutzern in einem Vertrauensraum abzubilden.
Das Dokument bündelt alle Informationen, die zuvor auf die Spezifikationsdokumente und andere öffentlich verfügbaren Dokumente der gematik zur TI-Föderation verteilt waren. Das Dokument soll als zentrales Dokument zur TI-Föderaton fortgeschrieben werden.
1.2 Zielgruppe
Das Dokument richtet sich an
- Hersteller, die Komponenten der TI-Föderation herstellen
- Anbieter, die Komponenten der TI-Föderation betreiben
- Architekten der gematik für das Verständnis des Vertrauensraums und die potentielle Nutzung für die Produkte der TI 2.0
- Sicherheitsexperten der gematik zur Bewertung der IT-Sicherheit der Gesundheitsanwendungen in der TI-Föderation
- Betriebsexperten der gematik zur Bewertung und Erfassung betrieblicher Rahmenbedingungen und Anforderungen
- Aufsichtsbehördern und Gesellschafter zur fachlichen und technischen Bewertung
1.3 Geltungsbereich
Wichtiger 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 Abgrenzung des Dokuments
Diese Dokument enthält keine konkreten Anforderungen an ein Produkt der TI-Föderation. Diese Anforderungen sind in den Spezifikationsdokumenten der Produktypen [gemSpec_IDP_FedMaster] und [gemSpec_IDP_Sek] sowie in [gemSpec_IDP_FD] zur Berücksichtigung in den Produkttypen der Fachdienste beschrieben.
Das Dokument beschreibt nicht allumfassend, wie Komponenten außerhalb der TI-Föderation mit den Komponenten der TI-Föderation interagieren bzw., wie Artefakte (beispielsweise ID-Token, Access-Token) außerhalb der TI-Föderation zu verwenden sind.
1.5 Methodik
1.5.1 Technische Beschreibung
Das Dokument beschreibt die technischen Konzepte der TI-Föderation auf verschiedenen Abstraktionsebenen:
- Beteiligte technische Systeme und deren Aufgaben
- Schnittstellen zwischen den Systemen
- Schnittstellen zu Systemen außerhalb der TI-Föderation
- Schnittstellen zu Nutzern
Die technische Beschreibung erfolgt auf verschiedenen Granularitätsebenen mit unterschiedlichen Sichten auf die Gesamtarchitektur.
1.5.2 Normative Festlegungen
Das Konzeptdokument enthält keine normativen Festlegungen. Die normativen Festlegungen der beteiligten Systeme sind in den betreffenden Spezifikationen beschrieben:
- gemSpec_IDP_FedMaster - Anforderungen an Trust Anchor und Intermediate (Superior Entity) und allgemeine Anforderungen an Teilnehmer der TI-Föderation
- gemSpec_IDP_Sek - Anforderungen an sektorale Identity Provider (OpenID Provider)
- gemSpec_IDP_FD - Anforderungen an Fachdienste als OpenID-Relying-Party und (OAuth) Protected Resource
1.5.3 Hinweis auf offene Punkte <<optional, nur bis einschl. Abstimmphase >>
| Offener Punkt: Das Kapitel wird in einer späteren Version des Dokumentes ergänzt. |
2 Fachliche & technische Rahmenbedingungen
2.1 Fachliche Grundlagen
2.1.1 Begriffsbestimmungen
Zum weiteren Verständnis ist es notwendig zunächst die wesentlichen Begrifflichkeiten zu klären.
Identität: Eine Identität ist eine Menge von Identitätsattributen, die einer [Person oder Organisation] zugeordnet sind. Eine eindeutige Identität ist eine Identität, die innerhalb eines bestimmten Anwendungskontextes die zugehörige Entität eindeutig repräsentiert, unterschiedliche Entitäten haben unterschiedliche eindeutige Identitäten. Eine Identität (das heißt eine Menge von Identitätsattributen), die innerhalb eines Anwendungskontextes eindeutig ist, ist dies nicht notwendigerweise auch in einem anderen Kontext. (BSI TR-03107)
Attribut: Ein Identitätsattribut oder ein Identitätsdatum ist eine Charakteristik oder eine Eigenschaft einer Entität. Beispiele für Identitätsattribute einer natürlichen Person sind Name, Geburtsdatum oder die Eigenschaft, ein bestimmtes Alter erreicht zu haben. Identitätsattribute von Behörden umfassen etwa Bezeichnung der Behörde oder deren Webadresse. (BSI TR-03107)
Authentisierung/Authentifizierung: „Authentifizierung“ ist ein elektronischer Prozess, der die Bestätigung der elektronischen Identifizierung einer natürlichen oder juristischen Person oder die Bestätigung des Ursprungs und der Unversehrtheit von Daten in elektronischer Form ermöglicht. (eIDAS)
Eine Authentisierung ist das Versehen einer Identität oder anderer übermittelter Daten mit Metadaten, die es einer vertrauenden Entität ermöglichen, die Herkunft, Echtheit und Gültigkeit der Identität oder der Daten zu überprüfen. Der Überprüfungsvorgang durch die vertrauende Entität ist die Authentifizierung der Identität/der Daten. (BSI TR-03107)
Authentisierungsmittel: Authentisierungsmittel sind technische Mittel, die es dem Inhaber erlauben, eine Identität (das heißt eine Menge von Identitätsattributen) oder andere Daten zu authentisieren. Beispiele für Authentisierungsmittel sind Passwörter, der Personalausweis oder kryptographische Token. Sind mehrere technische Mittel notwendig (etwa Chipkarte und PIN), so besteht das vollständige Authentisierungsmittel aus mehreren Authentisierungsfaktoren. (BSI TR-03107).
Multifaktor-Authentisierung: Multifaktor-Authentisierung ist eine Form der Authentisierung, bei welcher zur Identitätsbestätigung mehrere unabhängige Merkmale (Faktoren) überprüft werden. Üblicherweise werden für eine Zwei-Faktor-Authentisierung unterschiedliche Merkmale aus Wissen, Besitz, Biometrie, Standort miteinander kombiniert. Am häufigsten kommt im Bereich der mobilen Anwendungen die Kombination aus Faktor Besitz (repräsentiert durch das Smartphone) und Faktor Biometrie (z. B. durch FaceID oder TouchID) bzw. Faktor Wissen (z. B. eine PIN) zum Einsatz.
Enrolment: Das Enrolment ist die Registrierung einer Entität in einem Authentisierungssystem, meist verbunden mit einer Identitätsprüfung, die in der Ausgabe von Authentisierungsmitteln mündet. (BSI TR-03107)
Identifizierung: Eine Identifizierung ist die Übermittlung von anwendungsbezogen geeigneten Identitätsattributen (einer Identität), einschließlich authentisierender Metadaten (Authentisierung), sowie die Überprüfung (Authentifizierung) dieser Identität durch die vertrauende Entität. (BSI TR-03107)
Identifizierungsdiensteanbieter: Diensteanbieter, deren Dienst darin besteht, für einen Dritten eine einzelfallbezogene Identifizierungsdienstleistung mittels des elektronischen Identitätsnachweises nach § 18 zu erbringen (§ 2 Abs. 3a PAuswG).
Autorisierung: Die Autorisierung einer Entität ist die Zuordnung und Überprüfung von Rechten zu einer Entität, zum Beispiel Zugriffsrechte oder das Recht, eine bestimmte Anwendung zu nutzen. Eine Autorisierung erfolgt immer anwendungsbezogen […]. (BSI TR-03107)
2.1.2 Technische Grundlagen
Für ein grundlegendes Verständnis des Konzeptes des föderierten Identitätsmanagements werden in diesem Kapitel zunächst die Grundlagen des eingesetzten Authentifizierungsprotokolls und die relevanten technischen Parameter kurz erläutert. Unter einem Authentifizierungsprotokoll versteht man im Allgemeinen eine Reihe an Befehlen, die zur Verifizierung einer Nutzeridentität zwischen zwei Entitäten verwendet werden. Für unterschiedliche Einsatzszenarien haben sich verschiedene Authentifizierungsprotokolle und De-Facto-Standards etabliert. Im Rahmen der Mensch-zu-Gerät-Authentisierung in der Telematikinfrastruktur wird das sog. OpenID Connect Protokoll verwendet, welches auf dem sog. OAuth 2.0-Standard basiert und diesen um Informationen zur Identität über Attribute erweitert.
OAuth 2.0: Hinter dem Begriff verbirgt sich ein Autorisierungsdienst, welcher es einem registrierten Nutzer ermöglicht, die Kontrolle über die Art und den Umfang der von ihm erteilten Freigaben zu steuern. Der Nutzer kann mittels OAuth der anfragenden Anwendung (dem sog. „Client“) erlauben, auf Daten des Nutzers auf einem Resource-Server (z. B. Bilder, Dokumente, u.ä.) zuzugreifen. Dazu authentisiert ein Authorization Server den Nutzer z. B. mit username + Passwort und fordert von ihm die Erlaubnis (Consent) für den Zugriff des Client auf die Resource ein. Für den Zugriff auf die Daten des Nutzers vom Resource-Server erhält der Client ein Access-Token, welches dieser bei jedem Aufruf des Resource-Server mit übertragen muss. Vor Herausgabe der Daten prüft der Resource-Server durch eine Abfrage beim Authorization Server, ob die Datenherausgabe an den Client legitim ist. OAuth 2.0 unterstützt scopes (Gruppe von Informationen), allerdings ohne diese weiter zu benennen. OAuth 2.0 kümmert sich ausschließlich um die Autorisierung von Zugriffen durch einen Nutzer, nicht aber um dessen Authentifizierung.
OpenID Connect (OIDC): Der OIDC-Standard erweitert OAuth 2.0 um die Fähigkeit der Nutzer-Authentisierung. Neben dem Zugriffstoken (Access-Token) liefert die Erweiterung OIDC nach erfolgreicher Nutzer-Authentisierung einen ID-Token, welche Informationen (claims) zum Nutzer selbst enthält. Claims sind Eigenschaftsattribute (z. B. der Vorname oder die Mailadresse). Die Zusammenfassungen von claims zu logischen Gruppen werden als scopes bezeichnet. Diese Identitätsdaten des Nutzers werden von einem Identity Provider in dem ID-Token verpackt und als JSON Web Token (JWT) einem anfragenden Client zur Verfügung gestellt.
OpenID Federation: OpenID Federation [OpenID Federation 1.1] standardisiert den Aufbau eines Vertrauensraums für Anwendungen im Internet. Anwendungen können sich nach Vorgaben des Standards in so einem Vertrauensraum registrireren. Technologieunabhängig legt der Standard fest, wie Vertrauensbeziehungen zwischen den Anwendungen des Vertrauensraums erstellt und geprüft werden. Je nach eingesetzter Technologie werden in weiter führenden Spezifikationen, aufbauend auf den dort zugrunde liegenden technischen Standards, Erweiterungen für die Integration in einen OpenID Federation Vertrauensraum beschrieben ([OpenID Federation for OpenID Connect 1.1], [OpenID Federation for Wallet Architectures 1.0]).
Die TI-Föderation bildet so einen Vertrauensraum nach [OpenID Federation 1.1]. Da die dort registrierten Anwendungen über OpenID Connect (OIDC) kommunizieren, kommt in der TI-Föderation [OpenID Federation for OpenID Connect 1.1] und die zugrunde liegenden Standards zum Einsatz. Perspektivisch kann der Vertrauensraum der TI-Föderation um Anwendungen erweitert werden, die auf der Wallet-Architektur der dort zugrunde liegenden Standards aufsetzen. Hier ist dann die Erweiterung des OpenID Federation Standards [OpenID Federation for Wallet Architectures 1.0] zu berücksichtigen.
2.1.3 Identifikationsmittel und -systeme
Die Identifizierung des Nutzers kann je nach Schutzbedarf und Regulierungsniveau der verwendeten Anwendung auf unterschiedliche Weise erfolgen. Gesundheitsdaten weisen nach DSGVO einen besonders schützenswerten Charakter auf. Folglich muss zweifelsfrei sichergestellt sein, dass ein Zugriff nur durch berechtigte Personen möglich ist. Hierfür gibt es in Deutschland unterschiedliche hoheitliche Identifikationssysteme mit einer jeweiligen Zweckbindung. Sie dienen dazu, eine Person oder ein Objekt eindeutig innerhalb eines Nutzungskontextes zu identifizieren. Im Kontext des Gesundheitswesens dient die Gesundheitskarte mit zugehöriger Krankenversichertennummer als Identifikationsmittel mit entsprechender Zweckbindung. Diese kann über einen Chip entweder kontaktbehaftet oder mit NFC Funktionalität und einem auf ihr enthaltenen Lichtbild für Vor-Ort-Identifizierung bzw. eine PIN für eine Identifizierung online und vor Ort eingesetzt werden. Des Weiteren stellt der neue Personalausweis bzw. der elektronische Aufenthaltstitel bzw. die ID-Karte für EU/EWR-Bürger/innen mit integrierter eID-Funktionalität ein universell einsetzbares Identifikationssystem dar. Zu dessen digitaler Verwendung muss die zugehörige PIN durch den Nutzer freigeschaltet werden. Auf Basis des Personalausweises existieren unterschiedliche Identifizierungsverfahren. Das sicherste Verfahren ist das Online-Ausweisident-Verfahren, bei welchem das Auslesen des Datensatzes mittels NFC-Schnittstelle über die Eingabe der PIN abgesichert wird.
2.2 Die Ausgangslage im deutschen Gesundheitswesen
Die Telematikinfrastruktur (TI) ist die Plattform für Gesundheitsanwendungen in Deutschland. Millionen Versicherte profitieren durch die digitalen Anwendungen der TI von einer verbesserten medizinischen Versorgung. Ziel und Aufgabe der gematik ist es, diese Infrastruktur auszubauen, zu modernisieren und so fit für das digitale Gesundheitswesen der Zukunft zu machen.
Im Jahr 2005 wurde mit dem Aufbau der Telematikinfrastruktur durch die gematik begonnen. Mit dem Whitepaper zur Telematikinfrastruktur 2.0 wurde 2020 von der gematik ein Impuls veröffentlicht, die TI als zukunftsfähige Arena für digitale Medizin voranzutreiben.
Die Architektur der TI 2.0 basiert demnach auf sechs fundamentalen Säulen:
- Einem föderierten Identitätsmanagement, weil mit dieser "Brücke" mehr Flexibilität und Nutzerfreundlichkeit durch die einfache Nutzung von Identitätsbestätigungen der TI für eigene digitale Angebote der Nutzergruppen möglich ist.
- Der universellen Erreichbarkeit der Dienste, weil der Wegfall proprietärer IT-Lösungen (z. B. Konnektor) Kosten senkt und den Betrieb stabilisiert.
- Einer modernen Sicherheitsarchitektur, weil diese die eigenständige Bereitstellung von Diensten durch unterschiedliche Anbieter ermöglicht und sowohl sicherer als auch effizienter ist.
- Verteilten Diensten, weil aus Sicht optimierter Versorgungsprozesse die Verknüpfung von Daten aus verschiedenen Quellen notwendig ist.
- Interoperabilität und strukturierte Daten, weil die anwendungsfallbezogene Versorgung und Forschung eine Verbesserung der Datenqualität erfordert. Standardbasierte strukturierte Daten und Schnittstellen erhöhen die Verfügbarkeit bei Produkten und Services.
- Einem automatisiert verarbeitbaren Regelwerk der TI, weil eine automatisierte Überprüfung der Sicherheit und des Datenschutzes sowie der Interoperabilität und Verfügbarkeit das Vertrauen in die TI stärken.
Das vorliegende Dokument beschreibt die Grundlagen für die erste Säule, das föderierte Identitätsmanagement.
Zum Verständnis dieser Säule werden im weiteren Verlauf dieses Kapitels die grundlegenden Bausteine des Identitätsmanagements im Gesundheitswesen vorgestellt und, soweit erforderlich, erläutert.
2.2.1 Identitätsherausgeber, Identitätsträger und Trust Service Provider
Unter Identitätsherausgebern versteht man diejenigen Instanzen, die die Datenhoheit über die digitalen Identitäten und die ihnen zugeordneten Attribute besitzen. Für die verschiedenen Sektoren existieren unterschiedliche Identitätsherausgeber, deren Zuständigkeiten im SGB V geregelt sind. In jedem Sektor existieren spezifische Identitätsträger, die in der Telematikinfrastruktur 1.0 durch Smartcards repräsentiert werden.
Ergänzend zu kartenbasierten Identitäten sollen mit der TI 2.0 digitale Identitäten bereitgestellt werden. Dadurch wird Nutzern die Möglichkeit eröffnet, neben der kartenbasierten Authentifizierung auch eine Authentifizierung mittels digitaler Identitäten zu nutzen. Das Konzept der TI-Föderation sieht sowohl die Nutzung von Smartcards als auch die Verwendung digitaler Identitäten als Authentifizierungsmittel für TI-Fachdienste vor.
Im gesetzlichen Versichertensektor fungieren die gesetzlichen Krankenkassen als Identitätsherausgeber. Sie geben für ihre Versicherten die elektronische Gesundheitskarte (eGK) als Identitätsträger aus. Die rechtliche Grundlage hierfür bildet § 291 SGB V. In Deutschland existieren derzeit rund 95 gesetzliche Krankenkassen (Stand: 01.01.2026). Jede Krankenkasse ist für die Ausgabe der Identitätsträger an ihre Versicherten eigenständig verantwortlich. Die Ausgabe elektronischer Gesundheitskarten durch private Krankenversicherungen oder sonstige Kostenträger erfolgt lediglich in wenigen Ausnahmefällen.
Im Leistungserbringerbereich ist die Herausgabe von Identitäten – insbesondere die Ausgabe elektronischer Heilberufs- und Berufsausweise sowie von Komponenten zur Authentifizierung von Leistungserbringerinstitutionen – in § 340 SGB V geregelt. In der praktischen Umsetzung ergibt sich daraus die Zuständigkeit der Kammern auf Landesebene (z. B. Landesärztekammern, Landeszahnärztekammern, Psychotherapeutenkammern, Apothekerkammern und Handwerkskammern) für die Ausgabe elektronischer Heilberufsausweise. Darüber hinaus übernehmen die gematik und das elektronische Gesundheitsberufsregister (eGBR) für ausgewählte Berufsgruppen die Rolle des Identitätsherausgebers. Insgesamt ergeben sich damit für den Identitätsträger eHBA rund 100 Identitätsherausgeber.
Die Ausgabe der SMC-B als Identitätsträger für Leistungserbringerinstitutionen erfolgt sektorspezifisch durch die Kassenärztlichen Vereinigungen, die Kassenzahnärztlichen Vereinigungen, die Apothekerkammern, die Deutsche Krankenhaus TrustCenter und Informationsverarbeitung GmbH (DKTIG), die gematik, das elektronische Gesundheitsberufsregister sowie die Handwerkskammern. Für den Identitätsträger SMC-B agieren damit insgesamt rund 70 Identitätsherausgeber.
Im Rahmen der Bereitstellung von Identitätsträgern werden bei Bedarf sogenannte Trust Service Provider (TSP) eingebunden. Ein Trust Service Provider bzw. Vertrauensdiensteanbieter ist eine Organisation, die digitale Zertifikate ausstellt und verwaltet. Diese Zertifikate dienen der Erstellung und Validierung elektronischer Signaturen sowie der Authentifizierung von Personen und Organisationen.
Elektronische Gesundheitskarte (eGK)
Die elektronische Gesundheitskarte (eGK) ist eine personenbezogene Smartcard und dient seit Anfang 2015 als ausschließlicher Krankenversicherungsnachweis für gesetzlich Versicherte. Sie speichert kryptographische Schlüssel sowie die zugehörigen Zertifikate zur Authentisierung gegenüber der Telematikinfrastruktur (TI). Gemäß § 291 Absatz 2 Nummer 3 SGB V ermöglicht die eGK – sofern sie nach dem 1. Januar 2023 ausgestellt wurde – die Speicherung von Daten nach § 291a Absatz 2 Nummer 1 bis 3 und 6 SGB V.
Elektronischer Heilberufsausweis (HBA)
Der elektronische Heilberufsausweis (eHBA) ist eine personenbezogene Smartcard, die an Leistungserbringer wie Ärztinnen und Ärzte, Zahnärztinnen und Zahnärzte sowie Apothekerinnen und Apotheker ausgegeben wird. Er enthält das kryptographische Schlüsselmaterial sowie die zugehörigen Zertifikate zur Authentisierung gegenüber der Telematikinfrastruktur (TI). Darüber hinaus ermöglicht der eHBA die Erstellung qualifizierter elektronischer Signaturen, beispielsweise für die Ausstellung von E-Rezepten, die Signatur von KIM-Nachrichten, Notfalldaten und elektronischen Arztbriefen. Zudem kann er für die Ver- und Entschlüsselung sowie die Umschlüsselung von Nachrichten verwendet werden.
Institutionsbezogene Identität SM(C)-B
Die Security Module Card Typ B (SMC-B) ist eine institutionsbezogene Identität, die einer Organisation innerhalb der Telematikinfrastruktur (TI) zugeordnet ist. Sie wird entweder als Smartcard oder in Form eines Zertifikatsbündels bereitgestellt und stellt Zertifikate für die Authentisierung sowie für die Ver-, Ent- und Umschlüsselung von Daten und elektronische Signaturen bereit.
GesundheitsID
Die GesundheitsID ist die digitale Identität für Versicherte im Gesundheitswesen, die von der jeweiligen Krankenkasse bereitgestellt wird. Sie dient zur Anmeldung an Anwendungen der Telematikinfrastruktur (TI) sowie an weiteren versorgungsrelevanten Fachdiensten und kann perspektivisch auch als Versicherungsnachweis – analog zur elektronischen Gesundheitskarte (eGK) – genutzt werden.
Unter einer GesundheitsID wird ein Datensatz im sektoralen Identity Provider (IDP) der Krankenkasse verstanden, der dort für einen Versicherten angelegt ist. Für die Anlage einer GesundheitsID muss der Versicherte einen Identifizierungsprozess durchlaufen.
Auf Anfrage eines Fachdienstes und nach erfolgreicher Authentifizierung des Versicherten stellt der sektorale IDP der Krankenkasse ein ID-Token mit den für den jeweiligen Fachdienst erforderlichen Informationen aus dem Datensatz der GesundheitsID aus.
2.2.2 Der Weg zur TI 2.0
Die drei genannten Smartcard-Typen stellen in der Telematikinfrastruktur 1.0 die primären Identitätsträger dar. Die ausschließliche Verwendung kartenbasierter Identitätsträger bringt jedoch eine Reihe von Nachteilen und Einschränkungen mit sich. Zu den wesentlichen Grenzen zählen insbesondere:
- Smartcards schränken die Benutzerfreundlichkeit ein, insbesondere bei der Nutzung mobiler Endgeräte.
- In mobilen Szenarien hängt die Einsetzbarkeit von Smartcards von der vorhandenen Gerätehardware ab, insbesondere vom Vorhandensein und der Positionierung eines NFC-Moduls.
- Änderungen an Rollen oder Attributen, die in Zertifikaten auf Smartcards hinterlegt sind, lassen sich nur mit erheblichem Aufwand umsetzen. Für neue Nutzergruppen müssen entsprechende Smartcards zunächst durch die Identitätsherausgeber und Vertrauensdiensteanbieter (TSP) bereitgestellt werden. Insbesondere vor dem Hintergrund bestehender Lieferengpässe bei Hardware und Chipkarten stellt dies eine erhebliche Einschränkung bei der Anbindung neuer Nutzergruppen dar.
- Die Wiederbeschaffung und Neuausgabe von Smartcards ist mit langen Vorlauf- und Lieferzeiten verbunden, insbesondere infolge der anhaltenden Engpässe bei Chipkarten.
Auch auf Seiten des Gesetzgebers wurden diese Einschränkungen erkannt und die Einführung digitaler Identitäten gesetzlich vorgesehen. Die Konzeption der digitalen Identitäten verfolgt das Ziel, sämtliche relevanten Anwendungsfälle der Authentisierung zu adressieren, die bislang durch den Einsatz von Smartcards abgedeckt werden. Darüber hinaus sollen die bestehenden Anwendungsfälle um zusätzliche Einsatzszenarien erweitert werden, die durch digitale Identitäten ermöglicht werden.
Ergänzend kommen in der Telematikinfrastruktur mit der gSMC-K und der gSMC-KT zwei gerätespezifische Sicherheitsmodulkarten zum Einsatz. Diese finden jedoch im Kontext des föderierten Identitätsmanagements keine Anwendung und werden daher im Folgenden nicht weiter betrachtet.
2.2.3 Gesetzliche Rahmenbedingungen
In diesem Kapitel wird ein Überblick über die wichtigsten rechtlichen Grundlagen der vorliegenden Konzeption gegeben. Der Überblick erhebt keinen Anspruch auf Vollständigkeit. Mit Inkrafttreten des Krankenhauspflegeentlastungsgesetzes (KHPflEG) zum 1. Januar 2023 wurden die §§ 291 und 340 SGB V geändert. Die hieraus resultierenden Neuerungen werden in diesem Kapitel bereits berücksichtigt.
Die Begründung der verpflichtenden Einführung der digitalen Identitäten im Gesundheitswesen findet sich im fünften Sozialgesetzbuch. Hier heißt es:
„Spätestens ab dem 1. Januar 2024 stellen die Krankenkassen den Versicherten ergänzend zur elektronischen Gesundheitskarte auf Verlangen eine sichere digitale Identität für das Gesundheitswesen barrierefrei zur Verfügung, die die Vorgaben nach Absatz 2 Nummer 1 und 2 erfüllt und die Bereitstellung von Daten nach § 291a Absatz 2 und 3 durch die Krankenkassen ermöglicht.“ (§291 Absatz 8 Satz 1 SGB V).
Eine analoge Vorgabe für Leistungserbringer und deren Institutionen findet sich in Paragraph 340:
„(6) Spätestens ab dem 1. Januar 2024 haben die Stellen nach Absatz 1 Satz 1 Nummer 1 sowie den Absätzen 2 und 4 ergänzend zu den Heilberufs- und Berufsausweisen auf Verlangen des Leistungserbringers eine digitale Identität für das Gesundheitswesen zur Verfügung zu stellen, die nicht an eine Chipkarte gebunden ist“ (§340 Absatz 6 Satz 1 SGB V).
„(7) Spätestens ab dem 1. Januar 2025 haben die Stellen nach Absatz 1 Satz 1 Nummer 3 sowie den Absätzen 2 und 4 ergänzend zu den Komponenten zur Authentifizierung von Leistungserbringerinstitutionen auf Verlangen der Leistungserbringerinstitution eine digitale Identität für das Gesundheitswesen zur Verfügung zu stellen, die nicht an eine Chipkarte gebunden ist.“ (§340 Absatz 7 Satz 1 SGB V).
Des Weiteren definieren die jeweiligen Paragraphen die Rolle der Verantwortlichkeiten:
„Die Gesellschaft für Telematik legt die Anforderungen an die Sicherheit und Interoperabilität der digitalen Identitäten fest. Die Festlegung der Anforderungen an die Sicherheit und den Datenschutz erfolgt dabei im Benehmen mit dem Bundesamt für Sicherheit in der Informationstechnik und der oder dem Bundesbeauftragen für den Datenschutz und die Informationsfreiheit auf Basis der jeweils gültigen Technischen Richtlinien des Bundesamts für Sicherheit in der Informationstechnik und unter Berücksichtigung der notwendigen Vertrauensniveaus der unterstützten Anwendungen.“ (§291 Absatz 8 Satz 3 und 4 SGB V bzw. sinngemäß §340 Absatz 8 Satz 1 und 2 SGB V).
Sowohl für digitale Identitäten für Versicherte nach § 291 Abs. 8 SGB V als auch für Leistungserbringende und Leistungserbringerinstitutionen nach § 340 Abs. 8 SGB V muss das '[...] Sicherheits- und Vertrauensniveau der Ausprägung einer digitalen Identität [...] mindestens dem Schutzbedarf der Anwendung entsprechen, bei der diese eingesetzt wird (§ 291 Absatz 8 Satz 6 bzw. § 340 Absatz 8 Satz 4 SGB V, gleichlautend).
Mit den Änderungen des KHPflEG wurde des Weiteren Satz 7 in §291 SGB V aufgenommen: "Abweichend von Satz 6 kann der Versicherte nach umfassender Information durch die Krankenkasse über die Besonderheiten des Verfahrens in die Nutzung einer digitalen Identität einwilligen, die einem anderen angemessenen Sicherheitsniveau entspricht." (§291 Absatz 8 Satz 7 SGB V)
Die entsprechenden Technischen Richtlinien des Bundesamts für Sicherheit in der Informationstechnik beziehen sich auf:
- BSI TR-03107-1 Elektronische Identitäten und Vertrauensdienste im E-Government
- BSI TR-03147 Vertrauensniveaubewertung von Verfahren zur Identitätsprüfung natürlicher Personen.
Gesundheitsdaten zählen gemäß DSGVO zu den besonders schützenswerten personenbezogenen Daten. Daraus resultieren erhöhte Anforderungen an Datenschutz und Informationssicherheit. Entsprechend ist das Vertrauensniveau gemäß TR-03107-1 als hoch einzustufen.
Darüber hinaus ergeben sich aus der Verordnung über elektronische Identifizierung und Vertrauensdienste für elektronische Transaktionen im Binnenmarkt (eIDAS-Verordnung) weitere Anforderungen an die Bereitstellung digitaler Identitäten und Vertrauensdienste.
2.3 Fachliche Einordnung der sektoralen Identity Provider
Aufbau, Funktionsumfang und Schnittstellen der Identity Provider sollen im Rahmen einer Föderation den Zugang zur Telematikinfrastruktur als Alternative zu kartengebundenen Identitäten ermöglichen.
Abbildung 1 : Idee des Aufbaus einer TI-Föderation auf Basis des OpenID Federation Standards
Unter Föderation versteht sich, dass jeder Sektor, und innerhalb der Sektoren die jeweiligen Identitätsherausgeber einen eigenen Identity Provider für dessen Mitglieder bereitstellt. Bei den digitalen Identitäten für den Sektor „Versicherte“ stellen die Kostenträger, sprich die gesetzlichen und die privaten Krankenversicherungen jeweils eigene Identity Provider zur Verfügung, über welchen sich deren Versicherte gegenüber den Diensten der TI und Krankenversicherung eigenen sowie weiteren Gesundheitsanwendungen authentisieren können. Dabei ist es auch möglich, dass mehrere Institutionen auf freiwilliger Basis einen gemeinsamen IDP bereitstellen. Die Anforderungen an die Identity Provider der unterschiedlichen Sektoren unterscheiden sich. Dies liegt vor allem darin begründet, dass die Anwendungsfälle und Anwendungen, welche eine Authentifizierung eines Nutzers über einen IDP erfordern für Versicherte andere sind als beispielsweise für Ärzte in Praxen und Krankenhäusern oder für andere medizinische Berufe wie Hebammen und Pflegedienste.
Die Orchestrierung der unterschiedlichen Identity Provider innerhalb der Föderation erfolgt über übergeordnete Knotenpunkte (Superior Entities). Der Federation Master als Root bildet den Trust Anchor der TI-Föderation.
Ziel der Föderation ist es, Versicherten einen zentralen Zugang zu relevanten Diensten der Telematikinfrastruktur, zu Anwendungen der Krankenversicherung sowie zu digitalen Gesundheitsanwendungen bereitzustellen. Hierfür authentisieren sich die Nutzer gegenüber ihrem sektoralen Identity Provider, der die erforderlichen Identitäts- und Attributinformationen in Form eines Tokens an die jeweilige Anwendung übermittelt.
Dadurch wird eine nutzerfreundliche und niedrigschwellige Verwendung digitaler Gesundheitsdienste ermöglicht. Gleichzeitig werden die Anwendungen von der Verwaltung von Identitäten und Authentifizierungsprozessen entlastet und können sich auf ihre fachlichen Kernaufgaben konzentrieren.
Das vorliegende Konzept bezieht sich in weiten Teilen auf die digitalen Identitäten und die TI-Föderation für Versicherte. Dieser Teil der TI-Föderation ist bereits spezifiziert, umgesetzt und befindet sich im produktiven Einsatz.
Wie und in welcher Form die TI-Föderation künftig auf Leistungserbringer (LE) und Leistungserbringerinstitutionen (LEI) erweitert wird, ist zum gegenwärtigen Zeitpunkt noch offen.
Das Konzept zeigt jedoch die Möglichkeiten auf, wie die TI-Föderation auf Basis des OpenID Federation-Standards einen Vertrauensraum zwischen den verschiedenen Systemen des Gesundheitswesens schaffen kann, ohne dabei zwingend auf die TI-PKI angewiesen zu sein. Dadurch wird die Nutzung digitaler Identitäten im Gesundheitswesen auch über die heutigen TI-Anwendungen hinaus ermöglicht und gefördert.
2.4 Rahmenbedingungen des Authentisierungs-Flows
2.4.1 Relevante Anwendungen der IDP-Nutzung
Die Einführung digitaler Identitäten in der Föderation ist kein Selbstzweck. Ziel ist es vielmehr, den sicheren und komfortablen Zugang zu den verschiedenen Anwendungen des Gesundheitswesens über eine zentrale Authentifizierung zu ermöglichen. Diese Anwendungen sind vielfältiger Natur. Versicherte können sowohl auf krankenversicherungsspezifische Anwendungen und Funktionen als auch auf Anwendungen zugreifen, die unabhängig von ihrer jeweiligen Krankenversicherung bereitgestellt werden.
Beispiele für solche Anwendungen sind:
- E-Rezept: Versicherte können über die E-Rezept-App der gematik auf ihre elektronischen Rezepte zugreifen. Die Anwendung ist unabhängig von einer konkreten Krankenversicherung und wird zentral durch die gematik für alle Versicherten bereitgestellt. Die entsprechenden Regelungen finden sich in § 360 SGB V. Das E-Rezept zählt zu den zentralen Anwendungen der Telematikinfrastruktur und stellt damit einen der wesentlichen Anwendungsfälle für digitale Identitäten dar. Für den Zugriff auf ihre Rezepte können Versicherte die bei ihrer Krankenversicherung eingerichtete GesundheitsID verwenden.
- Digitale Gesundheitsanwendungen: Der Leistungsanspruch auf digitale Gesundheitsanwendungen (DiGA) basiert auf den Regelungen des Digitale-Versorgung-Gesetzes (DVG). In der DiGA-Verordnung ist unter anderem festgelegt, dass DiGA-Hersteller eine Authentifizierung über die sektoralen Identity Provider (IDP) der Krankenversicherungen unterstützen müssen.
- Weitere Anwendungen mit Gesundheitsbezug: Darüber hinaus soll die Nutzung weiterer Anwendungen mit Bezug zum Gesundheitswesen über die sektoralen Identity Provider der Krankenversicherungen ermöglicht werden. So könnte beispielsweise der Zugang zu Versichertenportalen durch eine Authentifizierung über die sektoralen IDP der Krankenversicherungen erfolgen. Die Nutzung dieser Anwendungen ist in der Regel nicht gesetzlich reguliert und liegt im Verantwortungsbereich der jeweiligen Krankenkasse.
Darüber hinaus sollen über digitale Identitäten auch krankenkasseneigene Anwendungen für Versicherte nutzbar gemacht werden. Hierfür ist jeweils lediglich eine Authentifizierung über den eigenen sektoralen Identity Provider (IDP) erforderlich. Versicherte anderer Kostenträger müssen in diesem Zusammenhang nicht berücksichtigt werden.
Hierzu zählen insbesondere folgende Anwendungen:
- Elektronische Patientenakte: Die Bereitstellung der elektronischen Patientenakte (ePA) durch die Krankenkassen ist in § 341 SGB V geregelt. Es handelt sich damit um eine krankenkassenspezifische Anwendung, die ausschließlich mit dem jeweiligen sektoralen Identity Provider der betreffenden Krankenkasse kommunizieren muss.
- Krankenversicherung eigene Service-Anwendungen: Hierzu zählen beispielsweise Service-Apps, Online-Geschäftsstellen oder Informationsangebote der Krankenkassen. Aus Nutzer- und Wirtschaftlichkeitsgesichtspunkten soll es den Krankenkassen nach eigenem Ermessen möglich sein, auch für diese Anwendungen eine Authentifizierung über ihren sektoralen Identity Provider zu implementieren.
Die im Februar 2023 veröffentlichte Spezifikation der gematik adressiert aufgrund der gesetzlichen Rahmenbedingungen vorrangig die Anwendungsfälle E-Rezept, DiGA und ePA. Die Erweiterung des Funktionsumfangs des sektoralen Identity Providers einer Krankenversicherung zur Anbindung weiterer, insbesondere krankenkasseneigener Anwendungen, obliegt dem jeweiligen Kostenträger. Solche Erweiterungen liegen außerhalb des Anwendungsbereichs der gematik-Spezifikation, sofern dadurch keine sicherheitsrelevanten Anforderungen oder regulatorischen Vorgaben beeinträchtigt werden.
Vertrauensniveaus
Das Vertrauensniveau einer Anwendung wird durch den Schutzbedarf der Daten bestimmt, die innerhalb der Anwendung verarbeitet werden. Die Zuordnung zu einem Vertrauensniveau berücksichtigt unter anderem die technische und organisatorische Sicherheit des jeweiligen Verfahrens sowie die geltenden rechtlichen Rahmenbedingungen.
Die zugrunde liegende Technische Richtlinie TR-03107 des Bundesamtes für Sicherheit in der Informationstechnik (BSI) definiert drei Vertrauensniveaus: normal, substantiell und hoch. Die zuvor beschriebenen Fokusanwendungen E-Rezept, DiGA und ePA sind dem Vertrauensniveau hoch zuzuordnen. Folglich konzentriert sich die gematik-Spezifikation auf die Anforderungen dieses Vertrauensniveaus.
Die Unterstützung weiterer Vertrauensniveaus obliegt den jeweiligen Krankenkassen und wird durch die Spezifikation nicht eingeschränkt, sofern dadurch keine sicherheitsrelevanten Anforderungen oder Vorgaben beeinträchtigt werden.
Bereitstellung von Claims
Im Rahmen der Authentifizierung fordern Anwendungen beim Identity Provider (IDP) die für ihre Nutzung erforderlichen Scopes an. Diese setzen sich aus vordefinierten Claims zusammen. Zur Sicherstellung der Interoperabilität mit den Fokusanwendungen E-Rezept, DiGA und ePA wird ein Minimal-Claim-Set definiert. Dieses beschreibt die Menge an Claims, die ein Identity Provider mindestens bereitstellen muss, um als Teilnehmer der Föderation agieren zu können
Zugriffsmedien
Die zuvor beschriebenen Anwendungen sollen über verschiedene Endgeräte und Anwendungstypen nutzbar sein. Grundsätzlich wird dabei zwischen der Nutzung auf Smartphones und auf Desktop-PCs unterschieden. Im Smartphone-Umfeld ist zusätzlich zwischen nativen mobilen Apps und browserbasierten Anwendungen zu differenzieren. Die betrachteten Anwendungen können grundsätzlich sowohl als App als auch als Web-Anwendung bereitgestellt werden.
Hieraus ergeben sich verschiedene Authentifizierungsflüsse, die von den Identity Providern (IDP) unterstützt werden müssen.
- App2App-Flow: Der App2App-Flow beschreibt die Authentifizierung eines Nutzers, bei der sowohl der Fachdienst-Client als auch die Authenticator-App auf demselben Endgerät installiert sind. Dieser Flow kommt beispielsweise zum Einsatz, wenn ein Nutzer die E-Rezept-App auf seinem Smartphone verwendet und sich über die App seiner Krankenversicherung auf demselben Gerät authentifiziert.
- Web2App-Flow auf einem Gerät: Der Web2App-Flow beschreibt die Authentifizierung eines Nutzers innerhalb einer Web-Anwendung, die im Browser desselben Geräts ausgeführt wird, auf dem auch die Authenticator-App installiert ist. Ein Beispiel hierfür ist die Nutzung einer DiGA als Web-Anwendung, bei der die Authentifizierung über die App der Krankenversicherung auf demselben Smartphone erfolgt.
- Zwei-Geräte-Flow: Der Zwei-Geräte-Flow beschreibt die Authentifizierung eines Nutzers, bei der die Anwendung auf einem anderen Endgerät als die Authenticator-App ausgeführt wird. Hierbei kann es sich sowohl um eine App als auch um eine Web-Anwendung handeln. Ein typisches Beispiel ist der Zugriff auf die elektronische Patientenakte (ePA) über einen Desktop-Browser, während die Authentifizierung über die App der Krankenversicherung auf dem Smartphone erfolgt.
2.4.2 Ablauf der Authentisierung
Der konkrete Ablauf der Authentifizierung hängt von den zuvor beschriebenen Rahmenbedingungen ab. Diese bestimmen maßgeblich, auf welche Anwendung über welches Zugriffsmedium und mit welchen Authentifizierungsmitteln zugegriffen werden kann.
Unabhängig von den jeweiligen Rahmenbedingungen kommt das zuvor beschriebene OpenID-Connect-Protokoll zum Einsatz. Nach erfolgreicher Authentifizierung des Nutzers beim Identity Provider (IDP) wird ein ID-Token erzeugt und an den als OpenID-Relying-Party in der Föderation registrierten Fachdienst übermittelt. Das ID-Token enthält die Claims der von der Relying Party angefragten Scopes sowie weitere für die Anwendung relevante Informationen.
Nach Erhalt des ID-Tokens liegt das eigentliche Zugriffsmanagement in der Verantwortung des jeweiligen Fachdienstes. Dieser prüft, welche Berechtigungen und gegebenenfalls Bevollmächtigungen für die im ID-Token beschriebene Entität vorliegen. Das Ergebnis dieser Prüfung mündet in der Ausstellung eines Access-Tokens durch den Authorization Server des Fachdienstes. Über dieses Access-Token erhält der authentifizierte Nutzer die Berechtigung, auf die geschützten Ressourcen (Protected Resources) des Fachdienstes zuzugreifen.
3 Systemüberblick
3.1 Allgemeiner Überblick
Ein zentrales Merkmal der zu entwickelnden Gesamtlösung der sektoralen Identity Provider (IDP) ist das Prinzip der Föderation. Die Funktionalität eines Identity Providers wird dabei nicht durch einen einzelnen zentralen Dienst bereitgestellt, sondern gemeinschaftlich durch eine Vielzahl sektoraler IDP. Für diese sind jeweils die identitätsherausgebenden Institutionen verantwortlich, die auch für die Verwaltung der zugehörigen Nutzergruppen zuständig sind.
Um eine Gesamtlösung zu gewährleisten, die von Anwendungen möglichst einfach genutzt werden kann, sind in bestimmten Bereichen einheitliche technische und organisatorische Vorgaben erforderlich. Hierzu zählen insbesondere:
- Einheitliche Identitätsattribute für die verschiedenen Nutzergruppen (Scopes und Claims),
- einheitliche Verfahren zur Auffindung sektoraler Identity Provider (IDP Discovery),
- eine einheitliche Grundstruktur der Vertrauensbeziehungen innerhalb der Föderation zwischen Fachdiensten und Identity Providern,
- einheitliche Vertrauensniveaus im Rahmen eines gemeinsamen Trust Frameworks.
Die Abbildung „Beispielhafter Aufbau der TI-Föderation“ veranschaulicht eine mögliche Struktur der TI-Föderation. Alle sektoralen Identity Provider der Föderation sind beim Federation Master registriert. Sofern bei einer künftigen Erweiterung der TI-Föderation auf weitere Sektoren signifikant unterschiedliche Anforderungen an die sektoralen Identity Provider entstehen, kann es sinnvoll sein, die Identity Provider einzelner Sektoren unter sogenannten Intermediates zusammenzufassen.
Alle Fachdienste (i.d.R. die Authorization Server der Fachdienste), die die bei den Identity Providern hinterlegten digitalen Identitäten nutzen möchten, sind als OpenID-Relying-Parties beim Federation Master oder einem Intermediate registriert. Die Intermediates sind wiederum entweder bei einem anderen Intermediate oder direkt beim Federation Master registriert.
Hinweis: Abweichend von dem dargestellten Beispiel sind aktuell sämtliche sektoralen Identity Provider sowie die Authorization Server der DiGA-Anwendungen und des OGR direkt beim Federation Master als Teilnehmer der Föderation registriert. Die Spezifikation und Einführung von Intermediates erfolgt erst dann, wenn hierfür ein konkreter Bedarf besteht, beispielsweise zur Durchsetzung sektorspezifischer Policies oder zur Vergabe besonderer Trust Marks für Teilgruppen von Föderationsteilnehmern.
Abbildung 2 : Beispiel des Aufbau der TI-Födeartion
Die TI-Föderation besteht aus verschiedenen Systemen, die über standardisierte Schnittstellen miteinander kommunizieren. Gemeinsam bilden diese Systeme einen Vertrauensraum.
Nutzer verwenden unterschiedliche Fachdienste der Telematikinfrastruktur (TI). Diese werden in Form von Apps oder Browseranwendungen bereitgestellt und bieten spezifische, in der Regel medizinische, digitale Services an.
Zur Authentifizierung der Nutzer greifen die Fachdienste auf die sektoralen Identity Provider (IDP) der Föderation zurück. Die Prüfung der fachlichen Zugriffsberechtigungen und die Entscheidung über die Nutzung eines Fachdienstes erfolgen hingegen durch den jeweiligen Fachdienst. Hierzu wertet dieser die von den sektoralen Identity Providern bereitgestellten Identitäts- und Attributinformationen aus und leitet daraus die für den Nutzer geltenden Zugriffsrechte ab.
Die Fachdienste (i.d.R. die Authorization Server der Fachdienste) sind als OpenID-Relying-Parties gemäß [OpenID Federation 1.1] Bestandteil der TI-Föderation und entsprechend innerhalb des Vertrauensraums registriert.
Als sektoraler Identity Provider (IDP) wird ein Dienst zur Authentifizierung von Nutzern bezeichnet. Nach erfolgreichem Abschluss des Authentifizierungsprozesses stellt der sektorale IDP Identitätsinformationen über den Nutzer in Form eines ID-Tokens bereit.
Die bereitgestellten Informationen sind spezifisch für die jeweilige Nutzergruppe und den zugehörigen Sektor innerhalb der Telematikinfrastruktur des Gesundheitswesens. Die vom IDP übermittelten Identitätsinformationen werden vom anfragenden Fachdienst genutzt, um die Berechtigungen des Nutzers zu prüfen und festzustellen, auf welche Fachdaten und Fachprozesse dieser zugreifen darf.
Ein wesentlicher Sektor der TI-Föderation ist der Bereich der Krankenversicherungen mit den Versicherten als Nutzergruppe. Grundsätzlich ist jedoch nicht ausgeschlossen, dass ein sektoraler IDP Identitätsinformationen für mehrere Nutzergruppen bereitstellt (siehe hierzu den Parameter „user_type_supported“ als Claim der Entity Configuration eines sektoralen IDP gemäß [gemSpec_IDP_Sek]).
Die sektoralen Identity Provider sind als OpenID Provider gemäß [OpenID Federation 1.1] ebenfalls Bestandteile der TI-Föderation.
Der Vertrauensraum der TI-Föderation wird durch sogenannte Superior Entities gemäß [OpenID Federation 1.1] aufgespannt. Diese können entweder als Trust Anchor oder als Intermediate ausgeprägt sein. Alle Teilnehmer der TI-Föderation sind bei einer Superior Entity registriert. Nur registrierte Teilnehmer sind berechtigt, die Dienste der TI-Föderation in Anspruch zu nehmen.
Der Trust Anchor der TI-Föderation ist der Federation Master (siehe [gemSpec_IDP_FedMaster]). Er stellt eine zentrale Komponente für alle Teilnehmer der TI-Föderation dar, insbesondere für Intermediates, Fachdienste in ihrer Rolle als OpenID-Relying-Parties sowie sektorale Identity Provider (OpenID Provider).
Intermediates fungieren als Trust Anchor für Teilnehmer mit spezifischen Trust Marks, Policies und Contrains. Beispiele hierfür sind ein ZETA-Intermediate für ZETA-Authorization Server oder ein DiGA-Intermediate für DiGA-Authorization Server.
Neben den als OpenID-Relying-Parties registrierten Fachdiensten (in der Regel deren Authorization Server), sektoralen Identity Providern (OpenID Provider), Intermediates und dem Federation Master als Superior können weitere Komponenten (Entity-Types) Bestandteil der TI-Föderation sein. Hierzu zählen beispielsweise TI-Fachdienste selbst, die gemäß [OpenID Federation 1.1] als OAuth Resource registriert werden.
Die Kommunikation zwischen den Systemen der TI-Föderation basiert auf den Standards OpenID Federation, OpenID Connect (OIDC), OAuth 2.0, JSON Web Token (JWT) sowie weiteren unterstützenden Spezifikationen.
Neben den Komponenten der TI-Föderation sind im Gesamtkontext weitere Systeme über Schnittstellen an die Föderation angebunden, ohne selbst Bestandteil dieser zu sein. Hierzu zählen insbesondere Bestandssysteme, in denen die Identitäts- und Nutzerdaten der Anwender verwaltet und gepflegt werden.
Abbildung 3 : TI-Föderation und Nachbarsysteme
Anwender / Versicherte: Anwender sind die Versicherten, die einen Fachdienst über ein Frontend des Versicherten (FdV) nutzen möchten. Um einen Fachdienst nutzen zu können, müssen sich die Anwender authentifizieren. Die Authentifizierung mittels GesundheitsID erfolgt dabei über die Komponenten der TI-Föderation. Zur Einwilligung in die Weitergabe ihrer Daten an einen Fachdienst sowie bei der Nutzung eines Authentifizierungsmittels sind die Anwender aktiv in den Authentifizierungsprozess eingebunden.
Fachdienst-Client: Der Fachdienst-Client ist, in der derzeitigen TI-Föderation, die ausschließlich die Authentifizierung von Versicherten unterstützt, das Frontend des Versicherten (FdV). Anforderungen zur Nutzerauthentifizierung werden vom Fachdienst-Client an eine als OpenID-Relying-Party registrierte Komponente der TI-Föderation übermittelt. Abhängig von der konkreten Umsetzung des Fachdienstes wird das Ergebnis der Authentifizierung anschließend an den Fachdienst-Client zurückgegeben.
Ist die Kommunikation zwischen dem Fachdienst-Client und dem als OpenID-Relying-Party registrierten Backend gemäß dem OAuth-Standard umgesetzt, erhält der Fachdienst-Client ein Access-Token. Darüber hinaus ist die Frontend-Komponente des OpenID Providers, das sogenannte Authenticator-Modul, für die Interaktion mit dem Nutzer während des Authentifizierungsprozesses in ein FdV integriert.
Krankenversicherungsysteme: Die Krankenversicherungssysteme stellen die Datenquellen für die zu authentifizierenden Versicherten dar. Die für die Authentifizierung erforderlichen Daten werden für die sektoralen Identity Providern der Krankenversicherungen aus den jeweiligen Krankenversicherungssystemen bezogen.
Registrierungskomponente: Die Registrierung von Teilnehmern innerhalb der TI-Föderation erfolgt über eine Registrierungskomponente. Derzeit handelt es sich hierbei um einen organisatorischen Prozess mit mehreren beteiligten Organisationen und Systemen. Perspektivisch soll dieser Prozess automatisiert werden.
Certificate Transparency (CT) Logs: Die TI-Föderation nutzt Certificate Transparency (CT) Logs externer Anbieter zur Überprüfung und Nachvollziehbarkeit der von den sektoralen IDPs verwendeten TLS-Zertifikate und öffentlichen Schlüssel.
Ident-Verfahren: Zur sicheren Identifizierung von Versicherten ist die Durchführung eines geeigneten Identifizierungsverfahrens erforderlich. Hierzu können beispielsweise die Online-Ausweisfunktion des Personalausweises, ein Post-Ident-Verfahren oder die elektronische Gesundheitskarte (eGK) in Verbindung mit einer PIN verwendet werden. Gegenüber dem sektoralen Identity Provider wird hierdurch die Identität des Versicherten verifiziert.
3.2 Schnittstellen zu Umsystemen
Tabelle 1 : Schnittstellen zu Umsystemen
| Schnittstelle | Komponente/System in der TI-Föderation | fachliche Schnittstellenbeschreibung |
|---|---|---|
| Anwender / Versicherte | sektoraler IDP - Authenticator Modul
|
|
| Fachdienst-Client | Fachdienst als OpenID-Relying-Party der TI-Föderation |
|
| Krankenversicherungsysteme
attributbestätigende Stelle |
sektoraler IDP |
|
| Registrierungskomponente | Federation Master |
|
| Certificate Transparency (CT) Log | Federation Master |
|
| Ident-Verfahren | sektoraler IDP |
|
4 Lösungsstrategie
4.1 Anwendungsfälle
Superior Entities (federation_entity) können gemäß [OpenID Federation 1.1] (Kapitel „Introduction“) entweder als Trust Anchor oder als Intermediate fungieren. Jeder Teilnehmer der TI-Föderation, einschließlich der Superior Entities, veröffentlicht eine Entity Configuration in Form eines Entity Statements. Die zulässigen und erforderlichen Inhalte dieser Entity Statements sind im Standard [OpenID Federation 1.1], insbesondere in den Kapiteln „Claims that MUST or MAY Appear in both Entity Configurations and Subordinate Statements“ sowie „Federation Entity“, definiert.
Superior Entities sind Komponenten der TI-Föderation, die sowohl technische als auch organisatorische Aufgaben innerhalb des Vertrauensraums übernehmen. Hierzu zählen insbesondere die Verwaltung von Vertrauensbeziehungen sowie die Unterstützung föderationsbezogener Prozesse. Die nachfolgenden Anwendungsfälle dienen der Beschreibung der Anforderungen an Superior Entities.
Tabelle 2 : Übersicht über die Anwendungsfälle im Gesamtkontext Federation Master
| Use Case | Komponente | Kurzbeschreibung |
|---|---|---|
| Teilnehmer registrieren | Federation Master / Intermediate | Jeder Fachdienst muss sich als Relying Party und jeder sektorale Identity Provider (IDP) als OpenID Provider bei einer Superior Entity (Federation Master oder Intermediate) registrieren. Darüber hinaus kann sich ein Fachdienst als Protected Resource bei einer Superior Entity registrieren.
Im Rahmen der Registrierung wird der öffentliche Teil des Schlüssels, mit dem der Teilnehmer sein Entity Statement signiert, bei der jeweiligen Superior Entity hinterlegt.*
Die Registrierung erfolgt durch die Übergabe der Teilnehmerdaten an eine Registrierungsschnittstelle durch die Registrierungskomponente.** |
| am Fachdienst anmelden | Fachdienstes als OpenID-Relying-Party der TI-Föderation | Der Nutzer meldet sich bei einem Fachdienst an. Fachdienste können beispielsweise Anwendungen von Krankenversicherungen, Anwendungen der Telematikinfrastruktur (TI) wie E-Rezept oder ePA sowie Digitale Gesundheitsanwendungen (DiGA) sein.
Die Anmeldung an einem Fachdienst erfolgt über den Identity Provider, bei dem die digitale Identität (GesundheitsID) des Nutzers hinterlegt ist. Ist der zuständige Identity Provider nicht bekannt, kann über eine Schnittstelle eine Liste aller registrierten Identity Provider beim Federation Master abgerufen werden und dem Nutzer dargestellt werden. Die Auswahl des korrekten Identity Provider kann anschließend durch den Nutzer im Rahmen des Anmeldeprozesses erfolgen. |
| IDP-Liste bereitstellen | Federation Master | Die TI-Föderation stellt für alle registrierten sektoralen Identity Provider der Krankenversicherungen die Informationen „Organisationsname“, „Logo“ und „Zieladresse (URL)“ in Form einer Liste bereit. |
| Autorisierung prüfen | Fachdienst als Protected Resource | Der Anwendungsfall „Autorisierung prüfen“ beschreibt einen Prozess des Fachdienstes, der ohne direkte Interaktion des Nutzers erfolgt. Dabei wird ermittelt, welche fachlichen Berechtigungen dem Nutzer innerhalb des Fachdienstes zugewiesen sind und welche Nutzerattribute für diese Entscheidung benötigt werden. Die hierfür erforderlichen Informationen werden vom Identity Provider bereitgestellt. |
| Subordinate Statement bereitstellen | Federation Master / Intermediate | Superior Entities stellen für alle bei ihnen direkt registrierten Teilnehmer jeweils ein Subordinate Statement aus. |
| Nutzer authentifizieren | Identity Provider | Vor Durchführung der eigentlichen Authentifizierung wird geprüft, ob der anfragende Fachdienst ein als Relying Party registrierter Teilnehmer der TI-Föderation ist und über die erforderliche Berechtigung verfügt, die angeforderten Nutzerattribute (Scopes und Claims) abzurufen. Zu diesem Zweck wird das für den Fachdienst ausgestellte Subordinate Statement von der zuständigen Superior Entity (Federation Master oder Intermediate) bezogen.
Die Authentifizierung des Nutzers erfolgt anschließend über das Authenticator-Modul des Identity Providers, das beispielsweise in Form einer mobilen Anwendung bereitgestellt werden kann. |
| Fachdienst-Anwendungsfälle nutzen | Fachdienst als Protected Resource | Nach erfolgreicher Authentifizierung und Autorisierung kann der Nutzer die ihm zugewiesenen Anwendungsfälle des Fachdienstes nutzen. |
| TLS-Zertifikate in VAU erzeugen | Identity Provider | Im Rahmen der Ausstellung von TLS-Zertifikaten für Domänen eines Identity Providers wird geprüft, ob TLS-Zertifikate betroffen sind, deren zugehörige Schlüssel in der VAU erzeugt wurden. Der Prozess dieser Schlüsselerzeugung wird von einer Prüfinstanz (z. B. der gematik) überwacht. Der Prozess schließt eine Aktualisierung des beim Federation Master hinterlegten Schlüsselmaterials ein. |
| Schlüssel der TLS-Zertifikate abgleichen | Federation Master | Der Federation Master überprüft in regelmäßigen Abständen sowie anlassbezogen die TLS-Zertifikaten der in die VAU führenden TLS-Verbindungen.
Hierbei wird verifiziert, ob die öffentlichen Schlüssel der eingesetzten Zertifikate im Federation Master hinterlegt sind. Zur Identifikation der hierfür relevanten TLS-Zertifikate greift der Federation Master auf öffentlich verfügbare Certificate-Transparency-Logs (CT-Logs) zurück. |
| Schlüssel und Metadaten verwalten | Federation Master / Intermediate | Superior Entities verwalten die kryptographischen Schlüssel sowie relevante Metadaten der Teilnehmer. Für die bei ihnen direkt registrierten Teilnehmer stellen sie signierte Subordinate Statements aus und bestätigen damit deren Zugehörigkeit zur TI-Föderation gegenüber anderen Teilnehmern. Die Aufnahme und Entfernung von Teilnehmern erfolgt über definierte Registrierungs- und Deregistrierungsprozesse. |
* Die sektoralen Identity Provider der Krankenversicherungen werden direkt beim Federation Master (TI Trust Anchor) registriert. Bereits bestehende Registrierungen von Fachdiensten als OpenID-Relying-Parties der TI-Föderation beim Federation Master bleiben erhalten. Alle neu zu registrierenden ZETA-Authorization Server werden als OpenID-Relying-Parties der TI-Föderation bei einem ZETA-AS Intermediate registriert. Hierfür muss der ZETA-AS Intermediate beim Federation Master registriert sein. Weitere Intermediates, beispielsweise zur Gruppierung aller DiGA-Authorization Server, können bei Bedarf eingerichtet werden.
** Die Automatisierung der Registrierung erfolgt über ein eigenständiges Produkt, die Registrierungs-Engine. Diese befindet sich derzeit in der Spezifikation. Bis zur Produktivsetzung der Registrierungs-Engine erfolgt die Registrierung von Teilnehmern über einen manuellen Prozess, der über das IT-Service-Management (ITSM) gesteuert wird.
Abbildung 4 : Anwendungsfälle TI-Föderation
4.2 Aufbau und Kommunikation
Die Struktur und Kommunikation innerhalb der TI-Föderation orientieren sich am Standard [OpenID Federation 1.1] sowie an den dort referenzierten Standards. Die Orientierung an [OpenID Federation 1.1] liefert die grundlegenden Vorgaben und Rahmenbedingungen für den Aufbau des Vertrauensraums der TI-Föderation. Von den Vorgaben des Standards wird nur dort abgewichen, wo dies aufgrund spezifischer Anforderungen der gematik erforderlich ist. Dies erfolgt entweder durch die Konkretisierung optionaler Anforderungen des Standards oder durch dessen Erweiterung und Präzisierung unter Berücksichtigung der Rahmenbedingungen der TI.
Jeder Teilnehmer der TI-Föderation muss eine dem OpenID Federation-Standard entsprechende Entity Configuration in Form eines Entity Statements öffentlich bereitstellen.
Federation Entities (Superior Entities) sind Komponenten des Produkttyps „Federation Master“. Hierzu zählen einerseits der Federation Master selbst als Trust Anchor und andererseits die Intermediates (siehe Abbildung „Beispielhafter Aufbau der TI-Föderation“).
Die Identity Provider (Produkttyp „Sektoraler IDP“) der TI-Föderation stellen sicher, dass ausschließlich identifizierte Nutzer gegenüber anfragenden Fachdiensten authentifiziert werden. Darüber hinaus wird sichergestellt, dass Nutzer der Übermittlung der für die jeweilige Anwendung erforderlichen Daten ausdrücklich zustimmen (Consent).
Die in der TI-Föderation als OpenID-Relying-Parties registrierten Fachdienste beziehungsweise deren Authorization Server nutzen die sektoralen Identity Provider, um Nutzer ihrer Anwendungen eindeutig zu authentifizieren und deren Einwilligung in die Übermittlung erforderlicher Nutzerdaten einzuholen. Die OpenID-Relying-Parties sind Komponenten der jeweiligen Fachdienst-Produkttypen.
Der Vertrauensraum der TI-Föderation wird aufgebaut, indem sich jeder Teilnehmer über einen organisatorischen Prozess innerhalb der TI-Föderation registriert. Diese Erstregistrierung erfolgt unabhängig von den späteren Laufzeitprozessen der Föderation.
Intermediates als Komponenten des Produkttyps „Federation Master“ müssen nicht den organisatorischen Registrierungsprozess durchlaufen. Ihre Registrierung innerhalb des Vertrauensraums der TI-Föderation erfolgt auf technischer Ebene innerhalb des Produkttyps.
Zur Laufzeit kann jeder Teilnehmer prüfen, ob das Kommunikationsgegenüber ebenfalls als Teilnehmer der TI-Föderation registriert ist und über welche Eigenschaften und Berechtigungen es innerhalb der Föderation verfügt. Die Vertraulichkeit und Vertrauenswürdigkeit der Kommunikation werden sichergestellt, indem die Vertrauensbeziehungen entlang der Trust Chain bis zum Trust Anchor der TI-Föderation validiert werden.
Abbildung 5 : Komponenten der TI-Föderation im Überbrlick
Bei der Authentifizierung eines Nutzers gegenüber einer Anwendung ist der Federation Master als Vertrauensanker der TI-Föderation eingebunden. Die Voraussetzung für die Kommunikation zwischen einem Fachdienst in seiner Rolle als OpenID-Relying-Party und einem sektoralen Identity Provider ist deren Registrierung innerhalb des Vertrauensraums der TI-Föderation.
Voraussetzungen für die Prüfung der beteiligten Komponenten im Rahmen eines Nutzungsprozesses sind:
- Die aktuellen Signaturschlüssel des beteiligten sektoralen Identity Providers und der OpenID-Relying-Party wurden im Rahmen des Registrierungsprozesses bei der zuständigen Superior Entity (Federation Master oder Intermediate) hinterlegt.
- Jeder Teilnehmer hat im Rahmen seiner Registrierung den öffentlichen Schlüssel des Federation Masters erhalten, mit dem dessen Entity Statement validiert werden kann.
- Die Entity Statements des beteiligten sektoralen Identity Providers und der OpenID-Relying-Party entsprechen den Vorgaben des Standards [OpenID Federation 1.1].
- Der FQDN des Federation Masters wurde durch den Betreiber des Federation Masters veröffentlicht. Der FQDN entspricht dem eindeutigen Identifier des Federation Masters in der TI-Föderation.
Die nachfolgende Übersichtsgrafik veranschaulicht das Zusammenspiel der verschiedenen Komponenten innerhalb der TI-Föderation.
Die Kommunikation zwischen dem Anwender und dem Fachdienst über das Anwendungsfrontend entspricht in der Regel den Vorgaben von OAuth 2.0 ([RFC6749]) unter Verwendung von Proof Key for Code Exchange (PKCE) gemäß [RFC7636]. Sie ist nicht Gegenstand dieses Dokuments und wird daher nicht näher beschrieben.
Die Kommunikation zwischen dem Authorization Server des Fachdienstes in seiner Rolle als OpenID-Relying-Party der TI-Föderation und dem sektoralen Identity Provider (OpenID Provider) entspricht den Spezifikationen [OpenID Connect Core 1.0] sowie Pushed Authorization Requests (PAR) gemäß [RFC 9126]. Auch diese Kommunikationsbeziehungen werden im vorliegenden Dokument nicht detailliert betrachtet.
Abbildung 6 : Komponenten der TI-Föderation mit Schnittstellen
Erläuterungen zur obigen Abbildung:
Die jeweiligen Teilnehmertypen (entity_type) sind farblich unterschiedlich dargestellt.
Die Fachdienste (gelb) bestehen in der Regel aus mehreren Komponenten. Die Authorization Server der Fachdienste autorisieren den Fachdienst-Client nach erfolgreicher Prüfung der Zugriffsberechtigungen zum Zugriff auf die Daten und Geschäftsprozesse der Fachdienste (Resource Server). In der TI-Föderation erfolgt diese Prüfung auf Grundlage einer vorherigen Authentifizierung des Nutzers bei einem Identity Provider. Die Nutzer, die über einen Fachdienst-Client auf einen Fachdienst zugreifen möchten, müssen sich hierzu bei einem Identity Provider authentifizieren. Die sektoralen Identity Provider (blau) verwalten die Identitätsinformationen der Nutzer und führen den Authentifizierungsprozess durch. Erst nach erfolgreicher Nutzerauthentifizierung stellt der Authorization Server eines Fachdienstes dem Fachdienst-Client eine entsprechende Zugriffsberechtigung aus.
Im Kontext der TI-Föderation sind die Authorization Server der Fachdienste als OpenID-Relying-Parties (entity_type = openid_relying_party) und die sektoralen Identity Provider als OpenID Provider (entity_type = openid_provider) registriert.
Die Fachdienst-Clients sind nicht Teil der TI-Föderation.
Die Resource Server der Fachdienste können ebenfalls im Vertrauensraum der TI-Föderation als oauth_resource registriert werden. Anwendungen können den Vertrauensraum der TI-Föderation nutzen, um die Vertrauenswürdigkeit eines Fachdienstes als Kommunikationspartner nachzuweisen. So kann beispielsweise die Registrierung des PoPP-Service in der TI-Föderation für Anwendungen hilfreich sein, die ausgestellten PoPP-Token verwenden und diese unabhängig von der Komponenten-PKI der gematik prüfen wollen. Die PoPP-Token werden vom PoPP-Service signiert. Der zugehörige öffentliche Schlüssel ist im Entity Statement des PoPP-Service hinterlegt. Über die TI-Föderation wird sichergestellt, dass nutzende Anwendungen dem Entity Statement und damit auch der Signatur der PoPP-Token vertrauen können.
Der Federation Master (grün) umfasst Komponenten des Typs federation_entity mit Funktionen zur Prüfung der Vertrauenskette eines Teilnehmers bis zum Vertrauensanker. Darüber hinaus stellt er Funktionen zur Bereitstellung von Informationen über Teilnehmer der TI-Föderation sowie zur Abbildung von Regeln (Policies) und Vertrauensnachweisen (Trust Marks) bereit.
Die Schnittstellen zwischen den Komponenten der TI-Föderation sind durch durchgezogene Linien dargestellt. Die gestrichelten Linien visualisieren hingegen organisatorische Prozesse und Verfahren mit Komponenten außerhalb der TI-Föderation. Die Schnittstellen zwischen der Registrierungs-Engine und dem Federation Master sind jedoch Bestandteil der technischen Schnittstellenspezifikation.
Innerhalb des Vertrauensraums der TI-Föderation müssen die beteiligten Teilnehmer sicherstellen, dass ihr jeweiliger Kommunikationspartner ebenfalls Mitglied der TI-Föderation ist. Hierzu stellt jeder Teilnehmer ein selbst signiertes Entity Statement bereit. Zur Herstellung einer Vertrauensbeziehung ruft ein Teilnehmer das Entity Statement seines Kommunikationspartners über dessen öffentlich erreichbare /.well-known/openid-federation Schnittstelle ab.
Zusätzlich ruft der anfragende Teilnehmer von der Superior Entity (Federation Master oder Intermediate), der der Kommunikationspartner direkt untergeordnet ist, ein Subordinate Statement ab. Dieses enthält Informationen über die Eigenschaften des Kommunikationspartners innerhalb der TI-Föderation.
Die Vertrauenswürdigkeit prüfen die Kommunikationsteilnehmers durch die Validierung der Trust Chain vom Entity Statement des Teilnehmers bis zum Trust Anchor der TI-Föderation (Federation Master).
4.3 Akteure und Rollen
Im Systemkontext der TI-Föderation interagieren verschiedene Akteure (Nutzer und aktive Komponenten) in unterschiedlichen OAuth2-Rollen gemäß [RFC6749#section-1.1] und OpenID-Connect-Rollen gemäß [OpenID Connect Core 1.0] und [OpenID Federation 1.1].
Als sektoraler IDP wird ein Dienst bezeichnet, welcher die Nutzerauthentifizierung durchführt. Nach erfolgreicher Nutzerauthentisierung stellt der sektorale IDP Identitätsinformationen zum Nutzer bereit. Die Identitätsinformationen werden von den Fachdiensten zur Durchführung einer Nutzerautorisierung verwendet, also zur Feststellung, auf welche Fachdaten und -prozesse des Fachdienstes dem Nutzer Zugriff gewährt wird. Die bereitgestellten Identitätsinformationen sind spezifisch für die unterschiedlichen Gruppen von Nutzern bzw. Sektoren innerhalb der TI des Gesundheitswesens. Einen Sektor stellen insbesondere die Krankenversicherungen mit den Versicherten als Nutzer dar. Es können allerdings auch andere Personengruppen wie z. B. Ärzte oder Pflegeinstitutionen über sektorale IDP angebunden werden.
Die Abläufe zur Nutzerauthentifizierung für einen Fachdienst sowie der Herausgabe der Identitätsinformationen durch den sektoralen IDP sind als der innere und der äußere Flow im Kapitel "Interaktionen" erläutert.
Tabelle 3 : Akteure und Rollen
| Akteur | Rolle "OAuth2" | Rolle "OIDC" | Rolle "OpenID Federation" |
|---|---|---|---|
| Nutzer (z. B. Versicherte) | Resource Owner | Resource Owner | |
| Fachdienst (Backend) |
|
OpenID-Relying-Party (RP) |
|
| Fachdienst - Anwendungs-Frontend (Web/App) | OAuth-Client, Nutzerschnittstelle als App | - | Kann auch als Teilnehmer (oauth_client) in der TI-Föderation registriert werden |
| sektoraler IDP | - | OpenID Provider (OP) | Teilnehmer als OpenID Provider (OP) der TI-Föderation |
| Authenticator-Modul des sektoralen IDP | - | Frontend des sektoralen IDP (OP) | - |
| Federation Master | - | - | Teilnehmer der TI-Föderation (Federation Entity) als Vertrauensanker (Trust Anchor) für alle Teilnehmer (RP, OP, RS, Intermediate) der TI-Föderation |
| Intermediate | - | - | Teilnehmer der TI-Föderation (Federation Entity), bei dem eine Gruppe anderer Teilnehmer mit gleichen Eigenschaften (technisch oder organisatorisch) registriert sind. |
| Attributbestätigende Stelle | - | - | kein Teilnehmer der Föderation |
| Registrierungs-Engiene (Regine) | - | - | System, über welches sich Teilnehmer in der TI-Föderation registririeren, ihre Registrierungsdaten ändern oder ihre Registrierung löschen können. |
Nutzer (Rolle: Resource Owner)
Der Resource Owner ist eine natürliche Person, die auf die vom Fachdienst (Resource Server) bereitgestellten geschützten Ressourcen (Protected Resources) zugreift.
Dem Resource Owner sind folgende Komponenten zugeordnet:
- Endgerät des Nutzers,
- App mit Authenticator-Modul des sektoralen Identity Providers auf dem Endgerät,
- Anwendungsfrontend des Fachdienstes (Web-Anwendung oder App) auf dem gleichen oder einem anderen Endgerät.
Fachdienst (Rolle: Authorization Server)
Der Authorization Server des Fachdienstes verarbeitet die vom Anwendungsfrontend eingehenden Authorization Requests. Nach erfolgreicher Authentifizierung des Nutzers durch einen OpenID Provider stellt er dem Anwendungsfrontend ein Access Token sowie optional ein Refresh Token aus.
Fachdienst (Rolle: OpenID-Relying-Party)
Der Fachdienst initiiert in seiner Rolle als OpenID-Relying-Party die Authentifizierung des Nutzers beim sektoralen Identity Provider. Nach erfolgreicher Authentifizierung erhält er einen Authorization Code und tauscht diesen beim Identity Provider gegen ein ID-Token und ein Access-Token aus. Die im ID-Token enthaltenen Informationen nutzt der Fachdienst in der Rolle OpenID-Relying-Party anschließend zur Durchführung fachlicher Autorisierungsentscheidungen. Auf Grundlage dieser Entscheidungen stellt der Fachdienstes in seine Rolle als Authorization Server dem Anwendungsfrontend ein Access-Token und gegebenenfalls ein Refresh-Token für den Zugriff auf die geschützten Ressourcen des Fachdienstes aus.
Fachdienst (Rolle: Resource Server)
Der Fachdienst stellt in seiner Rolle als Resource Server die geschützten Ressourcen (Protected Resources) bereit. Er prüft die vom Client vorgelegten Access-Tokens und gewährt auf dieser Grundlage den Zugriff auf die angeforderten Fachdaten und Fachprozesse. Das Access-Token repräsentiert dabei die dem Client erteilte Berechtigung, im Auftrag des Resource Owners auf die geschützten Ressourcen zuzugreifen.
Anwendungsfrontend (Rolle: OAuth-Client)
Das Anwendungsfrontend übernimmt die Rolle des OAuth Clients. Es greift auf die von Fachdiensten bereitgestellten geschützten Ressourcen (Protected Resources) zu. Die Ausführung kann als Web-Anwendung, Desktop-Anwendung oder mobile Anwendung erfolgen.
Befinden sich Teile der Anwendungslogik in einem Hintergrundsystem, sind die zur Bereitstellung der Benutzeroberfläche erforderlichen Backend-Komponenten ebenfalls Bestandteil des Clients.
Sektoraler IDP mit dem Authenticator-Modul als Frontend (Rolle: OpenID Provider)
Der sektorale Identity Provider (IDP) ist im eigentlichen Sinne auch ein Authorization Servers, übernimmt aber im Rahmen von OpenID Connect die Rolle eines OpenID Providers. Er authentifiziert den Nutzer (Resource Owner) und stellt nach erfolgreicher Authentifizierung einen Authorization Code aus.
Dieser Authorization Code kann von der OpenID-Relying-Party beim sektoralen Identity Provider gegen ein ID-Token eingetauscht werden. Das ID-Token enthält Informationen über den Nutzer in Form von Claims. Diese Informationen werden vom Fachdienst genutzt, um Autorisierungsentscheidungen zu treffen und festzustellen, auf welche Fachdaten und Fachprozesse dem Nutzer Zugriff gewährt werden darf.
Die im ID-Token enthaltenen Informationen richten sich nach den vom Fachdienst angeforderten Scopes und den hierfür bereitgestellten Claims.
Attributbestätigende Stelle
Attributbestätigende Stellen sind legitimierte Organisationen, die für die Richtigkeit der von ihnen bestätigten Nutzerattribute verantwortlich sind. Sie stellen dem sektoralen Identity Provider (IDP) verlässliche Informationen über einen Nutzer zur Verfügung und bestätigen deren Gültigkeit.
Im Rahmen der Einrichtung der GesundheitsID ist eine eindeutige und verlässliche Identifizierung des Nutzers zwingend erforderlich. Hierfür werden eindeutige Identifikationsmerkmale der realen Identität erfasst und dem sektoralen Identity Provider als Identitätsinformationen bereitgestellt.
Die eindeutigen Identitäten natürlicher Personen (z. B. Versicherte und Leistungserbringer) sowie juristischer Personen (z. B. medizinische Einrichtungen, Organisationen des Gesundheitswesens, Gesellschafterorganisationen der gematik und Krankenkassen als Kostenträger) werden innerhalb der Telematikinfrastruktur über entsprechende Identifikatoren repräsentiert. Für Versicherte wird hierzu insbesondere die Krankenversichertennummer (KVNR) verwendet. Leistungserbringer, medizinische Institutionen und weitere Organisationen des Gesundheitswesens werden über ihre Telematik-ID identifiziert.
Federation Master (Rolle: Trust Anchor, Superior)
Der Federation Master ist eine zentrale Komponente der TI-Föderation und ein eigenständiger Produkttyp gemäß [gemSpec_IDP_FedMaster]. Er stellt unter anderem die folgenden Anwendungsfälle bereit:
- Teilnehmer registrieren, deregistrieren und Teilnehmerdaten ändern,
- Liste der direkt registrierten Teilnehmer bereitstellen,
- Liste der registrierten sektoralen Identity Provider (IDP-Liste) bereitstellen,
- Entity Statements bereitstellen,
- Subordinate Statements für direkt registrierte Teilnehmer bereitstellen,
- Trust Marks für direkt registrierte Teilnehmer bereitstellen,
- Schlüssel von TLS-Zertifikaten abgleichen,
- Schlüssel direkt registrierter Teilnehmer verwalten.
Alle Teilnehmer der TI-Föderation müssen bei einer Superior Entity registriert sein. Teilnehmer der Föderation sind in diesem Kontext insbesondere alle Fachdienste in ihrer Rolle als OpenID-Relying-Parties (in der Regel die Authorization Server der Fachdienste) sowie die sektoralen Identity Provider.
Die Registrierung erfolgt über die Prozesse der Registrierungs-Engine und die hierfür bereitgestellten Schnittstellen des Federation Masters*. Der Federation Master verwaltet die öffentlichen Schlüssel aller direkt registrierten Teilnehmer. Für direkt registrierte Fachdienste in ihrer Rolle als OpenID-Relying-Party verwaltet er zusätzlich die jeweils zulässigen Scopes, Claims und redirect_uris.
Darüber hinaus stellt der Federation Master auf Anfrage Teilnehmerbestätigungen in Form von Subordinate Statements für die bei ihm direkt registrierten Teilnehmer der TI-Föderation aus.
Im Sinne der Spezifikation [OpenID Federation 1.1] ist der Federation Master der Trust Anchor der TI-Föderation. D.h., er ist bei keiner weiteren Superior Entity registriert und bildet somit den Endpunkt der Vertrauenskette (Trust Chain) gemäß [OpenID Federation 1.1]. Die Vertrauenskette aller Teilnehmer der TI-Föderation muss auf den Federation Master zurückführbar sein ("Trust Chain").
Zusätzlich stellt der Federation Master eine Schnittstelle bereit, über die eine Liste aller in der TI-Föderation registrierten sektoralen Identity Provider abgerufen werden kann.
* Bis zur Produktivsetzung der Registrierungs-Engine erfolgt die Registrierung von Teilnehmern über einen organisatorischen Prozess, der durch den Anbieter des Produkttyps Federation Master bereitgestellt wird.
Intermediate (Rolle: Superior)
Die Eigenschaften eines Intermediate der TI-Föderation sind ebenfalls im Produkttyp [gemSpec_IDP_FedMaster] definiert. Ein Intermediate bildet den Knotenpunkt einer Teilstruktur der TI-Föderation und ist – wie der Federation Master – vom Typ Federation Entity.
Teilnehmer mit gemeinsamen technischen oder organisatorischen Eigenschaften können bei einem entsprechenden Intermediate registriert werden. Ein Intermediate ist selbst Teilnehmer der TI-Föderation und muss daher ebenfalls bei einem anderen Intermediate oder direkt beim Federation Master registriert sein. Die Registrierung erfolgt technisch innerhalb des Produkttyps „Federation Master“.
Wie der Federation Master verwaltet ein Intermediate die öffentlichen Schlüssel aller direkt bei ihm registrierten Teilnehmer. Zusätzlich verwaltet es für die als OpenID-Relying-Parties registrierten Fachdienste die jeweils zulässigen Scopes, Claims und redirect_uris. Darüber hinaus stellt es auf Anfrage Teilnehmerbestätigungen in Form von Subordinate Statements für die bei ihm direkt registrierten Teilnehmer der TI-Föderation aus.
Intermediates der TI-Föderation unterstützen insbesondere die folgenden Anwendungsfälle:
- Teilnehmer registrieren, deregistrieren und Teilnehmerdaten ändern,
- Liste der direkt registrierten Teilnehmer bereitstellen,
- Entity Statements bereitstellen,
- Subordinate Statements für direkt registrierte Teilnehmer bereitstellen,
- Trust Marks für direkt registrierte Teilnehmer bereitstellen,
- Schlüssel direkt registrierter Teilnehmer verwalten.
Registrierungskomponente:
Die Registrierungskomponente übernimmt die Aufgabe, Registrierungsanträge von Teilnehmern der TI-Föderation entgegenzunehmen, zu validieren und mit anderen Systemen zu synchronisieren. Hierzu verfügt sie über Schnittstellen zur TI-Föderation, zum Data Warehouse (DWH) der gematik, zum TI-ITSM der gematik sowie zum gematik-myServices-Portal.
Die TI-Föderation stellt Schnittstellen bereit, über die die Registrierungskomponente Teilnehmerkonfigurationen (Entity Configurations) prüfen kann. Darüber hinaus werden Schnittstellen für die Neuregistrierung, die Änderung bestehender Registrierungen sowie die Deregistrierung von Teilnehmern der TI-Föderation bereitgestellt.
Die Registrierungskomponente übermittelt die Teilnehmerdaten der TI-Föderation an das Data Warehouse (DWH) der gematik. Diese Daten dienen Zwecken des Business Intelligence (BI), der Berichterstellung sowie der Durchführung von Analysen zur Unterstützung der Betriebsführung der gematik.
Nach erfolgreicher Prüfung eines Teilnehmerantrags erfolgt die Aktualisierung des Vertrauensraums der TI-Föderation über die entsprechenden Schnittstellen des Federation Masters.
4.4 Schnittstellen
Tabelle 4 : Schnittstellen zwischen den Teilnehmern und Komponenten der TI-Föderation
| Schnittstelle | Komponente/System | fachliche Schnittstellenbeschreibung |
|---|---|---|
| Abfrage Liste Krankenversicherungen
|
|
Ist die Krankenkasse des Versicherten im Fachdienst-Client nicht bekannt, so stellt der Fachdienst-Client einen Request an den Fachdienst-Authorization Server zum Laden der Liste aller Krankenversicherungen. |
| Abfrage Liste sektorale IDPs |
|
Der als OpenID-Relying-Party in der TI-Föderation registrierte Fachdienst stellt einen Request an den Federation Master zum Abruf der Liste aller in der TI-Föderation registrierten sektoralen Identity Provider einschließlich der Metainformationen zur jeweiligen Krankenkasse. |
| Authorization Request (FD) |
|
Der Prozess der Nutzerauthentifizierung beginnt mit einem Authorization Request des Fachdienst-Clients an den Authorization Server des Fachdienstes.
|
| Anfrage Entity Statement IDP |
|
Zur Abfrage der Entity Configuration des sektoralen Identity Providers stellt der als OpenID-Relying-Party in der TI-Föderation registrierte Fachdienst einen Request an die /.well-known/openid-federation Schnittstelle des sektoralen Identity Providers.
|
| FD Abfrage Entity Statement Superior |
|
Im Rahmen der Validierung des Entity Statements des sektoralen Identity Providers stellt der als OpenID-Relying-Party registrierte Fachdienst einen Request an die /.well-known/openid-federation Schnittstelle der Superior Entity, bei der der sektorale Identity Provider registriert ist. Anschließend werden die Entity Statements aller weiteren Superior Entities bis zum Trust Anchor (Federation Master) geprüft. Die hierfür erforderlichen URLs werden aus dem Claim "authority_hints" der jeweiligen Entity Statements ermittelt.
|
| Anfrage Subordinate Statement IDP |
|
Zur Verifikation der Vertrauensbeziehung zum angefragten sektoralen Identity Provider stellt der als OpenID-Relying-Party registrierte Fachdienst einen Request an die Superior Entity, bei der der sektorale Identity Provider als Teilnehmer der TI-Föderation registriert ist (Federation Master oder Intermediate).
|
| Pushed Authorization Request (IDP) |
|
Zur Ermittlung der Informationen zum Nutzer stellt der als OpenID-Relying-Party in der TI-Föderation registrierte Fachdienst einen Pushed Authorization Request an den sektoralen IDP. |
| Abfrage Entity Statement FD |
|
Zur Ermittlung der Entity Configuration des als OpenID-Relying-Party in der TI-Föderation registrierten Fachdienstes stellt der sektorale IDP einen Request an an die ./well-known/openid-federation Schnittstelle des Fachdienst Authorization Server. |
| IDP Abfrage Entity Statement
Superior |
|
Im Rahmen der Validierung des Entity Statement des als OpenID-Relying-Party in der TI-Föderation registrierten Fachdienstes stellt der sektoralen IDP einen Request an die ./well-known/openid-federation Schnittstelle der Superior Entity, bei welcher der Fachdienst als OpenID-Relying-Party registriert ist und in Folge bei allen weiteren Superior Entity bis zum Trust Anchor (Federation Master). Die Information, welche URL aufzurufen ist bekommt der sektoralen IDP aus dem claim "authority_hints" der jeweiligen Entity Statements. |
| Anfrage Subordinate Statement
des als OpenID-Relying-Party in der TI-Föderation registrierten Fachdienstes |
|
Zur Verifikation der Vertrauensbeziehung zum als OpenID-Relying-Party in der TI-Föderation registrierten anfragenden Fachdienst Authorization Server stellt der sektorale IDP einen Request an die Superior Entity, bei welcher der Fachdienst Authorization Server als Teilnehmer der TI-Födeartion registriert ist (Federation Master oder Intermediate). |
| Token Request IDP
(Auth-Code) |
|
Der Fachdienst (OpenID-Relying-Party) stellt einen Token Request an den sektoralen IDP und erhält im Austausch zu einem Authentication Code ein Access Token und ein ID Token. |
| Token Request FD
(Auth-Code) |
|
Wenn die für die Client-Authentifizierung OAuth mit Authorization-Code Flow eingesetzt wird, stellt der Fachdienst-Client einen Token Request an den Fachdienst Authorization Server und erhält im Austausch zu einem Authentication Code ein Access Token. |
| Interne Schnittstellen zwischen den Komponenten des sektoralen IDP | ||
| Nutzer Authentifizierung |
|
Der sektorale IDP und sein Authenticator-Modul führen die Abfragen zur Nutzerauthentifizierung durch. Die Schnittstelle ist Hersteller spezifisch. |
| Consent Freigabe |
|
Der sektorale IDP und sein Authenticator-Modul führen die Abfragen zur Freigeb der Datennutzung durch den Versicherten durch. Die Schnittstelle ist Hersteller spezifisch. |
| Nutzer Einsicht |
|
Der sektorale IDP und sein Authenticator-Modul führen die Abfragen zur Einsicht durchgeführter Authentifizierungsvorgänge durch den Versicherten durch. Die Schnittstelle ist Hersteller spezifisch. |
| Weitere Schnittstellen des sektoralen IDP sowie der Fachdienste | ||
| Verfahren Teilnehmerregistrierung |
|
Schnittstellen zur Registrierung und Deregistrierung von Teilnehmern der TI-Föderation sowie zur Prüfung und Aktualisierung von Teilnehmerdaten über die Registrierungskomponente. |
| Certificate Transparency record
Abfrage zur domain |
|
Der Federation Master ruft über die Schnittstelle eines Anbieters das CT-Log zur Prüfung der TLS-Schlüssel der sektoralen IDPs ab.
Die Schnittstelle ist abhängig vom eingesetzten Produkt (CT-Log Anbieter). |
| Verfahren Aktualisierung CT TLS-Zertifikate |
|
Organisatorische Schnittstelle zur Schlüsselregistrierung der im sektoralen IDP verwendeten TLS-Zertifikate beim Federation Master über die Registrierungskomponente |
| Synchronisation Daten zu Nutzern |
|
Schnittstellen zur Registrierung und Deregistrierung von Teilnehmern der TI-Föderation sowie zur Prüfung und Aktualisierung von Teilnehmerdaten. |
| Access-Token (FD) - Daten
|
|
Die Ausprägung der Schnittstelle zwischen Fachdienst-Client und Fachdienst Resource Server ist Fachdienst spezifisch. Wir in zur Authentifizierung OAuth eingesetzt, so muss bei der Kommunikation zwischen Fachdienst-Client und Fachdienst Resource Server i.d.R. ein vom Fachdienst Authorization Server ausgestelltes Access-Token mitgegeben werden. |
4.5 Schlüsselmanagement
Im Ablauf der Nutzerauthentifizierung innerhalb der TI-Föderation werden zwischen den beteiligten Komponenten unterschiedliche kryptographische Verfahren und Schlüssel zur Sicherstellung von Vertraulichkeit, Integrität und Authentizität der Kommunikation verwendet.
Abbildung 7 : Schlüsselmanagement für die Nutzerauthentifizierung in der TI-Föderation
Tabelle 5 : Schlüsselmanagement
| Zweck | Schlüssel | Bedeutung |
|---|---|---|
| Authentisierungsmittel | Kartenschlüssel nPA | Schlüssel auf dem Personalausweis des Nutzers zur Durchführung des Identifizierungsprozesses oder zur Authentifizierung über die Online-Ausweisfunktion.
|
| Kartenschlüssel eGK | Schlüssel auf der elektronischen Gesundheitskarte (eGK) des Nutzers zur Durchführung des Identifizierungsprozesses oder zur Authentifizierung mittels eGK und PIN. | |
| Schlüssel auf dem Gerät des Nutzers | Schlüsselmaterial zur Bindung eines Endgeräts an den sektoralen Identity Provider. Es ermöglicht die Authentifizierung des Nutzers über das registrierte Gerät unter Verwendung einer System-PIN, App-PIN oder biometrischer Verfahren.
|
|
| Signatur | Signaturschlüssel Fachdienst (OpenID-Relying-Party) |
Vom Fachdienst erzeugtes asymmetrisches Schlüsselpaar. Der Fachdienst als OpenID-Relying-Party der TI-Föderation signiert mit diesem Schlüssel ausschließlich sein Entity Statement (Federation Entity Signing Key). Der öffentliche Teil des Schlüsselpaares wird im Rahmen des Registrierungsprozesses bei der Federation Entity hinterlegt, bei der der Fachdienst als OpenID-Relying-Party registriert wird. Über das von der Superior Entity ausgestellte Subordinate Statement wird der öffentliche Schlüssel anderen Teilnehmern der TI-Föderation bereitgestellt. Zusätzlich veröffentlicht der Fachdienst den öffentlichen Schlüssel im Claim "jwks" seines Entity Statements. |
| Signaturschlüssel sektoraler IDP | Vom sektoralen Identity Provider erzeugtes asymmetrisches Schlüsselpaar. Der Identity Provider verwendet diesen Schlüssel ausschließlich zur Signierung seines Entity Statements (Federation Entity Signing Key).
Der öffentliche Teil des Schlüsselpaares wird während des Registrierungsprozesses bei der zuständigen Federation Entity hinterlegt. Über das von der Superior Entity ausgestellte Subordinate Statement wird der Schlüssel anderen Teilnehmern zur Verfügung gestellt. Zusätzlich veröffentlicht der sektorale Identity Provider den öffentlichen Schlüssel im Claim "jwks" seines Entity Statements. |
|
| Signaturschlüssel Federation Master / Intermediate | Vom Federation Master beziehungsweise Intermediate erzeugtes asymmetrisches Schlüsselpaar. Die Federation Entity signiert mit diesem Federation Entity signing key ihr Entity Statement, die von ihr ausgestellten Subordinate Statements sowie Trust Marks.
Bei Intermediates wird der öffentliche Schlüssel im Rahmen des Registrierungsprozesses bei der übergeordneten Federation Entity hinterlegt. Der Federation Master als Trust Anchor stellt seinen öffentlichen Schlüssel über definierte Verfahren außerhalb der eigentlichen Föderationsprozesse bereit. Zusätzlich veröffentlicht die Federation Entity den öffentlichen Schlüssel im Claim "jwks" ihres Entity Statements. |
|
| ID-Token | Signaturschlüssel | Vom sektoralen Identity Provider erzeugtes asymmetrisches Schlüsselpaar. Mit diesem Schlüssel signiert der Identity Provider die ausgestellten ID-Token.
Füe die Signatur des ID-Token darf nicht der Federation Entity signing key verwendet werden, mit dem der sektorale Identity Provider sein Entity Statementssignoert. Der öffentliche Schlüssel wird im Metadatenblock "openid_provider" des Entity Statements veröffentlicht. Die Bereitstellung erfolgt entweder direkt über den Claim "jwks" oder indirekt über ein Schlüsselset, das unter der in "signed_jwks_uri" angegebenen URL abrufbar ist. |
| Verschlüsselungsschlüssel | Vom Fachdienst in seiner Rolle als OpenID-Relying-Party erzeugtes asymmetrisches Schlüsselpaar.
Der sektorale Identity Provider verschlüsselt das ID-Token mit dem öffentlichen Schlüssel des Fachdienstes. Der Fachdienst entschlüsselt das Token anschließend mit dem zugehörigen privaten Schlüssel. Der öffentliche Schlüssel wird im Metadatenblock "openid_relying_party" des Entity Statements des als OpenID-Relying-Party in der TI-Föderation registrierten DFachdienstes veröffentlicht. Die Bereitstellung erfolgt entweder direkt über den Claim "jwks" oder über ein Schlüsselset, das unter der im Claim "signed_jwks_uri" angegebenen URL abrufbar ist. |
|
| TLS | TLS-Schlüssel sektoraler IDP | Der TLS-Schlüssel des sektoralen Identity Providers wird vom Identity Provider in der VAU erzeugt und über einen organisatorischen Prozess beim Federation Master registriert.
Der Federation Master prüft die ihm bekannten TLS-Schlüssel der sektoralen Identity Provider regelmäßig anhand öffentlich verfügbarer Certificate-Transparency-Logs (CT-Logs). Der öffentliche Schlüssel wird durch den sektoralen Identity Provider im Metadatenblock "openid_provider" seines Entity Statements veröffentlicht. Die Bereitstellung erfolgt entweder direkt über den Claim "jwks" oder über ein Schlüsselset, das unter der in "signed_jwks_uri" angegebenen URL abrufbar ist. |
| TLS-Schlüssel des Fachdienst (OpenID-Relying-Party) | Der Fachdienst veröffentlicht seinen TLS-Schlüssel im Metadatenblock "openid_relying_party" seines Entity Statements. Die Bereitstellung erfolgt entweder direkt über den Claim "jwks" oder über ein Schlüsselset, das unter der in "signed_jwks_uri" angegebenen URL abrufbar ist.
Der Fachdienst kann hierfür auch selbstsignierte Zertifikate (Self-Signed Certificates) verwenden. |
Teilnehmer können zusätzlich zu den verpflichtenden Schlüsseln weitere kryptographische Schlüssel in ihren Metadatenblöcken veröffentlichen. Auch für den Schlüsselwechsel (Key Rollover) werden die im OpenID Federation-Standard definierten Mechanismen genutzt. Hierzu werden die Claims "jwks" im Common Block des Entity Statements für den Federation Entity Signing Key sowie "jwks" beziehungsweise "signed_jwks_uri" in den jeweiligen Metadatenblöcken des Entity Statements für alle weiteren Schlüssel verwendet.
5 Abläufe & Interaktionen
5.1 Kurzbeschreibung
Der Authentifizierungsprozess basiert aus Gründen der Entkopplung zwischen den Authentifizierungsmethoden und Token-Formaten der sektoralen Identity Provider (IDP) und der Fachdienste auf zwei ineinandergeschachtelten Abläufen.
Zum einen existiert der äußere Flow zwischen dem Anwendungsfrontend und dem Fachdienst in seiner Rolle als Authorization Server. Dieser Ablauf ist anwendungsspezifisch, sollte jedoch als OAuth-2.0-Authorization-Code-Flow umgesetzt werden.
Zum anderen existiert der innere Flow zwischen den Teilnehmern der TI-Föderation. Dieser basiert auf OpenID Connect (OIDC) und ist als OAuth-2.0-Authorization-Code-Flow realisiert.
Im äußeren Flow wendet sich das Anwendungsfrontend als Client zunächst an den Authorization Server des Fachdienstes und signalisiert diesem über einen zusätzlichen Parameter – im Folgenden als idp_iss bezeichnet – den für die Authentifizierung zu verwendenden sektoralen Identity Provider.
Der innere Flow beginnt mit einem Pushed Authorization Request (PAR) und endet mit der Bereitstellung eines ID-Tokens durch den sektoralen Identity Provider an den als OpenID-Relying-Party in der TI-Föderation registrierten Fachdienst.
Der Fachdienst tritt im Rahmen des inneren Flows in seiner Rolle als OpenID-Relying-Party als Client gegenüber dem sektoralen Identity Provider auf. Die erste Anfrage wird an den PAR-Endpunkt gemäß [RFC 9126, Abschnitt 2] gesendet. Hierbei übermittelt der Fachdienst einen Pushed Authorization Request zur Authentifizierung des Nutzers sowie zur Bestätigung der angeforderten Scopes und Claims. Zusätzlich wird eine code_challenge gemäß PKCE übermittelt.
Die Scopes und Claims, die ein Fachdienst beim sektoralen Identity Provider anfordern darf, sind im Entity Statement des Fachdienstes hinterlegt und dem sektoralen Identity Provider bekannt.
Im Verlauf des inneren OIDC-Flows wird der Nutzer aufgefordert, sich unter Verwendung des Authenticator-Moduls des sektoralen Identity Providers zu authentifizieren. Die Kommunikation erfolgt dabei über die Schnittstellen zwischen dem Authenticator-Modul und dem Authorization-Endpunkt des sektoralen Identity Providers.
Nach Freigabe des Consent durch den Nutzer sowie erfolgreicher Authentifizierung erstellt der sektorale Identity Provider einen Authorization Code. Dieser wird an den Fachdienst in seiner Rolle als OpenID-Relying-Party übermittelt. Der Fachdienst reicht den Authorization Code anschließend am Token-Endpunkt gemäß [RFC6749] Abschnitt 3.2 ein. Der sektorale Identity Provider validiert den Authorization Code und stellt bei erfolgreicher Prüfung ein ID-Token aus.
Wird der äußere Flow ebenfalls als OAuth-2.0-Authorization-Code-Flow (grant_type=authorization_code) umgesetzt, erzeugt der Fachdienst in seiner Rolle als Authorization Server einen eigenen Authorization Code und übermittelt diesen an das Anwendungsfrontend. Der äußere Flow endet mit der Ausgabe eines Access-Tokens an das Anwendungsfrontend.
Das Anwendungsfrontend verwendet dieses Access-Token für die anwendungsspezifischen Zugriffe auf die geschützten Ressourcen (Protected Resources) des Fachdienstes.
In diesem Kapitel werden die Abläufe für folgende Szenarien beschrieben:
- App2App-Kommunikation,
- Web2App-Kommunikation,
- Kommunikation unter Verwendung von zwei Endgeräten.
Vorbereitende Maßnahmen:
- Die sektoralen Identity Provider haben bei ihrer Registrierung beim Federation Master ihren öffentlichen Federation Entity Signing Key hinterlegt und den öffentlichen Federation Entity Signing Key des Trust Anchors der TI-Föderation (Federation Master) zur Validierung der Trust Chain erhalten.
- Der Fachdienst hat bei seiner Registrierung als OpenID-Relying-Party bei einer Superior Entity (Federation Master oder Intermediate) den öffentlichen Teil seines Federation Entity Signing Key hinterlegt und den öffentlichen Federation Entity Signing Key des Trust Anchors der TI-Föderation zur Validierung der Trust Chain erhalten.
- Der Fachdienst hat bei seiner Registrierung als OpenID-Relying-Party die für die Autorisierungsentscheidung erforderlichen Scopes, Claims und redirect_uris bei der zuständigen Superior Entity (Federation Master oder Intermediate) hinterlegt.
5.2 App2App-Flow
5.2.1 Vorbedingungen
- Für das Anwendungsfrontend des Fachdienstes ist ein App-Link oder Universal Link auf dem Endgerät des Nutzers registriert, der auf die Redirect-URI des Fachdienstes verweist.
- Für die App mit dem Authenticator-Modul des sektoralen Identity Providers ist ein App-Link oder Universal Link auf dem Endgerät des Nutzers registriert, der auf die entsprechenden Endpunkte des Identity Providers verweist.
5.2.2 Flow - OIDC
5.2.2.1 Flow Diagramm
Abbildung 8 : Ablauf App2App-Flow
5.2.2.2 Ablaufbeschreibung App2App-Flow
Tabelle 6 : Ablaufbeschreibung App2App-Flow
| Schritt
|
Beschreibung | |
|---|---|---|
| 0 | Die Validierung des Entity Statements des Federation Masters erfolgt unter Verwendung des bekannten öffentlichen Schlüssels. Fachdienste und sektorale Identity Provider laden in regelmäßigen Abständen die aktuellen Entity Statements der Superior Entities, bei denen sie registriert sind, und validieren die Trust Chain bis zum Trust Anchor der TI-Föderation. | |
| 0-a | Bei Bedarf ruft das Anwendungsfrontend über den Fachdienst die Liste aller in der TI-Föderation registrierten sektoralen Identity Provider beim Federation Master ab.
Die Bereitstellung kann auf zwei Arten erfolgen: a) Über den "federation_list_endpoint". Der Fachdienst filtert die Einträge anhand des Entity-Typs "openid_provider" und extrahiert die für die Auswahl benötigten Informationen. b) Über den "idp_list_endpoint". Dabei liefert der Federation Master direkt eine Liste aller registrierten sektoralen Identity Provider einschließlich Organisationsname, Icon und Client-ID (iss) des sektoralen IDP in der TI-Föderation. |
|
| 0-b | Der Fachdienst als Authorization Server antwortet dem Anwendungsfrontend mit der Liste aller IDPs.
Das Anwendungsfrontend zeigt dem Nutzer eine Suchfunktion an, in der er in der Liste seine Kasse per Name und mit Icon auswählen kann. |
|
| 1 | Das Anwendungsfrontend sendet einen Request an den Fachdienst als Authorization Server mit der client_id des sektorale IDPs, der zur Authentifizierung des Versicherten zu verwenden ist.
|
|
| 1-a | Falls der Fachdienst das Entity Statement des sektoralen IDP noch nicht kennt, ruft er dieses ab (unter <Client-ID in der TI-Föderation>/.well-known/openid-federation). | |
| 1-b | Der sektorale IDP sendet sein Entity Statement an den anfragenden Fachdienstes zurück. | |
| 1-c | Der Fachdienst (OpenID-Relying-Party) validiert das Entity Statement und die Trust Chain beginnend mit dem Entity Statement des sektoralen IDP bis zum Trust Anchor der TI-Föderation. | |
| 2 | Der Fachdienst in seiner Rolle als OpenID-Relying-Party sendet einen Pushed Authorization Request (PAR) einschließlich code_challenge und der benötigten Scopes an den sektoralen Identity Provider. | |
| 2-a | Falls der sektorale IDP das Entity Statement des Fachdienst als OpenID-Relying-Party der TI-Föderation noch nicht kennt, lädt er dieses herunter. (<Client-ID in der TI-Föderation>/.well-known/openid-federation) | |
| 2-b | Der Fachdienst (OpenID-Relying-Party) sendet sein Entity Statement zurück. | |
| 2-c | Der sektorale IDP validiert das Entity Statement und die Trust Chain beginnend mit dem Entity Statement des Fachdienstes (OpenID-Relying-Party) bis zum Trust Anchor der TI-Föderation. | |
| 3 | Der sektorale IDP erzeugt und sendet eine Request-URI mit Bezug zum eingegangenen Pushed Authorization Request an den Fachdienst (OpenID-Relying-Party). | |
| 4 | Der Fachdienst (OpenID-Relying-Party) sendet die Request-URI und Client ID an das Anwendungsfrontend des Fachdienstes zur Weiterleitung an den sektoralen IDP. | |
| 5 | Der Aufruf aus dem Anwendungsfrontend des Fachdienstes öffnet das Authenticator-Modul (Deep-Link/Universal-Link). | |
| 6 |
|
Das Authenticator Modul führt nun den Aufruf der Request-URI am sektoralen IDP aus. |
|
|
6-a | Der sektorale IDP ordnet anhand der Request-URI den Request einem vorherigen Authorization-Request zu.
Der Authorization-Endpunkt des IDP stellt entsprechend den angefragten claims einen Consent (Zustimmung des Nutzers zur Verarbeitung der angezeigten Daten) zusammen, wenn diese Zustimmung noch nicht vorliegt. Der sektoralen IDP überträgt die Consent-Abfrage und für die Authentifizierung des Nutzers notwendige Daten zu dem Authenticator-Modul des sektoralen IDP. |
|
|
6-b | Das Authenticator-Modul fordert den Nutzer – sofern erforderlich – zur Zustimmung (Consent) auf und führt anschließend die Authentifizierung mittels eines zulässigen Authentifizierungsverfahrens durch.
Die zulässigen Authentifizierungsverfahren sind im sektoralen Identity Provider hinterlegt. Das für die Authentifizierung erforderliche Vertrauensniveau wird über den acr-Claim im Pushed Authorization Requests vorgegeben. Nach erfolgreicher Authentifizierung bestätigt das Authenticator-Modul dem sektoralen Identity Provider den Abschluss des Authentifizierungsvorgangs. Daraufhin erzeugt der sektorale Identity Provider einen Authorization Code. |
| 7 |
|
Der sektorale IDP antwortet dem Authenticator Modul mit dem Authorization Code und einem Redirect zum Fachdienst (OpenID-Relying-Party).
|
| 8 |
|
Das Authenticator Modul des sektoralen IDP ruft Redirect-URL mit dem Authorization Code als Parameter auf. Über einen App-Link bzw. Universal-Link wird das Anwendungsfrontend des Fachdienstes geöffnet.
|
| 9 |
|
Die Anwendungsfrontend des Fachdienstes sendet den Authorization Code an den Fachdienst (OpenID-Relying-Party). |
| 10 |
|
Der Fachdienst (OpenID-Relying-Party) reicht den Authorization Code beim Token-Endpunkt des sektoralen IDP ein.
|
| 11 |
|
Der Fachdienst in seiner Rolle als OpenID-Relying-Party erhält vom Token-Endpunkt des sektoralen Identity Providers ein ID-Token mit den im Pushed Authorization Request angeforderten Nutzerinformationen.
Anschließend entschlüsselt der Fachdienst das ID-Token und validiert dessen Signatur. |
| 12 |
|
Der Fachdienst in der Rolle Authorization Server erstellt und sendet dem Anwendungsfrontend einen weiteren Authorization-Code, wenn zwischen Anwendungfrontend und Authorization Server des Fachdienst ebenfall OAuth Authorization Code-Flow zum Einsatz kommt.
|
| 13 |
|
Anwendungsfrontend des Fachdienstes übergibt dem Fachdienst Authorization Server diesen Authorization Code. |
| 14 |
|
Anwendungsfrontend des Fachdienstes erhält vom Fachdienst Authorization Server ein Access-Token und Refresh-Token. |
| 15 |
|
Das Anwendungsfrontend übermittelt bei jedem Aufruf eines geschützten Endpunkts des Fachdienstes das Access-Token. Nach erfolgreicher Validierung des Access-Tokens gewährt der Fachdienst Zugriff auf die für den Nutzer freigegebenen Fachdaten und Fachprozesse.
|
5.2.2.3 Schnittstellenbeschreibung
(0) Vorbedingung - Abruf Entity Statements des Federation Master
Das selbstsignierte Entity Statement des Federation Masters wird durch einen Teilnehmer der TI-Föderation abgerufen und mithilfe des im Rahmen der Registrierung bekannt gemachten öffentlichen Signaturschlüssels des Federation Masters validiert.
- Request zum Abruf des Entity Statements des Federation Masters
GET /.well-known/openid-federation
Host: app-ref.federationmaster.de
- Response
- HTTP 200
- Content-Type: application/entity-statement+jwt
- JWT
Die nachfolgende Tabelle zeigt ausgewählte Attribute der Entity Configuration des Federation Masters. Ein ausführliches Beispiel ist im Anhang dokumentiert.
Tabelle 7 : Entity Configuration des Federation Master
| Name
|
Anmerkungen
|
|---|---|
| iss | Eindeutiger Identifier (ID) des Federation Master innerhalb der TI-Föderation.
|
| sub | Identisch mit iss
Dadurch ist festgelegt dass es sich bei dem Entity Statement um die Entity Configuration des Federation Master handelt. |
| iat | Zeitpunkt der Ausstellung des Entity Statements |
| exp | Zeitpunkt des Ablaufs der Gültigkeit des Entity Statements |
| jwks | Schlüssel, mit dem der Federation Master sein Entity Statement, ausgestellte Subordinate Statements und Trust Marks signiert (federation entity signing key). Das Format ist ein Key-Set, da hier auch Schlüssel für einen Key-Rollover veröffentlicht werden [OpenID Federation 1.1 ] ("Updating Metadata, Key Rollover, and Revocation")
|
| metadata { | Der Block metadata enthält eine Reihe von [OpenID Federation 1.1] ("Metadata"). Für jeden Entity-Typ, die ein Teilnehmer unterstützt beinhaltet der Metadatenblock einen Bereich. |
| federation_entity { | Der Block federation_entity enthält die Metadaten für eine "Federation Entity" [OpenID Federation 1.1]. |
| federation_fetch_endpoint | Adresse des Endpunkts zum Abrufen von Subordinate Statements, welche der Federation zu einem bei ihm registrierten Teilnehmer ausstellt.
Das Ergebnis der Anfrage ist ein vom Federation Master mit seinem federation entity signing key signiertes JWT mit den Metainformationen zum Teilnehmer. |
| federation_list_endpoint | Adresse des Endpunkts zum Abrufen einer Liste aller TI-Föderationsteilnehmer, die beim Federation Master registriert sind. Das Ergebnis des Aufrufs ist eine Liste der Identifier (iss) eines jeden Teilnehmers. |
| federation_historical_keys_endpoint | Die Verwendung des Federation Historical Keys Endpoint ist in [OpenID Federation 1.1 - Kap. "Federation Historical Keys Endpoint" beschrieben. Der Aufruf des federation_historical_keys_endpoint liefert signed JWK Set. Dabei muss für jeden Key neben der KID der exp-claim gesetzt sein, der Wert beschreibt, wann die Gültigkeit des Schlüssels abgelaufen ist.
Optional kann der Ausstellungszeitpunkt angegeben werden und Informationen, wenn ein Schlüssel widerrufen wurde. |
| idp_list_endpoint | Liste aller in der TI-Föderation registrierten sektoralen IDPs
Jede Krankenversicherung unterhält einen eigenen sektoralen IDP. Die Liste aller in der TI-Föderation registrierten sektoralen IDPs kann am idp_list_endpoint des Federation Master abgefragt werden. Die Integrität der Liste wird mittels Signatur über einen Schlüssel aus dessen Keyset (Federation-Entity-Signing-Key) sichergestellt. Das Ergebnis des Aufrufs ist ein Base64 codiertes JWS. Für jeden sektoralen IDP enthält die Payload des JWS einen Eintrag mit Metainformationen zum sektoralen IDP. |
| } | Ende des Blocks federation_entity |
| } | Ende des Blocks metadata |
(0 a/b) Abfrage der Liste aller in der TI-Föderation registrierten sektoralen IDPs
Die Liste aller in der TI-Föderation registrierten sektoralen Identity Provider (IDP) wird von Anwendungen genutzt, um Nutzern die Auswahl ihrer Krankenversicherung zu ermöglichen. Die Auswahl der zuständigen Krankenversicherung ist erforderlich, da die Authentifizierung mittels GesundheitsID über den sektoralen Identity Provider der jeweiligen Krankenversicherung erfolgt.
- Request zum Abruf in der in der TI-Föderation registrierten sektoralen IDPs über den Federation Masters
GET /federation/listidps
Host: app-ref.federationmaster.de
- Response
- HTTP 200
- Content-Type: application/jwt
- JWT
Die nachfolgende Tabelle beschreibt ausgewählte Attribute der Antwort des Federation Masters zur Liste der in der TI-Föderation registrierten sektoralen Identity Provider.
Tabelle 8 : Liste registrierten sektoralen IDPs
| Name
|
Anmerkungen
|
|---|---|
| iss | Eindeutiger Identifier (ID) des Federation Masters innerhalb der TI-Föderation.
|
| iat | Zeitpunkt der Ausstellung der Liste der registrierten sektoralen Identity Provider |
| exp | Zeitpunkt des Ablaufs der Gültigkeit der Liste der registrierten sektoralen Identity Provider. |
| idp_entity [{ | Der Block idp_entity enthält für jeden in der TI-Föderation registrierten sektoralen Identity Provider einen Datensatz mit Informationen zum jeweiligen Identity Provider. |
| organization_name
|
Name des sektoralen Identity Providers zur Anzeige gegenüber Nutzern. Der Wert entspricht dem Claim organization_name aus dem Entity Statement des sektoralen Identity Providers.
|
| iss | Eindeutiger Identifier des sektoralen Identity Providers innerhalb der TI-Föderation. Der Wert entspricht dem Claim iss des Entity Statements des sektoralen Identity Providers.
|
| logo_uri | Verweis auf das Logo des sektoralen Identity Providers. Der Wert entspricht dem Claim logo_uri des Entity Statements des sektoralen Identity Providers.
|
| user_type_supported | Gibt die vom sektoralen Identity Provider unterstützten Nutzergruppen an. Der Wert entspricht dem Claim user_type_supported des Entity Statements des sektoralen Identity Providers. |
| ktr_type | Kennzeichnet den Typ des Kostenträgers, der den sektoralen Identity Provider betreibt. Mögliche Werte sind:
|
| }] | Ende des Blocks idp_entity |
(1) Anfrage vom Anwendungsclient an den Fachdienst Authorization Server
Das Anwendungsfrontend sendet einen Request an den Fachdienst in seiner Rolle als Authorization Server. Da das Anwendungsfrontend selbst kein Teilnehmer der TI-Föderation ist, liegt die Absicherung des Vertrauensverhältnisses zwischen Anwendungsfrontend und Fachdienst-Authorization Server außerhalb des Vertrauensraums der TI-Föderation.
Die konkrete Ausgestaltung dieser Vertrauensbeziehung obliegt der jeweiligen Anwendung. Hierzu kann beispielsweise ein OAuth-2.0-Authorization-Code-Flow eingesetzt werden, um die Vertrauenswürdigkeit des Kommunikationspartners sicherzustellen.
(1 a/b) Laden der Entity Configuration des sektoralen IDP
Der Fachdienst benötigt in seiner Rolle als in der TI-Föderation registrierte OpenID-Relying-Party die Entity Configuration des sektoralen Identity Providers, um einen Authorization Request erzeugen zu können, der vom sektoralen Identity Provider akzeptiert wird.
Hierzu ruft der Fachdienst das Entity Statement des sektoralen Identity Providers ab und erhält daraus dessen Entity Configuration.
- Request zum Abruf des Entity Statements des sektoralen Identity Provider
GET /.well-known/openid-federation
Host: gsi-ref.dev.gematik.solutions
- Response
- HTTP 200
- Content-Type: application/entity-statement+jwt
- JWT
Die nachfolgende Tabelle beschreibt ausgewählte Attribute der Entity Configuration eines sektoralen Identity Providers. Ein vollständiges Beispiel ist im Anhang dokumentiert.
Tabelle 9 : Entity Configuration eines sektoralen IDP
| Name
|
Anmerkungen
|
|---|---|
| iss | Eindeutiger Identifier (ID) des sektoralen IDP in der TI-Föderation
|
| sub | Identisch mit "iss", dadurch ist festgelegt dass es sich bei dem Entity Statement um die Entity Configuration des sektoralen IDP handelt |
| iat | Zeitpunkt der Ausstellung des Entity Statements |
| exp | Zeitpunkt des Ablaufs der Gültigkeit des Entity Statements |
| jwks | Schlüssel, mit dem der sektorale IDP sein Entity Statement signiert (federation entity signing key). Das Format ist ein Key-Set, da hier auch Schlüssel für einen Key-Rollover veröffentlicht werden [OpenID Federation 1.1] ("Updating Metadata, Key Rollover, and Revocation"). |
| authority_hints | Identifier (iss) der Superior Entity, bei welcher der sektorale IDP registriert ist. Diese Entity wird zur Validierung der Vertrauenskette (Trust Chain) herangezogen. |
| metadata { | Der Block metadata enthält eine Reihe von [OpenID Federation 1.1 ] ("Metadata"). Für jeden Entity-Typ, die ein Teilnehmer unterstützt beinhaltet der Metadatenblock einen Bereich. |
| openid_provider { | Der Block openid_provider enthält die Metadaten für einen "OpenID Connect OpenID Provider" [OpenID Federation for OpenID Connect 1.1]. |
| issuer | Eindeutiger Identifier in der TI-Föderation, der Wert entspricht dem "iss" im allgemeinen Teil des Entity Statements. |
| signed_jwks_uri | Ablageort für weitere Schlüssel welche der sektorale IDP verwendet, etwa zur Signatur der ID-Token. |
| organization_name | Der Name des sektoralen IDP - wird beispielsweise in der Auswahlliste zur Auswahl seiner Krankenversicherung durch den Benutzer verwendet. |
| logo_uri | Abloageort des Logos der Organisation (Krankenversicherung). Das Logo wird beispielsweise in der Auswahlliste zur Auswahl seiner Krankenversicherung durch den Benutzer verwendet. |
| authorization_endpoint | Endpunkt des sektoralen IDP, an den ein Teilnehmer Authorization Requests senden muss. |
| token_endpoint | Endpunkt des sektoralen IDP, an den ein Teilnehmer Token Requests senden muss. |
| pushed_authorization_request_endpoint | Endpunkt des sektoralen IDP, an den ein Teilnehmer Pushed Authorization Requests senden muss. |
| scopes_supported | Scopes, die der sektorale IDP supported. D.h., der sektorale IDP kann maximal die Attribute (claims) zu einer Identität beauskunften, die in den unterstützten scopes enthalten sind.
|
| require_pushed_authorization_requests | Ist der Wert für dieses Attribut "true", so akzeptiert der sektorale IDP nur Pushed Authorization Request |
| token_endpoint_auth_methods_supported | Der sektorale IDP unterstützt ausschließlich die Kommunikation TI-Föderationsteilnehmer TLS-Zertifikat (mTLS) |
| user_type_supported | IP = Insured Person - der sektorale IDP unterstützt ausschließlich die Authentifizierung von versicherten Personen (Versicherte) |
| } | Ende des Blocks openid_provider |
| } | Ende des Blocks metadata |
(1 c) Validieren des Entity Statment des sektoralen IDP und Prüfung der Trust Chain
Der Fachdienst in seiner Rolle als OpenID-Relying-Party validiert die vollständige Trust Chain ausgehend vom Entity Statement des sektoralen Identity Providers bis zum Trust Anchor der TI-Föderation.
Hierzu ruft der Fachdienst unter anderem das Subordinate Statement des sektoralen Identity Providers von dessen Superior Entity ab. Im Falle einer direkten Registrierung enthält das vom Federation Master ausgestellte und signierte Subordinate Statement Informationen über den sektoralen Identity Provider als Teilnehmer der TI-Föderation.
Für die Anfrage müssen die ID (iss) der ausstellenden Federation Entity sowie die ID (sub) des Teilnehmers angegeben werden, zu dem die Auskunft eingeholt werden soll.
- Request zum Abruf des Subordinate Statements des Federation Masters zum sektoralen IDP
GET /federation/fetch?iss=https://app-ref.federationmaster.de&sub=https://gsi-ref.dev.gematik.solutions
Host: app-ref.federationmaster.de
- Response
- HTTP 200
- Content-Type: application/entity-statement+jwt
- JWT
Die nachfolgende Tabelle beschreibt ausgewählte Attribute des Subordinate Statements zum sektoralen Identity Provider. Ein vollständiges Beispiel ist im Anhang dokumentiert.
Tabelle 10 : Subordinate Statement zu einem sektoralen IDP
| Name
|
Anmerkungen
|
|---|---|
| iss | Eindeutiger Identifier (ID) des Federation Masters innerhalb der TI-Föderation.
|
| sub | Eindeutiger Identifier (ID) des sektoralen Identity Providers, zu dem das Subordinate Statement abgerufen wird. |
| iat | Zeitpunkt der Ausstellung des Subordinate Statements. |
| exp | Zeitpunkt des Ablaufs der Gültigkeit des Subordinate Statements. |
| jwks
|
Schlüsselset (JSON Web Key Set) mit den öffentlichen Schlüsseln des sektoralen Identity Providers. Die enthaltenen Schlüssel werden zur Validierung der vom sektoralen Identity Provider signierten Entity Statements (Federation Entity Signing Keys) verwendet. |
| metadata | Der Block metadata enthält die in [OpenID Federation 1.1] definierten Metadaten. Für jeden unterstützten Entity-Typ enthält dieser Block einen eigenen Metadatenbereich. Dieser Block darf nicht leer sein.
|
| openid_provider | Der Block openid_provider enthält die Metadaten des sektoralen Identity Providers gemäß [OpenID Federation for OpenID Connect 1.1 ]. Dieser Block kann auch leer sein. |
| organization_name | Name der Organisation, die den sektoralen Identity Provider betreibt. Der Wert entspricht dem Claim organization_name des Entity Statements des sektoralen Identity Providers und kann beispielsweise in Auswahllisten für die Auswahl einer Krankenversicherung verwendet werden. |
| } | Ende des Blocks openid_provider. |
| } | Ende des Blocks metadata. |
(2) Der Autorisierungsserver des Fachdienstes sendet ein Pushed Authorization Request
Der innere Flow beginnt mit einem Pushed Authorization Request (PAR) gemäß [RFC9126], den der Fachdienst in seiner Rolle als OpenID-Relying-Party an den pushed_authorization_request_endpoint des sektoralen Identity Providers sendet. Für die Client-Authentifizierung wird das Verfahren self_signed_tls_client_auth gemäß [OpenID Connect Core 1.0] (Abschnitt 9) verwendet
- Pushed Authorization Request
POST /PAR_Auth
Host: gsi-ref.dev.gematik.solutions
Content-Type: application/x-www-form-urlencoded scope=urn%3Atelematik%3Adisplay_name+urn%3Atelematik%3Aversicherter+openid&acr_values=gematik-ehealth-loa-high&response_type=code&state=yyystateyyy&redirect_uri=https%3A%2F%2Fredirect.testsuite.gsi&code_challenge_method=S256&nonce=vy7rM801AQw1or22GhrZ&client_id=https%3A%2F%2Fidpfadi.dev.gematik.solutions&code_challenge=Shfl63eRGqtkndBuvWSFWqnue67tHYSEgQozlntaoJQ
Der Pushed Authorization Request des Fachdienstes an den sektoralen Identity Provider enthält die folgenden Parameter:
Tabelle 11 : Inhalte eines Pushed Authorization Request
| Name
|
Anmerkungen
|
|---|---|
| client_id
|
Die client_id ist die ID des als OpenID-Relying-Party in der TI-Föderation registrierten Fachdienstes in der TI-Föderation, welcher den Pushed Authorization Request an den sektoralen IDP stellt. Die client_id entspricht dem claim "iss" in dessen Entity Statement. |
| state | Vom Fachdienst (OpenID-Relying-Party) erstellter Zufallswert, der in der weiteren Kommunikation mit dem sektoralen IDP zur Prüfung der Integrität verwendet wird.
|
| redirect_uri | Adresse, an welche der vom sektoralen IDP ausgestellte Authorization Code zugestellt werden soll. I.d.R. ist dies der als OpenID-Relying-Party in der TI-Föderation registrierte Fachdienst.
|
| code_challenge | Hash über einen vom Fachdienst (OpenID-Relying-Party) erzeugten "code_verifier".
|
| code_challenge_method | Methode, mit welcher der Hashwert "code_challenge" aus dem "code_verifier" erzeugt wurde. |
| response_type
|
Für den Authorization Code Flow ist "response_type"="code". |
| nonce | Die nonce ist ein vom Fachdienst (OpenID-Relying-Party) ausgesteller Zufallswert.
|
| scope | Im claim "scope" sind die Informationen (scopes) aufgeführt, die der Fachdienst (OpenID-Relying-Party) im vom sektoralen IDP ausgestellten ID-Token erwartet. |
| acr_values | Der claim "acr_values" gibt an, welche Vertrauensniveaus bei der Nutzerauthentifizierung eingehalten werden müssen, damit der Fachdienst der Authentifizierung vertrauen kann. Dieser Wert hat Einfluss darauf, welche Authentisierungsmittel dem Nutzer angeoten werden. |
(2 a/b) Laden der Entity Configuration des als OpenID-Relying-Party in der TI-Föderation registrierten Fachdienstes
Der sektorale Identity Provider (IDP) benötigt die Entity Configuration des als OpenID-Relying-Party in der TI-Föderation registrierten Fachdienstes, um zu prüfen, ob es sich bei dem anfragenden Fachdienst um einen vertrauenswürdigen Teilnehmer der TI-Föderation handelt und ob der empfangene Authorization Request den Anforderungen der Föderation entspricht.
Hierzu ruft der sektorale Identity Provider das Entity Statement des Fachdienstes in seiner Rolle als OpenID-Relying-Party ab und erhält dadurch dessen Entity Configuration
- Request zum Abruf des Entity Statements eines als OpenID-Relying-Party in der TI-Föderation registrierten Fachdienstes
GET /.well-known/openid-federation
Host: idpfadi.dev.gematik.solutions
- Response
- HTTP 200
- Content-Type: application/entity-statement+jwt
- JWT
Die nachfolgende Tabelle beschreibt ausgewählte Attribute der Entity Configuration eines als OpenID-Relying-Party registrierten Fachdienstes. Ein vollständiges Beispiel ist im Anhang dokumentiert.
Tabelle 12 : Entity Configuration eines Fachdienst als OpenID-Relying-Party
| Name
|
Anmerkungen
|
|---|---|
| iss | Eindeutiger Identifier (ID) des Fachdienst als OpenID-Relying-Party in der TI-Föderation
|
| sub | Identisch mit "iss", dadurch ist festgelegt dass es sich bei dem Entity Statement um die Entity Configuration des Fachdienst als OpenID-Relying-Party handelt |
| iat | Zeitpunkt der Ausstellung des Entity Statements |
| exp | Zeitpunkt des Ablaufs der Gültigkeit des Entity Statements |
| jwks | Schlüssel, mit dem der Fachdienst als OpenID-Relying-Party sein Entity Statement signiert (federation entity signing key). Das Format ist ein Key-Set, da hier auch Schlüssel für einen Key-Rollover veröffentlicht werden [OpenID Federation 1.1] ("Updating Metadata, Key Rollover, and Revocation").
|
| authority_hints | Identifier (iss) der Superior Entity, bei welcher der Fachdienst als OpenID-Relying-Party registriert ist. Diese Entity wird zur Validierung der Vertrauenskette (Trust Chain) herangezogen. |
| metadata { | Der Block metadata enthält eine Reihe von [OpenID Federation 1.1] ("Metadata"). Für jeden Entity-Typ, die ein Teilnehmer unterstützt beinhaltet der Metadatenblock einen Bereich. |
| openid_relying_party { | Der Block openid_relying_party enthält die Metadaten für eine "OpenID Connect Relying Party" [OpenID Federation for OpenID Connect 1.1]. |
| signed_jwks_uri | Ablageort für weitere Schlüssel welche der Fachdienst als OpenID-Relying-Party verwendet, etwa für die Verschlüsselung der ID-Token. |
| organization_name | Der Organisationsname des Fachdienst als OpenID-Relying-Party kann beispielsweise für die Anzeige des Consent-Dialog für die Nutzerzustimmung verwendet werden.
|
| client_name | Der Name des Fachdienst als OpenID-Relying-Party kann beispielsweise für die Anzeige des Consent-Dialog für die Nutzerzustimmung verwendet werden. |
| logo_uri | Ablageort des Logos des Fachdienst. Das Logo kann für Anzeigen am Benutzerfrontend verwendet werden. |
| redirect_uris | Der claim "redirect_uris" enthält eine Liste der URLs, an welches der vom sektoralen IDP ausgestellte Authoriztion Code zugestellt werden darf. Die "redirect_uri" im Push Authorization Request muss mit einer URL dieser Liste übereinstimmen. |
| default_acr_values | Ist in einem Pushed Authorization Request, den der Fachdienst als Relying Party an den sektoralen IDP stellt, der claim "acr_values" nicht gesetzt, so muss der sektorale IDP die Nutzer Authentifizierung auf den im claim "default_acr_values" angegebenen Vertrauensniveaus durchführen. |
| scope | Der claim "scope" enthält eine Aufzählung der scopes, welche der Fachdienst als OpenID-Relying-Party in einem Pushed Authorization Request anfordern darf.
|
| } | Ende des Blocks openid_relying_party |
| } | Ende des Blocks metadata |
(2 c) Validieren des Entity Statment des Fachdienst als OpenID-Relying-Party und Prüfung der Trust Chain
Der sektorale Identity Provider (IDP) validiert die vollständige Trust Chain ausgehend vom Entity Statement des Fachdienstes in seiner Rolle als OpenID-Relying-Party bis zum Trust Anchor der TI-Föderation.
Hierzu ruft der sektorale Identity Provider unter anderem das Subordinate Statement des Fachdienstes von der Superior Entity ab, bei der der Fachdienst als OpenID-Relying-Party registriert ist. In dem von der Superior Entity ausgestellten und signierten Subordinate Statement werden Informationen über den Fachdienst als Teilnehmer der TI-Föderation bereitgestellt.
Für die Anfrage müssen die ID (iss) der ausstellenden Superior Entity sowie die ID (sub) des Teilnehmers angegeben werden, zu dem die Auskunft angefordert wird.
- Request zum Abruf des Subordinate Statements vom Federation Masters zum Fachdienst
GET /federation/fetch?iss=https://app-test.federationmaster.de&sub=https://idpfadi.dev.gematik.solutions
Host: app-test.federationmaster.de
- Response mit beispielhaften Werten
- HTTP 200
- Content-Type: application/entity-statement+jwt
- JWT
Die nachfolgende Tabelle beschreibt ausgewählte Attribute des Subordinate Statements zum Fachdienst in seiner Rolle als OpenID-Relying-Party der TI-Föderation. Ein vollständiges Beispiel ist im Anhang dokumentiert.
Tabelle 13 : Subordinate Statement zu einem Fachdienst als OpenID-Relying-Party der TI-Föderation
| Name
|
Anmerkungen
|
|---|---|
| iss | Eindeutiger Identifier (ID) des Federation Master in der TI-Föderation
|
| sub | Eindeutiger Identifier (ID) des Fachdienst als OpenID-Relying-Party der TI-Föderation, zu dem das Subordinate Statement abgerufen werden soll.
|
| iat | Zeitpunkt der Ausstellung des Subordinate Statements |
| exp | Zeitpunkt des Ablaufs der Gültigkeit des Subordinate Statements |
| jwks
|
Set mit den öffentlichen Schlüsseln des Federation-Entity-Signing-Key, mit den der Fachdienst als OpenID-Relying-Party sein Entity Statement in der TI-Föderation signiert. |
| metadata | Der Block metadata enthält eine Reihe von [OpenID Federation 1.1 ] ("Metadata"). Für jeden Entity-Typ, die ein Teilnehmer unterstützt beinhaltet der Metadatenblock einen Bereich. |
| openid_relying_party | Der Block openid_relying_party enthält die Metadaten für eine "OpenID Connect Relying Party" [OpenID Federation for OpenID Connect 1.1]. |
| redirect_uris | Das Subordinate Statement zu einem als OpenID-Relying-Party der TI-Föderation registrierten Fachdienst enthält die Informationen, welche redirect_uris bei der Registrierung als zulässig angegeben wurden. |
| claims | Das Subordinate Statement zu einem als OpenID-Relying-Party der TI-Föderation registrierten Fachdienst enthält die Informationen, welche claims bei der Registrierung als zulässig angegeben wurden. |
| scope | Das Subordinate Statement zu einem als OpenID-Relying-Party der TI-Föderation registrierten Fachdienst enthält die Informationen, welche scope bei der Registrierung als zulässig angegeben wurden |
| } | Ende des Blocks openid_relying_party |
| } | Ende des Blocks metadata |
(3) Anwort des sektoralen IDP auf den Pushed Authorization Request
Der sektorale Identity Provider (IDP) antwortet auf den Pushed Authorization Request des Fachdienstes in seiner Rolle als OpenID-Relying-Party mit einer Request-URI. Die Request-URI ist ein für einen einzelnen Authentifizierungsvorgang erzeugter Referenzwert und enthält keine Informationen aus dem ursprünglichen Pushed Authorization Request.
Vor der Erstellung der Antwort verifiziert der sektorale Identity Provider das TLS-Client-Zertifikat des Fachdienstes anhand eines öffentlichen Schlüssels, der im Entity Statement des Fachdienstes veröffentlicht wurde.
- Response mit beispielhaften Werten
- HTTP 201
- Content-Type: application/json
- {
"request_uri":
"urn:https://idpfadi.dev.gematik.solutions:2f4c9dc66dcf350e",
"expires_in": 90
}
Die nachfolgende Tabelle beschreibt die Attribute der Antwort des sektoralen Identity Providers auf den Pushed Authorization Request.
Tabelle 14 : Request URI, ausgestellt vom sektoralen IDP
| Name
|
Anmerkungen
|
|---|---|
| request_uri | Der sektorale Identity Provider erzeugt eine für einen einzelnen Authentifizierungsvorgang gültige Request-URI. Über diese Referenz kann das Authenticator-Modul später den ursprünglich mittels Pushed Authorization Request registrierten Authorization Request aufrufen. Die Request-URI enthält dabei keine fachlichen Informationen des ursprünglichen Requests, sondern dient ausschließlich als Referenz auf den beim Identity Provider gespeicherten Authorization Request. |
| expires_in | Gibt die maximale Gültigkeitsdauer der Request-URI in Sekunden an. Nach Ablauf dieses Zeitraums darf die Request-URI nicht mehr verwendet werden. |
Diese URI wird vom Fachdienst (OpenID-Relying-Party) als redirect an das Anwendungsfrontend gesendet um über das Authenticator Modul den sektoralen IDP zu erreichen.
(4) Redirect der Request URI
- HTTP-302
- Location: https://gsi-ref.dev.gematik.solutions/auth?client_id=https://idpfadi.dev.gematik.solutions &
request_uri=urn:https://idpfadi.dev.gematik.solutions:2f4c9dc66dcf350e
Die Tabelle stellt die Attribute im Redirekt zum sektoralen IDP dar.
Tabelle 15 : Inhalte des Redirekt zum sektoralen IDP
| Name
|
Anmerkungen
|
|---|---|
| client_id
|
Die client_id entspricht dem eindeutigen Identifier des Fachdienstes in seiner Rolle als OpenID-Relying-Party innerhalb der TI-Föderation. Der Wert entspricht dem Attribut iss des Entity Statements des Fachdienstes.
|
| request_uri | Die vom sektoralen Identity Provider erzeugte Request-URI. Sie referenziert den zuvor mittels Pushed Authorization Request registrierten Authorization Request und wird im weiteren Verlauf vom Authenticator-Modul verwendet. Die Request-URI ist zeitlich begrenzt gültig und kann nur für den zugehörigen Authentifizierungsvorgang verwendet werden. |
(5) Das Anwendungsfrontend sendet den Authentication Request
Das Anwendungsfrontend folgt dem Redirect.
- Request zum Abruf des Authorization Request
GET /auth?request_uri= urn:https://idpfadi.dev.gematik.solutions:2f4c9dc66dcf350e &client_id=https://idpfadi.dev.gematik.solutions
Host: gsi-ref.dev.gematik.solutions
Das Authenticator-Modul des sektoralen Identity Providers fängt diesen Aufruf ab, da die entsprechende URI beziehungsweise der zugehörige App-Link oder Universal Link für die App2App-Kommunikation im Betriebssystem registriert wurde.
(6) Das Authenticator Modul leitet den Authentication Request an den IDP weiter. (proprietär)
Das Authenticator-Modul übermittelt den Authentication Request an den sektoralen Identity Provider.
Die Durchführung der Nutzerauthentifizierung, die Einholung einer gegebenenfalls erforderlichen Consent-Freigabe sowie die Erzeugung des Authorization Codes erfolgen herstellerspezifisch und sind nicht Bestandteil der TI-Föderationsspezifikation.
(7) Der Authorization-Endpunkt des sektoralen IDP antwortet dem Authenticator Modul mit einem Redirect zum Fachdienst. (proprietär)
Nach erfolgreicher Authentifizierung des Nutzers erzeugt der sektorale Identity Provider einen Authorization Code und übergibt diesen über einen Redirect an den Fachdienst in seiner Rolle als OpenID-Relying-Party.
- Response
- HTTP-302
- Location: https://redirect.testsuite.gsi?state=yyystateyyy &
code=cyd6LM-GUE2y0ce313g-A3NVE4
Die nachfolgende Tabelle beschreibt die Attribute des Redirects an den Fachdienst in seiner Rolle als OpenID-Relying-Party.
Tabelle 16 : Inhalte des Redirekt zum Fachdienst als OpenID-Relying-Party
| Name
|
Anmerkungen
|
|---|---|
| Location | Die Antwort wird an die im Pushed Authorization Request angegebene redirect_uri übermittelt. Der Redirect erfolgt an die dort konfigurierte Adresse des Fachdienstes in seiner Rolle als OpenID-Relying-Party. |
| code
|
Der sektorale Identity Provider stellt einen Authorization Code aus. Dieser kann von der OpenID-Relying-Party am Token-Endpunkt des sektoralen Identity Providers gegen ein ID-Token und gegebenenfalls weitere Token eingetauscht werden.
|
| state | Der state-Parameter entspricht dem im Pushed Authorization Request übermittelten Wert. Er ermöglicht es dem Fachdienst als OpenID-Relying-Party, die Antwort einer zuvor initiierten Authentifizierungsanfrage zuzuordnen und CSRF-Angriffe zu verhindern. Durch den Abgleich des zurückgegebenen Wertes mit dem ursprünglich gesendeten state-Parameter kann die Integrität des Authentifizierungsprozesses überprüft werden.
|
(8) Das Authenticator Modul sendet den Request
- Request zum Aufruf des Fachdienst (OpenID-Relying-Party) vom Authenticator Modul des sektoralen IDP
GET ?state=yyystateyyy&code=cyd6LM-GUE2y0ce313g-A3NVE4
Host: redirect.testsuite.gsi
Das Anwendungsfrontend fängt diesen Request dadurch das er diese Adresse für App2App Kommunikation im Betriebssystem registriert hat.
(9) Aufruf des Fachdienst (OOpenID-Relying-Party)
Das Anwendungsfrontend ruft den Fachdienst (OpenID-Relying-Party) auf und sendet als Parameter den vom sektoralen IDP ausgestellten Authorization Code sowie den state-Parameter.
- Request zum Aufruf des Fachdienst (OpenID-Relying-Party) vom Anwendungsfrontend des Fachdienstes
POST state=yyystateyyy&code=cyd6LM-GUE2y0ce313g-A3NVE4
Host: redirect.testsuite.gsi
state=yyystateyyy&code=cyd6LM-GUE2y0ce313g-A3NVE4
(10) Abruf des ID-Token
Der Fachdienst reicht den Authorization Code als OpenID-Relying-Party beim Token-Endpunkt des sektoralen IDP ein.
- Request zum Abruf des ID-Token beim sektoralen IDP durch den Fachdienst als OpenID-Relying-Party
POST /token
Host: gsi-ref-mtls.dev.gematik.solutions
grant_type=authorization_code&code=cyd6LM-GUE2y0ce313g-A3NVE4?code_verifier=e8ctQxmrak13OHv8dAlQyBKlrN2E6F-Bx3h48RaRX3lJURyD6Be1ehfNpiiJwz9zGehVW0DjoW87JZfwZooAjg-jeA858qWr_Fd7EnK-xxkVc8zdomFJJTcjt9xIQdC4&client_id=https://idpfadi.dev.gematik.solutions&redirect_uri=https://redirect.testsuite.gsi
Die Tabelle stellt die Attribute für den Abruf des ID-Token vom sektoralen IDPs durch den Fachdienst als OpenID-Relying-Party dar.
Tabelle 17 : Attribute für den Abruf des ID-Token vom sektoralen IDP
| Name
|
Anmerkungen
|
|---|---|
| grant_type
|
Zwischen dem Fachdienst in seiner Rolle als OpenID-Relying-Party und dem sektoralen Identity Provider wird der OAuth-2.0-Authorization-Code-Flow verwendet. Der Wert des Parameters lautet daher authorization_code.
|
| code
|
Der vom sektoralen Identity Provider ausgestellte Authorization Code, den der Fachdienst in seiner Rolle als OpenID-Relying-Party am Token-Endpunkt gegen ein ID-Token eintauschen möchte.
|
| code_verifier
|
Der sektorale Identity Provider berechnet aus dem übermittelten code_verifier unter Verwendung des im Pushed Authorization Request angegebenen Verfahrens (code_challenge_method) eine code_challenge. Diese muss mit der im Pushed Authorization Request übermittelten code_challenge übereinstimmen. Hierdurch wird das PKCE-Verfahren (Proof Key for Code Exchange) umgesetzt.
|
| client_id
|
Die client_id entspricht dem eindeutigen Identifier des Fachdienstes in seiner Rolle als OpenID-Relying-Party innerhalb der TI-Föderation. Der Wert entspricht dem Attribut iss des Entity Statements des Fachdienstes.
|
| redirect_uri
|
Die redirect_uri muss mit der im ursprünglichen Authorization Request beziehungsweise Pushed Authorization Request verwendeten Redirect-URI übereinstimmen. Über diese Zuordnung wird sichergestellt, dass der Authorization Code dem korrekten Client zugeordnet wird.
|
(11) Ausstellung des ID_TOKEN
Der Fachdienst als OpenID-Relying-Party erhält vom Token-Endpunkt des sektoralen IDP einen ID-Token mit den gewünschten Claims. Das ID-Token ist mit einem Verschlüsselungsschlüssel des Fachdienstes verschlüsselt. Der sektorale IDP verwendet für die Verschlüsselung einen Encryption Key aus dem Metadatenblock im Entity Statement des als OpenID-Relying-Party in der TI-Föderation registrierten Fachdienstes. Der sektorale IDP signiert das ID-Token mit einem Signaturschlüssel dessen öffentlicher Teil im Metadatenblock seines Entity Statements veröffentlicht ist.
- Response
- HTTP-200
- Content-Type=application/json
- Cache-Control=no-store
- Pragma=no-cache
- JSON
{
"id_token": "eyJhbGciOiJSUzI1NiIsIm.ewogImlzc
yI6ICJodHRwOi8vc2VydmVyLmV4YW1wbGUuY29tIiwKICJzdWIiOiAiMjQ4Mjg5
NzYxMDAxIiwKICJ...",
"token_type": "Bearer",
"expires_in": 300
}
- Encryption Header des JWS
{
"use": "enc",
"kid": "puk_fd_enc",
"alg": "ES256"
}
- Signatur Header des JWS
{
"use": "sig",
"kid": "puk_fed_idp_token",
"alg": "ES256"
}
- Payload
Die Tabelle stellt die Attribute des ID-Token dar.
Tabelle 18 : Attribute des ID-Token
| Name
|
Anmerkungen
|
|---|---|
| iss
|
Eindeutiger Identifier (ID) des sektoralen Identity Providers innerhalb der TI-Föderation, der das ID-Token ausgestellt hat.
|
| sub | Vom sektoralen Identity Provider erzeugter pseudonymer Identifier des Nutzers. Der Wert enthält keine personenbezogenen Informationen und wird fachdienstspezifisch vergeben. Fachdienste, die aus datenschutzrechtlichen Gründen keine weiteren Nutzerattribute erhalten dürfen oder benötigen, können diesen Identifier als Ergebnis einer erfolgreichen Authentifizierung verwenden.
|
| iat
|
Zeitpunkt der Ausstellung des ID-Tokens durch den sektoralen Identity Provider. |
| exp | Zeitpunkt des Ablaufs der Gültigkeit des ID-Tokens.
|
| aud | Eindeutiger Identifier des Fachdienstes, für den das ID-Token ausgestellt wurde. Der Wert entspricht dem Identifier (iss) des Fachdienstes als OpenID-Relying-Party innerhalb der TI-Föderation.
|
| nonce | Zufallswert, der vom Fachdienst als OpenID-Relying-Party im Pushed Authorization Request übermittelt wurde. Der Fachdienst vergleicht den im ID-Token enthaltenen Wert mit dem ursprünglich gesendeten Wert und stellt dadurch sicher, dass das ID-Token zu der von ihm initiierten Authentifizierungsanfrage gehört.
|
| acr | Der Claim acr (Authentication Context Class Reference) gibt das erreichte Vertrauensniveau beziehungsweise die Stärke der durchgeführten Authentifizierung an. Der Wert ist abhängig vom verwendeten Authentifizierungsverfahren und dem erreichten Vertrauensniveau. |
| amr | Der Claim amr (Authentication Methods References) beschreibt die bei der Authentifizierung verwendeten Authentifizierungsmethoden. Mögliche Werte sind beispielsweise:
|
| urn:telematik:claims:profession | Wird der Scope urn:telematik:versicherter angefordert, enthält das ID-Token unter anderem Informationen zur Versicherung des Nutzersr
|
| urn:telematik:claims:organization | |
| urn:telematik:claims:id | |
| urn:telematik:claims:display_name | Vollständiger Anzeigename des Versicherten. Der Wert kann Vorname, Nachname, akademische Titel sowie Namensvorsätze und Namenszusätze enthalten. |
(12) Authorization Code für das Anwendungsfrontend
Sofern die Kommunikation zwischen Anwendungsfrontend, Authorization Server und den geschützten Ressourcen des Fachdienstes ebenfalls mittels OAuth 2.0 erfolgt, erzeugt der Fachdienst in seiner Rolle als Authorization Server einen eigenen Authorization Code (AUTHORIZATION_CODE_AS). Dieser wird an das Anwendungsfrontend zurückgegeben und anschließend vom Anwendungsfrontend am Token-Endpunkt des Fachdienstes eingereicht.
- Response
- HTTP-200
- Content-Type: application/json
{
"code":"
"eaf8NQ-IWG4a2eg535i-C5PXG6",
"state": "state_frontend"
}
Die nachfolgende Tabelle beschreibt die Attribute der Antwort des Authorization Servers des Fachdienstes.
Tabelle 19 : Response vom Fachdienst Authorization Server an den Fachdienst-Client (Authorization-Code-Flow)
| Name
|
Anmerkungen
|
|---|---|
| code
|
Der Fachdienst Authorization Server ezeugt einen Authorization Code, den das Anwendungsfrontend des Fachdienstes beim Fachdienst Authorization Server gegen ein Access-Token eintauschen kann.
|
| state | Der state ist ein Zufallswert, den das Anwendungsfrontend des Fachdienstes bei initialen (OAuth) Request an den Fachdienst Authorization Server geschickt hat. Das Anwendungsfrontend prüft gesendeten und erhaltenen state-Parameter um sicherzustellen, dass die Response von der Komponente kommt, an welche der initiale (oauth) Request gestellt wurde.
|
(13)Abruf des Access-Token
Das Anwendungsfrontend des Fachdienstes reicht den vom Authorization Server des Fachdienstes ausgestellten Authorization Code am Token-Endpunkt ein, um ein Access-Token und gegebenenfalls ein Refresh-Token zu erhalten.
- Request zum Abruf des Access-Token beim Fachdienst Authorization Server durch das Anwendungsfrontend des Fachdienstes
POST /token
Host: idpfadi.dev.gematik.solutions
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code
&code=eaf8NQ-IWG4a2eg535i-C5PXG6
&code_verifier=cwYI3ZkRp0JXArqKPxKJGB7QK ....
&client_id=xyz_fachdienst_frontend_id
Die nachfolgende Tabelle beschreibt die Parameter für den Abruf des Access-Tokens am Token-Endpunkt des Authorization Servers des Fachdienstes.
Tabelle 20 : Abruf des Access-Token am Fachdienst Authorization Server
| Name
|
Anmerkungen
|
|---|---|
| grant_type
|
Zwischen dem Anwendungsfrontend und dem Authorization Server des Fachdienstes wird der OAuth-2.0-Authorization-Code-Flow verwendet. Der Wert des Parameters lautet daher authorization_code.
|
| code
|
Der vom Authorization Server des Fachdienstes ausgestellte Authorization Code, den das Anwendungsfrontend am Token-Endpunkt des Fachdienstes gegen ein Access-Token und gegebenenfalls ein Refresh-Token eintauschen möchte.
|
| code_verifier
|
Der Authorization Server des Fachdienstes berechnet aus dem übermittelten code_verifier unter Verwendung des beim ursprünglichen Authorization Request angegebenen Verfahrens (code_challenge_method) eine code_challenge. Diese muss mit der im ursprünglichen Authorization Request übermittelten code_challenge übereinstimmen. Hierdurch wird das PKCE-Verfahren (Proof Key for Code Exchange) umgesetzt.
|
| client_id
|
Die client_id ist ein eindeutiger Identifier, mit dem das Anwendungsfrontend beim Authorization Server des Fachdienstes registriert ist.
|
| redirect_uri | Optional kann der Token Request eine redirect_uri enthalten. Falls eine redirect_uri im ursprünglichen Authorization Request übermittelt wurde, muss dieselbe URI auch beim Austausch des Authorization Codes angegeben werden. |
(14) Ausgabe des Access-Tokenauf Fachdienst
Das Anwendungsfrontend erhält vom Authorization Server des Fachdienstes ein Access-Token. Zusätzlich kann der Authorization Server ein Refresh-Token ausstellen, mit dem nach Ablauf des Access-Tokens ein neues Access-Token angefordert werden kann.
- Response
- HTTP-200
- Content-Type=application/json
- Cache-Control=no-store
- Pragma=no-cache
- JSON
{
"access_token" : "f72f1if22ceh919ce621f7012hee98881d949g85",
"token_type" : "Bearer",
"expires_in" : 12000,
"refresh_token" : "VXxl4axvYNPR8DxI8WE7WMJZA4Ga8gGq02HUAcz8Ax0"
}
(15) Verwendung des Access-Token
Greift das Anwendungsfrontend auf eine geschützte Ressource des Fachdienstes zu, wird das Access-Token bei jedem Request übermittelt. Der Resource Server des Fachdienstes validiert das Access-Token und entscheidet auf dieser Grundlage über die Autorisierung des Zugriffs.
- Request
- POST /resource HTTP/1.1
Authorization: Bearer f72f1if22ceh919ce621f7012hee98881d949g85
Host: idpfadi.dev.gematik.solutions
5.3 Web2App-Flow
Der konkrete OAuth-2.0-Flow ist von der jeweiligen Anwendungsarchitektur abhängig. Die Spezifikation [OAuth 2.0 for Browser-Based Applications] unterscheidet verschiedene Architekturansätze, die unterschiedliche Auswirkungen auf die Ausgestaltung des OAuth-2.0-Flows sowie die damit verbundenen Sicherheitsanforderungen haben.
- Die Architekturvarianten gemäß [OAuth 2.0 for Browser-Based Applications], Abschnitt 6.1 (Backend for Frontend, BFF), und Abschnitt 6.2 (Token-Mediating Backend) werden im Rahmen der vorliegenden Spezifikation nicht gesondert betrachtet, da sich die wesentlichen Abläufe im Kontext der TI-Föderation nicht unterscheiden.
- Der in Abschnitt 6.3 beschriebene Fall einer reinen Browseranwendung, bei der das Anwendungsfrontend ausschließlich im Browser ausgeführt wird und keine Backend-Komponente vorhanden ist, wird für Anwendungen des Gesundheitswesens mit Anforderungen an eine sichere Nutzerauthentifizierung nicht als relevanter Anwendungsfall betrachtet.
Für Web-Anwendungen sollten die in in [OAuth 2.0 Security Best Current Practice] beschriebenen Sicherheitsanforderungen und Empfehlungen berücksichtigt werden.
Der Ablauf des OIDC-Flows entspricht grundsätzlich dem zuvor beschriebenen App2App-Flow. Unterschiede ergeben sich lediglich in der Kommunikation zwischen Anwendungsfrontend und Authenticator-Modul sowie in der technischen Umsetzung der Weiterleitungen.
5.3.1 Vorbedingungen
- Für die App mit dem Authenticator-Modul des sektoralen Identity Providers ist auf dem Endgerät des Nutzers ein App-Link beziehungsweise Universal Link registriert, der auf die Endpunkte des sektoralen Identity Providers verweist.
- Der Fachdienst verfügt über eine Backend-Komponente, welche die fachliche Anwendungslogik bereitstellt und die Kommunikation mit den Komponenten der TI-Föderation übernimmt.
5.3.2 Flow - OIDC
5.3.2.1 Flow Diagramm
Abbildung 9 : Ablauf Web2App-Flow
5.3.2.2 Ablaufbeschreibung Web2App-Flow
Tabelle 21 : Ablaufbeschreibung Web2App-Flow
| Schritt
|
Beschreibung | |
|---|---|---|
| 0 |
|
Vorbereitende Maßnahmen
Auswahl des sektoralen Identity Providers
|
| 1 |
|
Abweichend vom App2App-Flow wird die Anfrage durch das Web-Backend des Fachdienstes ausgelöst. Das Web-Frontend kommuniziert dabei ausschließlich mit dem Backend des Fachdienstes.
|
|
|
1-a | Schnittstellendetails analog App2App Flow (1a)
|
|
|
1-b | Schnittstellendetails analog App2App Flow (1b) |
|
|
1-c | Schnittstellendetails analog App2App Flow (1c) |
| 2 |
|
Schnittstellendetails analog App2App Flow (2) |
|
|
2-a | Schnittstellendetails analog App2App Flow (2a) |
|
|
2-b | Schnittstellendetails analog App2App Flow (2b) |
|
|
2-c | Schnittstellendetails analog App2App Flow (2c) |
| 3 |
|
Schnittstellendetails analog App2App Flow (3) |
| 4 |
|
Abweichend vom App2App-Flow erfolgt die Weiterleitung (Redirect) über das Web-Backend zum Web-Frontend des Fachdienstes. Die weiteren Schnittstellendetails entsprechen dem App2App-Flow (4).
|
| 5 |
|
Schnittstellendetails analog App2App Flow (5) |
| 6 |
|
Schnittstellendetails analog App2App Flow (6) |
|
|
6-a | Schnittstellendetails analog App2App Flow (6a) |
|
|
6-b | Schnittstellendetails analog App2App Flow (6b) |
| 7 |
|
Schnittstellendetails analog App2App Flow (7) |
| 8 |
|
Abweichend vom App2App-Flow führt das Authenticator-Modul des sektoralen Identity Providers den Redirect zum Fachdienst in seiner Rolle als OpenID-Relying-Party aus und übergibt dabei den Authorization Code.
Die weiteren Schnittstellendetails entsprechen dem App2App-Flow (8) beziehungsweise (9). |
| 9 |
|
Schnittstellendetails analog App2App Flow (10)
|
| 10 |
|
Schnittstellendetails analog App2App Flow (11)
|
| 11 |
|
Der Fachdienst in seiner Rolle als Authorization Server stellt ein Access-Token sowie gegebenenfalls ein Refresh-Token aus und übermittelt diese an das Web-Backend der Anwendung. Die Token werden zu keinem Zeitpunkt an den Browser des Nutzers übertragen.
|
| 12 |
|
Das Access-Token sowie gegebenenfalls das Refresh-Token werden im Web-Backend der Anwendung gespeichert. Die Kommunikation zwischen Web-Frontend und Web-Backend ist implementierungsspezifisch. Der Zugriff auf die geschützten Ressourcen des Fachdienstes erfolgt ausschließlich über das Web-Backend, das das Access-Token bei jedem Aufruf mitführt.
|
Schnittstellendetails analog App2App Flow (10) Web2App Flow
5.4 2-Geräte-Flow
Der 2-Geräte-Flow beschreibt den Anwendungsfall, bei dem das Anwendungsfrontend des Fachdienstes und das Authenticator-Modul des sektoralen Identity Providers auf unterschiedlichen Endgeräten ausgeführt werden. Ein typisches Szenario ist die Nutzung einer Anwendung im Browser eines PCs, während die Authentifizierung über die App des sektoralen Identity Providers auf einem Smartphone erfolgt.
Der Ablauf basiert fachlich auf dem gleichen OIDC-Flow wie der App2App-Flow. Die Übergabe der Authentifizierungsanfrage an das Authenticator-Modul erfolgt jedoch geräteübergreifend. Hierzu können beispielsweise QR-Codes, numerische Codes oder andere vom sektoralen Identity Provider bereitgestellte Verfahren zur Gerätekopplung eingesetzt werden.
5.4.1 Vorbedingungen
- Für die App mit dem Authenticator-Modul des sektoralen Identity Providers ist auf dem mobilen Endgerät des Nutzers ein App-Link beziehungsweise Universal Link registriert, der auf die Endpunkte des sektoralen Identity Providers verweist.
- Der Fachdienst verfügt über eine Backend-Komponente, welche die fachliche Anwendungslogik bereitstellt und die Kommunikation mit den Komponenten der TI-Föderation übernimmt.
- Das Authenticator-Modul des sektoralen Identity Providers läuft auf einem anderen Endgerät als das Anwendungsfrontend des Fachdienstes. Ein typisches Beispiel ist die Nutzung des Authenticator-Moduls auf einem Smartphone bei gleichzeitiger Nutzung der Anwendung über einen Webbrowser auf einem PC oder Notebook
5.4.2 Flow - OIDC
5.4.2.1 Flow Diagramm
Abbildung 10 : Ablauf 2-Geräte-Flow
5.4.2.2 Ablaufbeschreibung 2-Geräte-Flow
Tabelle 22 : Ablaufbeschreibung 2-Geräte-Flow
| Schritt
|
Gerät | Beschreibung | |
|---|---|---|---|
| 0 |
|
1 | Vorbereitende Maßnahmen
Auswahl des sektoralen Identity Providers
|
| 1 |
|
1 | Schnittstellendetails analog App2App Flow (1)
|
|
|
1-a | 1 | Schnittstellendetails analog App2App Flow (1a)
|
|
|
1-b | 1 | Schnittstellendetails analog App2App Flow (1b) |
|
|
1-c | 1 | Schnittstellendetails analog App2App Flow (1c) |
| 2 |
|
1 | Schnittstellendetails analog App2App Flow (2) |
|
|
2-a | 1 | Schnittstellendetails analog App2App Flow (2a) |
|
|
2-b | 1 | Schnittstellendetails analog App2App Flow (2b) |
|
|
2-c | 1 | Schnittstellendetails analog App2App Flow (2c) |
| 3 |
|
1 | Schnittstellendetails analog App2App Flow (3) |
| 4 |
|
1 | Der Authorization Server des Fachdienstes antwortet dem Web-Backend mit der Request-URI und der Client-ID. Diese Informationen werden über das Anwendungsfrontend an die Web-Anwendung des sektoralen Identity Providers weitergegeben. |
| 5 |
|
1 | Das Web-Backend leitet die erforderlichen Informationen an das Anwendungsfrontend weiter. |
| 6 |
|
1 | Das Anwendungsfrontend öffnet die Web-Anwendung des sektoralen Identity Providers zur Durchführung der Authentifizierung. |
|
|
6a | 1 | Das Web-Frontend des sektoralen Identity Providers fordert den Nutzer zur Eingabe seiner Zugangsdaten auf und holt gegebenenfalls die erforderliche Consent-Freigabe ein (z. B. Benutzername und Passwort als erster Authentifizierungsfaktor).
|
|
|
6b | 1 | Der Nutzer übermittelt seine Anmeldedaten an den sektoralen Identity Provider. |
|
|
6c | 2 | Der sektorale Identity Provider kann das Authenticator-Modul auf einem zweiten Endgerät in den Authentifizierungsprozess einbinden. Hierzu sendet er beispielsweise eine Push-Benachrichtigung an die Authenticator-App oder fordert den Nutzer zum Start der App auf.
|
|
|
6d | 2 | Der Nutzer führt die für die Authentifizierung erforderlichen Schritte innerhalb des Authenticator-Moduls durch.
|
| 7 |
|
1 | Nach erfolgreicher Authentifizierung antwortet der Authorization-Endpunkt des sektoralen Identity Providers mit einem Authorization Code sowie einem Redirect zum Fachdienst.
|
| 8 |
|
1 | Das Anwendungsfrontend übermittelt den Authorization Code an das zugehörige Web-Backend. |
| 9 |
|
1 | Das Web-Backend leitet den Authorization Code an den Fachdienst in seiner Rolle als OpenID-Relying-Party weiter. |
| 10 |
|
1 | Schnittstellendetails analog App2App Flow (10) |
| 11 |
|
1 | Schnittstellendetails analog App2App Flow (11)
|
| 12 |
|
1 | Schnittstellendetails analog Web2App Flow (11) |
5.5 Flow Desktop-Anwendung mit integriertem Authenticator-Modul
Für Anwendungen, die auf einem Desktop-PC ausgeführt werden, kann neben dem 2-Geräte-Flow auch eine direkte Authentifizierung innerhalb der Desktop-Anwendung erfolgen, sofern diese ein Authenticator-Modul integriert. Diese Ausprägung ist derzeit für das ePA-Desktop-FdV umgesetzt.
Die Authenticator-Module der ePA-Desktop-FdV-Anwendungen stehen für die gängigen Desktop-Betriebssysteme zur Verfügung. Die Authentifizierung erfolgt dabei über einen angeschlossenen Kartenleser unter Verwendung der elektronischen Gesundheitskarte (eGK) und der zugehörigen PIN.
Der Ablauf entspricht grundsätzlich dem in Kapitel „App2App-Flow“ beschriebenen OIDC-Flow. Der wesentliche Unterschied besteht darin, dass die Funktionen des Authenticator-Moduls direkt innerhalb der Desktop-Anwendung bereitgestellt werden und somit kein separates mobiles Endgerät erforderlich ist.
5.5.1 Vorbedingungen
- Das Authenticator-Modul ist Bestandteil der Desktop-Anwendung.
- Es ist ein kompatibles Kartenlesegerät an den Desktop-PC angeschlossen.
- Dem Nutzer steht eGK mit PIN als Authentifizierungsmedium zur Verfügung.
5.5.2 Flow - OIDC
5.5.2.1 Flow Diagramm
Abbildung 11 : Ablauf Desktop-App-Flow
5.5.2.2 Ablaufbeschreibung Desktop-App-Flow
Tabelle 23 : Ablaufbeschreibung Desktop-App-Flow
| Schritt
|
Beschreibung | |
|---|---|---|
| 0 |
|
Vorbereitende Maßnahmen
Auswahl des sektoralen Identity Providers
|
| 1 |
|
Die Desktop-Anwendung initiiert den Authentifizierungsvorgang. Die weiteren Schnittstellendetails entsprechen grundsätzlich dem App2App-Flow.
|
|
|
1-a | Schnittstellendetails analog App2App Flow (1a)
|
|
|
1-b | Schnittstellendetails analog App2App Flow (1b) |
|
|
1-c | Schnittstellendetails analog App2App Flow (1c) |
| 2 |
|
Schnittstellendetails analog App2App Flow (2) |
|
|
2-a | Schnittstellendetails analog App2App Flow (2a) |
|
|
2-b | Schnittstellendetails analog App2App Flow (2b) |
|
|
2-c | Schnittstellendetails analog App2App Flow (2c) |
| 3 |
|
Schnittstellendetails analog App2App Flow (3) |
| 4 |
|
Schnittstellendetails analog App2App Flow (4) |
| 5 |
|
Das Anwendungsfrontend des Fachdienstes öffnet das integrierte Authenticator-Modul. Die zuvor vom sektoralen Identity Provider erhaltene Request-URI wird als Parameter an das Authenticator-Modul übergeben. Eine Weiterleitung auf ein separates mobiles Endgerät ist nicht erforderlich.
|
| 6 |
|
Schnittstellendetails analog App2App Flow (6) |
|
|
6-a | Schnittstellendetails analog App2App Flow (6a) |
|
|
6-b | Schnittstellendetails analog App2App Flow (6b)
Die Nutzerauthentifizierung erfolgt mittels eGK und PIN über ein angeschlossenes Kartenlesegerät. |
| 7 |
|
Schnittstellendetails analog App2App Flow (7) |
| 8 |
|
Das integrierte Authenticator-Modul übergibt den vom sektoralen Identity Provider erhaltenen Authorization Code sowie die Redirect-Informationen über eine interne Programmierschnittstelle an das Anwendungsfrontend der Desktop-Anwendung.
|
| 9 |
|
Das Anwendungsfrontend übermittelt den Authorization Code an den Fachdienst in seiner Rolle als OpenID-Relying-Party. |
| 9 |
|
Schnittstellendetails analog App2App Flow (9)
|
| 10 |
|
Schnittstellendetails analog App2App Flow (10)
|
| 11 |
|
Schnittstellendetails analog App2App Flow (11) |
| 12 |
|
Schnittstellendetails analog App2App Flow (12)
|
| 13 |
|
Schnittstellendetails analog App2App Flow (13) |
| 14 |
|
Schnittstellendetails analog App2App Flow (14) |
| 15 |
|
Schnittstellendetails analog App2App Flow (15)
|
5.6 Unterstützung Single-Sign-On auf Anwendungsebene
Ein Single-Sign-On (SSO) auf Anwendungsebene ermöglicht es einem Nutzer, sich innerhalb einer Anwendung nur einmal aktiv zu authentifizieren und anschließend auf mehrere TI-Fachdienste zuzugreifen, ohne für jeden Fachdienst erneut eine aktive Authentifizierung durchführen zu müssen.
Grundsätzlich erfordert jeder Zugriff auf einen TI-Fachdienst eine aktive Authentifizierung des Nutzers. Unter bestimmten Voraussetzungen kann jedoch auf Anwendungsebene ein SSO-Verfahren eingesetzt werden:
- Die Anwendung ist ein von der gematik zugelassenes Frontend des Versicherten (FdV), beispielsweise das ePA-FdV.
- Der Nutzer hat der Nutzung von SSO für den jeweiligen TI-Fachdienst ausdrücklich zugestimmt.
Die nachfolgende Matrix zeigt beispielhaft die Nutzung eines Single-Sign-On-Verfahrens innerhalb eines ePA-FdV. In diesem Beispiel kann der Nutzer die TI-Fachdienste E-Rezept, TI-Messenger und Patientenakte sowie eine Funktion seiner Krankenversicherung aus dem ePA-FdV heraus verwenden.
Dabei kann der Nutzer für jeden Fachdienst individuell festlegen, ob eine erneute aktive Authentifizierung erforderlich ist oder eine zuvor durchgeführte Authentifizierung wiederverwendet werden darf. Im dargestellten Beispiel hat der Nutzer die Nutzung von SSO für den Zugriff auf die Patientenakte nicht freigegeben. Beim Öffnen der Patientenakte ist daher eine erneute aktive Authentifizierung erforderlich.
Das Single-Sign-On ist auf die jeweilige Anwendung beschränkt. Eine innerhalb eines ePA-FdV erteilte SSO-Berechtigung gilt nicht automatisch für andere Anwendungen, beispielsweise die E-Rezept-App, eine DiGA-Anwendung oder Anwendungen einer Krankenversicherung.
Abbildung 12 : Beispiel Entscheidungsmatrix für SSO im ePA-FdV
Beim Single-Sign-On (SSO) authentifiziert sich der Nutzer spätestens beim erstmaligen Aufruf eines TI-Fachdienstes innerhalb einer Anwendung gegenüber dem sektoralen Identity Provider (IDP). Anschließend kann der Nutzer für einen definierten Zeitraum weitere TI-Fachdienste sowie anwendungsspezifische Funktionen der Krankenversicherung nutzen, ohne für jeden einzelnen Fachdienst erneut eine aktive Authentifizierung durchführen zu müssen.
Der sektorale Identity Provider stellt dabei sicher, dass für jeden TI-Fachdienst ein eigenes ID-Token ausgestellt wird. Dadurch bleiben die Vertrauensbeziehungen und die Identitätsinformationen der einzelnen Fachdienste voneinander getrennt.
Der Verzicht auf eine aktive Nutzerinteraktion bei jeder Authentifizierung eines TI-Fachdienstes erfordert zusätzliche Sicherheitsmaßnahmen. Diese Maßnahmen müssen sicherstellen, dass die für den jeweiligen Fachdienst geforderte Widerstandsfähigkeit gegenüber dem relevanten Angriffspotenzial weiterhin gewährleistet bleibt.
Eine mögliche spezifikationskonforme Umsetzung besteht in der Verwendung einer vom sektoralen Identity Provider erzeugten Session-ID sowie eines kryptographischen Schlüsselpaars, das sowohl an die Session-ID als auch an die konkrete Instanz des Anwendungskontexts gebunden ist.
Informationen zu den SSO-Präferenzen des Nutzers sowie zur Identität der anfordernden Anwendung werden standardkonform über den Request-Parameter "authorization_details"[1] übermittelt (siehe [RFC9396 ] sowie [OAuth 2.0 Rich Authorization Requests]).
Ein Single-Sign-On ist derzeit ausschließlich für Fachdienste zulässig, die innerhalb des ePA-FdV eingebunden sind. Die nachfolgende Beschreibung erläutert die Umsetzung daher exemplarisch anhand eines ePA-FdV mit integrierten TI-Fachdiensten.
Abbildung 13 : ePA-FdV mit mehreren integrierten TI-Anwendungen
5.6.1 Prinzipieller Ablauf mit SessionID und Schlüsselpaar
Beim ersten Funktionsaufruf auf einen TI-Fachdienst aus dem ePA-FdV durch den Nutzer
Beim erstmaligen Aufruf eines TI-Fachdienstes aus dem ePA-FdV durch den Nutzer erfolgen die folgenden Schritte:
- Die im ePA-FdV konfigurierten SSO-Einstellungen des Nutzers für alle an das ePA-FdV angebundenen Fachdienste sowie eine eindeutige Instanz-ID der aufrufenden ePA-FdV-Instanz werden als Request-Parameter in "authorization_details"[1] des Authorization Requests an den Authorization Server übermittelt.
- Die SSO-Einstellungen des Nutzers sowie die eindeutige Instanz-ID werden ebenfalls als Request-Parameter in "authorization_details"[1] des Pushed Authorization Requests an den sektoralen Identity Provider übertragen.
- Der Nutzer authentifiziert sich aktiv über das Authenticator-Modul. Sofern für den betreffenden Fachdienst noch keine Einwilligung des Nutzers vorliegt, wird zusätzlich ein entsprechender Consent-Dialog angezeigt.
- Die vom sektoralen Identity Provider erzeugte Session-ID wird durch das Authenticator-Modul gespeichert.
- Über Plattformmechanismen wird ein kryptographisches Schlüsselpaar im systemeigenen Schlüsselspeicher erzeugt und an die laufende Instanz des ePA-FdV gebunden.
- Die Session-ID wird vom Authenticator-Modul mit dem privaten Schlüssel des erzeugten Schlüsselpaars signiert.
- Der öffentliche Schlüssel des Schlüsselpaars sowie die signierte Session-ID werden im Rahmen des Authentifizierungsprozesses an den sektoralen Identity Provider übermittelt und dort mit der Nutzeridentität verknüpft.
- Der aufgerufene TI-Fachdienst erhält einen fachdienstspezifischen, einmalig verwendbaren Authorization Code.
- Der als OpenOD Relying Party registrierte TI-Fachdienst erhält ein fachdienst- und nutzerspezifisches ID-Token.
- In einer App2App-Konstellation wird die im Authorization Request (PAR-URI) innerhalb von "authorization_details"[1] übermittelte Instanz-ID des ePA-FdV mit der Session-ID verknüpft. Dadurch wird sichergestellt, dass spätere SSO-fähige Authorization Requests derselben ePA-FdV-Instanz zugeordnet werden können.
Weitere Aufrufe von TI-Fachdiensten innerhalb derselben Sitzung
Bei jedem weiteren Aufruf eines TI-Fachdienstes aus derselben Anwendung erfolgen die folgenden Schritte:
- Die eindeutige Instanz-ID der aufrufenden ePA-FdV-Instanz wird als Request-Parameter in "authorization_details"[1] des Authorization Requests an den Authorization Server übermittelt.
- Die eindeutige Instanz-ID wird ebenfalls wird als Request-Parameter "authorization_details"[1] im Pushed Authorization Request an den sektoralen Identity Provider übertragen.
- Das Authenticator-Modul prüft anhand der im Authorization Request übermittelten SSO-Parameter, ob der Nutzer der Nutzung von Single Sign-On für den angeforderten Fachdienst zugestimmt hat.
- Die gespeicherte Session-ID wird aus dem sicheren Speicher geladen.
- Die Session-ID wird erneut mit dem privaten Schlüssel des zugehörigen Schlüsselpaars signiert.
- Die signierte Session-ID wird im Rahmen des Authorization Requests an den sektoralen Identity Provider übermittelt.
- Der angeforderte TI-Fachdienst erhält einen neuen fachdienstspezifischen Authorization Code.
- Der TI-Fachdienst erhält ein neues fachdienst- und nutzerspezifisches ID-Token.
- In einer App2App-Konstellation prüft der sektorale Identity Provider, ob die im Authorization Request übermittelte Instanz-ID des ePA-FdV mit der zur Session-ID gespeicherten Instanz-ID übereinstimmt.
IN-APP- gegenüber APP2APP-Konstellation
Die Varianten IN-APP (Authenticator-Modul ist Bestandteil des ePA-FdV) und APP2APP (Authenticator-Modul als eigenständige Anwendung neben dem ePA-FdV) unterscheiden sich ausschließlich hinsichtlich der technischen Aufrufmechanismen und der Zuordnung zu einer konkreten ePA-FdV-Instanz.
In der APP2APP-Konstellation muss sichergestellt werden, dass Authorization Requests, die eine SSO-Nutzung ermöglichen, tatsächlich von der berechtigten ePA-FdV-Instanz stammen. Hierzu wird die eindeutige Instanz-ID des ePA-FdV im Authorization Request (PAR-URI) als Parameter an das Authenticator-Modul übergeben.
Die Instanz-ID muss:
- als UUID Version 4 [RFC 9562 ] erzeugt werden,
- innerhalb des Anwendungskontexts eindeutig sein,
- bei jedem Start des Anwendungskontexts neu erzeugt werden und
- nach Beendigung des Anwendungskontexts ihre Gültigkeit verlieren.
Der Anwendungskontext umfasst die Laufzeit einer ePA-FdV-Instanz vom Start bis zur Beendigung der Anwendung durch den Nutzer oder das Betriebssystem. Dadurch wird sichergestellt, dass eine SSO-Sitzung nicht über Anwendungskontexte hinweg wiederverwendet werden kann.
Tabelle 24: Unterschiede im Ablauf IN-APP-Konstellation vs. APP2APP-Konstellation
| Schritt im Ablauf
|
IN-APP
|
APP2APP
|
|---|---|---|
| (5) Authorization Request (URI-PAR) |
|
|
| (6b) Authentifizierung | Es erfolgt keine zusätzliche Prüfung einer ePA-FdV-Instanz-ID, da sich Authenticator-Modul und Anwendung innerhalb desselben Anwendungskontexts befinden.
|
Die übermittelte ePA-FdV-Instanz-ID wird gespeichert beziehungsweise gegen die der Session-ID zugeordnete Instanz-ID geprüft. Dadurch wird sichergestellt, dass SSO-Anfragen ausschließlich von der berechtigten ePA-FdV-Instanz stammen. |
| (8) Rückgabe authcode | Die Rückgabe des vom sektoralen Identity Provider ausgestellten Authorization Codes erfolgt als direkte Antwort auf den In-App-Call (5). | Die Rückgabe des vom sektoralen Identity Provider ausgestellten Authorization Codes erfolgt über Betriebssystemmechanismen (Deep Link oder Universal Link) an die aufrufende ePA-FdV-Instanz.
|
5.6.2 SSO-Unterstützung auf Anwendungsebene innerhalb einer APP
Das Authenticator-Modul ist in das ePA-FdV integriert.
Abbildung 14: Beispiel für SSO bei Ausführung ePA Client Modul mit aktiver und E-Rezept Client Modul ohne aktive Nutzerauthentisierung aus dem ePA-FdV mit integriertem Authenticator-Modul
5.6.3 SSO-Unterstützung auf Anwendungsebene bei separater Authenticator-APP
Das Authenticator-Modul ist als eigene App implementiert.
Abbildung 15: Beispiel für SSO bei Ausführung ePA Client Modul mit aktiver und E-Rezept Client Modul ohne aktive Nutzerauthentisierung aus dem ePA-FdV mit Authenticator-Modul in separater APP
5.6.4 Ablaufbeschreibung SSO-Flow
Tabelle 25: Ablauf der Aufrufe der TI-Client Module aus dem ePA-FdV
| Schritt | Teilschritt | "In-App-Authenticator-Modul" | "externe-Authenticator-Modul APP" |
|---|---|---|---|
| 0 | Der Versicherte kann sich die im ePA-FdV integrierten TI-Funktionen anzeigen lassen. Für jede TI-Funktion kann der Versicherte festlegen, ob eine Nutzerauthentisierung mittels SSO zulässig ist. Die Einstellungen können jederzeit geändert werden. | wie "In-App-Authenticator-Modul" | |
| 1 | 1-1 erstmaliger Aufruf eines TI-Fachdienstes aus dem ePA-FdV | Der Versicherte startet einen TI-Fachdienst über die Benutzeroberfläche des ePA-FdV. Zur Initiierung der Autorisierung sendet das Fachdienst-FdV einen Authorization Request an den Authorization Server des TI-Fachdienstes. Der Request wird um den Parameter "authorization_details" erweitert und enthält:
|
wie "In-App-Authenticator-Modul" |
| 1-2 weiterer Aufruf eines TI-Fachdienstes aus dem ePA-FdV | analog (1-1) | wie "In-App-Authenticator-Modul" | |
| 2 | 2-1 erstmaliger Aufruf eines TI-Fachdienstes aus dem ePA-FdV | Der TI-Fachdienst in seiner Rolle als OpenID Relying der TI-Föderation sendet vor der Nutzerautorisierung einen Pushed Authorization Request (PAR) an den sektoralen IDP der Krankenkasse des Versicherten. Der Request wird um den Parameter "authorization_details" erweitert und enthält dieselben Informationen wie in Schritt 1-1. | wie "In-App-Authenticator-Modul" |
| 2-2 weiterer Aufruf eines TI-Fachdienstes aus dem ePA-FdV | analog (2-1) | wie "In-App-Authenticator-Modul" | |
| 3 | 3-1 erstmaliger Aufruf eines TI-Fachdienstes aus dem ePA-FdV | Der sektorale IDP antwortet dem TI-Fachdienst mit HTTP-Statuscode 200 und einer Request-URI (URI-PAR), die zur Durchführung der Nutzerauthentisierung verwendet wird. | wie "In-App-Authenticator-Modul" |
| 3-2 weiterer Aufruf eines TI-Fachdienstes aus dem ePA-FdV | analog (3-1) | wie "In-App-Authenticator-Modul" | |
| 4 | 4-1 erstmaliger Aufruf eines TI-Fachdienstes aus dem ePA-FdV | TI-Fachdienst in seiner Rolle als OpenID Relying übermittelt die Request-URI und die Client-ID an das TI-Fachdienst-FdV-Modul im ePA-FdV, damit diese Informationen an das Authenticator-Modul des sektoralen IDP weitergeleitet werden können. | wie "In-App-Authenticator-Modul" |
| 4-2 weiterer Aufruf eines TI-Fachdienstes aus dem ePA-FdV | analog (4-1) | wie "In-App-Authenticator-Modul" | |
| 5 | 5-1 erstmaliger Aufruf eines TI-Fachdienstes aus dem ePA-FdV | Das ePA-FdV startet das Authenticator-Modul über dessen API-Schnittstelle zur Durchführung der Nutzerauthentisierung. Dabei werden folgende Informationen übergeben:
|
Das ePA-FdV sendet den URI-PAR Authorization Request und ergänzt folgende Request Parameter (beispielsweise "authorization_details" oder als Parameter):
|
| 5-2 weiterer Aufruf eines TI-Fachdienstes aus dem ePA-FdV | analog (5-1) | analog (5-1) | |
| 6a | 6-1a erstmaliger Aufruf eines TI-Fachdienstes aus dem ePA-FdV | Das Authenticator-Modul prüft, ob eine Session-ID für den laufenden Authenticator-Dienst auf dem Gerät vorhanden ist. Da beim ersten Aufruf noch keine Session-ID existiert, sendet das Authenticator-Modul den Authorization Request (URI-PAR) an den sektoralen IDP und übermittelt folgende zusätzliche Informationen:
|
wie "In-App-Authenticator-Modul" |
| 6-2a weiterer Aufruf eines TI-Fachdienstes aus dem ePA-FdV | Das Authenticator-Modul lädt die gespeicherte Session-ID, signiert diese mit dem privaten Schlüssel des zugehörigen Schlüsselpaares.
Das Authenticator-Modul sendet den Authorization Request (URI-PAR) an den sektoralen IDP und übermittelt folgende zusätzliche Informationen:
|
wie "In-App-Authenticator-Modul" | |
| 6b | 6-1b erstmaliger Aufruf eines TI-Fachdienstes aus dem ePA-FdV | Im Rahmen der Nutzerauthentisierung erzeugt der sektorale IDP:
Nach erfolgreicher Authentifizierung prüft der sektorale IDP die Signatur, speichert die Zuordnung von öffentlichem Schlüssel und Session-ID zur Nutzeridentität und erzeugt einen Authorization Code. |
wie "In-App-Authenticator-Modul" |
| 6-2b weiterer Aufruf eines TI-Fachdienstes aus dem ePA-FdV | Der sektorale IDP prüft:
|
wie "In-App-Authenticator-Modul" | |
| 7 | 7-1 erstmaliger Aufruf eines TI-Fachdienstes aus dem ePA-FdV | Der sektorale IDP der Krankenkasse antwortet dem Authenticator-Modul auf dessen Authentication Request (6-1a, 6-2a) mit dem mit dem Authorization Code und einem Redirect zum Autorisierungsserver des TI-Fachdienstes. | wie "In-App-Authenticator-Modul" |
| 7-2 weiterer Aufruf eines TI-Fachdienstes aus dem ePA-FdV | analog (7-1) | wie "In-App-Authenticator-Modul" | |
| 8 | 8-1 erstmaliger Aufruf eines TI-Fachdienstes aus dem ePA-FdV | Das Authenticator-Modul des IDP antwortet auf den API-Aufruf (Schritt 5) und übergibt in der Antwort dem TI-Fachdienst FdV Modul im ePA-FdV die Redirect-URL und den Authorization Code. | Das Authenticator-Modul antwortet auf den Authorization Request (Schritt 5) mit einem Redirect an die Redirect-URL mit dem Authorization Code als Parameter |
| 8-2 weiterer Aufruf eines TI-Fachdienstes aus dem ePA-FdV | analog (8-1) | analog (8-1) | |
| 9 | 9-1 erstmaliger Aufruf eines TI-Fachdienstes aus dem ePA-FdV | Das TI-Fachdienst FdV Modul im ePA-FdV ruft die Redirect-URL mit dem Authorization Code als Parameter beim Autorisierungsserver des TI-Fachdienstes auf. | wie "In-App-Authenticator-Modul" |
| 9-2 weiterer Aufruf eines TI-Fachdienstes aus dem ePA-FdV | analog (9-1) | wie "In-App-Authenticator-Modul" | |
| 10 | 10-1 erstmaliger Aufruf eines TI-Fachdienstes aus dem ePA-FdV | Der Autorisierungsserver des TI-Fachdienstes reicht den Authorization Code beim Token-Endpunkt des IDP ein. | wie "In-App-Authenticator-Modul" |
| 10-2 weiterer Aufruf eines TI-Fachdienstes aus dem ePA-FdV | analog (10-1) | wie "In-App-Authenticator-Modul" | |
| 11 | 11-1 erstmaliger Aufruf eines TI-Fachdienstes aus dem ePA-FdV | Der Autorisierungsserver des TI-Fachdienstes erhält vom Token-Endpunkt des IDP einen ID Token mit den gewünschten Claims welches mit dem öffentlichen Schlüssel aus der Registrierung verschlüsselt ist. Der Autorisierungsserver des TI-Fachdienstes entschlüsselt das ID Token, prüft den Herausgeber iss, validiert die Signatur des ID Token gegen den zur kid passenden Schlüssel aus den JWKS des sektoralen IDP und zieht die Claims (d. h. die Key/Value-Paare im Payload eines Tokens) der authentisierten Identität aus dem ID Token.
|
wie "In-App-Authenticator-Modul" |
| 11-2 weiterer Aufruf eines TI-Fachdienstes aus dem ePA-FdV | analog (11-1) | wie "In-App-Authenticator-Modul" | |
| 12 | 12-1 erstmaliger Aufruf eines TI-Fachdienstes aus dem ePA-FdV | Der Autorisierungsserver des TI-Fachdienstes sendet die Autorisierung für den Versicherten an das TI-Fachdienst FdV Modul im ePA-FdV (beispielsweise. als wiederum beim Autorisierungsserver einzulösenden Authorization Code oder als Access Token). | wie "In-App-Authenticator-Modul" |
| 12-2 weiterer Aufruf eines TI-Fachdienstes aus dem ePA-FdV | analog (12-1) | wie "In-App-Authenticator-Modul" |
[1] Hinweis: Die Anforderungen [A_23208*] aus gemSpec_IDP_Sek sowie [A_23209*] und [A_25047*] aus gemSpec_ePA_FdV fordern jeweils die Einholung einer Nutzerzustimmung zur Nutzung von SSO.
In Abstimmung mit dem BSI ist es nicht erforderlich, diese Zustimmung sowohl über das ePA-FdV als auch über das Authenticator-Modul einzuholen (siehe FAQ-Eintrag „Doppeltes Einholen des SSO-Konsents“ in der IDP-Wissensdatenbank).
In der aktuellen Umsetzung werden die Nutzerpräferenzen zur SSO-Nutzung über das ePA-FdV verwaltet und die entsprechende Nutzerzustimmung dort eingeholt.
Perspektivisch sollen die Nutzerpräferenzen ausschließlich im Authenticator-Modul verwaltet werden. Für die Übergangsphase ist daher die Übermittlung der Nutzerpräferenzen mittels des Parameters "authorization_details" nicht erforderlich.
6 Betriebliche Aspekte
Abbildung 16 : Deploymentview TI-Föderation
6.1 Verfügbarkeiten
6.1.1 Sektorale IDPs
Unabhängig vom Fachdienst ist bei jeder Nutzerauthentifizierung mit GesundheitsID der sektorale IDP involviert. Die Nutzung von TI-Fachdiensten über mobile Endgeräte soll für Versicherte 24x7 möglich sein. Eine Nutzerauthentifizierung mit GesundheitsID muss eine demensprechend hohe Ausfallsicherheit gewährleisten. Daraus ergeben sich folgerichtig Anforderungen an Georedundanz und Wiederherstellungszeiten (siehe auch Kapitel "9 Qualitätsszenarien").
6.1.2 Federation Master
6.1.2.1 TI-Trust Anchor
Der TI-Trust Anchor stellt Schnittstellen zur Abfrage von Subordinate Statements, historical Keys und der Liste der registrierten sektoralen IDP bereit. Diese Abfragen erfolgen bei den Teilnehmern nicht bei jedem Authentisierungsprozess sondern einmal täglich. Die abgefragten Informationen können 24h durch die Teilnehmer gecached werden. Die Anforderungen an die Verfügbarkeit des TI-Trust Anchor können entsprechend dieser Rahmenbedingungen gestaltet werden.
6.1.2.2 Intermediate Entities
Intermediate Entities stellen Schnittstellen zur Abfrage von Subordinate Statements und Trust Marks bereit. Die Anforderungen an die Verfügbarkeit richten sich nach den fachlichen Anwendungsfällen und müssen entsprechend beim Design. der Intermediate Entities berücksichtigt werden.
6.1.3 Fachdienst als OpenID-Relying-Party der TI-Föderation
Anforderungen an Verfügbarkeit von Fachdienst als OpenID-Relying-Party der TI-Föderation richtet sich nach den fachlichen Anwendungsfällen und müssen entsprechend bei Design der Fachdienstes berücksichtigt werden.
6.2 Bearbeitungszeiten
6.2.1 Sektorale IDPs
Das Monitoring der sektoralen Identity Provider umfasst die Verarbeitungszeit innerhalb der sektoralen IDPs aufgrund eingehender Requests. An die unterschiedlichen Requests (Use-Cases) werden betrieblich Anforderungen zur Performance gestellt.
Abbildung 17 : Messpunkte der Bearbeitungsziten sektoraler IDPs
Tabelle 26: Use-Cases für Bearbeitungszeitvorgaben der sektoralen IDPs
| ID
|
Anwendungsfälle |
|---|---|
| IDP.UC_30 | Verarbeitung von Pushed Authorization Requests |
| IDP.UC_31
|
Verarbeitung von Authorization Requests (alle Authentisierungsverfahren) |
| IDP.UC_32
|
Antwort auf Authorization Requests (Online-Ausweisfunktion)
|
| IDP.UC_33 | Antwort auf Authorization Requests (eGK und PIN)
|
| IDP.UC_34 | Antwort auf Authorization Requests (alternatives Authentisierungsverfahren) |
| IDP.UC_35 | Antwort auf Authorization Requests (Gast-Login mit eGK und PIN) |
| IDP.UC_39 | Verarbeitung von Token Requests |
6.2.2 Federation Master
6.2.2.1 TI-Trust Anchor
Das Monitoring des TI-Trust Anchors umfasst die Erfassung und Auswertung der Verarbeitungszeiten für eingehende Requests.
Für die einzelnen Use-Cases werden betriebliche Anforderungen an die Performance des TI-Trust Anchors festgelegt.
Abbildung 18 : Messpunkte der Bearbeitungsziten Trust Anchor
Tabelle 27: Use-Cases für Bearbeitungszeitvorgaben Federation Master
| ID
|
Anwendungsfälle |
|---|---|
| FEDM.UC_1 | IDP-Liste bereitstellen |
| FEDM.UC_2
|
Subordinate Statement bereitstellen |
6.2.2.2 Intermediate Entities
Die Anforderungen an die Performance von Intermediate Entities richten sich nach den fachlichen Anwendungsfällen und sind bei der Konzeption und Implementierung der Intermediate Entities entsprechend zu berücksichtigen.
6.2.3 Fachdienst als OpenID-Relying-Party der TI-Föderation
Die Anforderungen an die Performance von Fachdiensten in ihrer Rolle als OpenID-Relying-Party der TI-Föderation richten sich nach den jeweiligen fachlichen Anwendungsfällen und sind bei der Konzeption und Implementierung der Fachdienste entsprechend zu berücksichtigen.
7 Querschnittsliche Konzepte
Die Anforderungen und Prozesse der TI-Föderation basieren auf den folgenden Konzepten und Spezifikationen der Telematik-Infrastruktur:
- gemSpec_Perf
- gemKPT_Betr
- gemKPT_Test
- gemSpec_DS_Hersteller
- gemSpec_Krypt
- gemSpec_OM
- gemSpec_PKI
- gemSpec_Systemprozesse_dezTI
8 Qualitätsszenarien
Tabelle 28 : Qualitätskriterien
| # | Qualitätsszenario |
|---|---|
| Funktional | |
| F.1 | Die gesetzlichen Anforderungen gemäß § 291 Absatz 8 Satz 1 SGB V sind umgesetzt. |
| F.2 | Die gesetzlichen Anforderungen gemäß § 340 Absatz 6 Satz 1 SGB V sind umgesetzt. |
| F.3 | Die gesetzlichen Anforderungen gemäß § 340 Absatz 7 Satz 1 SGB V sind umgesetzt. |
| Sicherheit | |
| S.1 | Kommunikation ausschließlich mit bekannten Kommunikationspartnern:
Die Kommunikation zwischen Teilnehmern der TI-Föderation muss kryptografisch abgesichert sein. Sektorale IDPs müssen prüfen, ob Anfragen von vertrauenswürdigen Clients stammen. Fachdienste in ihrer Rolle als OpenID-Relying-Party der TI-Föderation müssen prüfen, ob Identitätsinformationen von vertrauenswürdigen Identity Providern ausgestellt wurden. |
| S.2 | Schutz vor der Registrierung bösartiger Anwendungen in der TI-Föderation:
Es muss sichergestellt werden, dass ausschließlich Anwendungen vertrauenswürdiger Hersteller über den Registrierungsprozess der TI-Föderation registriert werden können. |
| S.IDP.1 | Sichere Schlüsselerzeugung und Schlüsselablage:
Es muss sichergestellt werden, dass Schlüssel zur Signatur von Entity Statements sowie zur Verschlüsselung und Signatur von ID-Token sicher erzeugt und gespeichert werden. |
| S.IDP.2 | Die ausgestellten ID-Token müssen manipulationssicher an die anfragende OpenID-Relying-Party übertragen werden. |
| S.IDP.3 | Die ausgestellten ID-Token dürfen ausschließlich diejenigen Identitätsinformationen enthalten, die die anfragende OpenID-Relying-Party erhalten darf. |
| S.IDP.4 | Die bei der Installation des Authenticator-Moduls eingerichtete Gerätebindung muss, abhängig von den Sicherheitsmechanismen des mobilen Endgeräts, regelmäßig durch eine Re-Identifizierung erneuert werden. |
| Performance | |
| P.FM.1 | Der TI-Trust Anchor muss für die Anwendungsfälle FEDM.UC_1 und FEDM.UC_2 die Lastvorgaben gemäß [gemSpec_Perf] einhalten. |
| P.FM.2 | Der TI-Trust Anchor muss für die Anwendungsfälle FEDM.UC_1 und FEDM.UC_2 die Performancevorgaben gemäß [gemSpec_Perf] einhalten. |
| P.IDP.1 | Sektorale IDPs müssen für die Anwendungsfälle IDP.UC_30 bis IDP.UC_35 sowie IDP.UC_39 die Lastvorgaben gemäß [gemSpec_Perf] einhalten. |
| P.IDP.2 | Sektorale IDPs müssen für die Anwendungsfälle IDP.UC_30 bis IDP.UC_35 sowie IDP.UC_39 die Performancevorgaben gemäß [gemSpec_Perf] einhalten. |
| Kompatibilität | |
| K.1 | Kompatibilität durch standardkonforme Implementierung: Die Teilnehmer der TI-Föderation müssen sicherstellen, dass ihre Implementierungen den zugrunde liegenden Standards entsprechen. |
| K.FM.1 | Für jede Testumgebung zur Prüfung der Kompatibilität der Komponenten der TI-Föderation muss ein eigener TI-Trust Anchor bereitgestellt werden. |
| K.FM.2 | Für jede Testumgebung zur Prüfung der Kompatibilität der Komponenten der TI-Föderation muss ein eigener TI-Trust Chain Resolver bereitgestellt werden. |
| K.IDP.1 | Für jede Testumgebung zur Prüfung der Kompatibilität der Komponenten der TI-Föderation muss jeder sektorale IDP eine entsprechende Testinstanz bereitstellen. |
| Verlässlichkeit | |
| V.FM.1 | Der TI-Trust Anchor muss die in [gemSpec_Perf] festgelegten Anforderungen an die Verfügbarkeit für den Federation Master einhalten. |
| V.IDP.1 | Sektorale IDPs müssen die in [gemSpec_Perf] festgelegten Anforderungen an die Verfügbarkeit einhalten. |
| V.IDP.2 | Sektorale IDPs müssen die in [gemSpec_IDP_Sek] festgelegten Anforderungen an die Georedundanz einhalten. |
| Usability | |
| U.FM.1 | Verständlicher und nachvollziehbarer Registrierungsprozess. |
| U.IDP.1 | Authenticator-Modul:
Willenserklärungen und Freigabeinformationen müssen in verständlicher Sprache dargestellt werden. |
| U.IDP.2 | Authenticator-Modul:
Willenserklärungen und Freigabeinformationen dürfen nicht mit sachfremden Informationen vermischt dargestellt werden. |
| U.IDP.3 | Authenticator-Modul:
Einfache Benutzerführung zur Information sowie zur Verwaltung von Willens- und Freigabeerklärungen. |
| U.IDP.4 | Authenticator-Modul:
Unterstützung der Identifizierungs- und Authentifizierungsprozesse durch eine klare, geradlinige und verständliche Benutzerführung. |
| U.IDP.5 | Landing-Page:
Bereitstellung einer Landing-Page zur Nutzerunterstützung. |
| U.IDP.6 | Landing-Page:
Unterstützung bei der Einrichtung der App mit Authenticator-Modul. |
9 Anhang – Verzeichnisse
9.1 Abkürzungen
| Kürzel
|
Erläuterung
|
|---|---|
| BI | Business Intelligence |
| Client-ID in der TI-Föderation | In der TI-Föderation verfügt jeder Teilnehmer über eine eindeutige Client-ID. Die Client-ID entspricht einer URL und dem Claim iss im Entity Statement des Teilnehmers.
|
| CT-Log | Certificate Transparency Log |
| DiGA | Digitale Gesundheitsanwendung |
| DSGVO | Datenschutz-Grundverordnung |
| DWH | Data Warehouse |
| eGBR | Elektronisches Gesundheitsberuferegister |
| eGK | Elektronische Gesundheitskarte |
| ePA | Elektronischen Patientenakte |
| FdV | Frontend des Versicherten |
| HBA | Elektronischer Heilberufsausweis |
| IDP | Identity Provider |
| ITSM | IT Service Management |
| JWT | JSON Web Token |
| KHPflEG | Krankenhauspflegeentlastungsgesetz |
| NFC | Near Field Communication |
| nPA | Neuer Personalausweis |
| OGR | Organspende-Register |
| OIDC | OpenID Connect |
| OP | OpenID Provider |
| PKCE | Proof Key for Code Exchange |
| RP | OpenID-Relying-Party |
| SM(C)-B | Security Module (Card) Typ B
|
| SSO | Single Sign-On |
| TLS | Transport Layer Security |
| TI
|
Telematikinfrastruktur
|
| TSP | Trust Service Provider |
| UC | Use Case |
| ZETA | Zero Trust Architecture |
9.2 Glossar
| Begriff | Erläuterung | Referenz / Standard |
|---|---|---|
| Access Token | Access Tokens werden für den Zugriff auf geschützte Ressourcen verwendet. Ein Access Token ist eine vom Authorization Server ausgestellte Zeichenfolge, die einem Client den autorisierten Zugriff auf geschützte Ressourcen ermöglicht. | The OAuth 2.0 Authorization Framework |
| Auth EP / Token EP | Authentication-Endpunkt (Auth EP) beziehungsweise Token-Endpunkt (Token EP). | OpenID Connect Core 1.0 incorporating errata set 1 |
| Authentication | Prozess zur Verifizierung der Identität einer Entität. | OpenID Connect Core 1.0 incorporating errata set 1 |
| Authorization Code Flow | OAuth-2.0-Flow, bei dem ein Authorization Code vom Autorisierungsendpunkt und die Token vom Token-Endpunkt bereitgestellt werden. | OpenID Connect Core 1.0 incorporating errata set 1 |
| Authentication Request | Anfrage einer OpenID-Relying-Party zur Authentifizierung eines Nutzers durch einen OpenID Provider. | OpenID Connect Core 1.0 incorporating errata set 1 |
| Authorization Code (AuthCode) | Temporärer Code, der nach erfolgreicher Authentifizierung vom Autorisierungsendpunkt ausgestellt wird und vom Client gegen ein Access Token eingetauscht werden kann. | The OAuth 2.0 Authorization Framework
|
| Authorization Grant | Berechtigung, mit der ein Resource Owner einem Client den Zugriff auf geschützte Ressourcen ermöglicht. OAuth 2.0 definiert verschiedene Grant Types, unter anderem Authorization Code, Client Credentials und Resource Owner Password Credentials. | The OAuth 2.0 Authorization Framework |
| Authorization Request | Anfrage eines Clients an den Resource Owner beziehungsweise über den Authorization Server zur Einholung einer Autorisierung. | OpenID Connect Core 1.0 incorporating errata set 1 |
| Authorization Server | Server, der Access Tokens für einen Client ausstellt, nachdem Nutzer authentifiziert und Berechtigungen geprüft wurden. | The OAuth 2.0 Authorization Framework |
| Claim | Einzelne Aussage oder Information über eine Entität.
|
OpenID Connect Core 1.0 incorporating errata set 1 |
| Client | Anwendung, die im Namen eines Resource Owners und mit dessen Autorisierung auf geschützte Ressourcen zugreift. Im Kontext der TI-Föderation ist das Frontend eines Fachdienstes OAuth-Client gegenüber dem Authorization Server bzw. Resource Server.
|
The OAuth 2.0 Authorization Framework |
| Code Challenge | Aus dem Code Verifier abgeleiteter Wert, der bei der Autorisierungsanfrage übermittelt und zum Authorization Code gespeichert wird.
|
Proof Key for Code Exchange by OAuth Public Clients |
| Code Challenge Method | Verfahren zur Erzeugung der Code Challenge aus dem Code Verifier.
|
Proof Key for Code Exchange by OAuth Public Clients |
| Code Verifier | Kryptographisch zufällig erzeugte Zeichenfolge zur Absicherung des Authorization Code Flows.
|
Proof Key for Code Exchange by OAuth Public Clients |
| Credential | Daten, die als Nachweis für die Nutzung einer Identität oder Ressource verwendet werden.
|
OpenID Connect Core 1.0 incorporating errata set 1 |
| End-User (Nutzer/Anwender) | Natürliche Person, die ein IT-System oder einen Dienst nutzt.
|
OpenID Connect Core 1.0 incorporating errata set 1 |
| Entität
|
Etwas mit einer eigenständigen und eindeutig identifizierbaren Existenz innerhalb eines definierten Kontexts.
|
OpenID Federation 1.1 |
| Entity Identifier / URI | Global eindeutiger URI, der einer Entität zugeordnet ist.
|
OpenID Federation 1.1 |
| Entity Statement | Signiertes JWT, das Aussagen einer Entität über sich selbst oder eine andere Entität enthält.
|
OpenID Federation 1.1 |
| Fachdienst | Anwendung innerhalb der TI-Föderation, beispielsweise E-Rezept, elektronische Patientenakte oder DiGA. Ein Fachdienst umfasst typischerweise einen Authorization Server sowie einen Resource Server.
|
OpenID Federation 1.1 |
| Föderaler IDP | Oberbegriff für Identity Provider innerhalb der TI-Föderation. Jeder föderale IDP verwaltet die Identitäten eines bestimmten Sektors.
|
|
| GesundheitsID | Digitale Identität eines Versicherten im Gesundheitswesen, bereitgestellt durch die jeweilige Krankenversicherung.
|
|
| HSM | Hardware Security Module; spezialisiertes System zur sicheren Erzeugung, Speicherung und Nutzung kryptographischer Schlüssel.
|
|
| ID Token | JSON Web Token (JWT), das Identitätsinformationen und gegebenenfalls weitere Claims enthält.
|
OpenID Connect Core 1.0 incorporating errata set 1 |
| Intermediate Entity | Entität innerhalb einer Trust Chain zwischen Trust Anchor und Leaf Entity. In der aktuellen Architektur nicht verwendet.
|
OpenID Federation 1.1 |
| Issuer | Ausstellende Entität eines Tokens oder Entity Statements.
|
|
| Leaf Entity | Blatt-Entität in einer OpenID Federation, beispielsweise eine OpenID-Relying-Party oder ein OpenID Provider.
|
OpenID Federation 1.1 |
| OpenID Provider (OP) | OAuth-2.0-Autorisierungsserver, der Nutzer authentifiziert und Identitätsinformationen bereitstellt.
|
|
| PAR | Pushed Authorization Request. Verfahren, bei dem Autorisierungsparameter vor dem eigentlichen Authorization Code Flow direkt zwischen RP und OP ausgetauscht werden.
|
OAuth 2.0 Pushed Authorization Requests |
| PKCE | Erweiterung des Authorization Code Flows zum Schutz vor Authorization-Code-Abfang- und Injection-Angriffen.
|
Proof Key for Code Exchange by OAuth Public Clients |
| Refresh Token | Credential zum Bezug neuer Access Tokens nach Ablauf oder Ungültigkeit eines Access Tokens.
|
The OAuth 2.0 Authorization Framework |
| OpenID-Relying-Party (RP) | OAuth-2.0-Client, der eine Authentifizierung sowie Identitätsinformationen von einem OpenID Provider anfordert.
|
|
| Request URI | URI, die auf eine beim Authorization Server hinterlegte Autorisierungsanfrage verweist.
|
OpenID Connect Core 1.0 incorporating errata set 1 |
| Resource Owner | Entität, die den Zugriff auf geschützte Ressourcen gewähren kann. Bei natürlichen Personen entspricht dies dem End-User.
|
The OAuth 2.0 Authorization Framework |
| Resource Server | Server, der geschützte Ressourcen bereitstellt und Access Tokens validiert.
|
The OAuth 2.0 Authorization Framework |
| sektoraler IDP | Identity Provider eines bestimmten Sektors, beispielsweise der gesetzlichen Krankenversicherung oder eines Leistungserbringersektors.
|
|
| Subject | Entität, auf die sich ein Token oder Entity Statement bezieht.
|
|
| Scope | Bezeichnung für eine Berechtigung (OAuth 2.0) oder einen Satz von Identitätsinformationen (OpenID Connect), die angefordert werden können.
|
OpenID Connect Core 1.0 incorporating errata set 1
The OAuth 2.0 Authorization Framework |
| Trust Anchor | Vertrauensanker einer Föderation. In der TI-Föderation übernimmt der Federation Master diese Rolle.
|
OpenID Federation 1.1 |
| Trust Chain | Kette von Entity Statements, die die Vertrauensbeziehung zwischen einer Leaf Entity und einem Trust Anchor nachweist. | OpenID Federation 1.1 |
9.3 Abbildungsverzeichnis
- Abbildung 1 : Idee des Aufbaus einer TI-Föderation auf Basis des OpenID Federation Standards
- Abbildung 2 : Beispiel des Aufbau der TI-Födeartion
- Abbildung 3 : TI-Föderation und Nachbarsysteme
- Abbildung 4 : Anwendungsfälle TI-Föderation
- Abbildung 5 : Komponenten der TI-Föderation im Überbrlick
- Abbildung 6 : Komponenten der TI-Föderation mit Schnittstellen
- Abbildung 7 : Schlüsselmanagement für die Nutzerauthentifizierung in der TI-Föderation
- Abbildung 8 : Ablauf App2App-Flow
- Abbildung 9 : Ablauf Web2App-Flow
- Abbildung 10 : Ablauf 2-Geräte-Flow
- Abbildung 11 : Ablauf Desktop-App-Flow
- Abbildung 12 : Beispiel Entscheidungsmatrix für SSO im ePA-FdV
- Abbildung 13 : ePA-FdV mit mehreren integrierten TI-Anwendungen
- Abbildung 14: Beispiel für SSO bei Ausführung ePA Client Modul mit aktiver und E-Rezept Client Modul ohne aktive Nutzerauthentisierung aus dem ePA-FdV mit integriertem Authenticator-Modul
- Abbildung 15: Beispiel für SSO bei Ausführung ePA Client Modul mit aktiver und E-Rezept Client Modul ohne aktive Nutzerauthentisierung aus dem ePA-FdV mit Authenticator-Modul in separater APP
- Abbildung 16 : Deploymentview TI-Föderation
- Abbildung 17 : Messpunkte der Bearbeitungsziten sektoraler IDPs
- Abbildung 18 : Messpunkte der Bearbeitungsziten Trust Anchor
- Abbildung 19 : Beispiel für den Aufbau einer TI-Föderation
- Abbildung 20 : Aufbau und Validierung der Vertrauensbeziehung zwischen einer OpenID-Relying-Party und einem OpenID Provider
9.4 Tabellenverzeichnis
- Tabelle 1 : Schnittstellen zu Umsystemen
- Tabelle 2 : Übersicht über die Anwendungsfälle im Gesamtkontext Federation Master
- Tabelle 3 : Akteure und Rollen
- Tabelle 4 : Schnittstellen zwischen den Teilnehmern und Komponenten der TI-Föderation
- Tabelle 5 : Schlüsselmanagement
- Tabelle 6 : Ablaufbeschreibung App2App-Flow
- Tabelle 7 : Entity Configuration des Federation Master
- Tabelle 8 : Liste registrierten sektoralen IDPs
- Tabelle 9 : Entity Configuration eines sektoralen IDP
- Tabelle 10 : Subordinate Statement zu einem sektoralen IDP
- Tabelle 11 : Inhalte eines Pushed Authorization Request
- Tabelle 12 : Entity Configuration eines Fachdienst als OpenID-Relying-Party
- Tabelle 13 : Subordinate Statement zu einem Fachdienst als OpenID-Relying-Party der TI-Föderation
- Tabelle 14 : Request URI, ausgestellt vom sektoralen IDP
- Tabelle 15 : Inhalte des Redirekt zum sektoralen IDP
- Tabelle 16 : Inhalte des Redirekt zum Fachdienst als OpenID-Relying-Party
- Tabelle 17 : Attribute für den Abruf des ID-Token vom sektoralen IDP
- Tabelle 18 : Attribute des ID-Token
- Tabelle 19 : Response vom Fachdienst Authorization Server an den Fachdienst-Client (Authorization-Code-Flow)
- Tabelle 20 : Abruf des Access-Token am Fachdienst Authorization Server
- Tabelle 21 : Ablaufbeschreibung Web2App-Flow
- Tabelle 22 : Ablaufbeschreibung 2-Geräte-Flow
- Tabelle 23 : Ablaufbeschreibung Desktop-App-Flow
- Tabelle 24: Unterschiede im Ablauf IN-APP-Konstellation vs. APP2APP-Konstellation
- Tabelle 25: Ablauf der Aufrufe der TI-Client Module aus dem ePA-FdV
- Tabelle 26: Use-Cases für Bearbeitungszeitvorgaben der sektoralen IDPs
- Tabelle 27: Use-Cases für Bearbeitungszeitvorgaben Federation Master
- Tabelle 28 : Qualitätskriterien
- Tabelle 29 : Teilnehmer der beispielhaften TI-Föderation
- Tabelle 30: Attribute des Metadatenblocks federation_entity der Entity Configuration im .well-known-Dokument einer Superior Entity (Trust Anchor, Intermediate) der TI-Föderation
- Tabelle 31 : Attribute des Metadatenblocks openid_provider der Entity Configuration im .well-known-Dokument eines sektoralen IDP in der TI-Föderation
- Tabelle 32 : Attribute des Metadatenblocks openid_relying_party der Entity Configuration im .well-known-Dokument eines Fachdienstes als OpenID-Relying-Party in der TI-Föderation
- Tabelle 33 : Attribute des Metadatenblocks oauth_resource der Entity Configuration im .well-known-Dokument eines Fachdienstes als Protected Resource in der TI-Föderation
- Tabelle 34 : Attribute des Subordinate Statements zu einem Fachdienstes als OpenID-Relying-Party in der TI-Föderation
- Tabelle 35 : Prüfschritte zur Validierung des Entity Statements eines OpenID Providers
- Tabelle 36 : Prüfschritte zur Validierung des Entity Statements des Federation Masters als Trust Anchor
- Tabelle 37 : Prüfschritte zur Validierung des Subordinate Statements eines sektoralen IDP
- Tabelle 38 : Prüfschritte zur Validierung des Entity Statements einer OpenID-Relying-Party
- Tabelle 39 : Prüfschritte zur Validierung des Entity Statements des Federation Masters als Trust Anchor durch einen OpenID Provider
- Tabelle 40 : Prüfschritte zur Validierung des Subordinate Statements einer OpenID-Relying-Party
9.5 Referenzierte Dokumente
Die nachfolgende Tabelle enthält die Bezeichnung der in dem vorliegenden Dokument referenzierten Dokumente der gematik zur Telematikinfrastruktur.
| [Quelle]
|
Herausgeber (Erscheinungsdatum): Titel
|
|---|---|
| [gemSpec_IDP_FedMaster] | https://gemspec.gematik.de/docs/gemSpec/gemSpec_IDP_FedMaster/latest/
|
| [gemSpec_IDP_Sek] | https://gemspec.gematik.de/docs/gemSpec/gemSpec_IDP_Sek/latest/
|
| [gemSpec_IDP_FD] | https://gemspec.gematik.de/docs/gemSpec/gemSpec_IDP_FD/latest/
|
| [gemSpec_Perf]
|
https://gemspec.gematik.de/docs/gemSpec/gemSpec_Perf/latest/
|
| [gemKPT_Betr]
|
https://gemspec.gematik.de/docs/gemKPT/gemKPT_Betr/latest/
|
| [gemKPT_Test]
|
https://gemspec.gematik.de/docs/gemKPT/gemKPT_Test/latest/ |
| [gemSpec_DS_Hersteller]
|
https://gemspec.gematik.de/docs/gemSpec/gemSpec_DS_Hersteller/latest/ |
| [gemSpec_Krypt]
|
https://gemspec.gematik.de/docs/gemSpec/gemSpec_Krypt/latest/ |
| [gemSpec_OM]
|
https://gemspec.gematik.de/docs/gemSpec/gemSpec_OM/latest/ |
| [gemSpec_PKI]
|
https://gemspec.gematik.de/docs/gemSpec/gemSpec_PKI/latest/ |
| [gemSpec_Systemprozesse_dezTI] | https://gemspec.gematik.de/docs/gemSpec/gemSpec_Systemprozesse_dezTI/latest/ |
Weitere Referenzierungen:
10 Anhang - Aufbau und Prüfung einer Beispiel-TI-Föderation
10.1 Aufbau der Beispiel TI-Föderation
Anhand der Abbildung „Beispielhafter Aufbau der TI-Föderation“ werden die Entity Configurations und die Validierung von Vertrauensbeziehungen zwischen den Teilnehmern beispielhaft beschrieben.
Hierfür wird angenommen, dass die dargestellte TI-Föderation aus den folgenden Teilnehmern besteht:
Abbildung 19 : Beispiel für den Aufbau einer TI-Föderation
Tabelle 29 : Teilnehmer der beispielhaften TI-Föderation
| Teilnehmer | Teilnehmertyp (entity_type) | Beschreibung |
|---|---|---|
| Federation Master | Trust Anchor, Superior Entity
(federation_entity) |
Der „Federation Master“ ist der Trust Anchor der TI-Föderation. Die Validierung einer Trust Chain muss stets beim Trust Anchor enden.
Der öffentliche Schlüssel, mit dem ein Teilnehmer die Signatur eines Entity Statements oder eines vom Federation Master ausgestellten Subordinate Statements validieren kann, wird dem Teilnehmer im Rahmen der Registrierung in der TI-Föderation bereitgestellt. Der „Federation Master“ ist eine Superior Entity im Sinne von [OpenID Federation 1.1] und enthält in seiner Entity Configuration den Metadatenblock federation_entity. Der Federation Master weist im Claim trust_mark_issuers die Entität „ZETA-Intermediate“ als berechtigten Aussteller von Trust Marks aus. |
| ZETA-Intermediate
|
Superior Entity, Subordinate Entity
(federation_entity) |
„ZETA-Intermediate“ ist eine Superior Entity im Sinne von [OpenID Federation 1.1]. Die Authorization Server der unter ZETA geführten Fachdienste werden unter „ZETA-Intermediate“ registriert.
„ZETA-Intermediate“ stellt für jeden registrierten Teilnehmer Trust Marks in Form signierter JWTs aus und übernimmt damit die Rolle eines Trust Mark-Issuers gemäß [OpenID Federation 1.1]. Als Superior Entity enthält „ZETA-Intermediate“ in seiner Entity Configuration den Metadatenblock federation_entity. Gleichzeitig ist „ZETA-Intermediate“ beim Federation Master registriert und somit eine Subordinate Entity im Sinne von [OpenID Federation 1.1]. |
| PoPP-Intermediate | Superior Entity, Subordinate Entity
(federation_entity) |
„PoPP-Intermediate“ ist eine Superior Entity im Sinne von [OpenID Federation 1.1]. Die Komponenten des Fachdienstes PoPP werden unter „PoPP-Intermediate“ registriert.
Als Superior Entity enthält „PoPP-Intermediate“ in seiner Entity Configuration den Metadatenblock federation_entity. Gleichzeitig ist „PoPP-Intermediate“ beim Federation Master registriert und somit eine Subordinate Entity im Sinne von [OpenID Federation 1.1]. |
| PAT-Intermediate | Superior Entity, Subordinate Entity
(federation_entity) |
„PAT-Intermediate“ ist eine Superior Entity im Sinne von [OpenID Federation 1.1]. Unter „PAT-Intermediate“ werden Fachdienste registriert, die keiner Zulassung durch die gematik bedürfen und in den Vertrauensraum der TI-Föderation integriert werden.
Als Superior Entity enthält „PAT-Intermediate“ in seiner Entity Configuration den Metadatenblock federation_entity. Gleichzeitig ist „PAT-Intermediate“ beim Federation Master registriert und somit eine Subordinate Entity im Sinne von [OpenID Federation 1.1]. |
| ZETA-PoPP
|
Leaf Entity, Subordinate Entity
(openid_relying_party) |
„ZETA-PoPP“ ist der Authorization Server des Fachdienstes PoPP und wird unter „ZETA-Intermediate“ als Subordinate Entity im Sinne von [OpenID Federation 1.1] registriert.
„ZETA-PoPP“ agiert innerhalb der TI-Föderation als OpenID-Relying-Party und ist damit eine Leaf Entity im Sinne von [OpenID Federation 1.1]. Die Entity Configuration von „ZETA-PoPP“ enthält den Metadatenblock openid_relying_party. |
| Beispiel-PKV sektoraler IDP
|
Leaf Entity, Subordinate Entity
(openid_provider) |
Der „Beispiel-PKV sektorale IDP“ ist der OpenID Provider einer Beispiel-PKV und direkt beim Federation Master als Subordinate Entity registriert.
Der IDP agiert innerhalb der TI-Föderation als OpenID Provider und ist damit eine Leaf Entity im Sinne von [OpenID Federation 1.1]. Seine Entity Configuration enthält den Metadatenblock openid_provider. |
| Beispiel-GKV sektoraler IDP
|
Leaf Entity, Subordinate Entity
(openid_provider) |
Der „Beispiel-GKV sektorale IDP“ ist der OpenID Provider einer Beispiel-GKV und direkt beim Federation Master als Subordinate Entity registriert.
Der IDP agiert innerhalb der TI-Föderation als OpenID Provider und ist damit eine Leaf Entity im Sinne von [OpenID Federation 1.1]. Seine Entity Configuration enthält den Metadatenblock openid_provider. |
| eRP Fachdienst
|
Leaf Entity, Subordinate Entity
(openid_relying_party) |
Der „eRP Fachdienst“ ist der Authorization Server des E-Rezept-Fachdienstes und als OpenID-Relying-Party direkt beim Federation Master registriert.
Der Fachdienst agiert innerhalb der TI-Föderation als OpenID-Relying-Party und ist damit eine Leaf Entity im Sinne von [OpenID Federation 1.1]. Die Entity Configuration enthält den Metadatenblock openid_relying_party. |
| ePA Fachdienst
|
Leaf Entity, Subordinate Entity
(openid_relying_party) |
Der „ePA Fachdienst“ ist der Authorization Server des ePA-Fachdienstes und als OpenID-Relying-Party direkt beim Federation Master registriert.
Die Entity Configuration enthält den Metadatenblock openid_relying_party. |
| Beispiel DiGA
|
Leaf Entity, Subordinate Entity
(openid_relying_party) |
Die „Beispiel DiGA“ stellt einen Authorization Server bereit, der als OpenID-Relying-Party unter „PAT-Intermediate“ registriert ist.
Die OpenID-Relying-Party der DiGA stellt eine Leaf Entity im Sinne von [OpenID Federation 1.1] dar. Die Entity Configuration enthält den Metadatenblock openid_relying_party. |
| OGR | Leaf Entity, Subordinate Entity
(openid_relying_party) |
„OGR“ ist der Authorization Server des Fachdienstes Organspenderegister und unter „PAT-Intermediate“ als OpenID-Relying-Party registriert.
OGR agiert innerhalb der TI-Föderation als OpenID-Relying-Party und stellt eine Leaf Entity im Sinne von [OpenID Federation 1.1] dar. Die Entity Configuration enthält den Metadatenblock openid_relying_party. |
10.2 Entity Configuration, Entity Statements und Subordinate Statements der Beispiel-TI-Föderation
10.2.1 Beispiel für den common-block (allgemeine Informationen) im Entity Statement jedes Teilnehmers der TI-Föderation
Table # : Attribute des Commonblocks in der Entity Configuration im .well-known-Dokument eines Teilnehmers der TI-Föderation
| Name | Werte | Beispiele |
|---|---|---|
| iss | Zulässiger Wert:
URL nach [RFC1738] Verwendung: Die im Claim iss enthaltene URL ist der eindeutige Identifikator des Teilnehmers innerhalb der TI-Föderation.
|
https://app-ref.federationmaster.de
https://gsi-ref.dev.gematik.solutions https://idpfadi.dev.gematik.solutions |
| sub | Zulässiger Wert:
URL nach [RFC1738] Verwendung: Entspricht der Wert des Claims sub dem Wert des Claims iss, handelt es sich um ein Entity Statement (Selbstauskunft) der Entität mit dem Identifikator iss. Entspricht der Wert des Claims sub nicht dem Wert des Claims iss, handelt es sich um ein Subordinate Statement über die Entität mit dem Identifikator sub, ausgestellt durch die Entität mit dem Identifikator iss. Die ausstellende Entität muss dabei eine Superior Entity sein.
|
https://app-ref.federationmaster.de |
| iat | Zulässiger Wert:
Zeitwert gemäß [RFC7519], Abschnitt 2 (Sekunden seit dem 01.01.1970 UTC) Verwendung: Zeitpunkt der Ausstellung des Entity Statements beziehungsweise Subordinate Statements |
1645398001 (2022-02-21 00:00:01 UTC) |
| exp | Zulässiger Wert:
Zeitwert gemäß [RFC7519], Abschnitt 2 (Sekunden seit dem 01.01.1970 UTC) Verwendung: Zeitpunkt, zu dem die Gültigkeit des Entity Statements beziehungsweise Subordinate Statements endet |
1645570800 |
| jwks | Zulässiger Wert:
JWKS Objekt Verwendung: Der Claim jwks enthält ausschließlich die Federation-Entity-Signing-Keys.
Mit diesen Schlüsseln können Teilnehmer die Signaturen von Entity Statements, Subordinate Statements und Trust Marks validieren. Weitere Schlüssel (z. B. für TLS, Token-Signatur oder Token-Verschlüsselung) werden in den Metadaten der jeweiligen Entität veröffentlicht |
{ "keys": [
{ "kty": "EC", "crv": "P-256", "x": "cdIR8dLbqa...", "y": "XVp1ySJ2kj...", "kid": "puk_fedmaster_sig", "use": "sig", "alg": "ES256" } ] } |
| trust_mark_issuers | Zulässiger Wert:
JSON Verwendung: Auflistung von Wertepaaren bestehend aus: – Trust-Mark-Typ (URL gemäß [RFC1738]) – Liste der Entitäten ( iss), die Trust Marks dieses Typs ausstellen dürfen
In der Beispiel-TI-Föderation stellt „ZETA-Intermediate“ Trust Marks für seine Teilnehmer aus. Die Information über berechtigte Trust-Mark-Issuer wird durch den Federation Master veröffentlicht und kann von Teilnehmern zur Validierung von Trust Marks verwendet werden. |
{ "https://gematik.ti-federation.de/zeta_relying_party" ":["https://gematik.ti-federation.de/zeta_intermediate "] }
|
| authority_hints | Zulässiger Werte:
Gemäß [OpenID Federation 1.1] die Identifier (iss) von Superior-Entities der TI-Föderation (Intermediate, Federation Master) Verwendung: Enthält ein Entity Statement den Claim authority_hints, sind dort alle Superior Entities aufgeführt, bei denen die Entität registriert ist.
Daher müssen die Entity Statements sektoraler IDPs und registrierter OpenID-Relying-Partys innerhalb der TI-Föderation diesen Claim enthalten. |
["https://app-ref.federationmaster.de"] |
10.2.2 Beispiel für den Metadatenblock im Entity Statement einer Superior Entity (Trust Anchor, Intermediate) - Federation Master und ZETA-Intermediate
Request zum Abruf Entity Statement des Federation Masters
GET /.well-known/openid-federation
Host: app-ref.federationmaster.de
Response:
Base64 encoded JWT
eyJ0eXAiOiJlbnRpdHktc3RhdGVtZW50K2p3dCIsImtpZCI6InB1a19mZWRtYXN0ZXJfc2lnIiwiYWxnIjoiRVMyNTYifQ.eyJpc3MiOiJodHRwczovL2FwcC1yZWYuZmVkZXJhdGlvbm1hc3Rlci5kZSIsInN1YiI6Imh0dHBzOi8vYXBwLXJlZi5mZWRlcmF0aW9ubWFzdGVyLmRlIiwiaWF0IjoxNzgyMjE4MDYzLCJleHAiOjE3ODIzMDQ0NjMsImp3a3MiOnsia2V5cyI6W3sia3R5IjoiRUMiLCJjcnYiOiJQLTI1NiIsIngiOiJjZElSOGRMYnFhR3J6Zmd5dTM2NUtNNXMwMHpqRnE4REZhVUZxQnZyV0xzIiwieSI6IlhWcDF5U0oya2pFSW5walRaeTB3RDU5YWZFWEVMcGNrMGZrN3ZyTVdyYnciLCJraWQiOiJwdWtfZmVkbWFzdGVyX3NpZyIsInVzZSI6InNpZyIsImFsZyI6Ik...
Decodierter Header
{ "typ": "entity-statement+jwt",
"kid": "puk_fedmaster_sig",
"alg": "ES256" }
Decodierte Payload
{ "iss": "https://app-ref.federationmaster.de",
"sub": "https://app-ref.federationmaster.de",
"iat": 1782218063,
"exp": 1782304463,
"jwks": {
"keys": [{"kty":"EC","crv":"P-256","x":"cdIR8dLb ...","y":"XVp1ySJ2 ...","kid":"puk_fedmaster_sig","use":"sig","alg":"ES256"} ]
},
"metadata": {
"federation_entity": {
"federation_fetch_endpoint": "https://app-ref.federationmaster.de/federation/fetch",
"federation_list_endpoint": "https://app-ref.federationmaster.de/federation/list",
"federation_historical_keys_endpoint":"https://app-ref.federationmaster.de/federation/keys",
"idp_list_endpoint": "https://app-ref.federationmaster.de/federation/listidps",
"organization_name": "gematik Federation Master",
"keywords": ["product_type:Federation Master", "product_type_version:2.0.1"],
"contacts":["support@ti-federation.de"]
} } }
Tabelle 30: Attribute des Metadatenblocks federation_entity der Entity Configuration im .well-known-Dokument einer Superior Entity (Trust Anchor, Intermediate) der TI-Föderation
| Name | Werte, Wertebereich und Erläuterung zum claim |
|---|---|
| metadata { | Der Block metadata enthält die in [OpenID Federation 1.1] definierten Metadaten. Für jeden von einem Teilnehmer unterstützten Entity-Typ enthält der Block einen entsprechenden Metadatenbereich. |
| federation_entity { | Der Block federation_entity enthält die Metadaten einer Federation Entity gemäß [OpenID Federation 1.1].
|
| federation_fetch_endpoint | Beispiel:
"https://app-ref.federationmaster.de/fetch", Zulässiger Wert: URL nach [RFC1738] Verwendung: Adresse des Endpunkts zum Abruf von Subordinate Statements. In der Beispiel-TI-Föderation stellt der Federation Master Subordinate Statements für folgende Teilnehmer bereit: – ZETA-Intermediate – PoPP-Intermediate – PAT-Intermediate – Beispiel-GKV sektoraler IDP – Beispiel-PKV sektoraler IDP – eRP-Fachdienst – ePA-Fachdienst |
| federation_list_endpoint | Beispiel:
"https://app-ref.federationmaster.de/list" Zulässiger Wert: URL nach [RFC1738] Verwendung: Adresse des Endpunkts zum Abruf der Liste aller an der Superior Entity registrierten Entity Identifier ( iss).
In der Beispiel-TI-Föderation umfasst die beim Federation Master abgerufene Liste folgende Einträge:
– iss-URL des ETA-Intermediate
– iss-URL des PoPP-Intermediate
– iss-URL des PAT-Intermediate – iss-URL des Beispiel-GKV sektoraler IDP – iss-URL des Beispiel-PKV sektoraler IDP – iss-URL des eRP Fachdienst – iss-URL des ePA Fachdienst |
| federation_historical_keys_endpoint | Beispiel:
"https://app-ref.federationmaster.de/federation_historical_keys" Zulässiger Wert: URL nach [RFC1738] Verwendung: Die Verwendung des Federation Historical Keys Endpoint ist in [OpenID Federation 1.1 - Kap. "Federation Historical Keys Endpoint" beschrieben. Der Endpunkt liefert ein signiertes JWK Set mit historischen Federation Historical Keys. Für jeden Schlüssel muss neben der kid ein exp-Claim angegeben werden, der den Zeitpunkt des Ablaufs der Schlüsselgültigkeit beschreibt. Optional können Angaben zum Ausstellungszeitpunkt (iat) und zu einem Widerruf bereitgestellt werden.
{ "iss": "https://app-ref.federationmaster.de",
"iat": ..., "keys": [ { "kty": "...", "n": "...", "e": "...", "kid":...", "iat":..., "exp": ...}, {"kty": "...", "n": "...", "e": "...", "kid":...", "iat":..., "exp": ..., "revoked": {"revoked_at": ..., "reason": "compromised", } } ]} |
| idp_list_endpoint | Beispiel:
"https://app-ref.federationmaster.de/listidps" Zulässiger Wert: URL nach [RFC1738] Verwendung: Adresse des Endpunkts zum Abruf der Liste aller registrierten sektoralen IDPs. Die Liste enthält Informationen zu allen registrierten sektoralen IDPs der TI-Föderation. Dieser Endpunkt ist TI-föderationsspezifisch und wird ausschließlich durch den Federation Master bereitgestellt. Er dient insbesondere der Bereitstellung von Informationen, die Nutzer für die Auswahl ihrer Krankenversicherung benötigen |
| organization_name | Beispiel:
"gematik Federation Master" Wertebereich: ^[ÄÖÜäöüß\w\ \-\.\&\+\*\/]{1,128} Verwendung: Gemäß [OpenID Federation 1.1] enthält dieser Claim eine menschenlesbare Bezeichnung der Organisation |
| keywords | Beispiel:
["product_type:Federation Master", "product_type_version:2.0.1"] Erforderliche Werte: "product_type_version:<von der gematik zugelassene Produkttyp-Version>", "product_type:<von der gematik zugelassener Produkttyp>" Verwendung: Der Claim keywords ermöglicht die Definition von Schlüsselwörtern innerhalb einer OpenID Federation.
In der TI-Föderation sollen alle Teilnehmer die Schlüsselwörter product_type und product_type_version verwenden, um das Monitoring und die Auswertung der Föderation zu unterstützen.
|
| contacts | Beispiel:
[ "support@ti-federation.de"] Verwendung: Enthält Kontaktinformationen des Teilnehmers. Die Angabe von Kontaktdaten soll die Kommunikation zwischen den Teilnehmern unterstützen. Beispielsweise kann eine Frontend-Komponente diese Informationen nutzen, um Nutzern im Störungsfall geeignete Ansprechpartner anzuzeigen. |
| }} |
10.2.3 Beispiel für den Metadatenblock im Entity Statement eines sektoralen IDP
Request zum Abruf Entity Statement des sektoralen IDP
GET /.well-known/openid-federation
Host: gsi-ref.dev.gematik.solutions
Response:
Base64 encoded JWT
eyJhbGciOiJFUzI1NiIsInR5cCI6ImVudGl0eS1zdGF0ZW1lbnQrand0Iiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJpc3MiOiJodHRwczovL2dzaS1yZWYuZGV2LmdlbWF0aWsuc29sdXRpb25zIiwic3ViIjoiaHR0cHM6Ly9nc2ktcmVmLmRldi5nZW1hdGlrLnNvbHV0aW9ucyIsImlhdCI6MTc4MjI5NTY1MCwiZXhwIjoxNzgyMzAyODUwLCJqd2tzIjp7ImtleXMiOlt7ImFsZyI6IkVTMjU2IiwiY3J2IjoiUC0yNTYiLCJraWQiOiJwdWtfaWRwX3NpZyIsImt0eSI6IkVDIiwidXNlIjoic2lnIiwieCI6IkFidDJVeXJrNktoY3pleGxCT3dKT1RzX2VCMERzRmJjTnhheGEwWjB2ZDQiLCJ5IjoiWVpLQkp0T1VZRVd.....
Decodierter Header
{ "alg": "ES256",
"typ": "entity-statement+jwt",
"kid": "puk_idp_sig" }
Decodierte Payload
{ "iss": "https://gsi-ref.dev.gematik.solutions",
"sub": "https://gsi-ref.dev.gematik.solutions",
"iat": 1782300203,
"exp": 1782307403,
"jwks": {
"keys": [{"alg":"ES256", "crv":"P-256","kid":"puk_idp_sig", "kty":"EC", "use":"sig", "x":"Abt2Uyrk ...", "y":"YZKBJtOU ..." } ]
},
"authority_hints": ["https://app-ref.federationmaster.de"],
"metadata": {
"openid_provider": {
"issuer": "https://gsi-ref.dev.gematik.solutions",
"signed_jwks_uri": "https://gsi-ref.dev.gematik.solutions/jws.json",
"organization_name": "gematik sektoraler IDP",
"logo_uri": "https://raw.githubusercontent.com/gematik/zero-lab/main/static/images/GID_App_light_mode.png",
"authorization_endpoint": "https://gsi-ref.dev.gematik.solutions/auth",
"token_endpoint": "https://gsi-ref-mtls.dev.gematik.solutions/token",
"pushed_authorization_request_endpoint": "https://gsi-ref-mtls.dev.gematik.solutions/PAR_Auth",
"client_registration_types_supported": ["automatic"],
"subject_types_supported": ["pairwise"],
"response_types_supported": ["code"],
"scopes_supported": [
"urn:telematik:geschlecht",
"urn:telematik:alter",
"urn:telematik:family_name",
"urn:telematik:email",
"openid",
"urn:telematik:geburtsdatum",
"urn:telematik:given_name",
"urn:telematik:versicherter",
"urn:telematik:display_name"
],
"response_modes_supported": ["query"],
"grant_types_supported": ["authorization_code"],
"require_pushed_authorization_requests": true,
"token_endpoint_auth_methods_supported": ["self_signed_tls_client_auth"],
"id_token_signing_alg_values_supported": ["ES256"],
"id_token_encryption_alg_values_supported": ["ECDH-ES"],
"id_token_encryption_enc_values_supported": ["A256GCM"],
"user_type_supported": ["IP"],
"claims_supported": [
"birthdate",
"urn:telematik:claims:profession",
"urn:telematik:claims:family_name",
"urn:telematik:claims:id",
"urn:telematik:claims:organization",
"urn:telematik:claims:email",
"urn:telematik:claims:geschlecht",
"urn:telematik:claims:alter",
"urn:telematik:claims:display_name",
"urn:telematik:claims:given_name"
],
"claims_parameter_supported": true,
"ti_features_supported": {
"id_token_version_supported": [
"2.0.0",
"1.0.0"
]
}
"organization_name": "gematik sektoraler IDP",
"contacts": [
"support@idp4711.de",
"idm@gematik.de"
],
"keywords": ["product_type:Sektoraler IDP", "product_type_version:3.2.0-1"]
} } }
Decodierte Payload des von der signed_jwks_uri gelesenes JWT
{ "iss": "https://gsi-ref.dev.gematik.solutions",
"iat": 1782461173,
"keys": [{ "alg": "ES256", "crv": "P-256", "kid": "puk_fed_idp_token", "kty": "EC", "use": "sig","x": "_knMiY ... ",
"x5c": ["MIICvzCCAmWgAwIBAgIGPMFPYpg7MAoGCCqGSM49BAMCMIGEMQswCQYDVQQGEwJERTEfMB0GA1UECgwWZ2VtYXRpayBHbWJIIE5PVC1WQUxJRDEyMDAGA1UECwwpS29tcG9uZW50ZW4tQ0EgZGVyIFRlbGVtYXRpa2luZnJhc3RydWt0dXIxIDAeBgNVBAMMF0dFTS5LT01QLUNBNjEgVEVTVC1PTkxZMB4XDTI1MDMwNTAwMDAwMFoXDTMwMDMwNTIzNTk1OVowUDELMAkGA1UEBhMCREUxJjAkBgNVBAoMHWdlbWF0aWsgVEVTVC1PTkxZIC0gTk9ULVZBTElEMRkwFwYDVQQDDBBnc2kgdG9r..." ], "y": "MXTinuJv ..." } ] }
Tabelle 31 : Attribute des Metadatenblocks openid_provider der Entity Configuration im .well-known-Dokument eines sektoralen IDP in der TI-Föderation
| Name | Werte, Wertebereich und Erläuterung zum claim |
|---|---|
| metadata { | Der Block metadata enthält die in [OpenID Federation 1.1] definierten Metadaten. Für jeden von einem Teilnehmer unterstützten Entity-Typ enthält der Block einen entsprechenden Metadatenbereich. |
| openid_provider { | Der Block openid_provider enthält die Metadaten für einen "OpenID Connect OpenID Provider" [OpenID Federation for OpenID Connect 1.1]. |
| issuer | Beispiel:
https://gsi-ref.dev.gematik.solutions Zulässiger Wert: URL nach [RFC1738] Verwendung: Die issuer-URL ist die URL des OpenID Provider, welcher das ID-Token ausstellt [OpenID Connect Discovery 1.0]. In der TI-Föderation muss diese URL mit dem eindeutigen Identifier (iss) im Entity Statement übereinstimmen. |
| signed_jwks_uri | Beispiel:
https://gsi-ref.dev.gematik.solutions/jws.json Zulässiger Wert: URL nach [RFC1738] Verwendung: Die signed_jwks_uri zeigt auf den Ablageort für weitere Schlüssel welche der sektorale IDP verwendet. Im Beispiel ist der öffentliche Schlüssel und das Zertifikat hinterlegt, mit dem der sektorale IDP die von ihm ausgestellten ID Token signiert. |
| organization_name | Beispiel:
"gematik sektoraler IDP" Wertebereich: ^[à-üÀ-Üß\w \-\.\+\*\/]{1,128}$ Verwendung: Gemäß [OpenID Federation 1.1] enthält dieser Claim eine menschenlesbare Bezeichnung der verantwortlichen Organisation. |
| logo_uri | Beispiel:
https://idpfadi.dev.gematik.solutions/logo.png Zulässiger Wert: URL auf eine PNG-Datei Verwendung: Verweis auf das Logo des Teilnehmers. Das Logo kann beispielsweise in Benutzeroberflächen anderer Teilnehmer dargestellt werden. |
| authorization_endpoint | Beispiel:
https://gsi-ref.dev.gematik.solutions/auth Zulässiger Wert: URL nach [RFC1738] Verwendung: Die URL authorization_endpoint zeigt Teilnehmern an, wohin Authorization Request zu adressieren sind. Im Kontext der TI-Föderation spielt dieser Endpunkt eine untergeodnete Rolle, da die OpenID-Relying-Parties Pushed Authorization Requests an die sektoralen IDPs schicken. Für Pushed Authorization Requests stellen die sektoralen IDPs eigene Endpunkte bereit. |
| token_endpoint | Beispiel:
https://gsi-ref-mtls.dev.gematik.solutions/token Zulässiger Wert: URL nach [RFC1738] Verwendung: Die URL token_endpoint zeigt Teilnehmern an, welche URL aufgerufen werden mus um einen vom sektoralen IDP ausgestellten authorization Code einzureichen und einen ID-Token zu erhalten. Dieser Endpunkt wird bei den Abläufen in der TI-Föderation von der gleichen OpenID-Relying-Party aufgerufen, welche auch den Pushed Authorization Request gestellt hat. |
| pushed_authorization_request_endpoint | Beispiel:
https://gsi-ref-mtls.dev.gematik.solutions/PAR_Auth Zulässiger Wert: URL nach [RFC1738] Verwendung: Die URL pushed_authorization_request_endpoint zeigt Teilnehmern an, wohin Pushed Authorization Request zu adressieren sind. Dieser Endpunkt wird bei den Abläufen in der TI-Föderation von den als OpenID-Relying-Party in der TI-Föderation registrierten Fachdiensten aufgerufen um die Nutzerauthentifizierung durch einen sektoralen IDP zu beginnen. |
| client_registration_types_supported | Beispiel:
["automatic"] Zulässiger Wert: "automatic" Verwendung: Der claim gibt an, welche Typen der Client-Registrierung vom sektoralen IDP unterstützt werden [OpenID Federation for OpenID Connect 1.1]. Mögliche Werte für die Client Registrierung sind "automatic" und "ecplicit". Alle sektoralen IDPs, die als OpenID Provider in der TI-Föderation registriert sind, müssen "automatic" unterstützen. |
| subject_types_supported | Beispiel:
["pairwise"] Zulässiger Wert: "pairwise" Verwendung: Für die Ausprägung des "sub"-claim im ID-Token gibt es die Varianten "pairwise" und "public" [OpenID Connect Core 1.0]. "pairwise" signalisiert, dass der "sub"-claim User spezifisch und "public" ein für alle User identisches "sub" zu generieren ist. Die TI-Föderation fordert ein User spezifisches "sub" im ID-Token. Für die Bildung des "pairwise"-sub empfiehlt [OpenID Connect Core 1.0] u.a. die redirect_uri der anfragenden OpenID-Relying-Party. |
| response_types_supported | Beispiel:
["code"] Zulässiger Wert: "code" Verwendung: Der response_type gibt an, welcher Flow unterstützt wird [The OAuth 2.0 Authorization Framework]. Dabei steht "code" für Authorization Code Grant und "token" für Implicit Grant. In der TI-Föderation ist ausschließlich "code" erlaubt. |
| scopes_supported | Beispiel:["urn:telematik:geschlecht", "urn:telematik:alter", "urn:telematik:family_name", "urn:telematik:email", "openid", "urn:telematik:geburtsdatum", "urn:telematik:given_name", "urn:telematik:versicherter", "urn:telematik:display_name"]
Erforderliche Werte: "openid" und weitere spezifizierte Scopes Verwendung: Der claim scopes_supported gibt an, welche Information zu einem Nutzer ein OpenID Provider anfragenden OpenID-Relying-Parties übermitteln kann. In der TI-Föderation müssen alle sektoralen IDPs mindesten den scope openid und die in der Spezifikation festgelegten scopes unterstützen. |
| response_modes_supported | Beispiel:
["query"] Zulässiger Wert: "query" Verwendung: Response mode gibt an, wie die Response eines Authorization Server auf einen Authorization Request aussehen soll [OAuth 2.0 Multiple Response Type Encoding Practices]. Da für die TI-Föderation ausschließlich Authorization-Code Flow zulässig ist, muss eine sektoraler IDP mindestens den response mode "query" unterstützen. |
| grant_types_supported | Beispiel:
["authorization_code"] Zulässiger Wert: "authorization_code" Verwendung: Alle sektoralen IDPs der TI-Föderation müssen mindesten den Authorization Code Flow ("authorization_code") unterstützen. |
| require_pushed_authorization_requests | Beispiel:
true Zulässiger Wert: true Verwendung: Gibt an, dass die OpenID-Relying-Party Pushed Authorization Requests (PAR) verwenden muss. In der TI-Föderation ist die Verwendung von PAR verpflichtend. |
| token_endpoint_auth_methods_supported | Beispiel:
["self_signed_tls_client_auth"] Erforderlicher Wert: "self_signed_tls_client_auth" Verwendung: Der claim token_endpoint_auth_methods_supported, welche Methoden der Client-Authentifizierung durch den OpenID Provider unterstützt werden müssen. Alle sektoralen IDP der TI-Föderation müssen mTLS unterstützen (self_signed_tls_client_auth). In diesem Fall muss die OpenID-Relying-Party dem OpenID Provider eine Zertifikat zum TLS-Ausbau bereitstellen. Das Zertifikat ist unter der signed_jwks_uri der OpenID-Relying-Party durch die sektoralen IDPs abrufbar. |
| claims_parameter_supported | Beispiel:
true Wertebereich: true/false Verwendung: Das Attribut claims_parameter_supported signalisiert einer OpenID-Relying-Party, ob im Authorization Request der Parameter "claims" für die Anfrage nach bestimmten Informationen zum Nutzer akzeptiert wird [OpenID Connect Discovery 1.0]. |
| id_token_signing_alg_values_supported | Beispiel:
["ES256"] Erforderlicher Wert: "ES256" Verwendung: Das Attribut id_token_signing_alg_values_supported zeigt an, welche Algorithmen zur Signatur der ID-Token der sektorale IDP unterstützt [OpenID Connect Discovery 1.0]. Für die TI-Föderation muss mindestens ES256 unterstützt werden. |
| id_token_encryption_alg_values_supported | Beispiel:
["ECDH-ES"] Erforderlicher Wert: "ECDH-ES" Verwendung: Das Attribut id_token_encryption_alg_values_supported zeigt an, welche Algorithmen zur Verschlüsselung der ID-Token der sektorale IDP unterstützt [OpenID Connect Discovery 1.0]. Für die TI-Föderation muss mindestens ECDH-ES unterstützt werden. |
| id_token_encryption_enc_values_supported | Beispiel:
["A256GCM"] Erforderlicher Wert: "A256GCM" Verwendung: Das Attribut id_token_encryption_enc_values_supported zeigt an, welche Algorithmen zur Verschlüsselung der ID-Token der sektorale IDP unterstützt [OpenID Connect Discovery 1.0]. Für die TI-Föderation muss mindestens A256GCM unterstützt werden. |
| user_type_supported | Beispiel:
["IP"] Zulässiger Wert: "IP" (Insured Person) Verwendung: Das Attribut user_type_supported ist ein gematik-custom Attribut und zeigt an, für welche Kategorie Nutzer (HCI-Health Care Institution, HP-Health Professional, and IP-Insured Person) der sektorale IDP ID-Token ausstellt. Die derzeit in der TI-Föderation registrierten sektorelan IDP unterstützen ausschließlich die Ausstellung von ID-Token für versicherte Persinen ("IP"). |
| claims_supported | Beispiel:
["birthdate", "urn:telematik:claims:profession", "urn:telematik:claims:family_name", "urn:telematik:claims:id", "urn:telematik:claims:organization", "urn:telematik:claims:email", "urn:telematik:claims:geschlecht", "urn:telematik:claims:alter", "urn:telematik:claims:display_name", "urn:telematik:claims:given_name"] Erforderliche Werte: Claims nach Spezifikation Verwendung: Das Attribut claims_supported gibt an, welche Information zu einem Nutzer ein OpenID Provider anfragenden OpenID-Relying-Parties übermitteln kann. In der TI-Föderation müssen alle sektoralen IDPs mindesten die in der Spezifikation festgelegten claims unterstützen. |
| ti_features_supported { | Gematik-spezifischer Metadatenblock zur Kennzeichnung unterstützter TI-Erweiterungen und Übergangsmechanismen. Der Block dient insbesondere der Einführung nicht abwärtskompatibler Änderungen. Während Übergangsphasen können mehrere Versionen parallel unterstützt werden. |
| id_token_version_supported | Beispiel:
[ "2.0.0", "1.0.0" ] Zulässige Werte in Liste: "1.0.0", "2.0.0" Verwendung: Gibt die vom Teilnehmer unterstützten Versionen des ID-Token-Formats an. Teilnehmer der TI-Föderation verwenden diesen Claim, um ihre Unterstützung für alte und neue ID-Token-Versionen während einer Migrationsphase zu signalisieren. |
| } | |
| keywords | Beispiel:
["product_type:gematik PoC Fachdienst", "product_type_version:2.5.0"] Erforderliche Werte: "product_type_version:<von der gematik zugelassene Produkttyp-Version>", "product_type:<von der gematik zugelassener Produkttyp>" Verwendung: Der Claim ermöglicht die Definition von Schlüsselwörtern für Monitoring- und Auswertungszwecke innerhalb der TI-Föderation. |
| contacts | Beispiel:
[ "support@idp4711.de", "idm@gematik.de"] Verwendung: Enthält Kontaktinformationen des Teilnehmers. Die Angaben unterstützen die Kommunikation zwischen Teilnehmern und können beispielsweise zur Anzeige von Supportinformationen in Benutzeroberflächen genutzt werden. |
| } } |
10.2.4 Beispiel für den Metadatenblock im Entity Statement einer OpenID-Relying-Party
Request zum Abruf Entity Statement
GET /.well-known/openid-federation
Host: idpfadi.dev.gematik.solutions
Response:
Base64 encoded JWT
eyJhbGciOiJFUzI1NiIsInR5cCI6ImVudGl0eS1zdGF0ZW1lbnQrand0Iiwia2lkIjoicHVrX2ZkX3NpZyJ9.eyJpc3MiOiJodHRwczovL2lkcGZhZGkuZGV2LmdlbWF0aWsuc29sdXRpb25zIiwic3ViIjoiaHR0cHM6Ly9pZHBmYWRpLmRldi5nZW1hdGlrLnNvbHV0aW9ucyIsImlhdCI6MTc4MjI5MjQ0NCwiZXhwIjoxNzgyMjk5NjQ0LCJqd2tzIjp7ImtleXMiOlt7ImFsZyI6IkVTMjU2IiwiY3J2IjoiUC0yNTYiLCJraWQiOiJwdWtfZmRfc2lnIiwia3R5IjoiRUMiLCJ1c2UiOiJzaWciLCJ4IjoiOWJKczI3WUFmbE1VV0s1bnh1aUY2WEFHMEphenV2d1JpMUVwRkswWEtpayIsInkiOiJQOGx6TlZST2dUdXdiRHFzZDhyVDFBSTN6ZXo5NEhCc1 ...
Decodierter Header
{ "alg": "ES256",
"typ": "entity-statement+jwt",
"kid": "puk_fd_sig" }
Decodierte Payload
{ "iss": "https://idpfadi.dev.gematik.solutions",
"sub": "https://idpfadi.dev.gematik.solutions",
"iat": 1782292444,
"exp": 1782299644,
"jwks": {
"keys":[ {"alg": "ES256", "crv": "P-256", "kid": "puk_fd_sig", "kty": "EC", "use": "sig", "x": "9bJs27YA ...", "y": "P8lzNVRO ..." } ]
},
"authority_hints": ["https://app-test.federationmaster.de"],
"metadata": {
"openid_relying_party": {
"signed_jwks_uri": "https://idpfadi.dev.gematik.solutions/jws.json",
"organization_name": "Fachdienst007 des FedIdp POCs",
"client_name": "Fachdienst007",
"logo_uri": "https://idpfadi.dev.gematik.solutions/noLogoYet",
"redirect_uris": [
"https://idpfadi.dev.gematik.solutions/auth",
"https://Fachdienst007.de/client",
"https://redirect.testsuite.gsi",
"https://gries.dev.gematik.solutions/callback"
],
"response_types": ["code"],
"client_registration_types": ["automatic"],
"grant_types": ["authorization_code"],
"require_pushed_authorization_requests": true,
"token_endpoint_auth_method": "self_signed_tls_client_auth",
"default_acr_values": ["gematik-ehealth-loa-high"],
"id_token_signed_response_alg": "ES256",
"id_token_encrypted_response_alg": "ECDH-ES",
"id_token_encrypted_response_enc": "A256GCM",
"scope": "urn:telematik:display_name urn:telematik:versicherter openid",
"ti_features_supported": {
"id_token_version_supported": [
"1.0.0",
"2.0.0"
]
}}}}
Decodierte Payload des von der signed_jwks_uri gelesenes JWT
{ "iss": "https://idpfadi.dev.gematik.solutions",
"iat": 1782461774,
"keys": [
{"alg": "ES256", "crv": "P-256", "kid": "puk_tls_sig", "kty": "EC", "use": "sig", "x": "5GqpK6 ...",
"x5c": [ "MIICOTCCAd+gAwIBAgIUBfjT7ZWKbcyFNmZYPNkxQvtiIOMwCgYIKoZIzj0EAwIwfzELMAkGA1UEBhMCREUxDzANBgNVBAgMBkJlcmxpbjEPMA0GA1UEBwwGQmVybGluMRowGAYDVQQKDBFnZW1hdGlrIE5PVC1WQUxJRDEPMA0GA1UECwwGUFQgSURNMSEwHwYDVQQDDBhmYWNoZGllbnN0VGxzQyBURVNULU9OTFkwHhcNMjQwMTE2MDg0OTU2WhcNMjgwNDI5MDg0OTU2WjB/MQswCQYDVQQGEwJERTEPMA0GA1UECAwGQmVybGluMQ8wDQYDVQQHDAZCZX..." ], "y": "t0QL0 ..." },
{"alg": "ES256","crv": "P-256","kid": "puk_fd_enc","kty": "EC","use": "enc","x": "NQLaWb ...", "y": "_USgmq ..." }
] }
Tabelle 32 : Attribute des Metadatenblocks openid_relying_party der Entity Configuration im .well-known-Dokument eines Fachdienstes als OpenID-Relying-Party in der TI-Föderation
| Name | Werte, Wertebereich und Erläuterung zum claim |
|---|---|
| metadata { | Der Block metadata enthält die in [OpenID Federation 1.1] definierten Metadaten. Für jeden von einem Teilnehmer unterstützten Entity-Typ enthält der Block einen entsprechenden Metadatenbereich. |
| openid_relying_party { | Der Block openid_relying_party enthält die Metadaten einer OpenID-Relying-Party gemäß [OpenID Federation for OpenID Connect 1.1 ]. |
| signed_jwks_uri | Beispiel:
https://idpfadi.dev.gematik.solutions/jwks.json
Zulässiger Wert: URL gemäß [RFC 1738] Verwendung: Verweist auf den Ablageort weiterer von der OpenID-Relying-Party verwendeter öffentlicher Schlüssel. Im Regelfall sind dort die Zertifikate für die mTLS-Kommunikation sowie die öffentlichen Schlüssel zur Verschlüsselung von ID-Token hinterlegt. |
| organization_name | Beispiel:
"Fachdienst007 des FedIdp POCs" Wertebereich: ^[à-üÀ-Üß\w \-\.\+\*\/]{1,128}$ Verwendung: Gemäß [OpenID Federation 1.1] enthält dieser Claim eine menschenlesbare Bezeichnung der verantwortlichen Organisation. |
| client_name | Beispiel:
"Fachdienst007" Wertebereich: ^[à-üÀ-Üß\w\ \-\.\+\*\/]{1,128}$ Verwendung: Gemäß [OpenID Connect Dynamic Client Registration 1.0] enthält dieser Claim den menschenlesbaren Namen des Clients beziehungsweise des Fachdienstes. |
| logo_uri | Beispiel:
https://idpfadi.dev.gematik.solutions/logo.png Zulässiger Wert: URL auf eine PNG-Datei Verwendung: Verweis auf das Logo des Teilnehmers. Das Logo kann beispielsweise in Benutzeroberflächen anderer Teilnehmer dargestellt werden. |
| redirect_uris | Beispiel: ["https://idpfadi.dev.gematik.solutions/auth","https://Fachdienst007.de/client","https://redirect.testsuite.gsi","https://gries.dev.gematik.solutions/callback"]
Zulässiger Werte: Alle bei der Registrierung der OpenID-Relying-Party angegebenen Redirect-URIs. Verwendung: Ein Fachdienst muss alle Redirect-URIs angeben, an die ein Authorization Code übermittelt werden darf. Die im Entity Statement enthaltenen Werte dürfen nicht von den bei der Registrierung bestätigten Werten abweichen. Die zulässigen Werte werden durch die registrierende Superior Entity im jeweiligen Subordinate Statement bestätigt. |
| response_types | Beispiel:
["code"] Zulässiger Wert: "code" Verwendung: Gibt die unterstützten OAuth-Response-Typen an. In der TI-Föderation ist ausschließlich der Authorization Code Flow zulässig. |
| client_registration_types | Beispiel:
["automatic"] Zulässiger Wert: "automatic" Verwendung: Gibt die unterstützte Art der Client-Registrierung an. Alle OpenID-Relying-Partys der TI-Föderation müssen die automatische Registrierung unterstützen. |
| grant_types | Beispiel:
["authorization_code"] Zulässiger Wert: "authorization_code" Verwendung: Alle als OpenID-Relying-Party in der TI-Föderation registrierten Fachdienste müssen gegenüber sektoralen IDPs den Authorization Code Grant verwenden. |
| require_pushed_authorization_requests | Beispiel:
true Zulässiger Wert: true Verwendung: Gibt an, dass die OpenID-Relying-Party Pushed Authorization Requests (PAR) verwenden muss. In der TI-Föderation ist die Verwendung von PAR verpflichtend. |
| token_endpoint_auth_methods_supported | Beispiel:
["self_signed_tls_client_auth"] Erforderlicher Wert: "self_signed_tls_client_auth" Verwendung: Definiert die unterstützten Verfahren zur Client-Authentisierung am Token-Endpunkt. Alle sektoralen IDPs der TI-Föderation müssen mTLS unterstützen. Die hierfür erforderlichen Zertifikate werden über die signed_jwks_uri bereitgestellt.
|
| default_acr_values | Beispiel:
["gematik-ehealth-loa-high"] Zulässiger Wert: "gematik-ehealth-loa-high" Verwendung: Definiert das erforderliche Vertrauensniveau der Nutzerauthentifizierung. Für TI-Anwendungen ist das Vertrauensniveau gematik-ehealth-loa-high zu verwenden.
|
| id_token_signed_response_alg | Beispiel:
["ES256"] Erforderlicher Wert: "ES256" Verwendung: Gibt den von der OpenID-Relying-Party geforderten Signaturalgorithmus für ID-Token an. In der TI-Föderation ist ausschließlich ES256 zulässig. |
| id_token_encryption_response_alg | Beispiel:
["ECDH-ES"] Erforderlicher Wert: "ECDH-ES" Verwendung: Gibt den für die Verschlüsselung von ID-Token verwendeten Schlüsselmanagement-Algorithmus an. In der TI-Föderation ist ausschließlich ECDH-ES zulässig. |
| id_token_encrypted_response_enc | Beispiel:
["A256GCM"] Erforderlicher Wert: "A256GCM" Verwendung: Gibt den für die Inhaltsverschlüsselung von ID-Token verwendeten Algorithmus an. In der TI-Föderation ist ausschließlich A256GCM zulässig. |
| scope | Beispiel:
"urn:telematik:display_name urn:telematik:versicherter" Wertebereich: "openid" und weitere spezifizierte Scopes Verwendung: Ein Fachdienst als OpenID-Relying-Party der TI-Föderation muss alle für seine Anwendungsfälle benötigten Scopes bei der Registrierung angeben. Die im Entity Statement veröffentlichten Werte dürfen nicht von den registrierten Werten abweichen. Die zulässigen Werte werden im jeweiligen Subordinate Statement bestätigt. |
| ti_features_supported { | Gematik-spezifischer Metadatenblock zur Kennzeichnung unterstützter TI-Erweiterungen und Übergangsmechanismen. Der Block dient insbesondere der Einführung nicht abwärtskompatibler Änderungen. Während Übergangsphasen können mehrere Versionen parallel unterstützt werden. |
| id_token_version_supported | Beispiel:
[ "2.0.0", "1.0.0" ] Zulässige Werte in Liste: "1.0.0", "2.0.0" Verwendung: Gibt die vom Teilnehmer unterstützten Versionen des ID-Token-Formats an. Teilnehmer der TI-Föderation verwenden diesen Claim, um ihre Unterstützung für alte und neue ID-Token-Versionen während einer Migrationsphase zu signalisieren. |
| } | |
| keywords | Beispiel:
["product_type:gematik PoC Fachdienst", "product_type_version:2.5.0"] Erforderliche Werte: "product_type_version:<von der gematik zugelassene Produkttyp-Version>", "product_type:<von der gematik zugelassener Produkttyp>" Verwendung: Der Claim ermöglicht die Definition von Schlüsselwörtern für Monitoring- und Auswertungszwecke innerhalb der TI-Föderation. |
| contacts | Beispiel:
[ "support@idp4711.de", "idm@gematik.de"] Verwendung: Enthält Kontaktinformationen des Teilnehmers. Die Angaben unterstützen die Kommunikation zwischen Teilnehmern und können beispielsweise zur Anzeige von Supportinformationen in Benutzeroberflächen genutzt werden. |
| } } |
10.2.5 Beispiel für das Entity Statement einer Protected Resource
Decodierte Payload
{{ "iss": "https://popp-ru",
"sub": "https://popp-ru",
"iat": 1772008100,
"exp": 1772094500,
"jwks": {
"keys": [{"kty":"EC","crv":"P-256","x":"KyMGY6R4 ...", "y":"MXkEvTog ...", "kid":"cVu2V_js ...", "alg":"ES256", "use":"sig"}]
},
"authority_hints": ["https://app-ref.federationmaster.de"],
"metadata": {
"oauth_resource": {
"resource": "https://popp-ru",
"signed_jwks_uri": "https://popp-ru/.well-known/signed-jwks"
"organization_name": "PoPP-Service Hersteller"
}
},
}
Tabelle 33 : Attribute des Metadatenblocks oauth_resource der Entity Configuration im .well-known-Dokument eines Fachdienstes als Protected Resource in der TI-Föderation
| Name | Werte, Wertebereich und Erläuterung zum claim |
|---|---|
| metadata { | Der Block metadata enthält die in [OpenID Federation 1.1] definierten Metadaten. Für jeden von einem Teilnehmer unterstützten Entity-Typ enthält der Block einen entsprechenden Metadatenbereich. |
| oauth_resource { | Der Block oauth_resource enthält die Metadaten einer geschützten Ressource (Protected Resource). Neben den allgemeinen Metadaten gemäß [OpenID Federation 1.1] können zusätzliche Attribute gemäß [OAuth 2.0 Protected Resource Metadata] enthalten sein. |
| resource | Beispiel:
https://popp-ru Zulässiger Wert: Der Wert muss dem Entity Identifier ( iss) der Protected Resource entsprechen.
Verwendung: Das Attribut resource ist der eindeutige Identifikator der Protected Resource in Form einer URL gemäß [OAuth 2.0 Protected Resource Metadata]. Innerhalb der TI-Föderation entspricht der Wert dem Entity Identifier iss.
|
| signed_jwks_uri | Beispiel:
https://popp-ru/.well-known/signed-jwks Zulässiger Wert: URL nach [RFC1738] Verwendung: Verweist auf den Ablageort weiterer öffentlicher Schlüssel der Protected Resource. Beispielsweise kann ein PoPP-Service hier den öffentlichen Schlüssel veröffentlichen, mit dem die von ihm ausgestellten PoPP-Token validiert werden können. |
| organization_name | Beispiel:
"PoPP-Service Hersteller" Wertebereich: ^[à-üÀ-Üß\w \-\.\+\*\/]{1,128}$ Verwendung: Gemäß [OpenID Federation 1.1] enthält dieser Claim eine menschenlesbare Bezeichnung der verantwortlichen Organisation. |
| keywords | Beispiel:
["product_type:gematik PoC Fachdienst", "product_type_version:2.5.0"] Erforderliche Werte: "product_type_version:<von der gematik zugelassene Produkttyp-Version>", "product_type:<von der gematik zugelassener Produkttyp>" Verwendung: Der Claim ermöglicht die Definition von Schlüsselwörtern für Monitoring- und Auswertungszwecke innerhalb der TI-Föderation. |
| } } |
10.2.6 Beispiel eines Subordinate Statement einer OpenID-Relying-Party
Request zum Abruf des Subordinate Statement zu einer OpenID-Relying-Party
GET /federation/fetch?iss=https://app-test.federationmaster.de &sub=https://idpfadi.dev.gematik.solutions
Host: app-test.federationmaster.de
Response:
Base64 encoded JWT
eyJ0eXAiOiJlbnRpdHktc3RhdGVtZW50K2p3dCIsImtpZCI6InB1a19mZWRtYXN0ZXJfc2lnIiwiYWxnIjoiRVMyNTYifQ.eyJpc3MiOiJodHRwczovL2FwcC10ZXN0LmZlZGVyYXRpb25tYXN0ZXIuZGUiLCJzdWIiOiJodHRwczovL2lkcGZhZGkuZGV2LmdlbWF0aWsuc29sdXRpb25zIiwiaWF0IjoxNzgyMzcxNTcyLCJleHAiOjE3ODI0NTc5NzIsImp3a3MiOnsia2V5cyI6W3sia3R5IjoiRUMiLCJraWQiOiJwdWtfZmRfc2lnIiwiY3J2IjoiUC0yNTYiLCJ4IjoiOWJKczI3WUFmbE1VV0s1bnh1aUY2WEFHMEphenV2d1JpMUVwRkswWEtpayIsInkiOiJQOGx6TlZST2dUdXdiRHFzZDhyVDFBSTN6ZXo5NEhCc1REcE92YWpQMHJZIiwidXNlIjoic2lnIiwiYWxnIjoiRVMyNTYifV19LCJtZXRhZGF0YSI6eyJvcGVuaWRfcmVse ...
Decodierter Header
{ "typ": "entity-statement+jwt",
"kid": "puk_fedmaster_sig",
"alg": "ES256" }
Decodierter Payload
{ "iss": "https://app-test.federationmaster.de",
"sub": "https://idpfadi.dev.gematik.solutions",
"iat": 1782371572,
"exp": 1782457972,
"jwks": {
"keys": [{"kty":"EC", "kid":"puk_fd_sig", "crv": "P-256", "x": "9bJs27Y ...k", "y": "P8lzNVR ...", "use":"sig", "alg":"ES256"} ]
},
"metadata": {
"openid_relying_party": {
"scope": "urn:telematik:versicherter openid urn:telematik:display_name",
"claims": [],
"redirect_uris": [
"https://Fachdienst007.de/client",
"https://gries.dev.gematik.solutions/callback",
"https://idpfadi.dev.gematik.solutions/auth",
"https://redirect.testsuite.gsi"
] } } }
Tabelle 34 : Attribute des Subordinate Statements zu einem Fachdienstes als OpenID-Relying-Party in der TI-Föderation
| Name | Werte, Wertebereich und Erläuterung zum claim |
|---|---|
| iss | Beispiel:
https://app-test.federationmaster.de Zulässiger Wert: URL nach [RFC1738] Verwendung: Eindeutiger Identifier der Superior Entity, die das Subordinate Statement ausgestellt hat. |
| sub | Beispiel:
https://idpfadi.dev.gematik.solutions Zulässiger Wert: URL nach [RFC1738] Verwendung: Eindeutiger Identifier der Leaf Entity, auf die sich das Subordinate Statement bezieht. |
| iat | Beispiel:
1782371572 (25.06.2026 09:12:52 UTC) Zulässiger Wert: Zeitwert gemäß [RFC7519] (Abschnitt 2) (Sekunden seit dem 01.01.1970 UTC) Verwendung: Zeitpunkt der Ausstellung des Subordinate Statements. |
| exp | Beispiel:
1782457972 (26.06.2026 9:12:52) Zulässiger Wert: Zeitwert gemäß [RFC7519] (Abschnitt 2) (Sekunden seit dem 01.01.1970 UTC) Verwendung: Zeitpunkt des Ablaufs der Gültigkeit des Subordinate Statements. |
| jwks | Beispiel:
{ "keys": [{"kty":"EC", "kid":"puk_fd_sig", "crv": "P-256", "x": "9bJs27Y ...k", "y": "P8lzNVR ...", "use":"sig", "alg":"ES256"} ] } Zulässiger Wert: JWKS-Objekt Verwendung: Der Claim jwks enthält die öffentlichen Federation-Entity-Signing-Keys der Entität, auf die sich das Subordinate Statement bezieht. Mit diesen Schlüsseln kann ein Teilnehmer die Signatur des zugehörigen Entity Statements validieren.
|
| metadata { | Der Block metadata enthält die in [OpenID Federation 1.1] definierten Metadaten. Für jeden von der Entität unterstützten Entity-Typ enthält der Block einen entsprechenden Metadatenbereich. |
| openid_relying_party { | Der Block openid_relying_party enthält die Metadaten einer OpenID-Relying-Party gemäß [OpenID Federation for OpenID Connect 1.1].
|
| scope | Beispiel:
"urn:telematik:display_name openid urn:telematik:versicherter" Wertebereich: Alle scopes, die bei der Registrierung der OpenID-Relying-Party an der Superior Entity hinterlegt wurden. Verwendung: Aufgrund regulatorischer Anforderungen dürfen Fachdienste nur die für ihre fachlichen Anwendungsfälle erforderlichen Informationen anfordern. Die im Rahmen der Registrierung genehmigten Scopes werden im Subordinate Statement veröffentlicht. Ein sektoraler IDP kann die in einem Pushed Authorization Request enthaltenen Scopes gegen diese Angaben prüfen und bei Abweichungen die Anfrage ablehnen. |
| claims | Beispiel:
[] Wertebereich: Alle claims, die bei der Registrierung der OpenID-Relying-Party an der Superior Entity hinterlegt wurden. Verwendung: Die für einen Fachdienst zulässigen Claims werden im Rahmen der Registrierung festgelegt und im Subordinate Statement veröffentlicht. Ein sektoraler IDP kann die angeforderten Claims gegen diese Vorgaben prüfen und bei Abweichungen die Anfrage ablehnen. |
| redirect_uris | Beispiel:["https://idpfadi.dev.gematik.solutions/auth","https://Fachdienst007.de/client","https://redirect.testsuite.gsi","https://gries.dev.gematik.solutions/callback"]
Wertebereich: Alle redirect_uris, die bei der Registrierung der OpenID-Relying-Party an der Superior Entity hinterlegt wurden. Verwendung: Ein Fachdienst muss bei der Registrierung sämtliche Redirect-URIs angeben, an die ein vom sektoralen IDP ausgestellter Authorization Code übermittelt werden darf. Die registrierten Redirect-URIs werden im Subordinate Statement veröffentlicht. Ein sektoraler IDP kann die im Pushed Authorization Request verwendete Redirect-URI gegen diese Angaben prüfen und bei Abweichungen die Anfrage ablehnen. |
| } } |
10.3 Teilnehmer Validierung in der Beispiel TI-Föderation
Vor der Durchführung einer Nutzerauthentifizierung muss ein Fachdienst in seiner Rolle als OpenID-Relying-Party der TI-Föderation die Vertrauensbeziehung zum anfragten sektoralen IDP als OpenID Provider der TI-Föderation validieren.
Ebenso muss der sektorale IDP als OpenID Provider die Vertrauensbeziehung zum Fachdienst validieren.
Abbildung 20 : Aufbau und Validierung der Vertrauensbeziehung zwischen einer OpenID-Relying-Party und einem OpenID Provider
| 1 | Der Fachdienst als OpenID-Relying-Party in der TI-Föderation lädt und prüft das Entity Statement des sektoralen IDP. |
| 2 | Der Fachdienst als OpenID-Relying-Party in der TI-Föderation lädt und prüft das Entity Statement des Federation Master als Trust Anchor der TI-Föderation. |
| 3 | Der Fachdienst als OpenID-Relying-Party in der TI-Föderation lädt und prüft das Subordinate Statement des Federation Master zum sektoralen IDP. |
| 4 | Der sektoralen IDP als OpenID Provider in der TI-Föderation lädt und prüft das Entity Statement des Fachdienst als OpenID-Relying-Party in der TI-Föderation. |
| 5 | Der sektoralen IDP als OpenID Provider in der TI-Föderation lädt und prüft das Entity Statement des Federation Master als Trust Anchor der TI-Föderation. |
| 6 | Der sektoralen IDP als OpenID Provider in der TI-Föderation lädt und prüft das Subordinate Statement des Federation Master zum Fachdienst als OpenID-Relying-Party. |
Die Prüfung der Entity Statements und Subordinate Statements erfolgt nach den Vorgaben [OpenID Federation 1.1] (Entity Statement Validation).
Sind alle Schritte erfolgreich, so ist die Vertrauensbeziehung zwischen Fachdienst als Relying Party und sektoralen IDP bestätigt.
10.3.1 OpenID-Relying-Party prüft das Entity Statement des OpenID Provider
Der Identifikator (iss) des sektoralen IDP in seiner Rolle als OpenID Provider der TI-Föderation wird der OpenID-Relying-Party durch den Fachdienst-Client im Rahmen der Authentifizierungsanfrage übermittelt.
Die OpenID-Relying-Party lädt anschließend die Entity Configuration des sektoralen IDP über den Endpunkt /.well-known/openid-federation und validiert das enthaltene Entity Statement gemäß den in [OpenID Federation 1.1] definierten Validierungsvorschriften.
Dabei werden die für die Validierung eines Entity Statements erforderlichen Prüfschritte durchgeführt.
Im dargestellten Beispiel sind die folgenden Claims nicht enthalten
- trust_anchor_hints
- metadata_policy
- metadata_policy_crit
- constraints
- trust_marks
- trust_mark_issuers
- trust_mark_owners
- source_endpoint
Die in [OpenID Federation 1.1] für diese Claims definierten Prüfschritte entfallen daher.
Ebenso sind die folgenden Header-Parameter im Beispiel nicht enthalten
- trust_chain
- peer_trust_chain
Die hierfür vorgesehenen Prüfschritte entfallen ebenfalls.
Tabelle 35 : Prüfschritte zur Validierung des Entity Statements eines OpenID Providers
| Schritt | |
|---|---|
| 1 | Handelt es sich bei dem Entity Statement um ein signiertes JWT? |
| 2 | Ist der Header-Parameter typ des Entity Statements auf den Wert entity-statement+jwt gesetzt? |
| 3 | Ist der im Header-Parameter alg angegebene Algorithmus ein zulässiger Signaturalgorithmus und ungleich none?
|
| 4 | Entspricht der Entity Identifier im Claim iss dem Wert des Claims sub?
|
| 5 | Entspricht der Entity Identifier im Claim iss dem zulässigen Format und Wertebereich?
|
| 6 | Liegt der aktuelle Zeitpunkt nach dem im Claim iat (Issued At) angegebenen Ausstellungszeitpunkt?
|
| 7 | Liegt der aktuelle Zeitpunkt vor dem im Claim exp (Expiration Time) angegebenen Ablaufzeitpunkt?
|
| 8 | Ist im Claim jwks ein gültiges JWK Set gemäß [RFC7517] enthalten?
|
| 9 | Stimmt der im Header-Parameter kidangegebene Schlüsselbezeichner mit einem kid des im Claim jwksenthaltenen JWK Sets überein?
|
| 10 | Kann die Signatur des Entity Statements mit dem zum angegebenen kid gehörenden öffentlichen Schlüssel erfolgreich validiert werden?
|
| 11 | Ist der Claim authority_hintsvorhanden?
Der Claim wird im weiteren Verlauf zur Ermittlung und Validierung der Superior Entities benötigt. |
| 12 | Ist der Claim metadata vorhanden und enthält dieser den Metadatenblock openid_provider?
|
10.3.2 OpenID-Relying-Party prüft das Entity Statement des Trust Anchor
Den Identifikator (iss) des Federation Masters extrahiert die OpenID-Relying-Party aus dem Claim authority_hints des Entity Statements des sektoralen IDP.
Anschließend lädt die OpenID-Relying-Party die Entity Configuration des Federation Masters als Trust Anchor über den Endpunkt /.well-known/openid-federation und validiert das enthaltene Entity Statement gemäß den Vorgaben aus [OpenID Federation 1.1].
Dabei werden die für die Validierung eines Entity Statements erforderlichen Prüfschritte durchgeführt.
Im dargestellten Beispiel sind die folgenden Claims nicht enthalten:
- trust_anchor_hints
- metadata_policy
- metadata_policy_crit
- constraints
- trust_marks
- trust_mark_issuers
- trust_mark_owners
- source_endpoint
Die für diese Claims vorgesehenen Prüfschritte entfallen daher.
Ebenso sind die folgenden Header-Parameter nicht enthalten:
- trust_chain
- peer_trust_chain
Die hierfür vorgesehenen Prüfschritte entfallen ebenfalls.
Tabelle 36 : Prüfschritte zur Validierung des Entity Statements des Federation Masters als Trust Anchor
| Schritt | |
|---|---|
| 1 | Handelt es sich bei dem Entity Statement um ein signiertes JWT? |
| 2 | Ist der Header-Parameter typ des Entity Statements auf den Wert entity-statement+jwt gesetzt? |
| 3 | Ist der im Header-Parameter alg angegebene Algorithmus ein zulässiger Signaturalgorithmus und ungleich none?
|
| 4 | Entspricht der Entity Identifier im Claim iss dem Wert des Claims sub?
|
| 5 | Entspricht der Entity Identifier im Claim iss dem zulässigen Format und Wertebereich?
|
| 6 | Liegt der aktuelle Zeitpunkt nach dem im Claim iat (Issued At) angegebenen Ausstellungszeitpunkt?
|
| 7 | Liegt der aktuelle Zeitpunkt vor dem im Claim exp (Expiration Time) angegebenen Ablaufzeitpunkt?
|
| 8 | Ist im Claim jwks ein gültiges JWK Set gemäß [RFC7517] enthalten?
|
| 9 | Stimmt der im Header-Parameter kidangegebene Schlüsselbezeichner mit einem kid des im Claim jwksenthaltenen JWK Sets überein?
|
| 10 | Stimmt der im Entity Statement des Federation Masters veröffentlichte öffentliche Schlüssel mit dem öffentlichen Schlüssel überein, der dem Fachdienst im Rahmen seiner Registrierung in der TI-Föderation bereitgestellt wurde? |
| 11 | Kann die Signatur des Entity Statements mithilfe des zum angegebenen kid gehörenden öffentlichen Schlüssels erfolgreich validiert werden?
|
| 12 | Ist der Claim authority_hints nicht vorhanden?
Als Trust Anchor darf der Federation Master keine Superior Entity besitzen. Daher darf kein Claim authority_hints enthalten sein.?
|
| 13 | Ist der Claim metadata vorhanden und enthält dieser den Metadatenblock federation_entity?
|
Schritt 10 ist die Besonderheit bei der Validierung des Trust Anchors. Während bei normalen Entitäten die Vertrauenskette bis zum Trust Anchor aufgebaut wird, wird beim Trust Anchor zusätzlich geprüft, dass der veröffentlichte Signaturschlüssel demjenigen Schlüssel entspricht, der dem Teilnehmer während des Registrierungsprozesses als Vertrauensanker bekannt gemacht wurde. Dadurch entsteht der Vertrauensanker der gesamten Föderation.
10.3.3 OpenID-Relying-Party prüft Subordinate Statement zum OpenID Provider
Den Identifikator des Federation Masters extrahiert der Fachdienst in seiner Rolle als OpenID-Relying-Party der TI-Föderation aus dem Claim authority_hints des Entity Statements des sektoralen IDP.
Anschließend ruft die OpenID-Relying-Party beim Federation Master als Trust Anchor das Subordinate Statement des sektoralen IDP ab. Die hierfür benötigte URL wird aus dem Claim federation_fetch_endpoint der Entity Configuration des Federation Masters ermittelt.
Die OpenID-Relying-Party validiert das Subordinate Statement gemäß den Vorgaben aus [OpenID Federation 1.1].
Dabei werden die für die Validierung eines Subordinate Statements erforderlichen Prüfschritte durchgeführt.
Im dargestellten Beispiel sind die folgenden Claims nicht enthalten:
- trust_anchor_hints
- metadata_policy
- metadata_policy_crit
- constraints
- trust_marks
- trust_mark_issuers
- trust_mark_owners
- source_endpoint
Die für diese Claims vorgesehenen Prüfschritte entfallen daher.
Ebenso sind die folgenden Header-Parameter nicht enthalten:
- trust_chain
- peer_trust_chain
Die hierfür vorgesehenen Prüfschritte entfallen ebenfalls.
Der Claim authority_hints ist in einem Subordinate Statement nicht enthalten und wird daher nicht geprüft.
Tabelle 37 : Prüfschritte zur Validierung des Subordinate Statements eines sektoralen IDP
| Schritt | |
|---|---|
| 1 | Handelt es sich bei dem Subordinate Statement um ein signiertes JWT? |
| 2 | Ist der Header-Parameter typ des Subordinate Statements auf den Wert entity-statement+jwt gesetzt? |
| 3 | Ist der im Header-Parameter alg angegebene Algorithmus ein zulässiger Signaturalgorithmus und ungleich none?
|
| 4 | Entspricht der Entity Identifier im Claim iss dem Entity Identifier der Superior Entity, von der das Subordinate Statement abgerufen wurde (Federation Master)?
|
| 5 | Entspricht der Entity Identifier im Claim sub dem Entity Identifier des Teilnehmers, zu dem das Subordinate Statement abgerufen wurde (sektoraler IDP)? |
| 6 | Liegt der aktuelle Zeitpunkt nach dem im Claim iat (Issued At) angegebenen Ausstellungszeitpunkt?
|
| 7 | Liegt der aktuelle Zeitpunkt vor dem im Claim exp (Expiration Time) angegebenen Ablaufzeitpunkt?
|
| 8 | Ist im Claim jwks ein gültiges JWK Set gemäß [RFC7517] enthalten?
|
| 9 | Stimmen die Inhalte des im Subordinate Statement enthaltenen JWK Sets mit dem Claim jwks des Entity Statements des sektoralen IDP überein?
Information: Das Subordinate Statement enthält die Federation-Entity-Signing-Keys des sektoralen IDP. Mit diesen Schlüsseln kann geprüft werden, ob das Entity Statement des sektoralen IDP gültig signiert wurde. |
| 10 | Kann die Signatur des Subordinate Statements mit dem Federation-Entity-Signing-Key des Federation Masters erfolgreich validiert werden?
|
| 11 | Ist der Claim metadata vorhanden und enthält dieser den Metadatenblock openid_provider?
Information: Der Metadatenblock openid_provider kann gemäß [OpenID Federation 1.1] ein leeres JSON-Objekt enthalten.
|
Der Prüfschritt 9 ist für die OpenID Federation besonders wichtig. Durch den Vergleich des jwks-Claims im Entity Statement mit dem jwks-Claim im Subordinate Statement wird sichergestellt, dass die öffentlichen Federation-Entity-Signing-Keys des sektoralen IDP durch den Federation Master autorisiert wurden. Dadurch entsteht die eigentliche Vertrauensbeziehung zwischen dem sektoralen IDP und dem Trust Anchor der TI-Föderation.
10.3.4 OpenID Provider prüft das Entity Statement der OpenID-Relying-Party
Den Identifikator (iss) des Fachdienstes in seiner Rolle als OpenID-Relying-Party der TI-Föderation extrahiert der sektorale IDP aus dem Pushed Authorization Request der OpenID-Relying-Party.
Anschließend lädt der sektorale IDP in seiner Rolle als OpenID Provider die Entity Configuration des Fachdienstes über den Endpunkt /.well-known/openid-federation und validiert das enthaltene Entity Statement gemäß den Vorgaben aus [OpenID Federation 1.1].
Dabei werden die für die Validierung eines Entity Statements erforderlichen Prüfschritte durchgeführt.
Im dargestellten Beispiel sind die folgenden Claims nicht enthalten:
- trust_anchor_hints
- metadata_policy
- metadata_policy_crit
- constraints
- trust_marks
- trust_mark_issuers
- trust_mark_owners
- source_endpoint
Die für diese Claims vorgesehenen Prüfschritte entfallen daher.
Ebenso sind die folgenden Header-Parameter nicht enthalten:
- trust_chain
- peer_trust_chain
Die hierfür vorgesehenen Prüfschritte entfallen ebenfalls.
Tabelle 38 : Prüfschritte zur Validierung des Entity Statements einer OpenID-Relying-Party
| Schritt | |
|---|---|
| 1 | Handelt es sich bei dem Entity Statement um ein signiertes JWT? |
| 2 | Ist der Header-Parameter typ des Entity Statements auf den Wert entity-statement+jwt gesetzt? |
| 3 | Ist der im Header-Parameter alg angegebene Algorithmus ein zulässiger Signaturalgorithmus und ungleich none?
|
| 4 | Entspricht der Entity Identifier im Claim iss dem Wert des Claims sub?
|
| 5 | Entspricht der Entity Identifier im Claim iss dem zulässigen Format und Wertebereich?
|
| 6 | Liegt der aktuelle Zeitpunkt nach dem im Claim iat (Issued At) angegebenen Ausstellungszeitpunkt?
|
| 7 | Liegt der aktuelle Zeitpunkt vor dem im Claim exp (Expiration Time) angegebenen Ablaufzeitpunkt?
|
| 8 | Ist im Claim jwks ein gültiges JWK Set gemäß [RFC7517] enthalten?
|
| 9 | Stimmt der im Header-Parameter kidangegebene Schlüsselbezeichner mit einem kid des im Claim jwksenthaltenen JWK Sets überein?
|
| 10 | Kann die Signatur des Entity Statements mit dem zum angegebenen kid gehörenden öffentlichen Schlüssel erfolgreich validiert werden?
|
| 11 | Ist der Claim authority_hints im Entity Statement vorhanden?
Information: Der Claim wird im weiteren Verlauf zur Ermittlung und Validierung der Superior Entities sowie der zugehörigen Subordinate Statements benötigt. |
| 12 | Ist der Claim metadata vorhanden und enthält dieser den Metadatenblock openid_relying_party?
|
10.3.5 OpenID Provider prüft das Entity Statement des Trust Anchor
Den Identifikator (iss) des Federation Masters extrahiert der OpenID Provider aus dem Claim authority_hints des Entity Statements der OpenID-Relying-Party.
Anschließend lädt der sektorale IDP in seiner Rolle als OpenID Provider die Entity Configuration des Federation Masters als Trust Anchor über den Endpunkt /.well-known/openid-federation und validiert das darin enthaltene Entity Statement gemäß den Vorgaben aus [OpenID Federation 1.1].
Dabei werden die für die Validierung eines Entity Statements erforderlichen Prüfschritte durchgeführt.
Im dargestellten Beispiel sind die folgenden Claims nicht enthalten:
- trust_anchor_hints
- metadata_policy
- metadata_policy_crit
- constraints
- trust_marks
- trust_mark_issuers
- trust_mark_owners
- source_endpoint
Die für diese Claims vorgesehenen Prüfschritte entfallen daher.
Ebenso sind die folgenden Header-Parameter nicht enthalten:
- trust_chain
- peer_trust_chain
Die hierfür vorgesehenen Prüfschritte entfallen ebenfalls.
Die Validierung des Entity Statements des Federation Masters entspricht grundsätzlich der bereits beschriebenen Prüfung durch die OpenID-Relying-Party. Zusätzlich muss geprüft werden, ob der veröffentlichte Federation-Entity-Signing-Key des Federation Masters mit dem während des Registrierungsprozesses bekannten Trust-Anchor-Schlüssel übereinstimmt. Dadurch wird die Vertrauensbeziehung zur gesamten TI-Föderation abgesichert.
Tabelle 39 : Prüfschritte zur Validierung des Entity Statements des Federation Masters als Trust Anchor durch einen OpenID Provider
| Schritt | |
|---|---|
| 1 | Handelt es sich bei dem Entity Statement um ein signiertes JWT? |
| 2 | Ist der Header-Parameter typ des Entity Statements auf den Wert entity-statement+jwt gesetzt? |
| 3 | Ist der im Header-Parameter alg angegebene Algorithmus ein zulässiger Signaturalgorithmus und ungleich none?
|
| 4 | Entspricht der Entity Identifier im Claim iss dem Wert des Claims sub?
|
| 5 | Entspricht der Entity Identifier im Claim iss dem zulässigen Format und Wertebereich?
|
| 6 | Liegt der aktuelle Zeitpunkt nach dem im Claim iat (Issued At) angegebenen Ausstellungszeitpunkt?
|
| 7 | Liegt der aktuelle Zeitpunkt vor dem im Claim exp (Expiration Time) angegebenen Ablaufzeitpunkt?
|
| 8 | Ist im Claim jwks ein gültiges JWK Set gemäß [RFC7517] enthalten?
|
| 9 | Stimmt der im Header-Parameter kidangegebene Schlüsselbezeichner mit einem kid des im Claim jwksenthaltenen JWK Sets überein?
|
| 10 | Stimmt der im Entity Statement des Federation Masters veröffentlichte öffentliche Schlüssel mit dem öffentlichen Schlüssel überein, der dem sektoralen IDP im Rahmen seiner Registrierung als OpenID Provider in der TI-Föderation bekannt gemacht wurde? |
| 11 | Kann die Signatur des Entity Statements mit dem zum angegebenen kid gehörenden öffentlichen Schlüssel erfolgreich validiert werden?
|
| 12 | Ist der Claim authority_hints nicht vorhanden?
Information: Als Trust Anchor besitzt der Federation Master keine Superior Entity. Daher darf kein Claim authority_hints enthalten sein.
|
| 13 | Ist der Claim metadata vorhanden und enthält dieser den Metadatenblock federation_entity?
|
Die Prüfschritte entsprechen inhaltlich weitgehend denjenigen der OpenID-Relying-Party. Die Besonderheit liegt in Schritt 10, bei dem die Vertrauenswürdigkeit des Trust Anchors über den während des Registrierungsprozesses bekannten öffentlichen Schlüssel sichergestellt wird.
10.3.6 OpenID Provider prüft das Subordinate Statement zur OpenID-Relying-Party
Den Identifikator des Federation Masters extrahiert der sektorale IDP in seiner Rolle als OpenID Provider der TI-Föderation aus dem Claim authority_hints des Entity Statements des als OpenID-Relying-Party registrierten Fachdienstes.
Anschließend ruft der sektorale IDP beim Federation Master als Trust Anchor das Subordinate Statement des Fachdienstes ab. Die hierfür erforderliche URL ermittelt der sektorale IDP aus dem Claim federation_fetch_endpoint der Entity Configuration des Federation Masters.
Der sektorale IDP validiert das Subordinate Statement gemäß den Vorgaben aus [OpenID Federation 1.1].
Dabei werden die für die Validierung eines Subordinate Statements erforderlichen Prüfschritte durchgeführt.
Im dargestellten Beispiel sind die folgenden Claims nicht enthalten
- trust_anchor_hints
- metadata_policy
- metadata_policy_crit
- constraints
- trust_marks
- trust_mark_issuers
- trust_mark_owners
- source_endpoint
Die für diese Claims vorgesehenen Prüfschritte entfallen daher.
Ebenso sind die folgenden Header-Parameter nicht enthalten:
- trust_chain
- peer_trust_chain
Die hierfür vorgesehenen Prüfschritte entfallen ebenfalls.
Der Claim authority_hints ist in einem Subordinate Statement nicht enthalten und wird daher nicht geprüft.
Tabelle 40 : Prüfschritte zur Validierung des Subordinate Statements einer OpenID-Relying-Party
| Schritt | |
|---|---|
| 1 | Handelt es sich bei dem Subordinate Statement um ein signiertes JWT? |
| 2 | Ist der Header-Parameter typ des Subordinate Statements auf den Wert entity-statement+jwt gesetzt? |
| 3 | Ist der im Header-Parameter alg angegebene Algorithmus ein zulässiger Signaturalgorithmus und ungleich none?
|
| 4 | Entspricht der Entity Identifier im Claim iss dem Entity Identifier der Superior Entity, von der das Subordinate Statement abgerufen wurde (Federation Master)?
|
| 5 | Entspricht der Entity Identifier im Claim sub dem Entity Identifier des Teilnehmers, zu dem das Subordinate Statement abgerufen wurde (Fachdienst als OpenID-Relying-Party)? |
| 6 | Liegt der aktuelle Zeitpunkt nach dem im Claim iat (Issued At) angegebenen Ausstellungszeitpunkt?
|
| 7 | Liegt der aktuelle Zeitpunkt vor dem im Claim exp (Expiration Time) angegebenen Ablaufzeitpunkt?
|
| 8 | Ist im Claim jwks ein gültiges JWK Set gemäß [RFC7517] enthalten?
|
| 9 | Stimmen die Inhalte des im Subordinate Statement enthaltenen JWK Sets mit dem Claim jwks des Entity Statements des als OpenID-Relying-Party registrierten Fachdienstes überein?
Information: Das Subordinate Statement enthält die Federation-Entity-Signing-Keys des Fachdienstes. Mit diesen Schlüsseln kann überprüft werden, ob das Entity Statement des Fachdienstes gültig signiert wurde. |
| 10 | Kann die Signatur des Subordinate Statements mit dem Federation-Entity-Signing-Key des Federation Masters erfolgreich validiert werden?
|
| 11 | Ist der Claim authority_hints nicht vorhanden?
Information: Im vorliegenden Beispiel sind die Teilnehmer direkt dem Trust Anchor zugeordnet. Ist die ausstellende Superior Entity nicht selbst der Trust Anchor, muss der Claim authority_hintsvorhanden sein und die Vertrauenskette über die weiteren Superior Entities validiert werden.
|
| 12 | Ist der Claim metadata vorhanden und enthält dieser den Metadatenblock openid_relying_party?
|
| 13 | Sind im Metadatenblock openid_relying_partymindestens die folgenden Claims vorhanden?
• scope
• claims
• redirect_uris
|