DEMIS Wissensdatenbank

Zusammenfassung

Dieses Verfahren steht allen DEMIS Meldern und Empfängern zur Verfügung, die an die Telematik Infrastruktur angebunden sind und damit eine SMC-B besitzen. 

Das Verfahren ist dabei in zwei Schritte unterteilt:

  • Anmeldung am gematik IDP mittels SMC-B und Erhalt eines Access Tokens
  • Tausch des Access Tokens vom gematik IDP gegen ein Access Token vom DEMIS IDP

Hintergrund

DEMIS ermöglicht das Senden von Meldungen via Meldeportal über den Browser, sowie über eine Schnittstelle, welche die Integration in Primärsysteme erlaubt. Diese Integration in Primärsysteme erspart Nutzenden die manuelle Eingabe von Daten und kann somit das Senden von Meldungen deutlich vereinfachen. Aktuell können Primärsysteme die DEMIS-Schnittstelle nutzen, indem sie sich von der RKI-Geschäftsstelle ein Zertifikat ausstellen lassen und dieses zur Authentisierung gegenüber DEMIS verwenden. Zukünftig soll ein Mechanismus angeboten werden, der es Primärsystemen erlaubt, eine Authentisierung für die Schnittstelle zu erhalten, ohne zuvor administrative Prozesse zu durchlaufen.  Dies soll erreicht werden, indem Institutionen der TI ihre SMC-B nutzen, um sich gegenüber dem gematik IDP zu authentisieren. Für Anwendungen wie beispielsweise E-Rezept, haben Primärsysteme diese Anmelde-Methode bereits umgesetzt. Die Implementierung sollen Primärsysteme nachnutzen können, um sich gegenüber dem DEMIS IDP zu authentisieren. Das Verfahren ist dabei in zwei Schritte unterteilt:

  • Anmeldung am gematik IDP mittels SMC-B und Erhalt eines Access Tokens
  • Tausch des Access Tokens vom gematik IDP gegen ein Access Token vom DEMIS IDP

Der Ablauf des Token-Tauschs erfolgt gemäß RFC 8693.



Detaillierte Ablaufbeschreibung des Token-Tausch-Mechanismus

Übersicht

Token ExchangePVSPVSgematik IDPgematik IDPDEMIS IDPDEMIS IDPDEMIS APIsDEMIS APIs1Authentifizierung mittels SMC-B analog zu E-Rezept Flow2gemIDP-Access-Token3Übermittlung des gemIDP-Access-Token4Validierung des Tokens und Scopes5Demis-Access Token6Übermittlung der Meldung als FHIR-Bundle und Demis-Access Token an /$process-notification7Meldungsquittung

Ablauf

Ein Primärsystem (PS), welches ein DEMIS-Fachmodul integriert, kann die Zugriffsautorisierung auf die DEMIS-Schnittstelle erhalten.

  • Dazu erstellt das DEMIS-Fachmodul eine Authorization Request mit dem scope="gmtik-demis" und der clientd_id des PVS und sendet diesen über das integrierte Authenticator-Modul an den IDP-Dienst.
  • Im Challenge-Response Verfahren wird die SMC-B des PS durch den IDP-Dienst geprüft und, nach erfolgreicher Prüfung, ein Authorization Code ausgestellt und über das Authenticator-Modul an das DEMIS-Fachmodul propagiert.
  • Das DEMIS-Fachmodul erzeugt einen symmetrischen Schlüssel (Token Key) und reicht diesen zusammen mit dem Authorization Code am Token-Endpunkt des IDP-Dienstes ein.
  • Der IDP-Dienst erstellt ein ID-Token und ein Acces-Token, verschlüsselt das Access-Token mit dem Token Key und gibt ID-Token und verschlüsseltes Access-Token an das DEMIS-Fachmodul zurück.
  • Das DEMIS-Fachmodul entschlüsselt den Access-Token und reicht diesen beim DEMIS-IDP zum Tausch gegen ein DEMIS-Access-Token ein (Token Exchange).
  • Der DEMIS-IDP prüft das Access-Token wie folgt:
    • Gültigkeit der Token Signatur
    • Zeitliche Gültigkeit
    • Scope des Tokens
  • Nach erfolgreicher Prüfung sendet der DEMIS-IDP insbesondere ein Access-Token, sowie ein Refresh Token an den Client zurück.
  • Das DEMIS-Fachmodul kann mit dem DEMIS-Access-Token auf den DEMIS-Fachdienst zugreifen. Das Refresh Token kann genutzt werden, um die Session mit dem DEMIS-IDP offen zu halten.



Eine detaillierte Beschreibung, wie Clients sich für das E-Rezept gegenüber dem gematik IDP authentisieren findet sich unter https://github.com/gematik/api-erp/blob/master/docs/authentisieren.adoc#als-nutzer-der-telematikinfrastruktur-authentifiziert-werden.

Tauschen des Tokens des gematik IDP gegen ein Token des DEMIS IDP

Nachdem ein Access-Token des gematik IDP erhalten wurde, kann dieses mittels HTTP-Post an den DEMIS IDP gegen ein DEMIS-Access-Token getauscht werden. Der dazu notwendige POST-Request sieht etwa wie folgt aus:

POST /realms/INSTITUTIONS-TI/protocol/openid-connect/token HTTP/1.1
Host: auth.demis.rki.de
Content-Type: application/x-www-form-urlencoded
Content-Length: <calculated length>

client_id=<client-id>&client_secret=<client-secret>&grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Atoken-exchange&subject_issuer=<subject-issuer>&subject_token=<gematik_idp_access_token>&subject_token_type=urn%3Aietf%3Aparams%3Aoauth%3Atoken-type%3Aaccess_token


Erklärung der Request-Parameter:

ParameterBedeutungInhalt
client_idID des Clients, der den Token-Tausch durchführen möchteWird von DEMIS zugeteilt
client_secretSecret des ClientsWird von DEMIS zugeteilt
grant_typeDer String urn:ietf:params:oauth:grant-type:token-exchange URL-encodiertfester Wert
subject_issuerDer im Access-Token des gematik IDP eingetragene Issuer"claim: iss" aus Access-Token des gematik IDP
subject_tokenDas Access-Token des gematik IDPErhaltenes Access-Token des gematik IDP
subject_token_typeDer String urn:ietf:params:oauth:token-type:access_token URL-encodiertfester Wert

Via curl kann der Request wie folgt abgesetzt werden:

curl -X POST -d "client_id=<client-id>" \
-d "client_secret=<client-secret>" \
--data-urlencode "grant_type=urn:ietf:params:oauth:grant-type:token-exchange" \
-d "subject_issuer=<subject-issuer>" \
-d "subject_token=<gematik-idp-access-token>" \
--data-urlencode "subject_token_type=urn:ietf:params:oauth:token-type:access_token" \
https://auth.demis.rki.de/realms/INSTITUTIONS-TI/protocol/openid-connect/token

Registrierung neuer Clients für die Nutzung des gematik IDP

Informationen zur Registrierung eines Clients für die Nutzung des gematik IDPs finden sich in unter IDP-Dienst und Clientsysteme.

  • No labels