Technische Lösungsarchitektur (MOVI-Kernkomponenten)

Inhalt

Technische Architektur der MOVI-Kernkomponenten
Prämissen
Überblick
TSL-Abrufpunkt und OCSP-Responder
Reverse Proxy
Account Management Service
Identity Provider

Spezifikationsdetails
todo
todo

Technische Architektur

Die nachfolgenden Abschnitte beschreiben die technische Architektur des Systems. In diesem Zusammenhang wird jeweils die konkrete Funktionalität und Ausgestaltung einzelner Dienste und Komponenten beleuchtet sowie deren Interaktionen untereinander.

Prämissen

Der technischen Architektur sowie der prototypischen Realisierung liegen verschiedene Prämissen zugrunde, die im Folgenden kurz dargestellt werden:

Aus diesen Prämissen ergeben sich Grundsatzentscheidungen, die in die technische Architektur eingeflossen sind und sich somit in den nachfolgenden Darstellungen widerspiegeln:

Überblick

Technische Architektur - Überblick

Wie der Abbildung zu entnehmen ist, verteilt sich die Funktionalität auf verschiedene Dienste bzw. Komponenten. Die folgenden Abschnitte beschreiben die Abbildung bezogen auf die einzelnen Komponenten im Details.

TSL-Abrufpunkt und OCSP-Responder

Die Verwendung von X.509-Zertifikaten spielt auf verschiedenen Ebenen der Lösungsarchitektur eine besondere Rolle. Entsprechende Zertifikate kommen beispielsweise beim sicheren Datentransport über TLS (vgl. Reverse Proxy) zum Einsatz oder im Rahmen der Authentifizierung der Versicherten durch den Identity Provider (vgl. Identity Provider). Für beide Szenarien ist es unerlässlich die Validität der jeweils genutzten Zertifikate zu prüfen.

TSL-Abrufpunkt und OCSP-Responder sind keine Kernbestandteile der Lösungsarchitektur. Sie existieren bereits in produktiver Form und werden lediglich durch die verschiedenen Komponenten der Lösung (Identity Provider, Account Management Service, Client etc.) nachgenutzt. Aus diesem Grund wird in den folgenden Ausführungen nicht weiter auf die detaillierte Ausgestaltung der entsprechenden Dienste eingegangen. Es wird lediglich auf deren Nutzung verwiesen.

Reverse Proxy

Der Reverse Proxy leitet Anfragen von beliebigen Clients an die jeweiligen Dienste im Backend weiter. In diesem Zusammenhang kann er eine Reihe von weiteren Aufgaben übernehmen:

Technische Architektur - Reverse Proxy

Schnittstellen

Im Kontext des Projektes terminiert der Reverse Proxy die TLS-Verbindungen für folgende Dienste:

Sofern der Reverse Proxy OCSP-Stapling unterstützt, kann eine zusätzliche Kommunikation mit den für die Serverzertifikate zuständigen OCSP-Respondern stattfinden. (5)

Anforderungen

Folgende Anforderungen müssen durch die Implementierung des Reverse Proxy umgesetzt werden:

Prototypische Realisierung

TODO Die prototypische Realisierung nutzt traefik als Reverse Proxy. Detaillierte Informationen zur Ausgestaltung/Konfigurationen können der Realisierungsdokumentation entnommen werden.

Identity Provider

Die primäre Aufgabe des Identity Providers liegt im Bereich der Bereitstellung von Sicherheitstoken und Identitätsinformationen für angebundene Fachdienste. Um diese Aufgaben realisieren zu können, muss der Identity Provider verschiedene Funktionen erfüllen:

Hinweis: Für ein leichteres Verständnis der folgenden Abschnitte bietet sich eine - zumindest grundlegende - Auseinandersetzung mit OpenID Connect an. Ein guter Ausgangspunkt ist die offizielle Webseite der OpenID Foundation: https://openid.net/connect/

Technische Architektur - Identity Provider

Schnittstellen

Der Identity Provider besitzt Schnittstellen zu den folgenden Diensten:

OpenID Connect als Authentifizierungsprotokoll

OpenID Connect (OIDC) basiert auf dem Autorisierungsprotokoll OAuth 2.0 und dient als zusätzliche Schicht zur Abbildung von Authentifizierungsfunktionalität. Den das Protokoll nutzenden Clients wird es ermöglicht, die Identität von Nutzern verlässlich zu überprüfen und relevante Identitätsattribute abzufragen. Genau diese Funktionalität ist für die Absicherung der realisierten Dienste (Signalling, FHIR) zwingend erforderlich. OIDC und OAuth nutzen sogenannte Token (identity, access + refresh token), um Authentifizierungs- und Autorisierungsinformationen zu transportieren. OIDC bildet die Basis für die Umsetzung des Projektes. Konkret wird der OIDC Authorization Code Flow mit PKCE (Proof Key for Code Exchange) verwendet.

Hinweis: Eine Alternative zu OpenID Connect bildet SAML 2.0. Aufgrund der leichteren Integrierbarkeit von OpenID Connect und der besseren Unterstützung durch mobile Plattformen wurde sich bewusst gegen SAML 2.0 entschieden.

Das gewählte Protokoll (OpenID Connect) trifft grundsätzlich keine Vorgaben bezüglich der zu verwendenden Authentfizierungsmechanismen. Somit sind grundsätzlich beliebige Mechanismen/Verfahren vorstellbar, die durch den Identity Provider zur Überprüfung der Versichertenidentität genutzt werden können. Dies eröffnet u.a. die Möglichkeit, die elektronische Gesundheitskarte bzw. das auf ihr enthaltene Schlüsselmaterial zum Zwecke der Authentifizierung der Versicherten zu nutzen.