From cb002d0eb3b42914c5fe3e4bd364fe21817ccd19 Mon Sep 17 00:00:00 2001
From: gem-jn
Date: Fri, 8 Sep 2023 15:39:07 +0200
Subject: [PATCH 1/2] added new endpoint for owner auth
---
docs/FHIR_VZD_HOWTO_Authenticate.adoc | 20 +++
docs/VZD_FHIR_Directory-Spec-Changes.adoc | 125 ++++++++++++++++++
...IR-Directory.owner_auth_authenticator.puml | 75 +++++++++++
3 files changed, 220 insertions(+)
create mode 100644 src/plantuml/SequenceDiagram.FHIR-Directory.owner_auth_authenticator.puml
diff --git a/docs/FHIR_VZD_HOWTO_Authenticate.adoc b/docs/FHIR_VZD_HOWTO_Authenticate.adoc
index 019835da..c6270666 100644
--- a/docs/FHIR_VZD_HOWTO_Authenticate.adoc
+++ b/docs/FHIR_VZD_HOWTO_Authenticate.adoc
@@ -330,3 +330,23 @@ CAUTION: The diagramm displays the most important interaction parts. For detaile
++++
====
+
+=== Authenticate using the gematik Authenticator
+The link:https://fachportal.gematik.de/hersteller-anbieter/komponenten-dienste/authenticator[gematik Authenticator] is a windows application that can be used to simplify the interaction with a connector, the card terminals and the users smartcards(SMC-B/HBA). The authenticator app can be started using a deeplink call (authenticator://) and the authenticator app takes over control. The authenticator offers 2 possibilities to interact with the caller:
+
+* calling the redirect_uri using the registered application for http calls
+* calling the redirect_uri directly using a HTTP get Request
+
+The first option would require that the redirect_uri provided by the VZD-FHIR directory has to return application specific content that fits the callers needs. As the caller can be any application, this flow is not an option.
+For the second option the caller needs information on the actual status of the authenticator authorization process.To fullfill this need the VZD-FHIR directory will provide an endpoint that can be used by clients to query the actual authorization process status.
+The following sequence diagramm shows the process in detail.
+
+.owner-authenticate with the gematik Authenticator
+[%collapsible%open]
+====
+++++
+
+
+
+++++
+====
\ No newline at end of file
diff --git a/docs/VZD_FHIR_Directory-Spec-Changes.adoc b/docs/VZD_FHIR_Directory-Spec-Changes.adoc
index 09ad504f..6af152f4 100644
--- a/docs/VZD_FHIR_Directory-Spec-Changes.adoc
+++ b/docs/VZD_FHIR_Directory-Spec-Changes.adoc
@@ -190,3 +190,128 @@ Siehe Kapitel 4.6.3 Zusammenführung mehrerer TelematikID´s zu einer Organisati
|===
+== Anbieten eines Polling Endpunktes
+Wenn der Authenticator der gematik von Clients genutzt wird, um eine Authentifizierung auf Basis von Smartcards zu realisieren, dann ist es notwendig am Ende des Prozesses, die Kontrolle wieder an den Client zu übergeben und diesen mit den notwendigen Informationen für die weiteren Prozesschritte zu versorgen. Im folgenden werden die Anpassungen am Auth-Service des VZD-FHIR Directories beschrieben, die notwendig sind, um eine Anmeldung unter Verwendung des gematik Authenticators zu realsieren.
+
+Beim Anmeldevorgang verwendet der User eine Smartcard als Authentifizierungsmittel. Der Ablauf orientiert sich hierbei an den OIDC-Vorgaben zur link:https://openid.net/specs/openid-client-initiated-backchannel-authentication-core-1_0.html[Client initiated backchannel authentication]. Um die Kollisionen mit standard OAuth2 Grants zu vermeiden, definiert die gematik einen eigenen Grant urn:telematik:params:grant-type:decoupled als link:https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-08#section-6.3[Extension].
+
+Der Standard kann nicht zu 100% umgesetzt werden, da hierfür ebenfalls noch eine Anpassung des gematik Authenticators und des IDP der gematik notwendig sind.Als Übergangslösung wird der Client den Aufruf des Authenticators übernehmen und das VZD-FHIR Directory einen Endpunkt bereitstellen über den der Status des Authentifizierungsvorgangs abgefragt werden kann.
+OIDC Konformität und Abweichungen werden im Anschluss an das Sequenzdiagramm im Rahmen der Erläutertung der einzelnen Schritte hervorgehoben.
+.owner-authenticate with the gematik Authenticator
+[%collapsible%open]
+====
+++++
+
+
+
+++++
+====
+
+*Notwendige Anpassungen/Neuerungen am VZD-FHIR Directory*
+[options="header"]
+|=====
+| Funktionalität | Anfoderung
+| Bereitstellung des initalen authenticate Endpunkt am Auth-Service a| Das VZD-FHIR Directory muss einen /owner-authenticate-decoupled Endpunkt anbieten der POST Request mit dem übergebene grant_type urn:telematik:params:grant-type:decoupled akzeptiert.
+
+.neuer owner Endpunkt
+[%collapsible%closed]
+====
+[source]
+----
+POST /owner-authenticate-decoupled HTTP/1.1
+Host: https://fhir-directory-ref.vzd.ti-dienste.de/
+Content-Type: application/x-www-form-urlencoded
+
+grant_type=urn%3Atelematik%3Aparams%3Agrant-type%3Adecoupled
+----
+====
+Erhält das VZD-FHIR Directory eine derartige Anfrage wird ein Autorisierungsauftrag mit den Werten:
+
+* auth_reg_id
+* state
+* owner-accesstoken(in diesem Moment noch unbefüllt)
+* code_challenge
+
+erstellt und es werden folgende Daten an den Client im Response zurück geliefert:
+
+.owner Response
+[%collapsible%closed]
+====
+[source, json]
+----
+HTTP/1.1 200 OK
+Content-Type: application/json
+Cache-Control: no-store
+
+{
+ "auth_req_id": "bspuw6ea-scst-u5hn-p3nt-37khzwY4g",
+ "redirect_uri": "https://idp-ref.app.ti-dienste.de/...",
+ "poll_uri": "https://fhir-directory-ref.vzd.ti-dienste.de/...",
+ "expires_in": 600,
+ "interval": 3
+}
+----
+====
+* expires_in: definiert die Zeit, die die auth_reg_id gültig ist und genutzt werden kann in Sekunden
+* interval: definiert das Mindestwarteintervall zwischen 2 Pollinganfragen
+
+| Bereitstellung eines neuen polling Endpunktes am Auth-Service a| Das VZD-FHIR Directory muss einen Endpunkt anbieten, der von Clients genutzt werden kann, um den Status eines Autorisierungsauftrages abzufragen.
+Dazu übergibt ein anfragender Client die folgenden Werte (wobei ist durch VZD festgelegter Endpoint, welcher im Schritt 06 dem Client über poll_uri mitgeteilt wird)
+
+.Token Request
+[%collapsible%closed]
+====
+[source, json]
+----
+POST /oauth/v2/oauth-token HTTP/1.1
+Host: idsvr.example.com
+Content-Type: application/x-www-form-urlencoded
+
+grant_type=urn%3Atelematik%3Aparams%3Agrant-type%3Adecoupled
+auth_req_id=bspuw6ea-scst-u5hn-p3nt-37khzwY4g
+----
+====
+Es wird geprüft, ob für die auth_req_id noch gültig ist und bereits ein owner-accesstoken vorliegt:
+a) Es liegt ein passendes Token vor:
+Dann antwortet der Auth-Service in seinem Response mit dem entsprechenden owner-accesstoken:
+
+.Token Response Success
+[%collapsible%closed]
+====
+[source, json]
+----
+HTTP/1.1 200 OK
+ Content-Type: application/json
+ Cache-Control: no-store
+
+ {
+ "access_token": "G5kXH2wHvUra0sHlDy1iTkDJgsgUO1bN"
+ "token_typ": "Bearer"
+ "expires_in": "86400"
+}
+----
+====
+b) liegt kein passendes Token vor dann antwortet der Server mit:
+
+.Token Response Error
+[%collapsible%closed]
+====
+[source, json]
+----
+HTTP/1.1 400 Bad Request
+Content-Type: application/json
+Cache-Control: no-cache, no-store
+
+{
+ "error": [ERROR_REASON]
+}
+----
+====
+Die ERROR_REASON kann die folgenden Werte annehmen:
+
+* authorization_pending - Der Authentifizierungsprozess ist noch nicht abgeschlossen
+* slow_down - Wenn der Token Request noch nicht abgeschlossen ist und der Client hat den Request schneller als 3 Sekunden gestellt.
+* access_denied - Der Authentifizierungsprozess konnte im Hintergrund nicht erfolgreich durchgeführt werden.
+Das minimal erlaubte Polling-Interval wird auf 3 Sekunden festlgelegt. Das VZD speichert den Zeitstempel der letzten Polling-Anfrage, sodass bei der nächsten Anfrage mit dem gleichen auth_req_id der letzte Zeitstempel abgerufen werden kann (z.B. in der gleichen Datenbanktabelle). Der Zeitunterschied des aktuellen Zeitstempel und den letzten Zeitstempel muss im Minimum 3 Sekunden betragen.
+| Bereitstellung einer neuen Redirect_uri | Aktuell liefert die vom VZD-FHIR Directory verwendete Redirect_uri (/signin-gematik-idp-dienst) bei Übergabe des Auth_code und des state einen owner-accesstoken zurück. Diese Rückgabe ist nicht notwendig, wenn der Authenticator die Redirect_uri direkt aufruft.
+|=====
diff --git a/src/plantuml/SequenceDiagram.FHIR-Directory.owner_auth_authenticator.puml b/src/plantuml/SequenceDiagram.FHIR-Directory.owner_auth_authenticator.puml
new file mode 100644
index 00000000..a4cfb967
--- /dev/null
+++ b/src/plantuml/SequenceDiagram.FHIR-Directory.owner_auth_authenticator.puml
@@ -0,0 +1,75 @@
+@startuml
+autonumber 1 1 "[00]"
+title "Entkoppelte FHIR-VZD Authentisierung"
+
+actor User as "Leistungserbringer"
+participant TIMClient as "TI-M Client"
+participant Authenticator as "gematik Authenticator"
+
+participant "gematik IDP-Dienst" as IdpDienst
+box VZD-FHIR-Directory #WhiteSmoke
+ participant "Auth-Service" as VzdAuth
+end box
+
+User->TIMClient++: Anmeldung starten
+
+TIMClient -> VzdAuth++: Decoupled Authorization Request\nPOST /owner-authenticate-decoupled\nHeader: Content-Type=application/x-www-form-urlencoded\nBody: grant_type=urn:telematik:params:grant-type:decoupled
+ VzdAuth -> VzdAuth: Erzeuge PKCE_code_challenge, PKCE_code_verifier und state
+VzdAuth -> VzdAuth: Erzeuge auth_req_id
+note right: **Siehe Bildungsregel:**\nhttps://openid.net/specs/openid-client-initiated-backchannel\n-authentication-core-1_0.html#rfc.section.7.3
+VzdAuth -> VzdAuth: code, state und auth_req_id werden als Autorisierungsauftrag\n in einem persistent Store gespeichert
+
+
+VzdAuth --> TIMClient: Decoupled Authorization Response 200 OK \n(\n\t"auth_req_id": "...",\n\t"poll_uri": "...",\n\t//{redirect_uri}//: "https://idp-ref.app.ti-dienste.de/auth?\n\t\tresponse_type=code\n\t\t&client_id=GEMgematFHI4HkPrd8SR\n\t\t&scope=fhir-vzd+openid\n\t\t&redirect_uri=https%3A%2F%2Ffhir-directory-ref.vzd.ti-dienste.de%2Fsignin-gematik-idp-dienst\n\t\t&state=HkX8By1qMekEg4a7B1aXyw\n\t\t&code_challenge=a0kY3HugNKgveqhBQjc1tmX4_m-OT7FMF175rDlOIOM\n\t\t&code_challenge_method=S256",\n\t "expires_in": 600,\n\t "interval": 3\n)
+
+par Authenticator Flow
+
+TIMClient -> Authenticator++: Deeplink-Aufruf:\nauthenticator://?\n challenge_path=//{redirect_uri}//\n\t**&callback=DIRECT**\n\t**&cardType=HBA**
+Authenticator <--> IdpDienst++: Der Authenticator interagiert mit dem IDP\n und über einen Konnektor mit den Smartcards.\nAm Ende des Prozesses erhält der Authenticator\n den auth_code vom IDP. **Siehe nächster Aufruf!**
+IdpDienst -> Authenticator: 302 Redirect auf die redirect_uri des VZD-FHIR\n mit dem auth_code und dem state
+deactivate IdpDienst
+Authenticator -> VzdAuth: Der Authenticator ruft selbst mit einem HTTP Get,\nredirect_uri&code=XXX&state=YYY auf.\n)
+VzdAuth -> VzdAuth: Finde via state den Autorisierungsauftrag\nund speichere auth_code in diesem Autorisierungsauftrag
+VzdAuth -> Authenticator: 200 OK, Empty Body
+Authenticator->Authenticator--: Anwendung wird beendet
+VzdAuth->IdpDienst++: Übergabe des auth_code und des\nkey_verifier an den Token Endpunkt
+note left: **Siehe:**\nhttps://github.com/gematik/api-ti-messenger/blob/main/docs/IDP/\nidp.adoc#3231-erzeugung-des-key_verifier-durch-die-relying-party
+return signierter id_token
+VzdAuth->VzdAuth: Erzeuge owner-accesstoken auf Basis des id_tokens\nund speichere dieses am Autorisierungsauftrag
+
+else TI-M Client pollt
+
+TIMClient -> VzdAuth: Access Token Request POST {poll_uri}\naus Decopled Authorization Response\nBody: auth_req_id={auth_req_id}
+VzdAuth->VzdAuth: Prüfe ob für die übergebene auth_req_id\n ein Autorisierungsauftrag vorliegt und \nggf. bereits ein owner-accesstoken
+
+alt Poll Pending
+VzdAuth --> TIMClient: 400 Bad Request (Pending)
+note left
+{
+ "error":"authorization_pending"
+}
+end note
+else Poll Success
+VzdAuth -> TIMClient: 200 OK (Success)
+note left
+{
+ "access_token": "..."
+}
+end note
+else Poll Error
+VzdAuth -> TIMClient: 400 Bad Request (Error)
+note left
+{
+ "error": "access_denied"
+ ..or..
+ "error": "expired_token"
+ ..or..
+ "error": "slow_down"
+}
+end note
+end
+deactivate TIMClient
+deactivate VzdAuth
+end
+== ...fachlicher flow... ==
+@enduml
\ No newline at end of file
From 6622b26b065c9cb475b5e0f287cfdd051b9fb85d Mon Sep 17 00:00:00 2001
From: gem-uhe
Date: Mon, 11 Sep 2023 13:49:28 +0000
Subject: [PATCH 2/2] Commit from GitHub Actions (GeneratePlantumlImages)
---
...HIR-Directory.owner_auth_authenticator.png | Bin 0 -> 190897 bytes
...HIR-Directory.owner_auth_authenticator.svg | 85 ++++++++++++++++++
2 files changed, 85 insertions(+)
create mode 100644 images/diagrams/SequenceDiagram.FHIR-Directory.owner_auth_authenticator.png
create mode 100644 images/diagrams/SequenceDiagram.FHIR-Directory.owner_auth_authenticator.svg
diff --git a/images/diagrams/SequenceDiagram.FHIR-Directory.owner_auth_authenticator.png b/images/diagrams/SequenceDiagram.FHIR-Directory.owner_auth_authenticator.png
new file mode 100644
index 0000000000000000000000000000000000000000..f90c739872d311c5e75d78ac718614d614b11a01
GIT binary patch
literal 190897
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%0AE&41kU<4SF80UB6=M#bF;6tFt`!0c*TibsAwM
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