diff --git a/README.md b/README.md index 2787b73..54b4039 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ or use docker compose: ```console $ mvn clean install -pl idp-server -am -Dskip.unittests -Dskip.inttests -$ export appVersion=27.0.0 +$ export appVersion=27.0.1 $ export serverLoglevel=info (default) $ docker-compose --project-name myidp -f docker-compose-ref.yml up -d ``` diff --git a/ReleaseNotes.md b/ReleaseNotes.md index 2170a53..bf4d3e2 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -1,3 +1,7 @@ +# Release 27.0.1 + +- add missing scope for gitHub + # Release 27.0.0 - idp-client login for ePA (wip) diff --git a/doc/tokenFlowEgk.html b/doc/tokenFlowEgk.html index 1dc2d39..8baef10 100644 --- a/doc/tokenFlowEgk.html +++ b/doc/tokenFlowEgk.html @@ -665,50 +665,50 @@ background-color: #469408!important; }
Gerendert mit https://github.com/gematik/app-RbelLogger
Created Tue, 5 Mar 2024 09:56:06 +0100
Created Tue, 5 Mar 2024 12:42:42 +0100

1 GET http://localhost:40931/.well-known/openid-configuration127.0.0.1:-1localhost:36057

1 GET http://localhost:38497/.well-known/openid-configuration127.0.0.1:-1localhost:34983

REQ Headers

User-Agent
IdP-Client
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Accept-Encoding
gzip
Nicht verpflichtend
Nicht verpflichtend
Host
localhost:36057
Nicht verpflichtend
Nicht verpflichtend
Connection
keep-alive
Nicht verpflichtend
Nicht verpflichtend
Empty body

REQ Headers

User-Agent
IdP-Client
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Accept-Encoding
gzip
Nicht verpflichtend
Nicht verpflichtend
Host
localhost:34983
Nicht verpflichtend
Nicht verpflichtend
Connection
keep-alive
Nicht verpflichtend
Nicht verpflichtend
Empty body

2200localhost:36057127.0.0.1:-1

2200localhost:34983127.0.0.1:-1

RES Headers

Keep-Alive
timeout=60
Cache-Control
no-store
Version
27.0.0
Pragma
no-cache
Content-Length
3118
Date
Tue, 05 Mar 2024 08:55:41 GMT
Zeitpunkt der Antwort.
Zeitpunkt der Antwort.
Content-Type
application/jwt;charset=UTF-8

RES Body

JWT

Headers
{
+Date: Tue, 05 Mar 2024 11:42:17 GMT
+Content-Type: application/jwt;charset=UTF-8

RES Headers

Keep-Alive
timeout=60
Cache-Control
no-store
Version
27.0.1
Pragma
no-cache
Content-Length
3118
Date
Tue, 05 Mar 2024 11:42:17 GMT
Zeitpunkt der Antwort.
Zeitpunkt der Antwort.
Content-Type
application/jwt;charset=UTF-8

RES Body

JWT

Headers
{
   "alg" : "BP256R1",
   "typ" : "JWT",
   "kid" : "puk_disc_sig",
Identifiziert den hier beschriebenen Schlüssel. Beschreibung siehe https://tools.ietf.org/html/rfc7517#section-4.5
"x5c" : [ "MIICsTCCAligAwIBAgIHAbssqQhqOzAKBggqhkjOPQQDAjCBhDELMAkGA1UEBhMCREUxHzAdBgNVBAoMFmdlbWF0aWsgR21iSCBOT1QtVkFMSUQxMjAwBgNVBAsMKUtvbXBvbmVudGVuLUNBIGRlciBUZWxlbWF0aWtpbmZyYXN0cnVrdHVyMSAwHgYDVQQDDBdHRU0uS09NUC1DQTEwIFRFU1QtT05MWTAeFw0yMTAxMTUwMDAwMDBaFw0yNjAxMTUyMzU5NTlaMEkxCzAJBgNVBAYTAkRFMSYwJAYDVQQKDB1nZW1hdGlrIFRFU1QtT05MWSAtIE5PVC1WQUxJRDESMBAGA1UEAwwJSURQIFNpZyAzMFowFAYHKoZIzj0CAQYJKyQDAwIIAQEHA0IABIYZnwiGAn5QYOx43Z8MwaZLD3r/bz6BTcQO5pbeum6qQzYD5dDCcriw/VNPPZCQzXQPg4StWyy5OOq9TogBEmOjge0wgeowDgYDVR0PAQH/BAQDAgeAMC0GBSskCAMDBCQwIjAgMB4wHDAaMAwMCklEUC1EaWVuc3QwCgYIKoIUAEwEggQwIQYDVR0gBBowGDAKBggqghQATASBSzAKBggqghQATASBIzAfBgNVHSMEGDAWgBQo8Pjmqch3zENF25qu1zqDrA4PqDA4BggrBgEFBQcBAQQsMCowKAYIKwYBBQUHMAGGHGh0dHA6Ly9laGNhLmdlbWF0aWsuZGUvb2NzcC8wHQYDVR0OBBYEFC94M9LgW44lNgoAbkPaomnLjS8/MAwGA1UdEwEB/wQCMAAwCgYIKoZIzj0EAwIDRwAwRAIgCg4yZDWmyBirgxzawz/S8DJnRFKtYU/YGNlRc7+kBHcCIBuzba3GspqSmoP1VwMeNNKNaLsgV8vMbDJb30aqaiX1"
Enthält das verwendete Signer-Zertifikat als Base64 ASN.1 DER-Encoding. Hier kommt ausnahmsweise NICHT URL-safes Base64-Encoding zum Einsatz!
] -}

body.header.x5c.0.content

X509 Certificate

Subject: C=DE,O=gematik TEST-ONLY - NOT-VALID,CN=IDP Sig 3

Issuer: C=DE,O=gematik GmbH NOT-VALID,OU=Komponenten-CA der Telematikinfrastruktur,CN=GEM.KOMP-CA10 TEST-ONLY

Serialnumber: 487275465566779

Valid From: 2021-01-15T00:00Z[UTC]

Valid Until: 2026-01-15T23:59:59Z[UTC]


Body

{
-  "authorization_endpoint" : "http://localhost:40931/sign_response",
URL des Authorization Endpunkts.
- "auth_pair_endpoint" : "http://localhost:40931/alt_response",
URL des Biometrie-Authorization Endpunkts.
- "sso_endpoint" : "http://localhost:40931/sso_response",
URL des SSO-Authorization Endpunkts.
- "uri_pair" : "http://localhost:40931/pairings",
URL des Pairing-Endpunkts
- "token_endpoint" : "http://localhost:40931/token",
URL des Authorization Endpunkts.
- "third_party_authorization_endpoint" : "http://localhost:40931/extauth", +}

body.header.x5c.0.content

X509 Certificate

Subject: C=DE,O=gematik TEST-ONLY - NOT-VALID,CN=IDP Sig 3

Issuer: C=DE,O=gematik GmbH NOT-VALID,OU=Komponenten-CA der Telematikinfrastruktur,CN=GEM.KOMP-CA10 TEST-ONLY

Serialnumber: 487275465566779

Valid From: 2021-01-15T00:00Z[UTC]

Valid Until: 2026-01-15T23:59:59Z[UTC]


Body

{
+  "authorization_endpoint" : "http://localhost:38497/sign_response",
URL des Authorization Endpunkts.
+ "auth_pair_endpoint" : "http://localhost:38497/alt_response",
URL des Biometrie-Authorization Endpunkts.
+ "sso_endpoint" : "http://localhost:38497/sso_response",
URL des SSO-Authorization Endpunkts.
+ "uri_pair" : "http://localhost:38497/pairings",
URL des Pairing-Endpunkts
+ "token_endpoint" : "http://localhost:38497/token",
URL des Authorization Endpunkts.
+ "third_party_authorization_endpoint" : "http://localhost:38497/extauth", "federation_authorization_endpoint" : "https://idpfadi.dev.gematik.solutions/auth", - "uri_disc" : "http://localhost:40931/.well-known/openid-configuration",
URL des Discovery-Dokuments
+ "uri_disc" : "http://localhost:38497/.well-known/openid-configuration",
URL des Discovery-Dokuments
"issuer" : "https://idp.dev.gematik.solutions", - "jwks_uri" : "http://localhost:40931/jwks",
URL einer JWKS-Struktur mit allen vom Server verwendeten Schlüsseln
- "exp" : 1709715341,
Gültigkeit des Tokens
- "iat" : 1709628941,
Zeitpunkt der Ausstellung des Tokens
- "uri_puk_idp_enc" : "http://localhost:40931/idpEnc/jwk.json", - "uri_puk_idp_sig" : "http://localhost:40931/idpSig/jwk.json", + "jwks_uri" : "http://localhost:38497/jwks",
URL einer JWKS-Struktur mit allen vom Server verwendeten Schlüsseln
+ "exp" : 1709725337,
Gültigkeit des Tokens
+ "iat" : 1709638937,
Zeitpunkt der Ausstellung des Tokens
+ "uri_puk_idp_enc" : "http://localhost:38497/idpEnc/jwk.json", + "uri_puk_idp_sig" : "http://localhost:38497/idpSig/jwk.json", "subject_types_supported" : [ "pairwise" ], "id_token_signing_alg_values_supported" : [ "BP256R1" ], "response_types_supported" : [ "code" ], @@ -718,27 +718,27 @@ "acr_values_supported" : [ "gematik-ehealth-loa-high" ], "token_endpoint_auth_methods_supported" : [ "none" ], "code_challenge_methods_supported" : [ "S256" ], - "kk_app_list_uri" : "http://localhost:40931/directory/kk_apps", - "fed_idp_list_uri" : "http://localhost:40931/fed_idp_list" -}

Signature

Was verified using Key puk_disc_sig

Signature

Was verified using Key puk_disc_sig

3 GET http://localhost:40931/idpSig/jwk.json127.0.0.1:-1localhost:36057

3 GET http://localhost:38497/idpSig/jwk.json127.0.0.1:-1localhost:34983

REQ Headers

User-Agent
IdP-Client
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Accept-Encoding
gzip
Nicht verpflichtend
Nicht verpflichtend
Host
localhost:36057
Nicht verpflichtend
Nicht verpflichtend
Connection
keep-alive
Nicht verpflichtend
Nicht verpflichtend
Empty body

REQ Headers

User-Agent
IdP-Client
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Accept-Encoding
gzip
Nicht verpflichtend
Nicht verpflichtend
Host
localhost:34983
Nicht verpflichtend
Nicht verpflichtend
Connection
keep-alive
Nicht verpflichtend
Nicht verpflichtend
Empty body

4200localhost:36057127.0.0.1:-1

RES Headers

Keep-Alive
timeout=60
Version
27.0.0
Date
Tue, 05 Mar 2024 08:55:48 GMT
Zeitpunkt der Antwort.
Zeitpunkt der Antwort.
Content-Type
application/json

RES Body

{
+{"x5c":["MIICsTCCAligAwIBAgIHA61I5ACUjTAKBggqhkjOPQQDAjCBhDELMAkGA1UEBhMCREUxHzAdBgNVBAoMFmdlbWF0aWsgR21iSCBOT1QtVkFMSUQxMjAwBgNVBAsMKUtvbXBvbmVudGVuLUNBIGRlciBUZWxlbWF0aWtpbmZyYXN0cnVrdHVyMSAwHgYDVQQDDBdHRU0uS09NUC1DQTEwIFRFU1QtT05MWTAeFw0yMDA4MDQwMDAwMDBaFw0yNTA4MDQyMzU5NTlaMEkxCzAJBgNVBAYTAkRFMSYwJAYDVQQKDB1nZW1hdGlrIFRFU1QtT05MWSAtIE5PVC1WQUxJRDESMBAGA1UEAwwJSURQIFNpZyAxMFowFAYHKoZIzj0CAQYJKyQDAwIIAQEHA0IABJZQrG1NWxIB3kz/6Z2zojlkJqN3vJXZ3EZnJ6JXTXw5ZDFZ5XjwWmtgfomv3VOV7qzI5ycUSJysMWDEu3mqRcajge0wgeowHQYDVR0OBBYEFJ8DVLAZWT+BlojTD4MT/Na+ES8YMDgGCCsGAQUFBwEBBCwwKjAoBggrBgEFBQcwAYYcaHR0cDovL2VoY2EuZ2VtYXRpay5kZS9vY3NwLzAMBgNVHRMBAf8EAjAAMCEGA1UdIAQaMBgwCgYIKoIUAEwEgUswCgYIKoIUAEwEgSMwHwYDVR0jBBgwFoAUKPD45qnId8xDRduartc6g6wOD6gwLQYFKyQIAwMEJDAiMCAwHjAcMBowDAwKSURQLURpZW5zdDAKBggqghQATASCBDAOBgNVHQ8BAf8EBAMCB4AwCgYIKoZIzj0EAwIDRwAwRAIgVBPhAwyX8HAVH0O0b3+VazpBAWkQNjkEVRkv+EYX1e8CIFdn4O+nivM+XVi9xiKK4dW1R7MD334OpOPTFjeEhIVV"],"use":"sig","kid":"puk_idp_sig","kty":"EC","crv":"BP-256","x":"llCsbU1bEgHeTP_pnbOiOWQmo3e8ldncRmcnoldNfDk","y":"ZDFZ5XjwWmtgfomv3VOV7qzI5ycUSJysMWDEu3mqRcY"}

4200localhost:34983127.0.0.1:-1

RES Headers

Keep-Alive
timeout=60
Version
27.0.1
Date
Tue, 05 Mar 2024 11:42:25 GMT
Zeitpunkt der Antwort.
Zeitpunkt der Antwort.
Content-Type
application/json

RES Body

{
   "x5c" : [ "MIICsTCCAligAwIBAgIHA61I5ACUjTAKBggqhkjOPQQDAjCBhDELMAkGA1UEBhMCREUxHzAdBgNVBAoMFmdlbWF0aWsgR21iSCBOT1QtVkFMSUQxMjAwBgNVBAsMKUtvbXBvbmVudGVuLUNBIGRlciBUZWxlbWF0aWtpbmZyYXN0cnVrdHVyMSAwHgYDVQQDDBdHRU0uS09NUC1DQTEwIFRFU1QtT05MWTAeFw0yMDA4MDQwMDAwMDBaFw0yNTA4MDQyMzU5NTlaMEkxCzAJBgNVBAYTAkRFMSYwJAYDVQQKDB1nZW1hdGlrIFRFU1QtT05MWSAtIE5PVC1WQUxJRDESMBAGA1UEAwwJSURQIFNpZyAxMFowFAYHKoZIzj0CAQYJKyQDAwIIAQEHA0IABJZQrG1NWxIB3kz/6Z2zojlkJqN3vJXZ3EZnJ6JXTXw5ZDFZ5XjwWmtgfomv3VOV7qzI5ycUSJysMWDEu3mqRcajge0wgeowHQYDVR0OBBYEFJ8DVLAZWT+BlojTD4MT/Na+ES8YMDgGCCsGAQUFBwEBBCwwKjAoBggrBgEFBQcwAYYcaHR0cDovL2VoY2EuZ2VtYXRpay5kZS9vY3NwLzAMBgNVHRMBAf8EAjAAMCEGA1UdIAQaMBgwCgYIKoIUAEwEgUswCgYIKoIUAEwEgSMwHwYDVR0jBBgwFoAUKPD45qnId8xDRduartc6g6wOD6gwLQYFKyQIAwMEJDAiMCAwHjAcMBowDAwKSURQLURpZW5zdDAKBggqghQATASCBDAOBgNVHQ8BAf8EBAMCB4AwCgYIKoZIzj0EAwIDRwAwRAIgVBPhAwyX8HAVH0O0b3+VazpBAWkQNjkEVRkv+EYX1e8CIFdn4O+nivM+XVi9xiKK4dW1R7MD334OpOPTFjeEhIVV"
Enthält das verwendete Signer-Zertifikat als Base64 ASN.1 DER-Encoding. Hier kommt ausnahmsweise NICHT URL-safes Base64-Encoding zum Einsatz!
], "use" : "sig",
Erlaubte Verwendungen des Schlüssels. Siehe https://tools.ietf.org/html/rfc7517#section-4.2
"kid" : "puk_idp_sig",
Identifiziert den hier beschriebenen Schlüssel. Beschreibung siehe https://tools.ietf.org/html/rfc7517#section-4.5
@@ -746,57 +746,57 @@ "crv" : "BP-256", "x" : "llCsbU1bEgHeTP_pnbOiOWQmo3e8ldncRmcnoldNfDk",
X-Koordinate des öffentlichen Punkts des Schlüssels
"y" : "ZDFZ5XjwWmtgfomv3VOV7qzI5ycUSJysMWDEu3mqRcY"
Y-Koordinate des öffentlichen Punkts des Schlüssels
-}

body.x5c.0.content

X509 Certificate

Subject: C=DE,O=gematik TEST-ONLY - NOT-VALID,CN=IDP Sig 1

Issuer: C=DE,O=gematik GmbH NOT-VALID,OU=Komponenten-CA der Telematikinfrastruktur,CN=GEM.KOMP-CA10 TEST-ONLY

Serialnumber: 1034953504625805

Valid From: 2020-08-04T00:00Z[UTC]

Valid Until: 2025-08-04T23:59:59Z[UTC]


5 GET http://localhost:40931/idpEnc/jwk.json127.0.0.1:-1localhost:36057

5 GET http://localhost:38497/idpEnc/jwk.json127.0.0.1:-1localhost:34983

REQ Headers

User-Agent
IdP-Client
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Accept-Encoding
gzip
Nicht verpflichtend
Nicht verpflichtend
Host
localhost:36057
Nicht verpflichtend
Nicht verpflichtend
Connection
keep-alive
Nicht verpflichtend
Nicht verpflichtend
Empty body

REQ Headers

User-Agent
IdP-Client
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Accept-Encoding
gzip
Nicht verpflichtend
Nicht verpflichtend
Host
localhost:34983
Nicht verpflichtend
Nicht verpflichtend
Connection
keep-alive
Nicht verpflichtend
Nicht verpflichtend
Empty body

6200localhost:36057127.0.0.1:-1

RES Headers

Keep-Alive
timeout=60
Version
27.0.0
Date
Tue, 05 Mar 2024 08:55:51 GMT
Zeitpunkt der Antwort.
Zeitpunkt der Antwort.
Content-Type
application/json

RES Body

{
+{"use":"enc","kid":"puk_idp_enc","kty":"EC","crv":"BP-256","x":"QLpJ_LpFx-6yJhsb4OvHwU1khLnviiOwYOvmf5clK7w","y":"mHuknfNkoMmSbytt4br0YGihOixcmBKy80UfSLdXGe4"}

6200localhost:34983127.0.0.1:-1

RES Headers

Keep-Alive
timeout=60
Version
27.0.1
Date
Tue, 05 Mar 2024 11:42:28 GMT
Zeitpunkt der Antwort.
Zeitpunkt der Antwort.
Content-Type
application/json

RES Body

{
   "use" : "enc",
Erlaubte Verwendungen des Schlüssels. Siehe https://tools.ietf.org/html/rfc7517#section-4.2
"kid" : "puk_idp_enc",
Identifiziert den hier beschriebenen Schlüssel. Beschreibung siehe https://tools.ietf.org/html/rfc7517#section-4.5
"kty" : "EC", "crv" : "BP-256", "x" : "QLpJ_LpFx-6yJhsb4OvHwU1khLnviiOwYOvmf5clK7w",
X-Koordinate des öffentlichen Punkts des Schlüssels
"y" : "mHuknfNkoMmSbytt4br0YGihOixcmBKy80UfSLdXGe4"
Y-Koordinate des öffentlichen Punkts des Schlüssels
-}

7 GET http://localhost:40931/sign_response?client_id=eRezeptApp&response_type=code&redirect_uri=http%3A%2F%2Fredirect.gematik.de%2Ferezept&state=osgJZ4F-jsGweAAOYqhRE2o8T8nNVKWC&code_challenge=MS89IAmlkv_YxEqMQWaW3vNi7t6WIP2G_UQZ7YMprr8&code_challenge_method=S256&scope=openid+e-rezept&nonce=aISJnIaG1wID3AZupycFRA6eeBqm6ffH127.0.0.1:-1localhost:36057

7 GET http://localhost:38497/sign_response?client_id=eRezeptApp&response_type=code&redirect_uri=http%3A%2F%2Fredirect.gematik.de%2Ferezept&state=yROkmOYXz_3V83OY3S095p88zMbhIHP5&code_challenge=FVaRMlx0souj5y-jBaB4MAkhYJJmpLw5kdeHC93sr7s&code_challenge_method=S256&scope=openid+e-rezept&nonce=JMt0fIv21UaU0OGDkMmC5u9AwEWjNPhG127.0.0.1:-1localhost:34983

REQ Headers

User-Agent
IdP-Client
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Accept
application/json
Accept-Encoding
gzip
Nicht verpflichtend
Nicht verpflichtend
Host
localhost:36057
Nicht verpflichtend
Nicht verpflichtend
Connection
keep-alive
Nicht verpflichtend
Nicht verpflichtend
Empty body

REQ Headers

User-Agent
IdP-Client
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Accept
application/json
Accept-Encoding
gzip
Nicht verpflichtend
Nicht verpflichtend
Host
localhost:34983
Nicht verpflichtend
Nicht verpflichtend
Connection
keep-alive
Nicht verpflichtend
Nicht verpflichtend
Empty body

8200localhost:36057127.0.0.1:-1

8200localhost:34983127.0.0.1:-1

RES Headers

Keep-Alive
timeout=60
Cache-Control
no-store
Version
27.0.0
Pragma
no-cache
Date
Tue, 05 Mar 2024 08:55:51 GMT
Zeitpunkt der Antwort.
Zeitpunkt der Antwort.
Content-Type
application/json

RES Body

{
-  "challenge" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjM2MDU3IiwicmVzcG9uc2VfdHlwZSI6ImNvZGUiLCJzbmMiOiJWSXlvTEQ2bnRpeXc5cWhWcW5jN2tUSGdnazNvazdrREFySWozRi1QY213IiwiY29kZV9jaGFsbGVuZ2VfbWV0aG9kIjoiUzI1NiIsInRva2VuX3R5cGUiOiJjaGFsbGVuZ2UiLCJub25jZSI6ImFJU0puSWFHMXdJRDNBWnVweWNGUkE2ZWVCcW02ZmZIIiwiY2xpZW50X2lkIjoiZVJlemVwdEFwcCIsInNjb3BlIjoib3BlbmlkIGUtcmV6ZXB0Iiwic3RhdGUiOiJvc2dKWjRGLWpzR3dlQUFPWXFoUkUybzhUOG5OVktXQyIsInJlZGlyZWN0X3VyaSI6Imh0dHA6Ly9yZWRpcmVjdC5nZW1hdGlrLmRlL2VyZXplcHQiLCJleHAiOjE3MDk2MjkxMzIsImlhdCI6MTcwOTYyODk1MiwiY29kZV9jaGFsbGVuZ2UiOiJNUzg5SUFtbGt2X1l4RXFNUVdhVzN2Tmk3dDZXSVAyR19VUVo3WU1wcnI4IiwianRpIjoiNTU2ZDAzMjc4MmE3YTFjZiJ9.HEwCZOwy5x3msuJUEHaIn-mUVFIpDBK80tkaRswnuxIueeeMipfnYfzANUvcRRf_obIWoi4eUKX_6h8zIJoDlA",
Die vom Client mittels der eGK bzw. SMC-B zu signierende Challenge besteht aus einem Base64-codierten Challenge-Token.
+Date: Tue, 05 Mar 2024 11:42:28 GMT +Content-Type: application/json

RES Headers

Keep-Alive
timeout=60
Cache-Control
no-store
Version
27.0.1
Pragma
no-cache
Date
Tue, 05 Mar 2024 11:42:28 GMT
Zeitpunkt der Antwort.
Zeitpunkt der Antwort.
Content-Type
application/json

RES Body

{
+  "challenge" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjM0OTgzIiwicmVzcG9uc2VfdHlwZSI6ImNvZGUiLCJzbmMiOiJWQ0ZfbUU2eVNFM0VJSEY3aDBWUDNwVXpkY0RBOTBOUXU3ZVZseWFkUW9VIiwiY29kZV9jaGFsbGVuZ2VfbWV0aG9kIjoiUzI1NiIsInRva2VuX3R5cGUiOiJjaGFsbGVuZ2UiLCJub25jZSI6IkpNdDBmSXYyMVVhVTBPR0RrTW1DNXU5QXdFV2pOUGhHIiwiY2xpZW50X2lkIjoiZVJlemVwdEFwcCIsInNjb3BlIjoib3BlbmlkIGUtcmV6ZXB0Iiwic3RhdGUiOiJ5Uk9rbU9ZWHpfM1Y4M09ZM1MwOTVwODh6TWJoSUhQNSIsInJlZGlyZWN0X3VyaSI6Imh0dHA6Ly9yZWRpcmVjdC5nZW1hdGlrLmRlL2VyZXplcHQiLCJleHAiOjE3MDk2MzkxMjgsImlhdCI6MTcwOTYzODk0OCwiY29kZV9jaGFsbGVuZ2UiOiJGVmFSTWx4MHNvdWo1eS1qQmFCNE1Ba2hZSkptcEx3NWtkZUhDOTNzcjdzIiwianRpIjoiOTNlMzM3ZGQ2M2RhYzViMSJ9.YF1WALwBWl_mvps-Of-ITVYBwjoipu48jzFav8YWU3xTC0Q19NaACXiXNwd4xQL2eIDQr2Ln1HSxRqqwc8RIzw",
Die vom Client mittels der eGK bzw. SMC-B zu signierende Challenge besteht aus einem Base64-codierten Challenge-Token.
"user_consent" : { "requested_scopes" : { "e-rezept" : "Zugriff auf die E-Rezept-Funktionalität.", @@ -811,140 +811,140 @@ "family_name" : "Zustimmung zur Verarbeitung des Nachnamens" } } -}

body.challenge.content

JWT

Headers
{
+}

body.challenge.content

JWT

Headers
{
   "alg" : "BP256R1",
   "typ" : "JWT",
   "kid" : "puk_idp_sig"
Identifiziert den hier beschriebenen Schlüssel. Beschreibung siehe https://tools.ietf.org/html/rfc7517#section-4.5
-}

Body

{
-  "iss" : "http://localhost:36057",
+}

Body

{
+  "iss" : "http://localhost:34983",
   "response_type" : "code",
Referenziert den erwarteten Response-Type des Flows. Muss immer 'code' lauten. Damit wird angezeigt das es sich hierbei um einen Authorization Code Flow handelt. Für eine nähere Erläuterung siehe OpenID-Spezifikation.
- "snc" : "VIyoLD6ntiyw9qhVqnc7kTHggk3ok7kDArIj3F-Pcmw",
server-nonce. Wird verwendet um noise hinzuzufügen.
+ "snc" : "VCF_mE6ySE3EIHF7h0VP3pUzdcDA90NQu7eVlyadQoU",
server-nonce. Wird verwendet um noise hinzuzufügen.
"code_challenge_method" : "S256",
Das Primärsystem generiert einen Code-Verifier und erzeugt darüber einen Hash im Verfahren SHA-256, hier abgekürzt als S256. Teil von PKCE.
"token_type" : "challenge", - "nonce" : "aISJnIaG1wID3AZupycFRA6eeBqm6ffH",
String zu Verhinderung von CSRF-Attacken. Dieser Wert ist optional. Wenn er mitgegeben wird muss der gleiche Wert im abschließend ausgegebenen ID-Token wieder auftauchen. WICHTIG: Darf nicht länger als 512 Zeichen sein.
+ "nonce" : "JMt0fIv21UaU0OGDkMmC5u9AwEWjNPhG",
String zu Verhinderung von CSRF-Attacken. Dieser Wert ist optional. Wenn er mitgegeben wird muss der gleiche Wert im abschließend ausgegebenen ID-Token wieder auftauchen. WICHTIG: Darf nicht länger als 512 Zeichen sein.
"client_id" : "eRezeptApp",
Die client_id des Clients. Wird bei der Registrierung vergeben.
"scope" : "openid e-rezept",
Der Scope entspricht dem zwischen E-Rezept-Fachdienst und IDP festgelegten Wert. Mit diesem antwortet der E-Rezept-Fachdienst bei fehlendem ACCESS_TOKEN und http-Statuscode 401.
- "state" : "osgJZ4F-jsGweAAOYqhRE2o8T8nNVKWC",
Der state der Session. Sollte dem zufällig generierten state-Wert aus der initialen Anfrage entsprechen.
+ "state" : "yROkmOYXz_3V83OY3S095p88zMbhIHP5",
Der state der Session. Sollte dem zufällig generierten state-Wert aus der initialen Anfrage entsprechen.
"redirect_uri" : "http://redirect.gematik.de/erezept",
Die für den Client beim Server hinterlegte redirect_uri. Muss dem bei der Registrierung hinterlegten Wert entsprechen.
- "exp" : 1709629132,
Gültigkeit des Tokens
- "iat" : 1709628952,
Zeitpunkt der Ausstellung des Tokens
- "code_challenge" : "MS89IAmlkv_YxEqMQWaW3vNi7t6WIP2G_UQZ7YMprr8",
Der Hashwert des Code-Verifiers wird zum IDP als Code-Challenge gesendet. Teil von PKCE.
- "jti" : "556d032782a7a1cf"
A unique identifier for the token, which can be used to prevent reuse of the token. Value is a case-sensitive string.
-}

Signature

Was verified using Key puk_idp_sig

Signature

Was verified using Key puk_idp_sig

9 POST http://localhost:40931/sign_response127.0.0.1:-1localhost:36057

9 POST http://localhost:38497/sign_response127.0.0.1:-1localhost:34983

REQ Headers

Content-Type
application/x-www-form-urlencoded
User-Agent
IdP-Client
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Accept-Encoding
gzip
Nicht verpflichtend
Nicht verpflichtend
Content-Length
3978
Host
localhost:36057
Nicht verpflichtend
Nicht verpflichtend
Connection
keep-alive
Nicht verpflichtend
Nicht verpflichtend

REQ Body

namevalue
signed_challenge

JWE

Hierbei handelt es sich um das signierte und verschlüsselte "CHALLENGE_TOKEN".

Headers
{
+Host: localhost:34983
+Connection: keep-alive

REQ Headers

Content-Type
application/x-www-form-urlencoded
User-Agent
IdP-Client
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Accept-Encoding
gzip
Nicht verpflichtend
Nicht verpflichtend
Content-Length
3978
Host
localhost:34983
Nicht verpflichtend
Nicht verpflichtend
Connection
keep-alive
Nicht verpflichtend
Nicht verpflichtend

REQ Body

namevalue
signed_challenge

JWE

Hierbei handelt es sich um das signierte und verschlüsselte "CHALLENGE_TOKEN".

Headers
{
   "alg" : "ECDH-ES",
   "enc" : "A256GCM",
   "cty" : "NJWT",
-  "exp" : 1709629132,
Gültigkeit des Tokens
Dieser EXP-Header muss exakt dem EXP-Wert aus dem Body der Server-Challenge entsprechen.
+ "exp" : 1709639128,
Gültigkeit des Tokens
Dieser EXP-Header muss exakt dem EXP-Wert aus dem Body der Server-Challenge entsprechen.
"epk" : { "kty" : "EC", - "x" : "A_S9PLzWWkxAL9cmvG1FytnBgboT3izurSAk1566Y5o",
X-Koordinate des öffentlichen Punkts des Schlüssels
- "y" : "an1Cllk4CQ3FA5U3O2BTraN7-ex3DFMrkZpODrkcMyk",
Y-Koordinate des öffentlichen Punkts des Schlüssels
+ "x" : "GICJD1rqN2Wl7nkXGVOgiGAf96kIKE1PdjuvQRyRdF4",
X-Koordinate des öffentlichen Punkts des Schlüssels
+ "y" : "AiqvZVEmJncmhpwOWnQPbxDMdsLzrsUp0O_1bkJjtk8",
Y-Koordinate des öffentlichen Punkts des Schlüssels
"crv" : "BP-256" } -}

Body

{
-  "njwt" : "eyJ0eXAiOiJKV1QiLCJjdHkiOiJOSldUIiwieDVjIjpbIk1JSURTekNDQXZLZ0F3SUJBZ0lIQTI1VktBSGN2ekFLQmdncWhrak9QUVFEQWpDQmxqRUxNQWtHQTFVRUJoTUNSRVV4SHpBZEJnTlZCQW9NRm1kbGJXRjBhV3NnUjIxaVNDQk9UMVF0VmtGTVNVUXhSVEJEQmdOVkJBc01QRVZzWld0MGNtOXVhWE5qYUdVZ1IyVnpkVzVrYUdWcGRITnJZWEowWlMxRFFTQmtaWElnVkdWc1pXMWhkR2xyYVc1bWNtRnpkSEoxYTNSMWNqRWZNQjBHQTFVRUF3d1dSMFZOTGtWSFN5MURRVEV3SUZSRlUxUXRUMDVNV1RBZUZ3MHlNakV4TWpRd01EQXdNREJhRncweU5UQTFNVGt5TXpVNU5UbGFNSUhPTVFzd0NRWURWUVFHRXdKRVJURWRNQnNHQTFVRUNnd1VWR1Z6ZENCSFMxWXRVMVpPVDFRdFZrRk1TVVF4RXpBUkJnTlZCQXNNQ2xneE1UQTBNVEUyTnpVeEVqQVFCZ05WQkFzTUNURXdPVFV3TURrMk9URVNNQkFHQTFVRUJBd0pRc08yWkdWbVpXeGtNU0l3SUFZRFZRUXFEQmxFWVhKcGRYTWdUV2xqYUdGbGJDQkNjbWxoYmlCVlltSnZNVDh3UFFZRFZRUURERFpFWVhKcGRYTWdUV2xqYUdGbGJDQkNjbWxoYmlCVlltSnZJRWR5WVdZZ2RtOXVJRUxEdG1SbFptVnNaQ0JVUlZOVUxVOU9URmt3V2pBVUJnY3Foa2pPUFFJQkJna3JKQU1EQWdnQkFRY0RRZ0FFSGxOY296bmpkb2kwWXh2MjdCM3lHYUUvMTl2ak9KSTc4d1QyeURjZWMrbVdBbFJjL2ZFL0J5aFBjL0lPTGtnc2FabWJLdU5RaGhlcEU0UFE0cXRZRGFPQjd6Q0I3REFNQmdOVkhSTUJBZjhFQWpBQU1COEdBMVVkSXdRWU1CYUFGRVN4VEFGWVZCN2MyVGUrNUxJL0ttNmtYSWtkTUIwR0ExVWREZ1FXQkJSS1YzM3hmcWsySHRkOEx6VTR0SlRZWFZMdG1UQTRCZ2dyQmdFRkJRY0JBUVFzTUNvd0tBWUlLd1lCQlFVSE1BR0dIR2gwZEhBNkx5OWxhR05oTG1kbGJXRjBhV3N1WkdVdmIyTnpjQzh3RGdZRFZSMFBBUUgvQkFRREFnZUFNQ0FHQTFVZElBUVpNQmN3Q2dZSUtvSVVBRXdFZ1NNd0NRWUhLb0lVQUV3RVJqQXdCZ1VySkFnREF3UW5NQ1V3SXpBaE1COHdIVEFRREE1V1pYSnphV05vWlhKMFpTOHRjakFKQmdjcWdoUUFUQVF4TUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDSUh1c3dCSUlNVHZXUmYrYjVQdThudDltRVoxK0ZkOG8yQjNlMmF0VjJjNzNBaUJwQU1GdUlZMkpJQ1RpNW4xWWo2cnc5NFpMc2lFZlNKVzdtdTJlVTJMZGF3PT0iXSwiYWxnIjoiQlAyNTZSMSJ9.eyJuand0IjoiZXlKaGJHY2lPaUpDVURJMU5sSXhJaXdpZEhsd0lqb2lTbGRVSWl3aWEybGtJam9pY0hWclgybGtjRjl6YVdjaWZRLmV5SnBjM01pT2lKb2RIUndPaTh2Ykc5allXeG9iM04wT2pNMk1EVTNJaXdpY21WemNHOXVjMlZmZEhsd1pTSTZJbU52WkdVaUxDSnpibU1pT2lKV1NYbHZURVEyYm5ScGVYYzVjV2hXY1c1ak4ydFVTR2RuYXpOdmF6ZHJSRUZ5U1dvelJpMVFZMjEzSWl3aVkyOWtaVjlqYUdGc2JHVnVaMlZmYldWMGFHOWtJam9pVXpJMU5pSXNJblJ2YTJWdVgzUjVjR1VpT2lKamFHRnNiR1Z1WjJVaUxDSnViMjVqWlNJNkltRkpVMHB1U1dGSE1YZEpSRE5CV25Wd2VXTkdVa0UyWldWQ2NXMDJabVpJSWl3aVkyeHBaVzUwWDJsa0lqb2laVkpsZW1Wd2RFRndjQ0lzSW5OamIzQmxJam9pYjNCbGJtbGtJR1V0Y21WNlpYQjBJaXdpYzNSaGRHVWlPaUp2YzJkS1dqUkdMV3B6UjNkbFFVRlBXWEZvVWtVeWJ6aFVPRzVPVmt0WFF5SXNJbkpsWkdseVpXTjBYM1Z5YVNJNkltaDBkSEE2THk5eVpXUnBjbVZqZEM1blpXMWhkR2xyTG1SbEwyVnlaWHBsY0hRaUxDSmxlSEFpT2pFM01EazJNamt4TXpJc0ltbGhkQ0k2TVRjd09UWXlPRGsxTWl3aVkyOWtaVjlqYUdGc2JHVnVaMlVpT2lKTlV6ZzVTVUZ0Ykd0MlgxbDRSWEZOVVZkaFZ6TjJUbWszZERaWFNWQXlSMTlWVVZvM1dVMXdjbkk0SWl3aWFuUnBJam9pTlRVMlpEQXpNamM0TW1FM1lURmpaaUo5LkhFd0NaT3d5NXgzbXN1SlVFSGFJbi1tVVZGSXBEQks4MHRrYVJzd251eEl1ZWVlTWlwZm5ZZnpBTlV2Y1JSZl9vYklXb2k0ZVVLWF82aDh6SUpvRGxBIn0.R1n7fTXXBJwJi09kctdYWxtgiFuD7CxSCkrk7nrJN4ioSaV0huMhCKtjT30prrfp93-YYdJ5YkXmrxSnBXdXfA"
Ein verschachtelt enthaltenes JWT
-}

body.signed_challenge.body.njwt.content

JWT

Headers
{
+}

Body

{
+  "njwt" : "eyJ0eXAiOiJKV1QiLCJjdHkiOiJOSldUIiwieDVjIjpbIk1JSURTekNDQXZLZ0F3SUJBZ0lIQTI1VktBSGN2ekFLQmdncWhrak9QUVFEQWpDQmxqRUxNQWtHQTFVRUJoTUNSRVV4SHpBZEJnTlZCQW9NRm1kbGJXRjBhV3NnUjIxaVNDQk9UMVF0VmtGTVNVUXhSVEJEQmdOVkJBc01QRVZzWld0MGNtOXVhWE5qYUdVZ1IyVnpkVzVrYUdWcGRITnJZWEowWlMxRFFTQmtaWElnVkdWc1pXMWhkR2xyYVc1bWNtRnpkSEoxYTNSMWNqRWZNQjBHQTFVRUF3d1dSMFZOTGtWSFN5MURRVEV3SUZSRlUxUXRUMDVNV1RBZUZ3MHlNakV4TWpRd01EQXdNREJhRncweU5UQTFNVGt5TXpVNU5UbGFNSUhPTVFzd0NRWURWUVFHRXdKRVJURWRNQnNHQTFVRUNnd1VWR1Z6ZENCSFMxWXRVMVpPVDFRdFZrRk1TVVF4RXpBUkJnTlZCQXNNQ2xneE1UQTBNVEUyTnpVeEVqQVFCZ05WQkFzTUNURXdPVFV3TURrMk9URVNNQkFHQTFVRUJBd0pRc08yWkdWbVpXeGtNU0l3SUFZRFZRUXFEQmxFWVhKcGRYTWdUV2xqYUdGbGJDQkNjbWxoYmlCVlltSnZNVDh3UFFZRFZRUURERFpFWVhKcGRYTWdUV2xqYUdGbGJDQkNjbWxoYmlCVlltSnZJRWR5WVdZZ2RtOXVJRUxEdG1SbFptVnNaQ0JVUlZOVUxVOU9URmt3V2pBVUJnY3Foa2pPUFFJQkJna3JKQU1EQWdnQkFRY0RRZ0FFSGxOY296bmpkb2kwWXh2MjdCM3lHYUUvMTl2ak9KSTc4d1QyeURjZWMrbVdBbFJjL2ZFL0J5aFBjL0lPTGtnc2FabWJLdU5RaGhlcEU0UFE0cXRZRGFPQjd6Q0I3REFNQmdOVkhSTUJBZjhFQWpBQU1COEdBMVVkSXdRWU1CYUFGRVN4VEFGWVZCN2MyVGUrNUxJL0ttNmtYSWtkTUIwR0ExVWREZ1FXQkJSS1YzM3hmcWsySHRkOEx6VTR0SlRZWFZMdG1UQTRCZ2dyQmdFRkJRY0JBUVFzTUNvd0tBWUlLd1lCQlFVSE1BR0dIR2gwZEhBNkx5OWxhR05oTG1kbGJXRjBhV3N1WkdVdmIyTnpjQzh3RGdZRFZSMFBBUUgvQkFRREFnZUFNQ0FHQTFVZElBUVpNQmN3Q2dZSUtvSVVBRXdFZ1NNd0NRWUhLb0lVQUV3RVJqQXdCZ1VySkFnREF3UW5NQ1V3SXpBaE1COHdIVEFRREE1V1pYSnphV05vWlhKMFpTOHRjakFKQmdjcWdoUUFUQVF4TUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDSUh1c3dCSUlNVHZXUmYrYjVQdThudDltRVoxK0ZkOG8yQjNlMmF0VjJjNzNBaUJwQU1GdUlZMkpJQ1RpNW4xWWo2cnc5NFpMc2lFZlNKVzdtdTJlVTJMZGF3PT0iXSwiYWxnIjoiQlAyNTZSMSJ9.eyJuand0IjoiZXlKaGJHY2lPaUpDVURJMU5sSXhJaXdpZEhsd0lqb2lTbGRVSWl3aWEybGtJam9pY0hWclgybGtjRjl6YVdjaWZRLmV5SnBjM01pT2lKb2RIUndPaTh2Ykc5allXeG9iM04wT2pNME9UZ3pJaXdpY21WemNHOXVjMlZmZEhsd1pTSTZJbU52WkdVaUxDSnpibU1pT2lKV1EwWmZiVVUyZVZORk0wVkpTRVkzYURCV1VETndWWHBrWTBSQk9UQk9VWFUzWlZac2VXRmtVVzlWSWl3aVkyOWtaVjlqYUdGc2JHVnVaMlZmYldWMGFHOWtJam9pVXpJMU5pSXNJblJ2YTJWdVgzUjVjR1VpT2lKamFHRnNiR1Z1WjJVaUxDSnViMjVqWlNJNklrcE5kREJtU1hZeU1WVmhWVEJQUjBSclRXMUROWFU1UVhkRlYycE9VR2hISWl3aVkyeHBaVzUwWDJsa0lqb2laVkpsZW1Wd2RFRndjQ0lzSW5OamIzQmxJam9pYjNCbGJtbGtJR1V0Y21WNlpYQjBJaXdpYzNSaGRHVWlPaUo1VWs5cmJVOVpXSHBmTTFZNE0wOVpNMU13T1RWd09EaDZUV0pvU1VoUU5TSXNJbkpsWkdseVpXTjBYM1Z5YVNJNkltaDBkSEE2THk5eVpXUnBjbVZqZEM1blpXMWhkR2xyTG1SbEwyVnlaWHBsY0hRaUxDSmxlSEFpT2pFM01EazJNemt4TWpnc0ltbGhkQ0k2TVRjd09UWXpPRGswT0N3aVkyOWtaVjlqYUdGc2JHVnVaMlVpT2lKR1ZtRlNUV3g0TUhOdmRXbzFlUzFxUW1GQ05FMUJhMmhaU2twdGNFeDNOV3RrWlVoRE9UTnpjamR6SWl3aWFuUnBJam9pT1RObE16TTNaR1EyTTJSaFl6VmlNU0o5LllGMVdBTHdCV2xfbXZwcy1PZi1JVFZZQndqb2lwdTQ4anpGYXY4WVdVM3hUQzBRMTlOYUFDWGlYTndkNHhRTDJlSURRcjJMbjFIU3hScXF3YzhSSXp3In0.gBs9vMhOqrqHMTkh48bkOLb2kL0z8s7zfSZrH5d9jEGZv9IdM50eGTqYgZFI-tq3HkWkKiIwhQjdCVEn3GcD-g"
Ein verschachtelt enthaltenes JWT
+}

body.signed_challenge.body.njwt.content

JWT

Headers
{
   "typ" : "JWT",
   "cty" : "NJWT",
   "x5c" : [ "MIIDSzCCAvKgAwIBAgIHA25VKAHcvzAKBggqhkjOPQQDAjCBljELMAkGA1UEBhMCREUxHzAdBgNVBAoMFmdlbWF0aWsgR21iSCBOT1QtVkFMSUQxRTBDBgNVBAsMPEVsZWt0cm9uaXNjaGUgR2VzdW5kaGVpdHNrYXJ0ZS1DQSBkZXIgVGVsZW1hdGlraW5mcmFzdHJ1a3R1cjEfMB0GA1UEAwwWR0VNLkVHSy1DQTEwIFRFU1QtT05MWTAeFw0yMjExMjQwMDAwMDBaFw0yNTA1MTkyMzU5NTlaMIHOMQswCQYDVQQGEwJERTEdMBsGA1UECgwUVGVzdCBHS1YtU1ZOT1QtVkFMSUQxEzARBgNVBAsMClgxMTA0MTE2NzUxEjAQBgNVBAsMCTEwOTUwMDk2OTESMBAGA1UEBAwJQsO2ZGVmZWxkMSIwIAYDVQQqDBlEYXJpdXMgTWljaGFlbCBCcmlhbiBVYmJvMT8wPQYDVQQDDDZEYXJpdXMgTWljaGFlbCBCcmlhbiBVYmJvIEdyYWYgdm9uIELDtmRlZmVsZCBURVNULU9OTFkwWjAUBgcqhkjOPQIBBgkrJAMDAggBAQcDQgAEHlNcoznjdoi0Yxv27B3yGaE/19vjOJI78wT2yDcec+mWAlRc/fE/ByhPc/IOLkgsaZmbKuNQhhepE4PQ4qtYDaOB7zCB7DAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFESxTAFYVB7c2Te+5LI/Km6kXIkdMB0GA1UdDgQWBBRKV33xfqk2Htd8LzU4tJTYXVLtmTA4BggrBgEFBQcBAQQsMCowKAYIKwYBBQUHMAGGHGh0dHA6Ly9laGNhLmdlbWF0aWsuZGUvb2NzcC8wDgYDVR0PAQH/BAQDAgeAMCAGA1UdIAQZMBcwCgYIKoIUAEwEgSMwCQYHKoIUAEwERjAwBgUrJAgDAwQnMCUwIzAhMB8wHTAQDA5WZXJzaWNoZXJ0ZS8tcjAJBgcqghQATAQxMAoGCCqGSM49BAMCA0cAMEQCIHuswBIIMTvWRf+b5Pu8nt9mEZ1+Fd8o2B3e2atV2c73AiBpAMFuIY2JICTi5n1Yj6rw94ZLsiEfSJW7mu2eU2Ldaw=="
Enthält das verwendete Signer-Zertifikat als Base64 ASN.1 DER-Encoding. Hier kommt ausnahmsweise NICHT URL-safes Base64-Encoding zum Einsatz!
], "alg" : "BP256R1" -}

body.signed_challenge.body.njwt.content.header.x5c.0.content

X509 Certificate

Subject: C=DE,O=Test GKV-SVNOT-VALID,OU=X110411675,OU=109500969,SURNAME=Bödefeld,GIVENNAME=Darius Michael Brian Ubbo,CN=Darius Michael Brian Ubbo Graf von Bödefeld TEST-ONLY

Issuer: C=DE,O=gematik GmbH NOT-VALID,OU=Elektronische Gesundheitskarte-CA der Telematikinfrastruktur,CN=GEM.EGK-CA10 TEST-ONLY

Serialnumber: 965736952618175

Valid From: 2022-11-24T00:00Z[UTC]

Valid Until: 2025-05-19T23:59:59Z[UTC]


Body

{
-  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjM2MDU3IiwicmVzcG9uc2VfdHlwZSI6ImNvZGUiLCJzbmMiOiJWSXlvTEQ2bnRpeXc5cWhWcW5jN2tUSGdnazNvazdrREFySWozRi1QY213IiwiY29kZV9jaGFsbGVuZ2VfbWV0aG9kIjoiUzI1NiIsInRva2VuX3R5cGUiOiJjaGFsbGVuZ2UiLCJub25jZSI6ImFJU0puSWFHMXdJRDNBWnVweWNGUkE2ZWVCcW02ZmZIIiwiY2xpZW50X2lkIjoiZVJlemVwdEFwcCIsInNjb3BlIjoib3BlbmlkIGUtcmV6ZXB0Iiwic3RhdGUiOiJvc2dKWjRGLWpzR3dlQUFPWXFoUkUybzhUOG5OVktXQyIsInJlZGlyZWN0X3VyaSI6Imh0dHA6Ly9yZWRpcmVjdC5nZW1hdGlrLmRlL2VyZXplcHQiLCJleHAiOjE3MDk2MjkxMzIsImlhdCI6MTcwOTYyODk1MiwiY29kZV9jaGFsbGVuZ2UiOiJNUzg5SUFtbGt2X1l4RXFNUVdhVzN2Tmk3dDZXSVAyR19VUVo3WU1wcnI4IiwianRpIjoiNTU2ZDAzMjc4MmE3YTFjZiJ9.HEwCZOwy5x3msuJUEHaIn-mUVFIpDBK80tkaRswnuxIueeeMipfnYfzANUvcRRf_obIWoi4eUKX_6h8zIJoDlA"
Ein verschachtelt enthaltenes JWT
-}

body.signed_challenge.body.njwt.content.body.njwt.content

JWT

Headers
{
+}

body.signed_challenge.body.njwt.content.header.x5c.0.content

X509 Certificate

Subject: C=DE,O=Test GKV-SVNOT-VALID,OU=X110411675,OU=109500969,SURNAME=Bödefeld,GIVENNAME=Darius Michael Brian Ubbo,CN=Darius Michael Brian Ubbo Graf von Bödefeld TEST-ONLY

Issuer: C=DE,O=gematik GmbH NOT-VALID,OU=Elektronische Gesundheitskarte-CA der Telematikinfrastruktur,CN=GEM.EGK-CA10 TEST-ONLY

Serialnumber: 965736952618175

Valid From: 2022-11-24T00:00Z[UTC]

Valid Until: 2025-05-19T23:59:59Z[UTC]


Body

{
+  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjM0OTgzIiwicmVzcG9uc2VfdHlwZSI6ImNvZGUiLCJzbmMiOiJWQ0ZfbUU2eVNFM0VJSEY3aDBWUDNwVXpkY0RBOTBOUXU3ZVZseWFkUW9VIiwiY29kZV9jaGFsbGVuZ2VfbWV0aG9kIjoiUzI1NiIsInRva2VuX3R5cGUiOiJjaGFsbGVuZ2UiLCJub25jZSI6IkpNdDBmSXYyMVVhVTBPR0RrTW1DNXU5QXdFV2pOUGhHIiwiY2xpZW50X2lkIjoiZVJlemVwdEFwcCIsInNjb3BlIjoib3BlbmlkIGUtcmV6ZXB0Iiwic3RhdGUiOiJ5Uk9rbU9ZWHpfM1Y4M09ZM1MwOTVwODh6TWJoSUhQNSIsInJlZGlyZWN0X3VyaSI6Imh0dHA6Ly9yZWRpcmVjdC5nZW1hdGlrLmRlL2VyZXplcHQiLCJleHAiOjE3MDk2MzkxMjgsImlhdCI6MTcwOTYzODk0OCwiY29kZV9jaGFsbGVuZ2UiOiJGVmFSTWx4MHNvdWo1eS1qQmFCNE1Ba2hZSkptcEx3NWtkZUhDOTNzcjdzIiwianRpIjoiOTNlMzM3ZGQ2M2RhYzViMSJ9.YF1WALwBWl_mvps-Of-ITVYBwjoipu48jzFav8YWU3xTC0Q19NaACXiXNwd4xQL2eIDQr2Ln1HSxRqqwc8RIzw"
Ein verschachtelt enthaltenes JWT
+}

body.signed_challenge.body.njwt.content.body.njwt.content

JWT

Headers
{
   "alg" : "BP256R1",
   "typ" : "JWT",
   "kid" : "puk_idp_sig"
Identifiziert den hier beschriebenen Schlüssel. Beschreibung siehe https://tools.ietf.org/html/rfc7517#section-4.5
-}

Body

{
-  "iss" : "http://localhost:36057",
+}

Body

{
+  "iss" : "http://localhost:34983",
   "response_type" : "code",
Referenziert den erwarteten Response-Type des Flows. Muss immer 'code' lauten. Damit wird angezeigt das es sich hierbei um einen Authorization Code Flow handelt. Für eine nähere Erläuterung siehe OpenID-Spezifikation.
- "snc" : "VIyoLD6ntiyw9qhVqnc7kTHggk3ok7kDArIj3F-Pcmw",
server-nonce. Wird verwendet um noise hinzuzufügen.
+ "snc" : "VCF_mE6ySE3EIHF7h0VP3pUzdcDA90NQu7eVlyadQoU",
server-nonce. Wird verwendet um noise hinzuzufügen.
"code_challenge_method" : "S256",
Das Primärsystem generiert einen Code-Verifier und erzeugt darüber einen Hash im Verfahren SHA-256, hier abgekürzt als S256. Teil von PKCE.
"token_type" : "challenge", - "nonce" : "aISJnIaG1wID3AZupycFRA6eeBqm6ffH",
String zu Verhinderung von CSRF-Attacken. Dieser Wert ist optional. Wenn er mitgegeben wird muss der gleiche Wert im abschließend ausgegebenen ID-Token wieder auftauchen. WICHTIG: Darf nicht länger als 512 Zeichen sein.
+ "nonce" : "JMt0fIv21UaU0OGDkMmC5u9AwEWjNPhG",
String zu Verhinderung von CSRF-Attacken. Dieser Wert ist optional. Wenn er mitgegeben wird muss der gleiche Wert im abschließend ausgegebenen ID-Token wieder auftauchen. WICHTIG: Darf nicht länger als 512 Zeichen sein.
"client_id" : "eRezeptApp",
Die client_id des Clients. Wird bei der Registrierung vergeben.
"scope" : "openid e-rezept",
Der Scope entspricht dem zwischen E-Rezept-Fachdienst und IDP festgelegten Wert. Mit diesem antwortet der E-Rezept-Fachdienst bei fehlendem ACCESS_TOKEN und http-Statuscode 401.
- "state" : "osgJZ4F-jsGweAAOYqhRE2o8T8nNVKWC",
Der state der Session. Sollte dem zufällig generierten state-Wert aus der initialen Anfrage entsprechen.
+ "state" : "yROkmOYXz_3V83OY3S095p88zMbhIHP5",
Der state der Session. Sollte dem zufällig generierten state-Wert aus der initialen Anfrage entsprechen.
"redirect_uri" : "http://redirect.gematik.de/erezept",
Die für den Client beim Server hinterlegte redirect_uri. Muss dem bei der Registrierung hinterlegten Wert entsprechen.
- "exp" : 1709629132,
Gültigkeit des Tokens
- "iat" : 1709628952,
Zeitpunkt der Ausstellung des Tokens
- "code_challenge" : "MS89IAmlkv_YxEqMQWaW3vNi7t6WIP2G_UQZ7YMprr8",
Der Hashwert des Code-Verifiers wird zum IDP als Code-Challenge gesendet. Teil von PKCE.
- "jti" : "556d032782a7a1cf"
A unique identifier for the token, which can be used to prevent reuse of the token. Value is a case-sensitive string.
-}

Signature

Was verified using Key puk_idp_sig

Signature

Was verified using Key x5c-header certificate

Encryption info

Was decrypted using Key prk_idp_enc

Hierbei handelt es sich um das signierte und verschlüsselte "CHALLENGE_TOKEN".

Signature

Was verified using Key puk_idp_sig

Signature

Was verified using Key x5c-header certificate

Encryption info

Was decrypted using Key prk_idp_enc

Hierbei handelt es sich um das signierte und verschlüsselte "CHALLENGE_TOKEN".

10302localhost:36057127.0.0.1:-1

10302localhost:34983127.0.0.1:-1

RES Headers

Keep-Alive
timeout=60
Cache-Control
no-store
Version
27.0.0
Pragma
no-cache
Content-Length
0
Date
Tue, 05 Mar 2024 08:55:53 GMT
Zeitpunkt der Antwort.
Zeitpunkt der Antwort.
Location
http://redirect.gematik.de/erezept?
Optional[code]=<Authorization Code in Base64-URL-Safe Encoding. Wird unten detaillierter aufgeführt>
Der Authorization-Code, so wie er vom Server in der vorigen Antwort auf POST /sign_response zurück gegeben wurde
&Optional[ssotoken]=<SSO-Token in Base64-URL-Safe Encoding. Wird unten detaillierter aufgeführt>
Der SSO-Token. Mit diesem kann der Client sich wiederholt einloggen ohne erneut den Besitz der Karte durch unterschreiben einer Challenge beweisen zu müssen. Er ist vom IDP für den IDP verschlüsselt und dementsprechend vom Client nicht weiter zu verarbeiten.
&state=osgJZ4F-jsGweAAOYqhRE2o8T8nNVKWC
Der state der Session. Sollte dem zufällig generierten state-Wert aus der initialen Anfrage entsprechen.

header.Location.code.value

JWE

Headers
{
+Date: Tue, 05 Mar 2024 11:42:30 GMT
+Location: http://redirect.gematik.de/erezept?code=eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIiwiY3R5IjoiTkpXVCIsImV4cCI6MTcwOTYzOTAxMH0..JJLRrPMGelu8pVEo.lRZJU3NdBNKEe8-4GMtEYZ8n9Lwi8GY0tvt3BJxzCvTfhp8yGLM49Rprb0OHLn3INAUFKybNGu83emJyjKtrsgy398hgeGnHobMj8rZ-4a0YSXixsnBq6DHt5hdgMMbSWvHs-UA9oKCE5Z0Z5HNSX3iaqwUh9f2rjZsTNk4plw7I7Zkfvws5rJO-6fYtqYA5JXizV-FEgqgwWwJpiGR_RHlbuPttuejfq5yvc0aVeeP4OYrm-I4k5HVEEHNHm5sJFmPNHxzWuxhzkZ3h_KmboF_Evmv4Ww09cVtoC_N-BbA6yNhcNJs4hCX4G2lzYkU9iH2227JbnFQSZM017Yp_Q-Oj9ks668doN3Zfvl7U0-1QxqBb89FVUcOZZev2qPajF3EjRhX7Z5lhXf8udPfSd8IPZQ-v1dbt09fHFTWjmcQ1CEwrsU2FKwxTuvbyufh-4q64pP8hkGmYpezYzPsyd7Xs9hD-MhwznPALQPRrjFjy5mmRLGdi1OVFBWAAHkyuXG8CessXQ7fwAfa5UIWJ0yKSaJ-FVsyGoICjTKbhGbmCjWzA9VxGnRhIhAcM3QV-KmOviySoXl96z6sUlg-K2f1Jx8fRETWeqMhHHsJ5qqBvd9xh5FcQLyf7N7LBInfJ_MIrbAjinarObM2-YbnkPFoL_hpRzOMf01AlcTOt_O-bh3K2BFbLuz8Dt4WNo3t1TXMmATIgjVBXnnSQTcw4BK-lqgq8HUSFdA6OQLDgQw5rXJ-IquQA_T3vd3REpvDfAO0CsuvodDdwfs49rJxIMdjYLcuvbwdVl-UtUfgJ5trQtIHS2MVywb3EA5ogHJobru1ZL--dJD2zDgF4vr8xMzzzQB3IK688NeZ_4SfpSXyRWVRkE-_nrnLpx2d_kRqS8ShMqcGjOGt0j3OwkI0g1oyzSLUb_HRKFVhDNJVDIS3m0KMxthgMz9fqTrHq9IJMfcFzKrL9wzainmzJ7AFU_ZAkLGhea7GQEg74FpZWAddT9f8l7o_PMnsZxO-1e5Wi3IdpK3hMcSYBiKhoKZzIZN9MRhSugqMt1MsZIblqDHHf1UOcXdzeF-zfBKJqcsJVMLqXINzCo02XAwhEauYEbKqXXy2ld-v4KcCmBv0BAzFUt68CXmjnaiaVotDXecm7XAescuq4yI5zuDauLrCGiWUpZsqNf99q1TJBH1edgPH-W6Mm7NQguBCp9lIAC70rHfaVeuRbxlnFN6QfvEJrmyIGfIVfDexdAq2o1hCHkCSMsrVIKg0MJp23gR3W_34aChU5U9cZKkozfibcOrTqGyVBAew30K9jhWk7k1cIgV86EYw7Q8UuQj48Mzk-ePZpgM_7RioBhoHyN2BxUjcDkLlzYIS0ZInKyPgMoyB3q6frq8l4H_7uFno7OynCa4LeJnq2Op3jW0z9.h8UYhhNp9Xdxk5c3TtLQJA&ssotoken=eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIiwiY3R5IjoiTkpXVCIsImV4cCI6MTcwOTY4MjE1MH0..OZjD7D3X7vWVROmC.5ETGF-ze6uYNJus1PimtbTp1MaRPxQscbZxYbwDrE50409xNFB3xJdIjdUtwioCpTxkginqq4rZic3XcSl_6Z3GHnoeWS24lxDxv7SufKvW2Hva1tJ_V81y7mUn1u76jW54iUD-yN71tErY5Pe8p-GjSJ98f605gLzrNDFKdHd_PrdwiWCWRSY9zzvszKWZnw2iTPDMkhOIC0cCr5x0514ZoCApaaj3TWYKcgwKsYLXlpS3-4PimYJQ5rU9GB1Cgj7yR5_DTwJcMneEw3jOoS_7_mWFlqhpxbDd7O9rG0hV215xyY0jySspxDzKLJTqJe_eCgarQvHr_jxZpzDassMB6gl1DSU8Wodq7-bw8oKkeMqNbs2MRwcSlJUVFYWEGWrLW4cXSvS2lkjYPB20wH4X7ehLXlxD5C-MZgt-nrPF6GrcvsVIXtyD9zvrxGa9YlRZDBmqHs_jUVJaCb-SKptmLrOeVRdjEar8u6d3g_L8qXYGi7CdRfI_4F5b2nIZD9_Faexdyv_Ydu98SiRof-D-6bruf5NwVH2LVlmnpXYQRGGjvJPdL6FfsuoT4YPy2ljMUPRQAdWZ4EgSWm2G2De1x-qLQMBGMrnLEwYe2WwbUTZ-FgJgseF-SJ0c1-oiYSwUXVGPbWmxmacx4KOnAI6U3I-6Kn5DFlAnuNcYKfocuopplaAL6LUk3Jvgf1U8ij_XMtl2CcpiRdhFtMtDRvfK-WYSQ9_p5CVLW7zTJU0laFLN8YhhCQBNsffzy-Xp5NAxNLTysm-5MjbsUZwmwhYWVli2De_6SpndDept8ykWC-rLd305VB1BLSU9lj5egLxqjNJrk7rfTXk0zPyvWCjj2TY6tFBJ6tO760Jl7tGew8ulSXlQEuu1tovc0cADts41AoU25lDniNc6gcliV4pTsPZbqWGicA9xlnjT87qbzuVQQVztCvNRA-URvJo5vX3uDjsiR0usCAMcoL7WI-LWWTykQhODcbcxqfAcMZCGzWS_nkkejmGJPTxJPiZ-c9VrUlOE2G2Pb8BmkWLWOp2RAuDCjMuMeUiAzsxSBgL5bzuZcSUJjN90H8LG50ihnQpCCCVfbjQfibNtG_f4S1FnyWad6hAVBAX4769md4CPuoadXB8ohPRbU7ZiTb-t16F4Vx70jHWCXBxbB54I0xMVBPWl2jHuFQou6e5xczLV5Nd29oVsloI6RMBn2ob5pOJR2htpuZprnnwDXwAQzeXC9HYAmEvUk2hW2jXAkDQvjUI2boq6JF4-okTmBPVt76BooCxW3YGpNYBRrwpuMXUS7abZnYgJ2dGIkMBFY0-WIw3YvJpv9AkLiUjm9nyjwwWE4vs_3rXUCobVQS3OYkaC4e8kskL2VTRhfu7Zq0_v92qYTdx-ZZXpUVHftfcYMZgJwnktaCN7eDFceFByKfX2qsdd8llH_IUcFM2k7Xy7FLAe-gZ5V9FYyafqqii2XUZCiiT7KuX1bipQODzHTyPbEhBJITKr9vn3x7-KCLWOEL4HF3X5pL06mcNliqBg19PfK2OVOWTErIDAgLV5pG0V2UO5gGnTFC9CaFgJypCg31FK7E6X2tb_NVDdCTl4xvjGe8QSfrI6reVBVXQYW2hRqMVdvcnxskXljRQD1XtkcOVPahorezM7I2UtNqDp-q35R25BPQ3NMcKG98rdwf6SjETCQpRaYnhble3Vd-DC2t0wel1G_2GYNiZpTaqfi_giWZnh5nHz1DlWn5ExsIIiSxVTGnzHT88OlaKlAF3pKmvVQdZDwsBb3W0mirN3JsjPioMdA9BGqZtkZ9CbdoW9M8f40dzVyaTkGgR8T7q7JwksL4R0pISv5vLrt55o3EjwuxPQggjTZSxslOBCgUtofxc_dtv0nfC2Zr-9FQ_-03VygYzt2CjGwiD4IT3uw9zzVSrx3ePUn5FassZ5rL97pDa6iQbIRow_g2u5OakINLXBzegSME7Na9GwrpxUhlGeEA7PkmWRELAYJII95WxVcrbg7-IFwDgw5ptg8Ibf2kNCzH5Vh9RP0cKONTH5LYPWvHgNdzK1IL_ELQytsrQbJnljDs8BlmOG2dTWmIWMdhFzY_J6Ym2Y8tCRzG3iueMJ2NEGeJYmWR_uxAO-GPsLR_PuMRuDPfdk0hxUCL-L2rF-3F2h88rpTiHMtltj5fAC5UgGk725rTGlSgVP0djr6gF6XgLhDbkAQAErQScUBR2Eynfg3I-9fKVkTnOFXkrm6Em7PA-kZp-Q_T4qRI276-0uLx8sPNajsmYPq85KUWo8sWHYIPHgEXoUzln7VkAeb3bQFSkesjhdbYqF3Lnb2maRIm7rq28l9YrjswxXMmNwEOzQtBJnFjL_J3kWFmSsFKQ-DE6BaZ8o3ygVX4QVflrC3WpRHgVnxCwtsKhQgG9JBXHvg1fwCoPAItTAHGodcxMkC72lVB6ihEdgTECd79V5r4GPqnPlqpGZvveZeJU7Guae6qFFOerFzBihbcorExo9scFTmtDl9-_Uz39tMe5DNCoYyVP3npVzJ_2sRA7xHgtk7kKLyWipXuto01H1xYi1Pc_9Jy_nmaNRwx8XUz5MQdxERq3sGzenr7I2UMis5K8UlMJ9OtU-tujmSVS3jJTwMvNYCgfnpPH4T9EkJYFkniKxR_yExX9DYGjDWK6mjtBZxJeabrYjeqH2DbhwPh6G41HHq7Y66vWeSyFWl9Q_j1wEaXMkM5kZWOpJc9s2yELNoYgLXQMH52U-MXP4CH42DjCNKO3-z5Bz-83qlqW21zNJz3hQHaMUEZEm0D3yTNmqVR6nAJKbqHSgRduIqVMQSHrCGE4r9FdwCeg7LjhmN6vZFShYdGYpxkraWj8qtqmAbXX-OtDV9ejzLzvURD8k5je4ZCMK9Hbqlnf-J1fzI5US9iJsrgtaLe6_aQz6opvZgd1yaVvHyJ491tP8N7wAmKkUog2vHR73_LHxnivfwhg7E1eOoQdALruJ2ZfyqYx7B7XzycrUKlGxwljgV47_vxAfWgGsnGka_xtsENgMWGQiNUVjSBhUc5_bV__7I.cyTZP50Rv_vDoR8mwNhzIQ&state=yROkmOYXz_3V83OY3S095p88zMbhIHP5

RES Headers

Keep-Alive
timeout=60
Cache-Control
no-store
Version
27.0.1
Pragma
no-cache
Content-Length
0
Date
Tue, 05 Mar 2024 11:42:30 GMT
Zeitpunkt der Antwort.
Zeitpunkt der Antwort.
Location
http://redirect.gematik.de/erezept?
Optional[code]=<Authorization Code in Base64-URL-Safe Encoding. Wird unten detaillierter aufgeführt>
Der Authorization-Code, so wie er vom Server in der vorigen Antwort auf POST /sign_response zurück gegeben wurde
&Optional[ssotoken]=<SSO-Token in Base64-URL-Safe Encoding. Wird unten detaillierter aufgeführt>
Der SSO-Token. Mit diesem kann der Client sich wiederholt einloggen ohne erneut den Besitz der Karte durch unterschreiben einer Challenge beweisen zu müssen. Er ist vom IDP für den IDP verschlüsselt und dementsprechend vom Client nicht weiter zu verarbeiten.
&state=yROkmOYXz_3V83OY3S095p88zMbhIHP5
Der state der Session. Sollte dem zufällig generierten state-Wert aus der initialen Anfrage entsprechen.

header.Location.code.value

JWE

Headers
{
   "alg" : "dir",
   "enc" : "A256GCM",
   "cty" : "NJWT",
-  "exp" : 1709629013
Gültigkeit des Tokens
-}

Body

{
-  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJvcmdhbml6YXRpb25OYW1lIjoiVGVzdCBHS1YtU1ZOT1QtVkFMSUQiLCJwcm9mZXNzaW9uT0lEIjoiMS4yLjI3Ni4wLjc2LjQuNDkiLCJpZE51bW1lciI6IlgxMTA0MTE2NzUiLCJhbXIiOlsibWZhIiwic2MiLCJwaW4iXSwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDozNjA1NyIsInJlc3BvbnNlX3R5cGUiOiJjb2RlIiwic25jIjoicjJndk1lbW5zWlBJRWVvbjNlaFZYckppRURfRlVtTTIiLCJjb2RlX2NoYWxsZW5nZV9tZXRob2QiOiJTMjU2IiwiZ2l2ZW5fbmFtZSI6IkRhcml1cyBNaWNoYWVsIEJyaWFuIFViYm8iLCJ0b2tlbl90eXBlIjoiY29kZSIsIm5vbmNlIjoiYUlTSm5JYUcxd0lEM0FadXB5Y0ZSQTZlZUJxbTZmZkgiLCJjbGllbnRfaWQiOiJlUmV6ZXB0QXBwIiwic2NvcGUiOiJvcGVuaWQgZS1yZXplcHQiLCJhdXRoX3RpbWUiOjE3MDk2Mjg5NTMsInJlZGlyZWN0X3VyaSI6Imh0dHA6Ly9yZWRpcmVjdC5nZW1hdGlrLmRlL2VyZXplcHQiLCJzdGF0ZSI6Im9zZ0paNEYtanNHd2VBQU9ZcWhSRTJvOFQ4bk5WS1dDIiwiZXhwIjoxNzA5NjI5MDEzLCJmYW1pbHlfbmFtZSI6IkLDtmRlZmVsZCIsImlhdCI6MTcwOTYyODk1MywiY29kZV9jaGFsbGVuZ2UiOiJNUzg5SUFtbGt2X1l4RXFNUVdhVzN2Tmk3dDZXSVAyR19VUVo3WU1wcnI4IiwianRpIjoiYmNlOGViNzllMjY2YzBjNyJ9.IIpWe6pG3F2RAOI_nPD94ef3t6RLAB-2bXkCg_e3SkYq3bLb6bUit18qaoxXY8dA5yAboBPS5KVecue5EHbiwQ"
Ein verschachtelt enthaltenes JWT
-}

header.Location.code.value.body.njwt.content

JWT

Headers
{
+  "exp" : 1709639010
Gültigkeit des Tokens
+}

Body

{
+  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJvcmdhbml6YXRpb25OYW1lIjoiVGVzdCBHS1YtU1ZOT1QtVkFMSUQiLCJwcm9mZXNzaW9uT0lEIjoiMS4yLjI3Ni4wLjc2LjQuNDkiLCJpZE51bW1lciI6IlgxMTA0MTE2NzUiLCJhbXIiOlsibWZhIiwic2MiLCJwaW4iXSwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDozNDk4MyIsInJlc3BvbnNlX3R5cGUiOiJjb2RlIiwic25jIjoiZWNKdm9UWUQydWdGTnUtMnplV1E0aDFEdjNvdDJyRkoiLCJjb2RlX2NoYWxsZW5nZV9tZXRob2QiOiJTMjU2IiwiZ2l2ZW5fbmFtZSI6IkRhcml1cyBNaWNoYWVsIEJyaWFuIFViYm8iLCJ0b2tlbl90eXBlIjoiY29kZSIsIm5vbmNlIjoiSk10MGZJdjIxVWFVME9HRGtNbUM1dTlBd0VXak5QaEciLCJjbGllbnRfaWQiOiJlUmV6ZXB0QXBwIiwic2NvcGUiOiJvcGVuaWQgZS1yZXplcHQiLCJhdXRoX3RpbWUiOjE3MDk2Mzg5NTAsInJlZGlyZWN0X3VyaSI6Imh0dHA6Ly9yZWRpcmVjdC5nZW1hdGlrLmRlL2VyZXplcHQiLCJzdGF0ZSI6InlST2ttT1lYel8zVjgzT1kzUzA5NXA4OHpNYmhJSFA1IiwiZXhwIjoxNzA5NjM5MDEwLCJmYW1pbHlfbmFtZSI6IkLDtmRlZmVsZCIsImlhdCI6MTcwOTYzODk1MCwiY29kZV9jaGFsbGVuZ2UiOiJGVmFSTWx4MHNvdWo1eS1qQmFCNE1Ba2hZSkptcEx3NWtkZUhDOTNzcjdzIiwianRpIjoiZjRjYWIxZmIwZGI1NWUwZSJ9.TL4iZ1YzTmhwisvK8MJQBPp7QvgDrExZubUoaq_K9NBKyhPwtCAT3a3xXwvKI3mNI8UhRT1pnHdVgMOq-q6miA"
Ein verschachtelt enthaltenes JWT
+}

header.Location.code.value.body.njwt.content

JWT

Headers
{
   "alg" : "BP256R1",
   "typ" : "JWT",
   "kid" : "puk_idp_sig"
Identifiziert den hier beschriebenen Schlüssel. Beschreibung siehe https://tools.ietf.org/html/rfc7517#section-4.5
-}

Body

{
+}

Body

{
   "organizationName" : "Test GKV-SVNOT-VALID",
   "professionOID" : "1.2.276.0.76.4.49",
   "idNummer" : "X110411675",
   "amr" : [ "mfa", "sc", "pin" ],
-  "iss" : "http://localhost:36057",
+  "iss" : "http://localhost:34983",
   "response_type" : "code",
Referenziert den erwarteten Response-Type des Flows. Muss immer 'code' lauten. Damit wird angezeigt das es sich hierbei um einen Authorization Code Flow handelt. Für eine nähere Erläuterung siehe OpenID-Spezifikation.
- "snc" : "r2gvMemnsZPIEeon3ehVXrJiED_FUmM2",
server-nonce. Wird verwendet um noise hinzuzufügen.
+ "snc" : "ecJvoTYD2ugFNu-2zeWQ4h1Dv3ot2rFJ",
server-nonce. Wird verwendet um noise hinzuzufügen.
"code_challenge_method" : "S256",
Das Primärsystem generiert einen Code-Verifier und erzeugt darüber einen Hash im Verfahren SHA-256, hier abgekürzt als S256. Teil von PKCE.
"given_name" : "Darius Michael Brian Ubbo", "token_type" : "code", - "nonce" : "aISJnIaG1wID3AZupycFRA6eeBqm6ffH",
String zu Verhinderung von CSRF-Attacken. Dieser Wert ist optional. Wenn er mitgegeben wird muss der gleiche Wert im abschließend ausgegebenen ID-Token wieder auftauchen. WICHTIG: Darf nicht länger als 512 Zeichen sein.
+ "nonce" : "JMt0fIv21UaU0OGDkMmC5u9AwEWjNPhG",
String zu Verhinderung von CSRF-Attacken. Dieser Wert ist optional. Wenn er mitgegeben wird muss der gleiche Wert im abschließend ausgegebenen ID-Token wieder auftauchen. WICHTIG: Darf nicht länger als 512 Zeichen sein.
"client_id" : "eRezeptApp",
Die client_id des Clients. Wird bei der Registrierung vergeben.
"scope" : "openid e-rezept",
Der Scope entspricht dem zwischen E-Rezept-Fachdienst und IDP festgelegten Wert. Mit diesem antwortet der E-Rezept-Fachdienst bei fehlendem ACCESS_TOKEN und http-Statuscode 401.
- "auth_time" : 1709628953,
Timestamp der Authentisierung
+ "auth_time" : 1709638950,
Timestamp der Authentisierung
"redirect_uri" : "http://redirect.gematik.de/erezept",
Die für den Client beim Server hinterlegte redirect_uri. Muss dem bei der Registrierung hinterlegten Wert entsprechen.
- "state" : "osgJZ4F-jsGweAAOYqhRE2o8T8nNVKWC",
Der state der Session. Sollte dem zufällig generierten state-Wert aus der initialen Anfrage entsprechen.
- "exp" : 1709629013,
Gültigkeit des Tokens
+ "state" : "yROkmOYXz_3V83OY3S095p88zMbhIHP5",
Der state der Session. Sollte dem zufällig generierten state-Wert aus der initialen Anfrage entsprechen.
+ "exp" : 1709639010,
Gültigkeit des Tokens
"family_name" : "Bödefeld", - "iat" : 1709628953,
Zeitpunkt der Ausstellung des Tokens
- "code_challenge" : "MS89IAmlkv_YxEqMQWaW3vNi7t6WIP2G_UQZ7YMprr8",
Der Hashwert des Code-Verifiers wird zum IDP als Code-Challenge gesendet. Teil von PKCE.
- "jti" : "bce8eb79e266c0c7"
A unique identifier for the token, which can be used to prevent reuse of the token. Value is a case-sensitive string.
-}

Signature

Was verified using Key puk_idp_sig

Encryption info

Was decrypted using Key IDP symmetricEncryptionKey

header.Location.ssotoken.value

JWE

Headers
{
+  "iat" : 1709638950,
Zeitpunkt der Ausstellung des Tokens
+ "code_challenge" : "FVaRMlx0souj5y-jBaB4MAkhYJJmpLw5kdeHC93sr7s",
Der Hashwert des Code-Verifiers wird zum IDP als Code-Challenge gesendet. Teil von PKCE.
+ "jti" : "f4cab1fb0db55e0e"
A unique identifier for the token, which can be used to prevent reuse of the token. Value is a case-sensitive string.
+}

Signature

Was verified using Key puk_idp_sig

Encryption info

Was decrypted using Key IDP symmetricEncryptionKey

header.Location.ssotoken.value

JWE

Headers
{
   "alg" : "dir",
   "enc" : "A256GCM",
   "cty" : "NJWT",
-  "exp" : 1709672153
Gültigkeit des Tokens
-}

Body

{
-  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJvcmdhbml6YXRpb25OYW1lIjoiVGVzdCBHS1YtU1ZOT1QtVkFMSUQiLCJwcm9mZXNzaW9uT0lEIjoiMS4yLjI3Ni4wLjc2LjQuNDkiLCJhdXRoX3RpbWUiOjE3MDk2Mjg5NTMsImFtciI6WyJtZmEiLCJzYyIsInBpbiJdLCJpZE51bW1lciI6IlgxMTA0MTE2NzUiLCJpc3MiOiJodHRwczovL2lkcC5kZXYuZ2VtYXRpay5zb2x1dGlvbnMiLCJjbmYiOnsieDVjIjpbIk1JSURTekNDQXZLZ0F3SUJBZ0lIQTI1VktBSGN2ekFLQmdncWhrak9QUVFEQWpDQmxqRUxNQWtHQTFVRUJoTUNSRVV4SHpBZEJnTlZCQW9NRm1kbGJXRjBhV3NnUjIxaVNDQk9UMVF0VmtGTVNVUXhSVEJEQmdOVkJBc01QRVZzWld0MGNtOXVhWE5qYUdVZ1IyVnpkVzVrYUdWcGRITnJZWEowWlMxRFFTQmtaWElnVkdWc1pXMWhkR2xyYVc1bWNtRnpkSEoxYTNSMWNqRWZNQjBHQTFVRUF3d1dSMFZOTGtWSFN5MURRVEV3SUZSRlUxUXRUMDVNV1RBZUZ3MHlNakV4TWpRd01EQXdNREJhRncweU5UQTFNVGt5TXpVNU5UbGFNSUhPTVFzd0NRWURWUVFHRXdKRVJURWRNQnNHQTFVRUNnd1VWR1Z6ZENCSFMxWXRVMVpPVDFRdFZrRk1TVVF4RXpBUkJnTlZCQXNNQ2xneE1UQTBNVEUyTnpVeEVqQVFCZ05WQkFzTUNURXdPVFV3TURrMk9URVNNQkFHQTFVRUJBd0pRc08yWkdWbVpXeGtNU0l3SUFZRFZRUXFEQmxFWVhKcGRYTWdUV2xqYUdGbGJDQkNjbWxoYmlCVlltSnZNVDh3UFFZRFZRUURERFpFWVhKcGRYTWdUV2xqYUdGbGJDQkNjbWxoYmlCVlltSnZJRWR5WVdZZ2RtOXVJRUxEdG1SbFptVnNaQ0JVUlZOVUxVOU9URmt3V2pBVUJnY3Foa2pPUFFJQkJna3JKQU1EQWdnQkFRY0RRZ0FFSGxOY296bmpkb2kwWXh2MjdCM3lHYUUvMTl2ak9KSTc4d1QyeURjZWMrbVdBbFJjL2ZFL0J5aFBjL0lPTGtnc2FabWJLdU5RaGhlcEU0UFE0cXRZRGFPQjd6Q0I3REFNQmdOVkhSTUJBZjhFQWpBQU1COEdBMVVkSXdRWU1CYUFGRVN4VEFGWVZCN2MyVGUrNUxJL0ttNmtYSWtkTUIwR0ExVWREZ1FXQkJSS1YzM3hmcWsySHRkOEx6VTR0SlRZWFZMdG1UQTRCZ2dyQmdFRkJRY0JBUVFzTUNvd0tBWUlLd1lCQlFVSE1BR0dIR2gwZEhBNkx5OWxhR05oTG1kbGJXRjBhV3N1WkdVdmIyTnpjQzh3RGdZRFZSMFBBUUgvQkFRREFnZUFNQ0FHQTFVZElBUVpNQmN3Q2dZSUtvSVVBRXdFZ1NNd0NRWUhLb0lVQUV3RVJqQXdCZ1VySkFnREF3UW5NQ1V3SXpBaE1COHdIVEFRREE1V1pYSnphV05vWlhKMFpTOHRjakFKQmdjcWdoUUFUQVF4TUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDSUh1c3dCSUlNVHZXUmYrYjVQdThudDltRVoxK0ZkOG8yQjNlMmF0VjJjNzNBaUJwQU1GdUlZMkpJQ1RpNW4xWWo2cnc5NFpMc2lFZlNKVzdtdTJlVTJMZGF3PT0iXSwia2lkIjoiOTY1NzM2OTUyNjE4MTc1Iiwia3R5IjoiRUMiLCJjcnYiOiJCUC0yNTYiLCJ4IjoiSGxOY296bmpkb2kwWXh2MjdCM3lHYUVfMTl2ak9KSTc4d1QyeURjZWMtayIsInkiOiJsZ0pVWFAzeFB3Y29UM1B5RGk1SUxHbVpteXJqVUlZWHFST0QwT0tyV0EwIn0sImdpdmVuX25hbWUiOiJEYXJpdXMgTWljaGFlbCBCcmlhbiBVYmJvIiwiZXhwIjoxNzA5NjcyMTUzLCJpYXQiOjE3MDk2Mjg5NTMsImZhbWlseV9uYW1lIjoiQsO2ZGVmZWxkIn0.ejmo4N6wjBA08nzaqV-1eh65jE4jKsKMZk2wr3EzsApxU2UZMmG0wEnXCWwRtMDYBFZ8c6-XaqX6Gs_I3KNRZA"
Ein verschachtelt enthaltenes JWT
-}

header.Location.ssotoken.value.body.njwt.content

JWT

Headers
{
+  "exp" : 1709682150
Gültigkeit des Tokens
+}

Body

{
+  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJvcmdhbml6YXRpb25OYW1lIjoiVGVzdCBHS1YtU1ZOT1QtVkFMSUQiLCJwcm9mZXNzaW9uT0lEIjoiMS4yLjI3Ni4wLjc2LjQuNDkiLCJhdXRoX3RpbWUiOjE3MDk2Mzg5NTAsImFtciI6WyJtZmEiLCJzYyIsInBpbiJdLCJpZE51bW1lciI6IlgxMTA0MTE2NzUiLCJpc3MiOiJodHRwczovL2lkcC5kZXYuZ2VtYXRpay5zb2x1dGlvbnMiLCJjbmYiOnsieDVjIjpbIk1JSURTekNDQXZLZ0F3SUJBZ0lIQTI1VktBSGN2ekFLQmdncWhrak9QUVFEQWpDQmxqRUxNQWtHQTFVRUJoTUNSRVV4SHpBZEJnTlZCQW9NRm1kbGJXRjBhV3NnUjIxaVNDQk9UMVF0VmtGTVNVUXhSVEJEQmdOVkJBc01QRVZzWld0MGNtOXVhWE5qYUdVZ1IyVnpkVzVrYUdWcGRITnJZWEowWlMxRFFTQmtaWElnVkdWc1pXMWhkR2xyYVc1bWNtRnpkSEoxYTNSMWNqRWZNQjBHQTFVRUF3d1dSMFZOTGtWSFN5MURRVEV3SUZSRlUxUXRUMDVNV1RBZUZ3MHlNakV4TWpRd01EQXdNREJhRncweU5UQTFNVGt5TXpVNU5UbGFNSUhPTVFzd0NRWURWUVFHRXdKRVJURWRNQnNHQTFVRUNnd1VWR1Z6ZENCSFMxWXRVMVpPVDFRdFZrRk1TVVF4RXpBUkJnTlZCQXNNQ2xneE1UQTBNVEUyTnpVeEVqQVFCZ05WQkFzTUNURXdPVFV3TURrMk9URVNNQkFHQTFVRUJBd0pRc08yWkdWbVpXeGtNU0l3SUFZRFZRUXFEQmxFWVhKcGRYTWdUV2xqYUdGbGJDQkNjbWxoYmlCVlltSnZNVDh3UFFZRFZRUURERFpFWVhKcGRYTWdUV2xqYUdGbGJDQkNjbWxoYmlCVlltSnZJRWR5WVdZZ2RtOXVJRUxEdG1SbFptVnNaQ0JVUlZOVUxVOU9URmt3V2pBVUJnY3Foa2pPUFFJQkJna3JKQU1EQWdnQkFRY0RRZ0FFSGxOY296bmpkb2kwWXh2MjdCM3lHYUUvMTl2ak9KSTc4d1QyeURjZWMrbVdBbFJjL2ZFL0J5aFBjL0lPTGtnc2FabWJLdU5RaGhlcEU0UFE0cXRZRGFPQjd6Q0I3REFNQmdOVkhSTUJBZjhFQWpBQU1COEdBMVVkSXdRWU1CYUFGRVN4VEFGWVZCN2MyVGUrNUxJL0ttNmtYSWtkTUIwR0ExVWREZ1FXQkJSS1YzM3hmcWsySHRkOEx6VTR0SlRZWFZMdG1UQTRCZ2dyQmdFRkJRY0JBUVFzTUNvd0tBWUlLd1lCQlFVSE1BR0dIR2gwZEhBNkx5OWxhR05oTG1kbGJXRjBhV3N1WkdVdmIyTnpjQzh3RGdZRFZSMFBBUUgvQkFRREFnZUFNQ0FHQTFVZElBUVpNQmN3Q2dZSUtvSVVBRXdFZ1NNd0NRWUhLb0lVQUV3RVJqQXdCZ1VySkFnREF3UW5NQ1V3SXpBaE1COHdIVEFRREE1V1pYSnphV05vWlhKMFpTOHRjakFKQmdjcWdoUUFUQVF4TUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDSUh1c3dCSUlNVHZXUmYrYjVQdThudDltRVoxK0ZkOG8yQjNlMmF0VjJjNzNBaUJwQU1GdUlZMkpJQ1RpNW4xWWo2cnc5NFpMc2lFZlNKVzdtdTJlVTJMZGF3PT0iXSwia2lkIjoiOTY1NzM2OTUyNjE4MTc1Iiwia3R5IjoiRUMiLCJjcnYiOiJCUC0yNTYiLCJ4IjoiSGxOY296bmpkb2kwWXh2MjdCM3lHYUVfMTl2ak9KSTc4d1QyeURjZWMtayIsInkiOiJsZ0pVWFAzeFB3Y29UM1B5RGk1SUxHbVpteXJqVUlZWHFST0QwT0tyV0EwIn0sImdpdmVuX25hbWUiOiJEYXJpdXMgTWljaGFlbCBCcmlhbiBVYmJvIiwiZXhwIjoxNzA5NjgyMTUwLCJpYXQiOjE3MDk2Mzg5NTAsImZhbWlseV9uYW1lIjoiQsO2ZGVmZWxkIn0.WQGydZr38KflCAOkNXcPSFb5Gf1FQtAZs2sHnItUWvJgceys6czzXjc-tEvCczlDHu1jMNrALe1lqVrXKnx4WA"
Ein verschachtelt enthaltenes JWT
+}

header.Location.ssotoken.value.body.njwt.content

JWT

Headers
{
   "alg" : "BP256R1",
   "typ" : "JWT",
   "kid" : "puk_idp_sig"
Identifiziert den hier beschriebenen Schlüssel. Beschreibung siehe https://tools.ietf.org/html/rfc7517#section-4.5
-}

Body

{
+}

Body

{
   "organizationName" : "Test GKV-SVNOT-VALID",
   "professionOID" : "1.2.276.0.76.4.49",
-  "auth_time" : 1709628953,
Timestamp der Authentisierung
+ "auth_time" : 1709638950,
Timestamp der Authentisierung
"amr" : [ "mfa", "sc", "pin" ], "idNummer" : "X110411675", "iss" : "https://idp.dev.gematik.solutions", @@ -957,103 +957,103 @@ "y" : "lgJUXP3xPwcoT3PyDi5ILGmZmyrjUIYXqROD0OKrWA0"
Y-Koordinate des öffentlichen Punkts des Schlüssels
}, "given_name" : "Darius Michael Brian Ubbo", - "exp" : 1709672153,
Gültigkeit des Tokens
- "iat" : 1709628953,
Zeitpunkt der Ausstellung des Tokens
+ "exp" : 1709682150,
Gültigkeit des Tokens
+ "iat" : 1709638950,
Zeitpunkt der Ausstellung des Tokens
"family_name" : "Bödefeld" -}

header.Location.ssotoken.value.body.njwt.content.body.cnf.x5c.0.content

X509 Certificate

Subject: C=DE,O=Test GKV-SVNOT-VALID,OU=X110411675,OU=109500969,SURNAME=Bödefeld,GIVENNAME=Darius Michael Brian Ubbo,CN=Darius Michael Brian Ubbo Graf von Bödefeld TEST-ONLY

Issuer: C=DE,O=gematik GmbH NOT-VALID,OU=Elektronische Gesundheitskarte-CA der Telematikinfrastruktur,CN=GEM.EGK-CA10 TEST-ONLY

Serialnumber: 965736952618175

Valid From: 2022-11-24T00:00Z[UTC]

Valid Until: 2025-05-19T23:59:59Z[UTC]


Signature

Was verified using Key puk_idp_sig

Encryption info

Was decrypted using Key IDP symmetricEncryptionKey

Empty body

Signature

Was verified using Key puk_idp_sig

Encryption info

Was decrypted using Key IDP symmetricEncryptionKey

Empty body

11 POST http://localhost:40931/token127.0.0.1:-1localhost:36057

11 POST http://localhost:38497/token127.0.0.1:-1localhost:34983

REQ Headers

Content-Type
application/x-www-form-urlencoded
User-Agent
IdP-Client
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Accept
application/json
Accept-Encoding
gzip
Nicht verpflichtend
Nicht verpflichtend
Content-Length
2111
Host
localhost:36057
Nicht verpflichtend
Nicht verpflichtend
Connection
keep-alive
Nicht verpflichtend
Nicht verpflichtend

REQ Body

namevalue
client_id
eRezeptApp
Die client_id des Clients. Wird bei der Registrierung vergeben.
Die client_id des Clients. Wird bei der Registrierung vergeben.
code

JWE

Der Authorization-Code, so wie er vom Server in der vorigen Antwort auf POST /sign_response zurück gegeben wurde

Headers
{
+Host: localhost:34983
+Connection: keep-alive

REQ Headers

Content-Type
application/x-www-form-urlencoded
User-Agent
IdP-Client
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Accept
application/json
Accept-Encoding
gzip
Nicht verpflichtend
Nicht verpflichtend
Content-Length
2111
Host
localhost:34983
Nicht verpflichtend
Nicht verpflichtend
Connection
keep-alive
Nicht verpflichtend
Nicht verpflichtend

REQ Body

namevalue
client_id
eRezeptApp
Die client_id des Clients. Wird bei der Registrierung vergeben.
Die client_id des Clients. Wird bei der Registrierung vergeben.
code

JWE

Der Authorization-Code, so wie er vom Server in der vorigen Antwort auf POST /sign_response zurück gegeben wurde

Headers
{
   "alg" : "dir",
   "enc" : "A256GCM",
   "cty" : "NJWT",
-  "exp" : 1709629013
Gültigkeit des Tokens
-}

Body

{
-  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJvcmdhbml6YXRpb25OYW1lIjoiVGVzdCBHS1YtU1ZOT1QtVkFMSUQiLCJwcm9mZXNzaW9uT0lEIjoiMS4yLjI3Ni4wLjc2LjQuNDkiLCJpZE51bW1lciI6IlgxMTA0MTE2NzUiLCJhbXIiOlsibWZhIiwic2MiLCJwaW4iXSwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDozNjA1NyIsInJlc3BvbnNlX3R5cGUiOiJjb2RlIiwic25jIjoicjJndk1lbW5zWlBJRWVvbjNlaFZYckppRURfRlVtTTIiLCJjb2RlX2NoYWxsZW5nZV9tZXRob2QiOiJTMjU2IiwiZ2l2ZW5fbmFtZSI6IkRhcml1cyBNaWNoYWVsIEJyaWFuIFViYm8iLCJ0b2tlbl90eXBlIjoiY29kZSIsIm5vbmNlIjoiYUlTSm5JYUcxd0lEM0FadXB5Y0ZSQTZlZUJxbTZmZkgiLCJjbGllbnRfaWQiOiJlUmV6ZXB0QXBwIiwic2NvcGUiOiJvcGVuaWQgZS1yZXplcHQiLCJhdXRoX3RpbWUiOjE3MDk2Mjg5NTMsInJlZGlyZWN0X3VyaSI6Imh0dHA6Ly9yZWRpcmVjdC5nZW1hdGlrLmRlL2VyZXplcHQiLCJzdGF0ZSI6Im9zZ0paNEYtanNHd2VBQU9ZcWhSRTJvOFQ4bk5WS1dDIiwiZXhwIjoxNzA5NjI5MDEzLCJmYW1pbHlfbmFtZSI6IkLDtmRlZmVsZCIsImlhdCI6MTcwOTYyODk1MywiY29kZV9jaGFsbGVuZ2UiOiJNUzg5SUFtbGt2X1l4RXFNUVdhVzN2Tmk3dDZXSVAyR19VUVo3WU1wcnI4IiwianRpIjoiYmNlOGViNzllMjY2YzBjNyJ9.IIpWe6pG3F2RAOI_nPD94ef3t6RLAB-2bXkCg_e3SkYq3bLb6bUit18qaoxXY8dA5yAboBPS5KVecue5EHbiwQ"
Ein verschachtelt enthaltenes JWT
-}

body.code.body.njwt.content

JWT

Headers
{
+  "exp" : 1709639010
Gültigkeit des Tokens
+}

Body

{
+  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJvcmdhbml6YXRpb25OYW1lIjoiVGVzdCBHS1YtU1ZOT1QtVkFMSUQiLCJwcm9mZXNzaW9uT0lEIjoiMS4yLjI3Ni4wLjc2LjQuNDkiLCJpZE51bW1lciI6IlgxMTA0MTE2NzUiLCJhbXIiOlsibWZhIiwic2MiLCJwaW4iXSwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDozNDk4MyIsInJlc3BvbnNlX3R5cGUiOiJjb2RlIiwic25jIjoiZWNKdm9UWUQydWdGTnUtMnplV1E0aDFEdjNvdDJyRkoiLCJjb2RlX2NoYWxsZW5nZV9tZXRob2QiOiJTMjU2IiwiZ2l2ZW5fbmFtZSI6IkRhcml1cyBNaWNoYWVsIEJyaWFuIFViYm8iLCJ0b2tlbl90eXBlIjoiY29kZSIsIm5vbmNlIjoiSk10MGZJdjIxVWFVME9HRGtNbUM1dTlBd0VXak5QaEciLCJjbGllbnRfaWQiOiJlUmV6ZXB0QXBwIiwic2NvcGUiOiJvcGVuaWQgZS1yZXplcHQiLCJhdXRoX3RpbWUiOjE3MDk2Mzg5NTAsInJlZGlyZWN0X3VyaSI6Imh0dHA6Ly9yZWRpcmVjdC5nZW1hdGlrLmRlL2VyZXplcHQiLCJzdGF0ZSI6InlST2ttT1lYel8zVjgzT1kzUzA5NXA4OHpNYmhJSFA1IiwiZXhwIjoxNzA5NjM5MDEwLCJmYW1pbHlfbmFtZSI6IkLDtmRlZmVsZCIsImlhdCI6MTcwOTYzODk1MCwiY29kZV9jaGFsbGVuZ2UiOiJGVmFSTWx4MHNvdWo1eS1qQmFCNE1Ba2hZSkptcEx3NWtkZUhDOTNzcjdzIiwianRpIjoiZjRjYWIxZmIwZGI1NWUwZSJ9.TL4iZ1YzTmhwisvK8MJQBPp7QvgDrExZubUoaq_K9NBKyhPwtCAT3a3xXwvKI3mNI8UhRT1pnHdVgMOq-q6miA"
Ein verschachtelt enthaltenes JWT
+}

body.code.body.njwt.content

JWT

Headers
{
   "alg" : "BP256R1",
   "typ" : "JWT",
   "kid" : "puk_idp_sig"
Identifiziert den hier beschriebenen Schlüssel. Beschreibung siehe https://tools.ietf.org/html/rfc7517#section-4.5
-}

Body

{
+}

Body

{
   "organizationName" : "Test GKV-SVNOT-VALID",
   "professionOID" : "1.2.276.0.76.4.49",
   "idNummer" : "X110411675",
   "amr" : [ "mfa", "sc", "pin" ],
-  "iss" : "http://localhost:36057",
+  "iss" : "http://localhost:34983",
   "response_type" : "code",
Referenziert den erwarteten Response-Type des Flows. Muss immer 'code' lauten. Damit wird angezeigt das es sich hierbei um einen Authorization Code Flow handelt. Für eine nähere Erläuterung siehe OpenID-Spezifikation.
- "snc" : "r2gvMemnsZPIEeon3ehVXrJiED_FUmM2",
server-nonce. Wird verwendet um noise hinzuzufügen.
+ "snc" : "ecJvoTYD2ugFNu-2zeWQ4h1Dv3ot2rFJ",
server-nonce. Wird verwendet um noise hinzuzufügen.
"code_challenge_method" : "S256",
Das Primärsystem generiert einen Code-Verifier und erzeugt darüber einen Hash im Verfahren SHA-256, hier abgekürzt als S256. Teil von PKCE.
"given_name" : "Darius Michael Brian Ubbo", "token_type" : "code", - "nonce" : "aISJnIaG1wID3AZupycFRA6eeBqm6ffH",
String zu Verhinderung von CSRF-Attacken. Dieser Wert ist optional. Wenn er mitgegeben wird muss der gleiche Wert im abschließend ausgegebenen ID-Token wieder auftauchen. WICHTIG: Darf nicht länger als 512 Zeichen sein.
+ "nonce" : "JMt0fIv21UaU0OGDkMmC5u9AwEWjNPhG",
String zu Verhinderung von CSRF-Attacken. Dieser Wert ist optional. Wenn er mitgegeben wird muss der gleiche Wert im abschließend ausgegebenen ID-Token wieder auftauchen. WICHTIG: Darf nicht länger als 512 Zeichen sein.
"client_id" : "eRezeptApp",
Die client_id des Clients. Wird bei der Registrierung vergeben.
"scope" : "openid e-rezept",
Der Scope entspricht dem zwischen E-Rezept-Fachdienst und IDP festgelegten Wert. Mit diesem antwortet der E-Rezept-Fachdienst bei fehlendem ACCESS_TOKEN und http-Statuscode 401.
- "auth_time" : 1709628953,
Timestamp der Authentisierung
+ "auth_time" : 1709638950,
Timestamp der Authentisierung
"redirect_uri" : "http://redirect.gematik.de/erezept",
Die für den Client beim Server hinterlegte redirect_uri. Muss dem bei der Registrierung hinterlegten Wert entsprechen.
- "state" : "osgJZ4F-jsGweAAOYqhRE2o8T8nNVKWC",
Der state der Session. Sollte dem zufällig generierten state-Wert aus der initialen Anfrage entsprechen.
- "exp" : 1709629013,
Gültigkeit des Tokens
+ "state" : "yROkmOYXz_3V83OY3S095p88zMbhIHP5",
Der state der Session. Sollte dem zufällig generierten state-Wert aus der initialen Anfrage entsprechen.
+ "exp" : 1709639010,
Gültigkeit des Tokens
"family_name" : "Bödefeld", - "iat" : 1709628953,
Zeitpunkt der Ausstellung des Tokens
- "code_challenge" : "MS89IAmlkv_YxEqMQWaW3vNi7t6WIP2G_UQZ7YMprr8",
Der Hashwert des Code-Verifiers wird zum IDP als Code-Challenge gesendet. Teil von PKCE.
- "jti" : "bce8eb79e266c0c7"
A unique identifier for the token, which can be used to prevent reuse of the token. Value is a case-sensitive string.
-}

Signature

Was verified using Key puk_idp_sig

Encryption info

Was decrypted using Key IDP symmetricEncryptionKey

Der Authorization-Code, so wie er vom Server in der vorigen Antwort auf POST /sign_response zurück gegeben wurde
grant_type
authorization_code
Muss exakt diesen Wert enthalten, da es sich um eine Implementierung des OIDC Authorization Code Flows handelt.
Muss exakt diesen Wert enthalten, da es sich um eine Implementierung des OIDC Authorization Code Flows handelt.
key_verifier

JWE

JWE, welches den code_verifier sowie den token_key enthält. Dies ist ein AES-Schlüssel welcher vom Server zur Verschlüsselung der Token-Rückgaben verwendet wird.

Headers
Dieser Token wird für den Server mit dem puk_idp_enc verschlüsselt.
{
+  "iat" : 1709638950,
Zeitpunkt der Ausstellung des Tokens
+ "code_challenge" : "FVaRMlx0souj5y-jBaB4MAkhYJJmpLw5kdeHC93sr7s",
Der Hashwert des Code-Verifiers wird zum IDP als Code-Challenge gesendet. Teil von PKCE.
+ "jti" : "f4cab1fb0db55e0e"
A unique identifier for the token, which can be used to prevent reuse of the token. Value is a case-sensitive string.
+}

Signature

Was verified using Key puk_idp_sig

Encryption info

Was decrypted using Key IDP symmetricEncryptionKey

Der Authorization-Code, so wie er vom Server in der vorigen Antwort auf POST /sign_response zurück gegeben wurde
grant_type
authorization_code
Muss exakt diesen Wert enthalten, da es sich um eine Implementierung des OIDC Authorization Code Flows handelt.
Muss exakt diesen Wert enthalten, da es sich um eine Implementierung des OIDC Authorization Code Flows handelt.
key_verifier

JWE

JWE, welches den code_verifier sowie den token_key enthält. Dies ist ein AES-Schlüssel welcher vom Server zur Verschlüsselung der Token-Rückgaben verwendet wird.

Headers
Dieser Token wird für den Server mit dem puk_idp_enc verschlüsselt.
{
   
Dieser Token wird für den Server mit dem puk_idp_enc verschlüsselt.
"alg" : "ECDH-ES", "enc" : "A256GCM", "cty" : "JSON", "epk" : { "kty" : "EC", - "x" : "GHWyWlR4gn_tOpsBmwld0mejsexrNBYmERfFCtY-3Gs",
X-Koordinate des öffentlichen Punkts des Schlüssels
- "y" : "n50anFQU9bcsyuh8s9kL7z_7XFJn2_E0IMwBpiSC0PI",
Y-Koordinate des öffentlichen Punkts des Schlüssels
+ "x" : "O5HNALrwO1eKP-xUu2dxaAObrlV4RKTsTn-Hf2CEFNc",
X-Koordinate des öffentlichen Punkts des Schlüssels
+ "y" : "ihIdvyEkxGPOxoSHFo-6kuZqjArwm8Y3v9GgqYOZLho",
Y-Koordinate des öffentlichen Punkts des Schlüssels
"crv" : "BP-256" } -}

Body
Enthalten ist der code_verifier (der zu dem code_challenge-Wert aus der initialen Anfrage passen muss) sowie der token_key. Dies ist ein vom Client zufällig gewürfelter AES256-Schlüssel in Base64-URL-Encoding. Der Server benutzt diesen Schlüssel zur Chiffrierung der beiden Token-Rückgaben in der Response (ID- und Access-Token).

{
+}

Body
Enthalten ist der code_verifier (der zu dem code_challenge-Wert aus der initialen Anfrage passen muss) sowie der token_key. Dies ist ein vom Client zufällig gewürfelter AES256-Schlüssel in Base64-URL-Encoding. Der Server benutzt diesen Schlüssel zur Chiffrierung der beiden Token-Rückgaben in der Response (ID- und Access-Token).

{
   
Enthalten ist der code_verifier (der zu dem code_challenge-Wert aus der initialen Anfrage passen muss) sowie der token_key. Dies ist ein vom Client zufällig gewürfelter AES256-Schlüssel in Base64-URL-Encoding. Der Server benutzt diesen Schlüssel zur Chiffrierung der beiden Token-Rückgaben in der Response (ID- und Access-Token).
- "token_key" : "QzQmUKTeWSKfaGvZsMQ5tMdWztPtwkzojCFPOgN2Fwg", - "code_verifier" : "PDgb94jXk4nvzyv0xguepsVWPItFdDJdL8L1SaHTkhM" -}

Encryption info

Was decrypted using Key prk_idp_enc

JWE, welches den code_verifier sowie den token_key enthält. Dies ist ein AES-Schlüssel welcher vom Server zur Verschlüsselung der Token-Rückgaben verwendet wird.
redirect_uri
http%3A%2F%2Fredirect.gematik.de%2Ferezept
Die für den Client beim Server hinterlegte redirect_uri. Muss dem bei der Registrierung hinterlegten Wert entsprechen.
Die für den Client beim Server hinterlegte redirect_uri. Muss dem bei der Registrierung hinterlegten Wert entsprechen.

Encryption info

Was decrypted using Key prk_idp_enc

JWE, welches den code_verifier sowie den token_key enthält. Dies ist ein AES-Schlüssel welcher vom Server zur Verschlüsselung der Token-Rückgaben verwendet wird.
redirect_uri
http%3A%2F%2Fredirect.gematik.de%2Ferezept
Die für den Client beim Server hinterlegte redirect_uri. Muss dem bei der Registrierung hinterlegten Wert entsprechen.
Die für den Client beim Server hinterlegte redirect_uri. Muss dem bei der Registrierung hinterlegten Wert entsprechen.

12200localhost:36057127.0.0.1:-1

12200localhost:34983127.0.0.1:-1

RES Headers

Keep-Alive
timeout=60
Cache-Control
no-store
Version
27.0.0
Pragma
no-cache
Date
Tue, 05 Mar 2024 08:56:02 GMT
Zeitpunkt der Antwort.
Zeitpunkt der Antwort.
Content-Type
application/json

RES Body

{
+Date: Tue, 05 Mar 2024 11:42:39 GMT
+Content-Type: application/json

RES Headers

Keep-Alive
timeout=60
Cache-Control
no-store
Version
27.0.1
Pragma
no-cache
Date
Tue, 05 Mar 2024 11:42:39 GMT
Zeitpunkt der Antwort.
Zeitpunkt der Antwort.
Content-Type
application/json

RES Body

{
   "expires_in" : 300,
   "token_type" : "Bearer",
-  "id_token" : "eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIiwiY3R5IjoiTkpXVCIsImV4cCI6MTcwOTYyOTI2Mn0..Lwkxm7Fc9UWypSGQ.9Y1w-bDHI61hmo-Gwyleky1VqckoKzzYEZDvAeMGlJJE6v5vf5evHt7n6egyq4CQ4QyRQDuHnOs_5OND5tgossdlRlcXApABKXjn3L59Q08M293111G0AYPbqc_aryzCUuSA8yJTbw0SJsCSI2itb7LCL1Ew0ZWOx321DlOA0km7IJLkGAtd02uMfKWZAfz4Evuyz1xogE2czzqMqFtNn7L6ZruS5oqYlGyepyBUJDo-imHRK-2EbclnBgG8oBrfiNVm1pMqMH3y7fk3ROkmfsfpPOIX9Hj0zVyMTcjFOjG66yxjSOobNeoyCqvgqV1kcLUWbn4k_V-1kuy-H2QlHEO-OlcryMclu_9r0ark8HdkMNcjdtoegyK6wvrSFlxMgwm1lsXNfM8r9sYGqr9LPTF6PXurMhS8aRi0mYaOTH8e2PTUrcBH0V84oiIufanzY46_lpThTXMFPF5fRlbACds23utN-cIZUSLoMq55iZNyfovB1dW7YglU_zcZOMdlAmHnkT6DqcD0Y6tmo3K4myos2jnRdCViekvKpCZRiGOG5izg0A2eetanFiRMFYRu0zMtfy4IA_UqoosTqXF126pkv8Agpoo84AbAF2XMVdEh6uxTK6BhnNCsdFJnXDKD7gfF2yk2QkrPEhJYHWjGsJFXB5j8m1qVLv9f1vhFC3B8h7O1Gkim0DHTt34Wt3ZnEdsYUkmASDhLzKQRuwXIYRXGOrLOBygBZvcgJyDi3_8JxgoPiEptmx2XQspPojrVjdaFLuWAJiCyVyTCbt1kV_bk6wyQCsVgfJd9us7uIaPAZy9ECGOT52nRjdLAefrMm_ZSWQqeyknfzOdjPRf_7VcXzHqcsfi9rCAQw11QNg8iVo1T8p4LX0E7QR_RYfwQ-NE6OarsaVi4-EqenbaHsRrZX5eq9bfA_hKChEu3G2MYj1IJSFxxM1mheGZfOoZtREutDJgeFdqYg-23aX_l9snfXSb8WLmtdhz-5-n1HpBP9Z-chH-1RIa8georkIPK1uQnxFAOLhNcrl10xXANKrhKUuss6Xm-5ek-vww3u0PSEsKihIyZPLI4OdHCF9A4oevoFgDCYbu5rmjBek7Nd9ry0fQs9l6-FyGS2FWrlGEa5w_TZrJMLC7OJBGgABY5y3R9ksQQb06hq9GDHHuP6jHvY5yNroYv_wwMuQMA6lx_QbntWXqZ5KHt7zzFQIWumXiiAnQazvz0DA_Q0BVwjbs.DUvq7R7OL1AInlfV3oNl0w",
Das verschlüsselte ID-Token. Der Server chiffriert das Token selbst zur Sicherung des Transport-Weges. Zur Verschlüsselung verwendet wird hier der token_key aus der Anfrage des Clients.
- "access_token" : "eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIiwiY3R5IjoiTkpXVCIsImV4cCI6MTcwOTYyOTI2Mn0..9r6O2MgXCTN00cEc.wGZL4OOidKQRYdVqH9pRSpbSIsit4iBwyxf0xt-_GE3P5gbJ6woJE3MN1qWpL0jnvo5fvEqt94R03hgvAJowgMLjEo8QX_nKVThDWGNe3KUsVPbUScIZ8q6L592glUlAjVku8U6-6YstOt0BvKNT_H5h9EZxfcjV1TGJ73WsSgK5OVh1uS79TiGNtAb02rG7OC1HnsWhTHlA5z2hNFI1HYt8fjj2JzRUqsyCGgmtgpsMLP7lz6zR9quZ39sbnDYb2ONRLmC7TgA26qj3OcslLBL0LSh4U3O-M51W5zNAAPt9zI74BnGavKSBxqOKFYSTnquVX0N6CKZZFWzsaeHU1Vq3fD0osv9gaTrQ17wzQ-niQ0mNrrK-wmquz5Y0-Ocjlgg8J1VxTfdKZZwOR2ROc_ixnrKCmYohdoh7umFN7APT2loPLKvKBUwPSKUtrSR5NrM0BJKS6TH6-GwF2wrgTCG8tN6A7av-dWHJuEbhLa8BTWt1okmMekke3-m2HJFfD9b_1P33CyDVurkXxIc23Q8EcaS8b3UMqOl4KZSWoR1In5pTZQdkq7BWV1lUi3t8yKzBKb5uP1yJ0YXKFan0sg0osQzy53r8w7vj7tVUvNkfDO0Dj15g7umaJLmlywRQ6ltMA6VF3s1HiKp2cGezDs3J6lRhh-uTL6INzlKWvKzEM9nm0CEalOJmXu-xTkPiYLGnnaLzE1PcNJytxx7NdvXPprHJU31E_auj4XapIxcgec7iezLw89_KtiUBspYKgT3MUeeaz545kh4x0Z8Iybuc4THdR6PiuhBmzKa2OTASjcvCKJTMIkTM_yBispT5_o-ka_9_RoiQfpfcxDEJGPA-jerTCFEZphCbJ04mwo7QkXQsLrYBhmwjWRSTpC85QG-QnA8qqUbyqanqQinVc4MMMSc5nE4T91oPs5yI6TdSDkNuqPgSAgnvuQdDfMigNkksU6WygDcAWhTRkjp3Te481G7sW50skOSTP-E_BHkyNoGRcmOuegaqUqIOIe482JmReqqlJWltWXa7cOhyl4b6cDvR04ksFFwN-NqS_1OElv-NLgRAmHKbtLrQOIFdz29_caKacAZrzmyzbgoEzCfqyYpqDWJuGOtUNM5MQ27x_Zhq8MjrBR_lBIu13I-8AyLX3HS7FbOTU3mg-CghHeSqxYCk2yAXe5PHCOSY0_p_4VrFtAQMrD-ojf7YScXdYsl_XWGaje1bwEl5IO8cJJ4r_--ppYGnWlZpE9RXMxxIeH9QGWc6FPk.wKH-X55P2c8UQ_hVNgIxJg"
Das verschlüsselte Access-Token. Der Server chiffriert das Token selbst zur Sicherung des Transport-Weges. Zur Verschlüsselung verwendet wird hier der token_key aus der Anfrage des Clients.
-}

body.id_token.content

JWE

Headers
{
+  "id_token" : "eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIiwiY3R5IjoiTkpXVCIsImV4cCI6MTcwOTYzOTI1OX0..493tKeU8ui_NZi8B.KyQh1R26ZILu37Jqp8EkeTJEpub5Dk1EtdFinNFc0CoAc1T2JzRmJsW3EQMjlFUoH_GMh2nRts1mRmE6aDITYb465YKWHnAj7jgGo5nt4M61AwXCE2X1-U_tVBBUmCSUau5NVc0TOEU2k9ACbflteSLkeiBOUW91ptflYKmp48B5Zz6d5KYTrKsRvWJSlPkLukkCjp5TmDotQJSM8PLrP39CAKHpWMRbPooLbH4_xOd3tti8yXxGIXbYkpaPMn1svVByvE7WtsISaC5DwI1J1KE7fEgAp0udrsDW2nI-Uk7YhsbmEiduvDjmfODHs68lTUb8wir-BI8P4QuxDuomj1tpRcAtLO9RGBY_BFFHmTNsQM0WYxBCD4h9r3HsAts_tOEPjSXj6Uv7AANXRsqnK-kkFeMRt6PlalDTZDWe5pj0J9NhBnJAO5_mt4OFkyKOVKPmY7wUDcvpELprI6j_q7sjsjOmarnbLbajh3Z-uowNUfBs48jVnmguttvNOsRxXqRcPZ43lfmn-ftRavW8JViJVcuxdWHa7eIqr_y-H9Y30HWCTPyVX_eJZ_I92D79B5Hez5sT0giJuXl_PO_7jv-tBadBCA4bAZQkMJqlb887vXye9VjdUNVX8opzSr1-YlRgPJ8SEdO3bVXpO_QKo1I53lW3uMKUB0D7OO10uyIvef1npEk1BkFkE4jRit5_OhByJzJJ0irfS128kCtCE3Q7HvC5yZS5JKPGz8DXegIBWZdTEPhxaj1zpQBLeKRCMmnpdOgZxg7ZWjNljSmEqH3AaGYinnTrrj7TjYOxaAmF3tR8E7ZujZ31zIlDHsVGGe8EoHAZMxKjTY_w8f1va6elPOe1Qg00qgRLzjjzh8uktsu5tZTSprJjuDtihAMhyHg5sgOUSuYaK4tXobhYluSukzrdlIGw8SskeOmro2DCVoKp_4NHyrJviTQ986fPcZBN-XQCmTL36qjE7_eu9cSL2_qWDhMGPetcNSy3PGFgnXKeoZ4whhJ49MDqJMCnfPl-RHdstsFZ-om3dSYgL1Am5GVTAx6xgbRy6Fx1yuEplYKe4XETKZG5eeHrCbpxd22nSdzvXzx8RK9nvZ1G--JBw8hQ5wG4jFyqyG0crjwR3O-pb-RK3w6KnOQG1ZdDnuRg3Y7MeZDMcXYLw09iaDOPFmHpE3YL4jp3G3KPb5C7qcp20SegCVYwEu3-0FfOtkr7zOQ8o_20Zlk61mCi-7k.ByVtgZlVWxD2erAjFwXAdg",
Das verschlüsselte ID-Token. Der Server chiffriert das Token selbst zur Sicherung des Transport-Weges. Zur Verschlüsselung verwendet wird hier der token_key aus der Anfrage des Clients.
+ "access_token" : "eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIiwiY3R5IjoiTkpXVCIsImV4cCI6MTcwOTYzOTI1OX0.._Rt-XLRR0wCJ1GE1.x3-K6mhO12isXodyR38oZziDXszUM0RpVQj_NCPNCG8xrIcWjdiJZ7lpRs47Ulu0FTM8062FtVqOwyG37KRSHdGihfItxuK1gMZ4dwO8VY1d83uLm69vBk7aKiS20uuZzM8IKRuW-MIqhXXjMQJA2ddPh8SukSCkBDhh7XmmzXRYfmrxABsx2StX4iVTUc4k0_VzvQEYhNf7DZqnGj4SXKNhQTiLjr2Hx1nIxXFTRSoc59MRc22sKUKmU8ykYDON5Jd2Abt__JEQo9HRpzaah7Qyw87SW1LEum1HT_6InjFuiA48WhjQY_mTEa5cErkwjLWWf6LzOBlDrXUqWKYxyO7UYyPkw6uJW9AE0ENY8AHW1rGeATPNXt8fhWdwil7-cJt29ihpKVc8W7ze5iYlyGVB_Z-lYJ7PW1jrHV02B--xGpdr7z0G16QMhKD_NhtryrYDVBogxMeglud9LmPY-Dgs4_vySdHCFIzUpgQm6kgNLgCPoAlAeaZep8xpRV7kjibr2WKMx8b7RQDfLcEBlWB7raPFYGOb5KX6aj5KTm0S61gH89ry_jx2Q3ZLu65Zg_2LbJe34XB2aqNEzMD9wRGlJsygoEqdPvWTm3I1_zmnBojZvMIt6TTFid1W3j0RNdUYUUS5l_NZVUH-03SpwTlYvWp0QykqLD9GSQOB45eHktnrY10slimQT6wVsu8KqD9dbgciFkq5YEMk6O8Lkukj2i7i52Ueai8bhZchCquULZWUBgEA6iHFXPrCsErmMrF8hYKP8bBGsAi_kBNwgwX-FhL4fr9D2b5RVddNWExW3LY5jXmJQ07J6bfZsbPd0Z08Sm3eSbowx3Dt0znjTE4zf44kM4j3z_Qz1LGdlwl2Tf8vulD1HG-JmPkVfL_8tezovgwSGx00NKDLK-sl3XCBCl8rlkUA0PEFYMSrFpJyjB78unmh-bi0L2RoK7iVV-uCjT18qrcBT6TaLO-iSS8GDrtqdTUSzel9CBV9b24sO-q28Y5LEOygKdfUIGEPlUFHkMYNb7kBLaB8Cgcv-kpfKdX8-ZkLZrtpUOQL_vCxNuPAzH-0nE8PEYjtLtAWaTt0Vsw08OnUYsh7LHCoPgfo7J-vH2c-v_pujz9DsjS2OLU7q-eW_W8dFjgzFcl_nKiXFeh_Vt-uJ093dIZz4FFo9d45d-_iOCTQZlN8it71Ef9qvbeU0ZKmRhulCNb2MD5BOpldxwy5IptpqI8CwzFI4as8Kz-4c7HG12LaiMa6z7R1Lt4W5B4.-r1klH7bFravpeqI_q2pYw"
Das verschlüsselte Access-Token. Der Server chiffriert das Token selbst zur Sicherung des Transport-Weges. Zur Verschlüsselung verwendet wird hier der token_key aus der Anfrage des Clients.
+}

body.id_token.content

JWE

Headers
{
   "alg" : "dir",
   "enc" : "A256GCM",
   "cty" : "NJWT",
-  "exp" : 1709629262
Gültigkeit des Tokens
-}

Body

{
-  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJhdF9oYXNoIjoiZU1jV3lPcHN1TmEzeGJlWC1FN1BoUSIsInN1YiI6InAyaC1SVDZFRVJnaGJqUDhSMXdueXo4azR4aE9od2Jlc0pSUDBYbnVTbW8iLCJvcmdhbml6YXRpb25OYW1lIjoiVGVzdCBHS1YtU1ZOT1QtVkFMSUQiLCJwcm9mZXNzaW9uT0lEIjoiMS4yLjI3Ni4wLjc2LjQuNDkiLCJpZE51bW1lciI6IlgxMTA0MTE2NzUiLCJhbXIiOlsibWZhIiwic2MiLCJwaW4iXSwiaXNzIjoiaHR0cHM6Ly9pZHAuZGV2LmdlbWF0aWsuc29sdXRpb25zIiwiZ2l2ZW5fbmFtZSI6IkRhcml1cyBNaWNoYWVsIEJyaWFuIFViYm8iLCJkaXNwbGF5X25hbWUiOiJEYXJpdXMgTWljaGFlbCBCcmlhbiBVYmJvIELDtmRlZmVsZCIsIm5vbmNlIjoiYUlTSm5JYUcxd0lEM0FadXB5Y0ZSQTZlZUJxbTZmZkgiLCJhdWQiOiJlUmV6ZXB0QXBwIiwiYWNyIjoiZ2VtYXRpay1laGVhbHRoLWxvYS1oaWdoIiwiYXpwIjoiZVJlemVwdEFwcCIsImF1dGhfdGltZSI6MTcwOTYyODk1MywiZXhwIjoxNzA5NjI5MjYyLCJpYXQiOjE3MDk2Mjg5NjIsImZhbWlseV9uYW1lIjoiQsO2ZGVmZWxkIiwianRpIjoiZTQ2M2VmMTEyNTk4NjQ4NyJ9.cgs96iiSwXvy4L7n6POEDbs1LtEDNbbk6Sd5luSHIpF3ydCdft4qUinUHi2m7zzKJ1O08wqivq2sL0F5DKxScg"
Ein verschachtelt enthaltenes JWT
-}

body.id_token.content.body.njwt.content

JWT

Headers
{
+  "exp" : 1709639259
Gültigkeit des Tokens
+}

Body

{
+  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJhdF9oYXNoIjoibEYwVnF2d3Fac0xqNjVyb0t2blY1QSIsInN1YiI6InAyaC1SVDZFRVJnaGJqUDhSMXdueXo4azR4aE9od2Jlc0pSUDBYbnVTbW8iLCJvcmdhbml6YXRpb25OYW1lIjoiVGVzdCBHS1YtU1ZOT1QtVkFMSUQiLCJwcm9mZXNzaW9uT0lEIjoiMS4yLjI3Ni4wLjc2LjQuNDkiLCJpZE51bW1lciI6IlgxMTA0MTE2NzUiLCJhbXIiOlsibWZhIiwic2MiLCJwaW4iXSwiaXNzIjoiaHR0cHM6Ly9pZHAuZGV2LmdlbWF0aWsuc29sdXRpb25zIiwiZ2l2ZW5fbmFtZSI6IkRhcml1cyBNaWNoYWVsIEJyaWFuIFViYm8iLCJkaXNwbGF5X25hbWUiOiJEYXJpdXMgTWljaGFlbCBCcmlhbiBVYmJvIELDtmRlZmVsZCIsIm5vbmNlIjoiSk10MGZJdjIxVWFVME9HRGtNbUM1dTlBd0VXak5QaEciLCJhdWQiOiJlUmV6ZXB0QXBwIiwiYWNyIjoiZ2VtYXRpay1laGVhbHRoLWxvYS1oaWdoIiwiYXpwIjoiZVJlemVwdEFwcCIsImF1dGhfdGltZSI6MTcwOTYzODk1MCwiZXhwIjoxNzA5NjM5MjU5LCJpYXQiOjE3MDk2Mzg5NTksImZhbWlseV9uYW1lIjoiQsO2ZGVmZWxkIiwianRpIjoiYWI2NDBlMWY5YTZkOWEzYiJ9.lguyvz3QDz3MvHRLOY2vIzYPcDeWlRveHB_0i71q41pQiGsjSeD0xEyp_zTi2FNFJrWHSmr4VSLFocw5nrb4lg"
Ein verschachtelt enthaltenes JWT
+}

body.id_token.content.body.njwt.content

JWT

Headers
{
   "alg" : "BP256R1",
   "typ" : "JWT",
   "kid" : "puk_idp_sig"
Identifiziert den hier beschriebenen Schlüssel. Beschreibung siehe https://tools.ietf.org/html/rfc7517#section-4.5
-}

Body

{
-  "at_hash" : "eMcWyOpsuNa3xbeX-E7PhQ",
Erste 16 Bytes des Hash des Authentication Tokens Base64(subarray(Sha256(authentication_token), 0, 16))
+}

Body

{
+  "at_hash" : "lF0VqvwqZsLj65roKvnV5A",
Erste 16 Bytes des Hash des Authentication Tokens Base64(subarray(Sha256(authentication_token), 0, 16))
"sub" : "p2h-RT6EERghbjP8R1wnyz8k4xhOhwbesJRP0XnuSmo",
subject. Base64(sha256(audClaim + idNummerClaim + serverSubjectSalt))
"organizationName" : "Test GKV-SVNOT-VALID", "professionOID" : "1.2.276.0.76.4.49", @@ -1062,27 +1062,27 @@ "iss" : "https://idp.dev.gematik.solutions", "given_name" : "Darius Michael Brian Ubbo", "display_name" : "Darius Michael Brian Ubbo Bödefeld", - "nonce" : "aISJnIaG1wID3AZupycFRA6eeBqm6ffH",
String zu Verhinderung von CSRF-Attacken. Dieser Wert ist optional. Wenn er mitgegeben wird muss der gleiche Wert im abschließend ausgegebenen ID-Token wieder auftauchen. WICHTIG: Darf nicht länger als 512 Zeichen sein.
+ "nonce" : "JMt0fIv21UaU0OGDkMmC5u9AwEWjNPhG",
String zu Verhinderung von CSRF-Attacken. Dieser Wert ist optional. Wenn er mitgegeben wird muss der gleiche Wert im abschließend ausgegebenen ID-Token wieder auftauchen. WICHTIG: Darf nicht länger als 512 Zeichen sein.
"aud" : "eRezeptApp", "acr" : "gematik-ehealth-loa-high", "azp" : "eRezeptApp", - "auth_time" : 1709628953,
Timestamp der Authentisierung
- "exp" : 1709629262,
Gültigkeit des Tokens
- "iat" : 1709628962,
Zeitpunkt der Ausstellung des Tokens
+ "auth_time" : 1709638950,
Timestamp der Authentisierung
+ "exp" : 1709639259,
Gültigkeit des Tokens
+ "iat" : 1709638959,
Zeitpunkt der Ausstellung des Tokens
"family_name" : "Bödefeld", - "jti" : "e463ef1125986487"
A unique identifier for the token, which can be used to prevent reuse of the token. Value is a case-sensitive string.
-}

Signature

Was verified using Key puk_idp_sig

Encryption info

Was decrypted using Key token_key

body.access_token.content

JWE

Headers
{
+  "jti" : "ab640e1f9a6d9a3b"
A unique identifier for the token, which can be used to prevent reuse of the token. Value is a case-sensitive string.
+}

Signature

Was verified using Key puk_idp_sig

Encryption info

Was decrypted using Key token_key

body.access_token.content

JWE

Headers
{
   "alg" : "dir",
   "enc" : "A256GCM",
   "cty" : "NJWT",
-  "exp" : 1709629262
Gültigkeit des Tokens
-}

Body

{
-  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiYXQrSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJzdWIiOiJwMmgtUlQ2RUVSZ2hialA4UjF3bnl6OGs0eGhPaHdiZXNKUlAwWG51U21vIiwicHJvZmVzc2lvbk9JRCI6IjEuMi4yNzYuMC43Ni40LjQ5Iiwib3JnYW5pemF0aW9uTmFtZSI6IlRlc3QgR0tWLVNWTk9ULVZBTElEIiwiaWROdW1tZXIiOiJYMTEwNDExNjc1IiwiYW1yIjpbIm1mYSIsInNjIiwicGluIl0sImlzcyI6Imh0dHBzOi8vaWRwLmRldi5nZW1hdGlrLnNvbHV0aW9ucyIsImdpdmVuX25hbWUiOiJEYXJpdXMgTWljaGFlbCBCcmlhbiBVYmJvIiwiZGlzcGxheV9uYW1lIjoiRGFyaXVzIE1pY2hhZWwgQnJpYW4gVWJibyBCw7ZkZWZlbGQiLCJjbGllbnRfaWQiOiJlUmV6ZXB0QXBwIiwiYWNyIjoiZ2VtYXRpay1laGVhbHRoLWxvYS1oaWdoIiwiYXVkIjoiaHR0cHM6Ly9lcnAtdGVzdC56ZW50cmFsLmVycC5zcGxpdGRucy50aS1kaWVuc3RlLmRlLyIsImF6cCI6ImVSZXplcHRBcHAiLCJzY29wZSI6Im9wZW5pZCBlLXJlemVwdCIsImF1dGhfdGltZSI6MTcwOTYyODk1MywiZXhwIjoxNzA5NjI5MjYyLCJmYW1pbHlfbmFtZSI6IkLDtmRlZmVsZCIsImlhdCI6MTcwOTYyODk2MiwianRpIjoiODcyNTU5NjRlM2RkYjUwMyJ9.gQ4Iwl5Q1QxJy6Ncvm8A9qlven-72kTQNFu9HUIpayxKSq9bpzdq5jjhSdEskkqD1-dHTNBk1YwH7COg4r5heQ"
Ein verschachtelt enthaltenes JWT
-}

body.access_token.content.body.njwt.content

JWT

Headers
{
+  "exp" : 1709639259
Gültigkeit des Tokens
+}

Body

{
+  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiYXQrSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJzdWIiOiJwMmgtUlQ2RUVSZ2hialA4UjF3bnl6OGs0eGhPaHdiZXNKUlAwWG51U21vIiwicHJvZmVzc2lvbk9JRCI6IjEuMi4yNzYuMC43Ni40LjQ5Iiwib3JnYW5pemF0aW9uTmFtZSI6IlRlc3QgR0tWLVNWTk9ULVZBTElEIiwiaWROdW1tZXIiOiJYMTEwNDExNjc1IiwiYW1yIjpbIm1mYSIsInNjIiwicGluIl0sImlzcyI6Imh0dHBzOi8vaWRwLmRldi5nZW1hdGlrLnNvbHV0aW9ucyIsImdpdmVuX25hbWUiOiJEYXJpdXMgTWljaGFlbCBCcmlhbiBVYmJvIiwiZGlzcGxheV9uYW1lIjoiRGFyaXVzIE1pY2hhZWwgQnJpYW4gVWJibyBCw7ZkZWZlbGQiLCJjbGllbnRfaWQiOiJlUmV6ZXB0QXBwIiwiYWNyIjoiZ2VtYXRpay1laGVhbHRoLWxvYS1oaWdoIiwiYXVkIjoiaHR0cHM6Ly9lcnAtdGVzdC56ZW50cmFsLmVycC5zcGxpdGRucy50aS1kaWVuc3RlLmRlLyIsImF6cCI6ImVSZXplcHRBcHAiLCJzY29wZSI6Im9wZW5pZCBlLXJlemVwdCIsImF1dGhfdGltZSI6MTcwOTYzODk1MCwiZXhwIjoxNzA5NjM5MjU5LCJmYW1pbHlfbmFtZSI6IkLDtmRlZmVsZCIsImlhdCI6MTcwOTYzODk1OSwianRpIjoiN2I0MTAxZjZhMmRlZGJiMSJ9.V8dD1DeD7e_HJRXqWG90IO6E-Kj9IjM6lzF-Y4Ipdvpul9xLv1CioWFBMvNepxG1Hj7RTozY-du2NGBWqG_iAQ"
Ein verschachtelt enthaltenes JWT
+}

body.access_token.content.body.njwt.content

JWT

Headers
{
   "alg" : "BP256R1",
   "typ" : "at+JWT",
   "kid" : "puk_idp_sig"
Identifiziert den hier beschriebenen Schlüssel. Beschreibung siehe https://tools.ietf.org/html/rfc7517#section-4.5
-}

Body

{
+}

Body

{
   "sub" : "p2h-RT6EERghbjP8R1wnyz8k4xhOhwbesJRP0XnuSmo",
subject. Base64(sha256(audClaim + idNummerClaim + serverSubjectSalt))
"professionOID" : "1.2.276.0.76.4.49", "organizationName" : "Test GKV-SVNOT-VALID", @@ -1096,12 +1096,12 @@ "aud" : "https://erp-test.zentral.erp.splitdns.ti-dienste.de/", "azp" : "eRezeptApp", "scope" : "openid e-rezept",
Der Scope entspricht dem zwischen E-Rezept-Fachdienst und IDP festgelegten Wert. Mit diesem antwortet der E-Rezept-Fachdienst bei fehlendem ACCESS_TOKEN und http-Statuscode 401.
- "auth_time" : 1709628953,
Timestamp der Authentisierung
- "exp" : 1709629262,
Gültigkeit des Tokens
+ "auth_time" : 1709638950,
Timestamp der Authentisierung
+ "exp" : 1709639259,
Gültigkeit des Tokens
"family_name" : "Bödefeld", - "iat" : 1709628962,
Zeitpunkt der Ausstellung des Tokens
- "jti" : "87255964e3ddb503"
A unique identifier for the token, which can be used to prevent reuse of the token. Value is a case-sensitive string.
-}

Signature

Was verified using Key puk_idp_sig

Encryption info

Was decrypted using Key token_key

Created Tue, 5 Mar 2024 09:56:06 +0100
\ No newline at end of file + \ No newline at end of file diff --git a/doc/tokenFlowPs.html b/doc/tokenFlowPs.html index b64e934..df58a85 100644 --- a/doc/tokenFlowPs.html +++ b/doc/tokenFlowPs.html @@ -665,50 +665,50 @@ background-color: #469408!important; }
Gerendert mit https://github.com/gematik/app-RbelLogger
Created Tue, 5 Mar 2024 09:56:52 +0100
Created Tue, 5 Mar 2024 12:43:27 +0100

31 GET http://localhost:40931/.well-known/openid-configuration127.0.0.1:-1localhost:44581

31 GET http://localhost:38497/.well-known/openid-configuration127.0.0.1:-1localhost:44639

REQ Headers

User-Agent
IdP-Client
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Accept-Encoding
gzip
Nicht verpflichtend
Nicht verpflichtend
Host
localhost:44581
Nicht verpflichtend
Nicht verpflichtend
Connection
keep-alive
Nicht verpflichtend
Nicht verpflichtend
Empty body

REQ Headers

User-Agent
IdP-Client
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Accept-Encoding
gzip
Nicht verpflichtend
Nicht verpflichtend
Host
localhost:44639
Nicht verpflichtend
Nicht verpflichtend
Connection
keep-alive
Nicht verpflichtend
Nicht verpflichtend
Empty body

32200localhost:44581127.0.0.1:-1

32200localhost:44639127.0.0.1:-1

RES Headers

Keep-Alive
timeout=60
Cache-Control
no-store
Version
27.0.0
Pragma
no-cache
Content-Length
3118
Date
Tue, 05 Mar 2024 08:56:36 GMT
Zeitpunkt der Antwort.
Zeitpunkt der Antwort.
Content-Type
application/jwt;charset=UTF-8

RES Body

JWT

Headers
{
+Date: Tue, 05 Mar 2024 11:43:11 GMT
+Content-Type: application/jwt;charset=UTF-8

RES Headers

Keep-Alive
timeout=60
Cache-Control
no-store
Version
27.0.1
Pragma
no-cache
Content-Length
3118
Date
Tue, 05 Mar 2024 11:43:11 GMT
Zeitpunkt der Antwort.
Zeitpunkt der Antwort.
Content-Type
application/jwt;charset=UTF-8

RES Body

JWT

Headers
{
   "alg" : "BP256R1",
   "typ" : "JWT",
   "kid" : "puk_disc_sig",
Identifiziert den hier beschriebenen Schlüssel. Beschreibung siehe https://tools.ietf.org/html/rfc7517#section-4.5
"x5c" : [ "MIICsTCCAligAwIBAgIHAbssqQhqOzAKBggqhkjOPQQDAjCBhDELMAkGA1UEBhMCREUxHzAdBgNVBAoMFmdlbWF0aWsgR21iSCBOT1QtVkFMSUQxMjAwBgNVBAsMKUtvbXBvbmVudGVuLUNBIGRlciBUZWxlbWF0aWtpbmZyYXN0cnVrdHVyMSAwHgYDVQQDDBdHRU0uS09NUC1DQTEwIFRFU1QtT05MWTAeFw0yMTAxMTUwMDAwMDBaFw0yNjAxMTUyMzU5NTlaMEkxCzAJBgNVBAYTAkRFMSYwJAYDVQQKDB1nZW1hdGlrIFRFU1QtT05MWSAtIE5PVC1WQUxJRDESMBAGA1UEAwwJSURQIFNpZyAzMFowFAYHKoZIzj0CAQYJKyQDAwIIAQEHA0IABIYZnwiGAn5QYOx43Z8MwaZLD3r/bz6BTcQO5pbeum6qQzYD5dDCcriw/VNPPZCQzXQPg4StWyy5OOq9TogBEmOjge0wgeowDgYDVR0PAQH/BAQDAgeAMC0GBSskCAMDBCQwIjAgMB4wHDAaMAwMCklEUC1EaWVuc3QwCgYIKoIUAEwEggQwIQYDVR0gBBowGDAKBggqghQATASBSzAKBggqghQATASBIzAfBgNVHSMEGDAWgBQo8Pjmqch3zENF25qu1zqDrA4PqDA4BggrBgEFBQcBAQQsMCowKAYIKwYBBQUHMAGGHGh0dHA6Ly9laGNhLmdlbWF0aWsuZGUvb2NzcC8wHQYDVR0OBBYEFC94M9LgW44lNgoAbkPaomnLjS8/MAwGA1UdEwEB/wQCMAAwCgYIKoZIzj0EAwIDRwAwRAIgCg4yZDWmyBirgxzawz/S8DJnRFKtYU/YGNlRc7+kBHcCIBuzba3GspqSmoP1VwMeNNKNaLsgV8vMbDJb30aqaiX1"
Enthält das verwendete Signer-Zertifikat als Base64 ASN.1 DER-Encoding. Hier kommt ausnahmsweise NICHT URL-safes Base64-Encoding zum Einsatz!
] -}

body.header.x5c.0.content

X509 Certificate

Subject: C=DE,O=gematik TEST-ONLY - NOT-VALID,CN=IDP Sig 3

Issuer: C=DE,O=gematik GmbH NOT-VALID,OU=Komponenten-CA der Telematikinfrastruktur,CN=GEM.KOMP-CA10 TEST-ONLY

Serialnumber: 487275465566779

Valid From: 2021-01-15T00:00Z[UTC]

Valid Until: 2026-01-15T23:59:59Z[UTC]


Body

{
-  "authorization_endpoint" : "http://localhost:40931/sign_response",
URL des Authorization Endpunkts.
- "auth_pair_endpoint" : "http://localhost:40931/alt_response",
URL des Biometrie-Authorization Endpunkts.
- "sso_endpoint" : "http://localhost:40931/sso_response",
URL des SSO-Authorization Endpunkts.
- "uri_pair" : "http://localhost:40931/pairings",
URL des Pairing-Endpunkts
- "token_endpoint" : "http://localhost:40931/token",
URL des Authorization Endpunkts.
- "third_party_authorization_endpoint" : "http://localhost:40931/extauth", +}

body.header.x5c.0.content

X509 Certificate

Subject: C=DE,O=gematik TEST-ONLY - NOT-VALID,CN=IDP Sig 3

Issuer: C=DE,O=gematik GmbH NOT-VALID,OU=Komponenten-CA der Telematikinfrastruktur,CN=GEM.KOMP-CA10 TEST-ONLY

Serialnumber: 487275465566779

Valid From: 2021-01-15T00:00Z[UTC]

Valid Until: 2026-01-15T23:59:59Z[UTC]


Body

{
+  "authorization_endpoint" : "http://localhost:38497/sign_response",
URL des Authorization Endpunkts.
+ "auth_pair_endpoint" : "http://localhost:38497/alt_response",
URL des Biometrie-Authorization Endpunkts.
+ "sso_endpoint" : "http://localhost:38497/sso_response",
URL des SSO-Authorization Endpunkts.
+ "uri_pair" : "http://localhost:38497/pairings",
URL des Pairing-Endpunkts
+ "token_endpoint" : "http://localhost:38497/token",
URL des Authorization Endpunkts.
+ "third_party_authorization_endpoint" : "http://localhost:38497/extauth", "federation_authorization_endpoint" : "https://idpfadi.dev.gematik.solutions/auth", - "uri_disc" : "http://localhost:40931/.well-known/openid-configuration",
URL des Discovery-Dokuments
+ "uri_disc" : "http://localhost:38497/.well-known/openid-configuration",
URL des Discovery-Dokuments
"issuer" : "https://idp.dev.gematik.solutions", - "jwks_uri" : "http://localhost:40931/jwks",
URL einer JWKS-Struktur mit allen vom Server verwendeten Schlüsseln
- "exp" : 1709715396,
Gültigkeit des Tokens
- "iat" : 1709628996,
Zeitpunkt der Ausstellung des Tokens
- "uri_puk_idp_enc" : "http://localhost:40931/idpEnc/jwk.json", - "uri_puk_idp_sig" : "http://localhost:40931/idpSig/jwk.json", + "jwks_uri" : "http://localhost:38497/jwks",
URL einer JWKS-Struktur mit allen vom Server verwendeten Schlüsseln
+ "exp" : 1709725391,
Gültigkeit des Tokens
+ "iat" : 1709638991,
Zeitpunkt der Ausstellung des Tokens
+ "uri_puk_idp_enc" : "http://localhost:38497/idpEnc/jwk.json", + "uri_puk_idp_sig" : "http://localhost:38497/idpSig/jwk.json", "subject_types_supported" : [ "pairwise" ], "id_token_signing_alg_values_supported" : [ "BP256R1" ], "response_types_supported" : [ "code" ], @@ -718,27 +718,27 @@ "acr_values_supported" : [ "gematik-ehealth-loa-high" ], "token_endpoint_auth_methods_supported" : [ "none" ], "code_challenge_methods_supported" : [ "S256" ], - "kk_app_list_uri" : "http://localhost:40931/directory/kk_apps", - "fed_idp_list_uri" : "http://localhost:40931/fed_idp_list" -}

Signature

Was verified using Key puk_disc_sig

Signature

Was verified using Key puk_disc_sig

33 GET http://localhost:40931/idpSig/jwk.json127.0.0.1:-1localhost:44581

33 GET http://localhost:38497/idpSig/jwk.json127.0.0.1:-1localhost:44639

REQ Headers

User-Agent
IdP-Client
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Accept-Encoding
gzip
Nicht verpflichtend
Nicht verpflichtend
Host
localhost:44581
Nicht verpflichtend
Nicht verpflichtend
Connection
keep-alive
Nicht verpflichtend
Nicht verpflichtend
Empty body

REQ Headers

User-Agent
IdP-Client
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Accept-Encoding
gzip
Nicht verpflichtend
Nicht verpflichtend
Host
localhost:44639
Nicht verpflichtend
Nicht verpflichtend
Connection
keep-alive
Nicht verpflichtend
Nicht verpflichtend
Empty body

34200localhost:44581127.0.0.1:-1

RES Headers

Keep-Alive
timeout=60
Version
27.0.0
Date
Tue, 05 Mar 2024 08:56:39 GMT
Zeitpunkt der Antwort.
Zeitpunkt der Antwort.
Content-Type
application/json

RES Body

{
+{"x5c":["MIICsTCCAligAwIBAgIHA61I5ACUjTAKBggqhkjOPQQDAjCBhDELMAkGA1UEBhMCREUxHzAdBgNVBAoMFmdlbWF0aWsgR21iSCBOT1QtVkFMSUQxMjAwBgNVBAsMKUtvbXBvbmVudGVuLUNBIGRlciBUZWxlbWF0aWtpbmZyYXN0cnVrdHVyMSAwHgYDVQQDDBdHRU0uS09NUC1DQTEwIFRFU1QtT05MWTAeFw0yMDA4MDQwMDAwMDBaFw0yNTA4MDQyMzU5NTlaMEkxCzAJBgNVBAYTAkRFMSYwJAYDVQQKDB1nZW1hdGlrIFRFU1QtT05MWSAtIE5PVC1WQUxJRDESMBAGA1UEAwwJSURQIFNpZyAxMFowFAYHKoZIzj0CAQYJKyQDAwIIAQEHA0IABJZQrG1NWxIB3kz/6Z2zojlkJqN3vJXZ3EZnJ6JXTXw5ZDFZ5XjwWmtgfomv3VOV7qzI5ycUSJysMWDEu3mqRcajge0wgeowHQYDVR0OBBYEFJ8DVLAZWT+BlojTD4MT/Na+ES8YMDgGCCsGAQUFBwEBBCwwKjAoBggrBgEFBQcwAYYcaHR0cDovL2VoY2EuZ2VtYXRpay5kZS9vY3NwLzAMBgNVHRMBAf8EAjAAMCEGA1UdIAQaMBgwCgYIKoIUAEwEgUswCgYIKoIUAEwEgSMwHwYDVR0jBBgwFoAUKPD45qnId8xDRduartc6g6wOD6gwLQYFKyQIAwMEJDAiMCAwHjAcMBowDAwKSURQLURpZW5zdDAKBggqghQATASCBDAOBgNVHQ8BAf8EBAMCB4AwCgYIKoZIzj0EAwIDRwAwRAIgVBPhAwyX8HAVH0O0b3+VazpBAWkQNjkEVRkv+EYX1e8CIFdn4O+nivM+XVi9xiKK4dW1R7MD334OpOPTFjeEhIVV"],"use":"sig","kid":"puk_idp_sig","kty":"EC","crv":"BP-256","x":"llCsbU1bEgHeTP_pnbOiOWQmo3e8ldncRmcnoldNfDk","y":"ZDFZ5XjwWmtgfomv3VOV7qzI5ycUSJysMWDEu3mqRcY"}

34200localhost:44639127.0.0.1:-1

RES Headers

Keep-Alive
timeout=60
Version
27.0.1
Date
Tue, 05 Mar 2024 11:43:15 GMT
Zeitpunkt der Antwort.
Zeitpunkt der Antwort.
Content-Type
application/json

RES Body

{
   "x5c" : [ "MIICsTCCAligAwIBAgIHA61I5ACUjTAKBggqhkjOPQQDAjCBhDELMAkGA1UEBhMCREUxHzAdBgNVBAoMFmdlbWF0aWsgR21iSCBOT1QtVkFMSUQxMjAwBgNVBAsMKUtvbXBvbmVudGVuLUNBIGRlciBUZWxlbWF0aWtpbmZyYXN0cnVrdHVyMSAwHgYDVQQDDBdHRU0uS09NUC1DQTEwIFRFU1QtT05MWTAeFw0yMDA4MDQwMDAwMDBaFw0yNTA4MDQyMzU5NTlaMEkxCzAJBgNVBAYTAkRFMSYwJAYDVQQKDB1nZW1hdGlrIFRFU1QtT05MWSAtIE5PVC1WQUxJRDESMBAGA1UEAwwJSURQIFNpZyAxMFowFAYHKoZIzj0CAQYJKyQDAwIIAQEHA0IABJZQrG1NWxIB3kz/6Z2zojlkJqN3vJXZ3EZnJ6JXTXw5ZDFZ5XjwWmtgfomv3VOV7qzI5ycUSJysMWDEu3mqRcajge0wgeowHQYDVR0OBBYEFJ8DVLAZWT+BlojTD4MT/Na+ES8YMDgGCCsGAQUFBwEBBCwwKjAoBggrBgEFBQcwAYYcaHR0cDovL2VoY2EuZ2VtYXRpay5kZS9vY3NwLzAMBgNVHRMBAf8EAjAAMCEGA1UdIAQaMBgwCgYIKoIUAEwEgUswCgYIKoIUAEwEgSMwHwYDVR0jBBgwFoAUKPD45qnId8xDRduartc6g6wOD6gwLQYFKyQIAwMEJDAiMCAwHjAcMBowDAwKSURQLURpZW5zdDAKBggqghQATASCBDAOBgNVHQ8BAf8EBAMCB4AwCgYIKoZIzj0EAwIDRwAwRAIgVBPhAwyX8HAVH0O0b3+VazpBAWkQNjkEVRkv+EYX1e8CIFdn4O+nivM+XVi9xiKK4dW1R7MD334OpOPTFjeEhIVV"
Enthält das verwendete Signer-Zertifikat als Base64 ASN.1 DER-Encoding. Hier kommt ausnahmsweise NICHT URL-safes Base64-Encoding zum Einsatz!
], "use" : "sig",
Erlaubte Verwendungen des Schlüssels. Siehe https://tools.ietf.org/html/rfc7517#section-4.2
"kid" : "puk_idp_sig",
Identifiziert den hier beschriebenen Schlüssel. Beschreibung siehe https://tools.ietf.org/html/rfc7517#section-4.5
@@ -746,57 +746,57 @@ "crv" : "BP-256", "x" : "llCsbU1bEgHeTP_pnbOiOWQmo3e8ldncRmcnoldNfDk",
X-Koordinate des öffentlichen Punkts des Schlüssels
"y" : "ZDFZ5XjwWmtgfomv3VOV7qzI5ycUSJysMWDEu3mqRcY"
Y-Koordinate des öffentlichen Punkts des Schlüssels
-}

body.x5c.0.content

X509 Certificate

Subject: C=DE,O=gematik TEST-ONLY - NOT-VALID,CN=IDP Sig 1

Issuer: C=DE,O=gematik GmbH NOT-VALID,OU=Komponenten-CA der Telematikinfrastruktur,CN=GEM.KOMP-CA10 TEST-ONLY

Serialnumber: 1034953504625805

Valid From: 2020-08-04T00:00Z[UTC]

Valid Until: 2025-08-04T23:59:59Z[UTC]


35 GET http://localhost:40931/idpEnc/jwk.json127.0.0.1:-1localhost:44581

35 GET http://localhost:38497/idpEnc/jwk.json127.0.0.1:-1localhost:44639

REQ Headers

User-Agent
IdP-Client
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Accept-Encoding
gzip
Nicht verpflichtend
Nicht verpflichtend
Host
localhost:44581
Nicht verpflichtend
Nicht verpflichtend
Connection
keep-alive
Nicht verpflichtend
Nicht verpflichtend
Empty body

REQ Headers

User-Agent
IdP-Client
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Accept-Encoding
gzip
Nicht verpflichtend
Nicht verpflichtend
Host
localhost:44639
Nicht verpflichtend
Nicht verpflichtend
Connection
keep-alive
Nicht verpflichtend
Nicht verpflichtend
Empty body

36200localhost:44581127.0.0.1:-1

RES Headers

Keep-Alive
timeout=60
Version
27.0.0
Date
Tue, 05 Mar 2024 08:56:42 GMT
Zeitpunkt der Antwort.
Zeitpunkt der Antwort.
Content-Type
application/json

RES Body

{
+{"use":"enc","kid":"puk_idp_enc","kty":"EC","crv":"BP-256","x":"QLpJ_LpFx-6yJhsb4OvHwU1khLnviiOwYOvmf5clK7w","y":"mHuknfNkoMmSbytt4br0YGihOixcmBKy80UfSLdXGe4"}

36200localhost:44639127.0.0.1:-1

RES Headers

Keep-Alive
timeout=60
Version
27.0.1
Date
Tue, 05 Mar 2024 11:43:17 GMT
Zeitpunkt der Antwort.
Zeitpunkt der Antwort.
Content-Type
application/json

RES Body

{
   "use" : "enc",
Erlaubte Verwendungen des Schlüssels. Siehe https://tools.ietf.org/html/rfc7517#section-4.2
"kid" : "puk_idp_enc",
Identifiziert den hier beschriebenen Schlüssel. Beschreibung siehe https://tools.ietf.org/html/rfc7517#section-4.5
"kty" : "EC", "crv" : "BP-256", "x" : "QLpJ_LpFx-6yJhsb4OvHwU1khLnviiOwYOvmf5clK7w",
X-Koordinate des öffentlichen Punkts des Schlüssels
"y" : "mHuknfNkoMmSbytt4br0YGihOixcmBKy80UfSLdXGe4"
Y-Koordinate des öffentlichen Punkts des Schlüssels
-}

37 GET http://localhost:40931/sign_response?client_id=gematikTestPs&response_type=code&redirect_uri=http%3A%2F%2Ftest-ps.gematik.de%2Ferezept&state=RGMh158B3vXdKGscjBJgB9tVCLqREw8E&code_challenge=4-6ElBMCFHJqukgSbZLljmRoWK_qAFDU3r-T46OiEcs&code_challenge_method=S256&scope=openid+e-rezept&nonce=tNWeXmLG-ClNq34n9f9ZkpCQ8nIkeykV127.0.0.1:-1localhost:44581

37 GET http://localhost:38497/sign_response?client_id=gematikTestPs&response_type=code&redirect_uri=http%3A%2F%2Ftest-ps.gematik.de%2Ferezept&state=iKT89r3VokD1JTRBbDOpmgKSPCbD24Rp&code_challenge=BQh_gg_oIuu7tlRkW_f1X_63DQCDDkm0oB6QthTDfGo&code_challenge_method=S256&scope=openid+e-rezept&nonce=A7UhwqKg3iqwJegdIkaDxHUVJpaO7ddZ127.0.0.1:-1localhost:44639

REQ Headers

User-Agent
IdP-Client
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Accept
application/json
Accept-Encoding
gzip
Nicht verpflichtend
Nicht verpflichtend
Host
localhost:44581
Nicht verpflichtend
Nicht verpflichtend
Connection
keep-alive
Nicht verpflichtend
Nicht verpflichtend
Empty body

REQ Headers

User-Agent
IdP-Client
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Accept
application/json
Accept-Encoding
gzip
Nicht verpflichtend
Nicht verpflichtend
Host
localhost:44639
Nicht verpflichtend
Nicht verpflichtend
Connection
keep-alive
Nicht verpflichtend
Nicht verpflichtend
Empty body

38200localhost:44581127.0.0.1:-1

38200localhost:44639127.0.0.1:-1

RES Headers

Keep-Alive
timeout=60
Cache-Control
no-store
Version
27.0.0
Pragma
no-cache
Date
Tue, 05 Mar 2024 08:56:42 GMT
Zeitpunkt der Antwort.
Zeitpunkt der Antwort.
Content-Type
application/json

RES Body

{
-  "challenge" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjQ0NTgxIiwicmVzcG9uc2VfdHlwZSI6ImNvZGUiLCJzbmMiOiJ3djJHVnRUOHFJR0FmcWNFTVZrRS1qY3VfelRocjZkRE5FY2gyRkpHTHJBIiwiY29kZV9jaGFsbGVuZ2VfbWV0aG9kIjoiUzI1NiIsInRva2VuX3R5cGUiOiJjaGFsbGVuZ2UiLCJub25jZSI6InROV2VYbUxHLUNsTnEzNG45Zjlaa3BDUThuSWtleWtWIiwiY2xpZW50X2lkIjoiZ2VtYXRpa1Rlc3RQcyIsInNjb3BlIjoib3BlbmlkIGUtcmV6ZXB0Iiwic3RhdGUiOiJSR01oMTU4QjN2WGRLR3NjakJKZ0I5dFZDTHFSRXc4RSIsInJlZGlyZWN0X3VyaSI6Imh0dHA6Ly90ZXN0LXBzLmdlbWF0aWsuZGUvZXJlemVwdCIsImV4cCI6MTcwOTYyOTE4MiwiaWF0IjoxNzA5NjI5MDAyLCJjb2RlX2NoYWxsZW5nZSI6IjQtNkVsQk1DRkhKcXVrZ1NiWkxsam1Sb1dLX3FBRkRVM3ItVDQ2T2lFY3MiLCJqdGkiOiI0N2M0ODYwMzc4MDE0Yjg5In0.pjpog8QjYrZiuoVxokRu5pasPvmd7gdo408Do-PYsDJRosAK93pLSZOS2sNWE-xCysB_CgzzSMsC8VnVnj9vyw",
Die vom Client mittels der eGK bzw. SMC-B zu signierende Challenge besteht aus einem Base64-codierten Challenge-Token.
+Date: Tue, 05 Mar 2024 11:43:17 GMT +Content-Type: application/json

RES Headers

Keep-Alive
timeout=60
Cache-Control
no-store
Version
27.0.1
Pragma
no-cache
Date
Tue, 05 Mar 2024 11:43:17 GMT
Zeitpunkt der Antwort.
Zeitpunkt der Antwort.
Content-Type
application/json

RES Body

{
+  "challenge" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjQ0NjM5IiwicmVzcG9uc2VfdHlwZSI6ImNvZGUiLCJzbmMiOiJacFd3VUs4ZUtfa0luR1V5ZTc4cWJPVm9LNTBVY0swbjcyeldPdWJDRWpRIiwiY29kZV9jaGFsbGVuZ2VfbWV0aG9kIjoiUzI1NiIsInRva2VuX3R5cGUiOiJjaGFsbGVuZ2UiLCJub25jZSI6IkE3VWh3cUtnM2lxd0plZ2RJa2FEeEhVVkpwYU83ZGRaIiwiY2xpZW50X2lkIjoiZ2VtYXRpa1Rlc3RQcyIsInNjb3BlIjoib3BlbmlkIGUtcmV6ZXB0Iiwic3RhdGUiOiJpS1Q4OXIzVm9rRDFKVFJCYkRPcG1nS1NQQ2JEMjRScCIsInJlZGlyZWN0X3VyaSI6Imh0dHA6Ly90ZXN0LXBzLmdlbWF0aWsuZGUvZXJlemVwdCIsImV4cCI6MTcwOTYzOTE3OCwiaWF0IjoxNzA5NjM4OTk4LCJjb2RlX2NoYWxsZW5nZSI6IkJRaF9nZ19vSXV1N3RsUmtXX2YxWF82M0RRQ0REa20wb0I2UXRoVERmR28iLCJqdGkiOiJjM2Y0YzQ1MmNlZjgzYmE4In0.dM25cxnWfUDmyHRao7GYN7JVyuhy7jZN5PuJRbxcaSl4JcJ9vRAhTw7sUyZoZ0K6Ztn1vgMLXvJddztNZpXBZg",
Die vom Client mittels der eGK bzw. SMC-B zu signierende Challenge besteht aus einem Base64-codierten Challenge-Token.
"user_consent" : { "requested_scopes" : { "e-rezept" : "Zugriff auf die E-Rezept-Funktionalität.", @@ -811,219 +811,219 @@ "family_name" : "Zustimmung zur Verarbeitung des Nachnamens" } } -}

body.challenge.content

JWT

Headers
{
+}

body.challenge.content

JWT

Headers
{
   "alg" : "BP256R1",
   "typ" : "JWT",
   "kid" : "puk_idp_sig"
Identifiziert den hier beschriebenen Schlüssel. Beschreibung siehe https://tools.ietf.org/html/rfc7517#section-4.5
-}

Body

{
-  "iss" : "http://localhost:44581",
+}

Body

{
+  "iss" : "http://localhost:44639",
   "response_type" : "code",
Referenziert den erwarteten Response-Type des Flows. Muss immer 'code' lauten. Damit wird angezeigt das es sich hierbei um einen Authorization Code Flow handelt. Für eine nähere Erläuterung siehe OpenID-Spezifikation.
- "snc" : "wv2GVtT8qIGAfqcEMVkE-jcu_zThr6dDNEch2FJGLrA",
server-nonce. Wird verwendet um noise hinzuzufügen.
+ "snc" : "ZpWwUK8eK_kInGUye78qbOVoK50UcK0n72zWOubCEjQ",
server-nonce. Wird verwendet um noise hinzuzufügen.
"code_challenge_method" : "S256",
Das Primärsystem generiert einen Code-Verifier und erzeugt darüber einen Hash im Verfahren SHA-256, hier abgekürzt als S256. Teil von PKCE.
"token_type" : "challenge", - "nonce" : "tNWeXmLG-ClNq34n9f9ZkpCQ8nIkeykV",
String zu Verhinderung von CSRF-Attacken. Dieser Wert ist optional. Wenn er mitgegeben wird muss der gleiche Wert im abschließend ausgegebenen ID-Token wieder auftauchen. WICHTIG: Darf nicht länger als 512 Zeichen sein.
+ "nonce" : "A7UhwqKg3iqwJegdIkaDxHUVJpaO7ddZ",
String zu Verhinderung von CSRF-Attacken. Dieser Wert ist optional. Wenn er mitgegeben wird muss der gleiche Wert im abschließend ausgegebenen ID-Token wieder auftauchen. WICHTIG: Darf nicht länger als 512 Zeichen sein.
"client_id" : "gematikTestPs",
Die client_id des Clients. Wird bei der Registrierung vergeben.
"scope" : "openid e-rezept",
Der Scope entspricht dem zwischen E-Rezept-Fachdienst und IDP festgelegten Wert. Mit diesem antwortet der E-Rezept-Fachdienst bei fehlendem ACCESS_TOKEN und http-Statuscode 401.
- "state" : "RGMh158B3vXdKGscjBJgB9tVCLqREw8E",
Der state der Session. Sollte dem zufällig generierten state-Wert aus der initialen Anfrage entsprechen.
+ "state" : "iKT89r3VokD1JTRBbDOpmgKSPCbD24Rp",
Der state der Session. Sollte dem zufällig generierten state-Wert aus der initialen Anfrage entsprechen.
"redirect_uri" : "http://test-ps.gematik.de/erezept",
Die für den Client beim Server hinterlegte redirect_uri. Muss dem bei der Registrierung hinterlegten Wert entsprechen.
- "exp" : 1709629182,
Gültigkeit des Tokens
- "iat" : 1709629002,
Zeitpunkt der Ausstellung des Tokens
- "code_challenge" : "4-6ElBMCFHJqukgSbZLljmRoWK_qAFDU3r-T46OiEcs",
Der Hashwert des Code-Verifiers wird zum IDP als Code-Challenge gesendet. Teil von PKCE.
- "jti" : "47c4860378014b89"
A unique identifier for the token, which can be used to prevent reuse of the token. Value is a case-sensitive string.
-}

Signature

Was verified using Key puk_idp_sig

Signature

Was verified using Key puk_idp_sig

39 POST http://localhost:40931/sign_response127.0.0.1:-1localhost:44581

39 POST http://localhost:38497/sign_response127.0.0.1:-1localhost:44639

REQ Headers

Content-Type
application/x-www-form-urlencoded
User-Agent
IdP-Client
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Accept-Encoding
gzip
Nicht verpflichtend
Nicht verpflichtend
Content-Length
4013
Host
localhost:44581
Nicht verpflichtend
Nicht verpflichtend
Connection
keep-alive
Nicht verpflichtend
Nicht verpflichtend

REQ Body

namevalue
signed_challenge

JWE

Hierbei handelt es sich um das signierte und verschlüsselte "CHALLENGE_TOKEN".

Headers
{
+Host: localhost:44639
+Connection: keep-alive

REQ Headers

Content-Type
application/x-www-form-urlencoded
User-Agent
IdP-Client
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Accept-Encoding
gzip
Nicht verpflichtend
Nicht verpflichtend
Content-Length
4013
Host
localhost:44639
Nicht verpflichtend
Nicht verpflichtend
Connection
keep-alive
Nicht verpflichtend
Nicht verpflichtend

REQ Body

namevalue
signed_challenge

JWE

Hierbei handelt es sich um das signierte und verschlüsselte "CHALLENGE_TOKEN".

Headers
{
   "alg" : "ECDH-ES",
   "enc" : "A256GCM",
   "cty" : "NJWT",
-  "exp" : 1709629182,
Gültigkeit des Tokens
Dieser EXP-Header muss exakt dem EXP-Wert aus dem Body der Server-Challenge entsprechen.
+ "exp" : 1709639178,
Gültigkeit des Tokens
Dieser EXP-Header muss exakt dem EXP-Wert aus dem Body der Server-Challenge entsprechen.
"epk" : { "kty" : "EC", - "x" : "KxOis2csKb1FDnH9outZ2_vBu8RnQhhkVVpy2Z_Cky0",
X-Koordinate des öffentlichen Punkts des Schlüssels
- "y" : "cD0VPSlx5XX1po1sdfQ412ZyXPJm53riMYPRvz93Z4Q",
Y-Koordinate des öffentlichen Punkts des Schlüssels
+ "x" : "ljPoIUEqFvydUIm49KY3ZFaWM1HjMfsnKa1hHUwgghM",
X-Koordinate des öffentlichen Punkts des Schlüssels
+ "y" : "kjtKGkmUpqDKB-GLU2hglHXmrXo6yumn2k4b_KFxTY8",
Y-Koordinate des öffentlichen Punkts des Schlüssels
"crv" : "BP-256" } -}

Body

{
-  "njwt" : "eyJ0eXAiOiJKV1QiLCJjdHkiOiJOSldUIiwieDVjIjpbIk1JSURWekNDQXY2Z0F3SUJBZ0lIQUlvMS92bkxtREFLQmdncWhrak9QUVFEQWpDQmlURUxNQWtHQTFVRUJoTUNSRVV4SHpBZEJnTlZCQW9NRm1kbGJXRjBhV3NnUjIxaVNDQk9UMVF0VmtGTVNVUXhPREEyQmdOVkJBc01MMGhsYVd4aVpYSjFabk5oZFhOM1pXbHpMVU5CSUdSbGNpQlVaV3hsYldGMGFXdHBibVp5WVhOMGNuVnJkSFZ5TVI4d0hRWURWUVFEREJaSFJVMHVTRUpCTFVOQk1UTWdWRVZUVkMxUFRreFpNQjRYRFRJd01EWXhNREF3TURBd01Gb1hEVEkxTURZd09USXpOVGsxT1Zvd2NERUxNQWtHQTFVRUJoTUNSRVV4WVRBTUJnTlZCQVFNQlU5MHc2MXpNQlFHQTFVRUtnd05SOE84Ym5Sb1pYSWdSM0poWmpBYkJnTlZCQVVURkRnd01qYzJPRGd6TVRFd01EQXdNVEk1TURnME1CNEdBMVVFQXd3WFI4TzhiblJvWlhJZ1QzVERyWE5VUlZOVUxVOU9URmt3V2pBVUJnY3Foa2pPUFFJQkJna3JKQU1EQWdnQkFRY0RRZ0FFVS84bVlMM3lsQS9USnNWSHhhYXhqaHpZUG9keGJxR2VqelhibHBaMzYrMEJ2TDZkLzlLSWVva3plc3JLRTBnNjZhTDBXK3Nwc3FwWFNUYVlQQnFMMDZPQ0FXWXdnZ0ZpTUF3R0ExVWRFd0VCL3dRQ01BQXdEZ1lEVlIwUEFRSC9CQVFEQWdPSU1CMEdBMVVkRGdRV0JCU1kzMFRwZjBYY2pvdFdTOVBYVXY5RERENnBrVEE0QmdnckJnRUZCUWNCQVFRc01Db3dLQVlJS3dZQkJRVUhNQUdHSEdoMGRIQTZMeTlsYUdOaExtZGxiV0YwYVdzdVpHVXZiMk56Y0M4d0hRWURWUjBsQkJZd0ZBWUlLd1lCQlFVSEF3SUdDQ3NHQVFVRkJ3TUVNQzRHQTFVZElBUW5NQ1V3Q1FZSEtvSVVBRXdFU3pBTUJnb3JCZ0VFQVlMTk13RUJNQW9HQ0NxQ0ZBQk1CSUVSTUI4R0ExVWRJd1FZTUJhQUZBcjdETlhVazFROVpZQStlaUFDbFRTV2dCdkFNSGtHQlNza0NBTURCSEF3YnFRb01DWXhDekFKQmdOVkJBWVRBa1JGTVJjd0ZRWURWUVFLREE1blpXMWhkR2xySUVKbGNteHBiakJDTUVBd1BqQThNQTRNRE1PRWNucDBhVzR2UVhKNmREQUpCZ2NxZ2hRQVRBUWVFeDh4TFVoQ1FTMVVaWE4wYTJGeWRHVXRPRGd6TVRFd01EQXdNVEk1TURnME1Bb0dDQ3FHU000OUJBTUNBMGNBTUVRQ0lFT2xHd3VmRjJIWjJuWkF3Qm41cXJXeVNKMWpXSVNVcjBmZUFiZjBNNUxyQWlCRyt2T2lhR2wyYUZQd0Y5UXp4a0ZOZTAvb2QxdVEzbEdVL2sxVWtGdTFQdz09Il0sImFsZyI6IkJQMjU2UjEifQ.eyJuand0IjoiZXlKaGJHY2lPaUpDVURJMU5sSXhJaXdpZEhsd0lqb2lTbGRVSWl3aWEybGtJam9pY0hWclgybGtjRjl6YVdjaWZRLmV5SnBjM01pT2lKb2RIUndPaTh2Ykc5allXeG9iM04wT2pRME5UZ3hJaXdpY21WemNHOXVjMlZmZEhsd1pTSTZJbU52WkdVaUxDSnpibU1pT2lKM2RqSkhWblJVT0hGSlIwRm1jV05GVFZaclJTMXFZM1ZmZWxSb2NqWmtSRTVGWTJneVJrcEhUSEpCSWl3aVkyOWtaVjlqYUdGc2JHVnVaMlZmYldWMGFHOWtJam9pVXpJMU5pSXNJblJ2YTJWdVgzUjVjR1VpT2lKamFHRnNiR1Z1WjJVaUxDSnViMjVqWlNJNkluUk9WMlZZYlV4SExVTnNUbkV6Tkc0NVpqbGFhM0JEVVRodVNXdGxlV3RXSWl3aVkyeHBaVzUwWDJsa0lqb2laMlZ0WVhScGExUmxjM1JRY3lJc0luTmpiM0JsSWpvaWIzQmxibWxrSUdVdGNtVjZaWEIwSWl3aWMzUmhkR1VpT2lKU1IwMW9NVFU0UWpOMldHUkxSM05qYWtKS1owSTVkRlpEVEhGU1JYYzRSU0lzSW5KbFpHbHlaV04wWDNWeWFTSTZJbWgwZEhBNkx5OTBaWE4wTFhCekxtZGxiV0YwYVdzdVpHVXZaWEpsZW1Wd2RDSXNJbVY0Y0NJNk1UY3dPVFl5T1RFNE1pd2lhV0YwSWpveE56QTVOakk1TURBeUxDSmpiMlJsWDJOb1lXeHNaVzVuWlNJNklqUXROa1ZzUWsxRFJraEtjWFZyWjFOaVdreHNhbTFTYjFkTFgzRkJSa1JWTTNJdFZEUTJUMmxGWTNNaUxDSnFkR2tpT2lJME4yTTBPRFl3TXpjNE1ERTBZamc1SW4wLnBqcG9nOFFqWXJaaXVvVnhva1J1NXBhc1B2bWQ3Z2RvNDA4RG8tUFlzREpSb3NBSzkzcExTWk9TMnNOV0UteEN5c0JfQ2d6elNNc0M4Vm5Wbmo5dnl3In0.K4fhi6qhR1BdQHHYHZ4ifCR7dYYbxMTAlaA7ZY8OtDcZxtrfTwGH2qXLDV5-Efm07lyG32OrmP87ggpHASXh8Q"
Ein verschachtelt enthaltenes JWT
-}

body.signed_challenge.body.njwt.content

JWT

Headers
{
+}

Body

{
+  "njwt" : "eyJ0eXAiOiJKV1QiLCJjdHkiOiJOSldUIiwieDVjIjpbIk1JSURWekNDQXY2Z0F3SUJBZ0lIQUlvMS92bkxtREFLQmdncWhrak9QUVFEQWpDQmlURUxNQWtHQTFVRUJoTUNSRVV4SHpBZEJnTlZCQW9NRm1kbGJXRjBhV3NnUjIxaVNDQk9UMVF0VmtGTVNVUXhPREEyQmdOVkJBc01MMGhsYVd4aVpYSjFabk5oZFhOM1pXbHpMVU5CSUdSbGNpQlVaV3hsYldGMGFXdHBibVp5WVhOMGNuVnJkSFZ5TVI4d0hRWURWUVFEREJaSFJVMHVTRUpCTFVOQk1UTWdWRVZUVkMxUFRreFpNQjRYRFRJd01EWXhNREF3TURBd01Gb1hEVEkxTURZd09USXpOVGsxT1Zvd2NERUxNQWtHQTFVRUJoTUNSRVV4WVRBTUJnTlZCQVFNQlU5MHc2MXpNQlFHQTFVRUtnd05SOE84Ym5Sb1pYSWdSM0poWmpBYkJnTlZCQVVURkRnd01qYzJPRGd6TVRFd01EQXdNVEk1TURnME1CNEdBMVVFQXd3WFI4TzhiblJvWlhJZ1QzVERyWE5VUlZOVUxVOU9URmt3V2pBVUJnY3Foa2pPUFFJQkJna3JKQU1EQWdnQkFRY0RRZ0FFVS84bVlMM3lsQS9USnNWSHhhYXhqaHpZUG9keGJxR2VqelhibHBaMzYrMEJ2TDZkLzlLSWVva3plc3JLRTBnNjZhTDBXK3Nwc3FwWFNUYVlQQnFMMDZPQ0FXWXdnZ0ZpTUF3R0ExVWRFd0VCL3dRQ01BQXdEZ1lEVlIwUEFRSC9CQVFEQWdPSU1CMEdBMVVkRGdRV0JCU1kzMFRwZjBYY2pvdFdTOVBYVXY5RERENnBrVEE0QmdnckJnRUZCUWNCQVFRc01Db3dLQVlJS3dZQkJRVUhNQUdHSEdoMGRIQTZMeTlsYUdOaExtZGxiV0YwYVdzdVpHVXZiMk56Y0M4d0hRWURWUjBsQkJZd0ZBWUlLd1lCQlFVSEF3SUdDQ3NHQVFVRkJ3TUVNQzRHQTFVZElBUW5NQ1V3Q1FZSEtvSVVBRXdFU3pBTUJnb3JCZ0VFQVlMTk13RUJNQW9HQ0NxQ0ZBQk1CSUVSTUI4R0ExVWRJd1FZTUJhQUZBcjdETlhVazFROVpZQStlaUFDbFRTV2dCdkFNSGtHQlNza0NBTURCSEF3YnFRb01DWXhDekFKQmdOVkJBWVRBa1JGTVJjd0ZRWURWUVFLREE1blpXMWhkR2xySUVKbGNteHBiakJDTUVBd1BqQThNQTRNRE1PRWNucDBhVzR2UVhKNmREQUpCZ2NxZ2hRQVRBUWVFeDh4TFVoQ1FTMVVaWE4wYTJGeWRHVXRPRGd6TVRFd01EQXdNVEk1TURnME1Bb0dDQ3FHU000OUJBTUNBMGNBTUVRQ0lFT2xHd3VmRjJIWjJuWkF3Qm41cXJXeVNKMWpXSVNVcjBmZUFiZjBNNUxyQWlCRyt2T2lhR2wyYUZQd0Y5UXp4a0ZOZTAvb2QxdVEzbEdVL2sxVWtGdTFQdz09Il0sImFsZyI6IkJQMjU2UjEifQ.eyJuand0IjoiZXlKaGJHY2lPaUpDVURJMU5sSXhJaXdpZEhsd0lqb2lTbGRVSWl3aWEybGtJam9pY0hWclgybGtjRjl6YVdjaWZRLmV5SnBjM01pT2lKb2RIUndPaTh2Ykc5allXeG9iM04wT2pRME5qTTVJaXdpY21WemNHOXVjMlZmZEhsd1pTSTZJbU52WkdVaUxDSnpibU1pT2lKYWNGZDNWVXM0WlV0ZmEwbHVSMVY1WlRjNGNXSlBWbTlMTlRCVlkwc3diamN5ZWxkUGRXSkRSV3BSSWl3aVkyOWtaVjlqYUdGc2JHVnVaMlZmYldWMGFHOWtJam9pVXpJMU5pSXNJblJ2YTJWdVgzUjVjR1VpT2lKamFHRnNiR1Z1WjJVaUxDSnViMjVqWlNJNklrRTNWV2gzY1V0bk0ybHhkMHBsWjJSSmEyRkVlRWhWVmtwd1lVODNaR1JhSWl3aVkyeHBaVzUwWDJsa0lqb2laMlZ0WVhScGExUmxjM1JRY3lJc0luTmpiM0JsSWpvaWIzQmxibWxrSUdVdGNtVjZaWEIwSWl3aWMzUmhkR1VpT2lKcFMxUTRPWEl6Vm05clJERktWRkpDWWtSUGNHMW5TMU5RUTJKRU1qUlNjQ0lzSW5KbFpHbHlaV04wWDNWeWFTSTZJbWgwZEhBNkx5OTBaWE4wTFhCekxtZGxiV0YwYVdzdVpHVXZaWEpsZW1Wd2RDSXNJbVY0Y0NJNk1UY3dPVFl6T1RFM09Dd2lhV0YwSWpveE56QTVOak00T1RrNExDSmpiMlJsWDJOb1lXeHNaVzVuWlNJNklrSlJhRjluWjE5dlNYVjFOM1JzVW10WFgyWXhXRjgyTTBSUlEwUkVhMjB3YjBJMlVYUm9WRVJtUjI4aUxDSnFkR2tpT2lKak0yWTBZelExTW1ObFpqZ3pZbUU0SW4wLmRNMjVjeG5XZlVEbXlIUmFvN0dZTjdKVnl1aHk3alpONVB1SlJieGNhU2w0SmNKOXZSQWhUdzdzVXlab1owSzZadG4xdmdNTFh2SmRkenROWnBYQlpnIn0.mkALiZBf8jdhvHzqwetCHb541h-f629tY81m6p3VOfqDoMyEy_flTfU6EZaqMWZ5jQuIhlvQM6wM7dUH0aBDzA"
Ein verschachtelt enthaltenes JWT
+}

body.signed_challenge.body.njwt.content

JWT

Headers
{
   "typ" : "JWT",
   "cty" : "NJWT",
   "x5c" : [ "MIIDVzCCAv6gAwIBAgIHAIo1/vnLmDAKBggqhkjOPQQDAjCBiTELMAkGA1UEBhMCREUxHzAdBgNVBAoMFmdlbWF0aWsgR21iSCBOT1QtVkFMSUQxODA2BgNVBAsML0hlaWxiZXJ1ZnNhdXN3ZWlzLUNBIGRlciBUZWxlbWF0aWtpbmZyYXN0cnVrdHVyMR8wHQYDVQQDDBZHRU0uSEJBLUNBMTMgVEVTVC1PTkxZMB4XDTIwMDYxMDAwMDAwMFoXDTI1MDYwOTIzNTk1OVowcDELMAkGA1UEBhMCREUxYTAMBgNVBAQMBU90w61zMBQGA1UEKgwNR8O8bnRoZXIgR3JhZjAbBgNVBAUTFDgwMjc2ODgzMTEwMDAwMTI5MDg0MB4GA1UEAwwXR8O8bnRoZXIgT3TDrXNURVNULU9OTFkwWjAUBgcqhkjOPQIBBgkrJAMDAggBAQcDQgAEU/8mYL3ylA/TJsVHxaaxjhzYPodxbqGejzXblpZ36+0BvL6d/9KIeokzesrKE0g66aL0W+spsqpXSTaYPBqL06OCAWYwggFiMAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgOIMB0GA1UdDgQWBBSY30Tpf0XcjotWS9PXUv9DDD6pkTA4BggrBgEFBQcBAQQsMCowKAYIKwYBBQUHMAGGHGh0dHA6Ly9laGNhLmdlbWF0aWsuZGUvb2NzcC8wHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMC4GA1UdIAQnMCUwCQYHKoIUAEwESzAMBgorBgEEAYLNMwEBMAoGCCqCFABMBIERMB8GA1UdIwQYMBaAFAr7DNXUk1Q9ZYA+eiAClTSWgBvAMHkGBSskCAMDBHAwbqQoMCYxCzAJBgNVBAYTAkRFMRcwFQYDVQQKDA5nZW1hdGlrIEJlcmxpbjBCMEAwPjA8MA4MDMOEcnp0aW4vQXJ6dDAJBgcqghQATAQeEx8xLUhCQS1UZXN0a2FydGUtODgzMTEwMDAwMTI5MDg0MAoGCCqGSM49BAMCA0cAMEQCIEOlGwufF2HZ2nZAwBn5qrWySJ1jWISUr0feAbf0M5LrAiBG+vOiaGl2aFPwF9QzxkFNe0/od1uQ3lGU/k1UkFu1Pw=="
Enthält das verwendete Signer-Zertifikat als Base64 ASN.1 DER-Encoding. Hier kommt ausnahmsweise NICHT URL-safes Base64-Encoding zum Einsatz!
], "alg" : "BP256R1" -}

body.signed_challenge.body.njwt.content.header.x5c.0.content

X509 Certificate

Subject: C=DE,SURNAME=Otís+GIVENNAME=Günther Graf+SERIALNUMBER=80276883110000129084+CN=Günther OtísTEST-ONLY

Issuer: C=DE,O=gematik GmbH NOT-VALID,OU=Heilberufsausweis-CA der Telematikinfrastruktur,CN=GEM.HBA-CA13 TEST-ONLY

Serialnumber: 151964515683224

Valid From: 2020-06-10T00:00Z[UTC]

Valid Until: 2025-06-09T23:59:59Z[UTC]


Body

{
-  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjQ0NTgxIiwicmVzcG9uc2VfdHlwZSI6ImNvZGUiLCJzbmMiOiJ3djJHVnRUOHFJR0FmcWNFTVZrRS1qY3VfelRocjZkRE5FY2gyRkpHTHJBIiwiY29kZV9jaGFsbGVuZ2VfbWV0aG9kIjoiUzI1NiIsInRva2VuX3R5cGUiOiJjaGFsbGVuZ2UiLCJub25jZSI6InROV2VYbUxHLUNsTnEzNG45Zjlaa3BDUThuSWtleWtWIiwiY2xpZW50X2lkIjoiZ2VtYXRpa1Rlc3RQcyIsInNjb3BlIjoib3BlbmlkIGUtcmV6ZXB0Iiwic3RhdGUiOiJSR01oMTU4QjN2WGRLR3NjakJKZ0I5dFZDTHFSRXc4RSIsInJlZGlyZWN0X3VyaSI6Imh0dHA6Ly90ZXN0LXBzLmdlbWF0aWsuZGUvZXJlemVwdCIsImV4cCI6MTcwOTYyOTE4MiwiaWF0IjoxNzA5NjI5MDAyLCJjb2RlX2NoYWxsZW5nZSI6IjQtNkVsQk1DRkhKcXVrZ1NiWkxsam1Sb1dLX3FBRkRVM3ItVDQ2T2lFY3MiLCJqdGkiOiI0N2M0ODYwMzc4MDE0Yjg5In0.pjpog8QjYrZiuoVxokRu5pasPvmd7gdo408Do-PYsDJRosAK93pLSZOS2sNWE-xCysB_CgzzSMsC8VnVnj9vyw"
Ein verschachtelt enthaltenes JWT
-}

body.signed_challenge.body.njwt.content.body.njwt.content

JWT

Headers
{
+}

body.signed_challenge.body.njwt.content.header.x5c.0.content

X509 Certificate

Subject: C=DE,SURNAME=Otís+GIVENNAME=Günther Graf+SERIALNUMBER=80276883110000129084+CN=Günther OtísTEST-ONLY

Issuer: C=DE,O=gematik GmbH NOT-VALID,OU=Heilberufsausweis-CA der Telematikinfrastruktur,CN=GEM.HBA-CA13 TEST-ONLY

Serialnumber: 151964515683224

Valid From: 2020-06-10T00:00Z[UTC]

Valid Until: 2025-06-09T23:59:59Z[UTC]


Body

{
+  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjQ0NjM5IiwicmVzcG9uc2VfdHlwZSI6ImNvZGUiLCJzbmMiOiJacFd3VUs4ZUtfa0luR1V5ZTc4cWJPVm9LNTBVY0swbjcyeldPdWJDRWpRIiwiY29kZV9jaGFsbGVuZ2VfbWV0aG9kIjoiUzI1NiIsInRva2VuX3R5cGUiOiJjaGFsbGVuZ2UiLCJub25jZSI6IkE3VWh3cUtnM2lxd0plZ2RJa2FEeEhVVkpwYU83ZGRaIiwiY2xpZW50X2lkIjoiZ2VtYXRpa1Rlc3RQcyIsInNjb3BlIjoib3BlbmlkIGUtcmV6ZXB0Iiwic3RhdGUiOiJpS1Q4OXIzVm9rRDFKVFJCYkRPcG1nS1NQQ2JEMjRScCIsInJlZGlyZWN0X3VyaSI6Imh0dHA6Ly90ZXN0LXBzLmdlbWF0aWsuZGUvZXJlemVwdCIsImV4cCI6MTcwOTYzOTE3OCwiaWF0IjoxNzA5NjM4OTk4LCJjb2RlX2NoYWxsZW5nZSI6IkJRaF9nZ19vSXV1N3RsUmtXX2YxWF82M0RRQ0REa20wb0I2UXRoVERmR28iLCJqdGkiOiJjM2Y0YzQ1MmNlZjgzYmE4In0.dM25cxnWfUDmyHRao7GYN7JVyuhy7jZN5PuJRbxcaSl4JcJ9vRAhTw7sUyZoZ0K6Ztn1vgMLXvJddztNZpXBZg"
Ein verschachtelt enthaltenes JWT
+}

body.signed_challenge.body.njwt.content.body.njwt.content

JWT

Headers
{
   "alg" : "BP256R1",
   "typ" : "JWT",
   "kid" : "puk_idp_sig"
Identifiziert den hier beschriebenen Schlüssel. Beschreibung siehe https://tools.ietf.org/html/rfc7517#section-4.5
-}

Body

{
-  "iss" : "http://localhost:44581",
+}

Body

{
+  "iss" : "http://localhost:44639",
   "response_type" : "code",
Referenziert den erwarteten Response-Type des Flows. Muss immer 'code' lauten. Damit wird angezeigt das es sich hierbei um einen Authorization Code Flow handelt. Für eine nähere Erläuterung siehe OpenID-Spezifikation.
- "snc" : "wv2GVtT8qIGAfqcEMVkE-jcu_zThr6dDNEch2FJGLrA",
server-nonce. Wird verwendet um noise hinzuzufügen.
+ "snc" : "ZpWwUK8eK_kInGUye78qbOVoK50UcK0n72zWOubCEjQ",
server-nonce. Wird verwendet um noise hinzuzufügen.
"code_challenge_method" : "S256",
Das Primärsystem generiert einen Code-Verifier und erzeugt darüber einen Hash im Verfahren SHA-256, hier abgekürzt als S256. Teil von PKCE.
"token_type" : "challenge", - "nonce" : "tNWeXmLG-ClNq34n9f9ZkpCQ8nIkeykV",
String zu Verhinderung von CSRF-Attacken. Dieser Wert ist optional. Wenn er mitgegeben wird muss der gleiche Wert im abschließend ausgegebenen ID-Token wieder auftauchen. WICHTIG: Darf nicht länger als 512 Zeichen sein.
+ "nonce" : "A7UhwqKg3iqwJegdIkaDxHUVJpaO7ddZ",
String zu Verhinderung von CSRF-Attacken. Dieser Wert ist optional. Wenn er mitgegeben wird muss der gleiche Wert im abschließend ausgegebenen ID-Token wieder auftauchen. WICHTIG: Darf nicht länger als 512 Zeichen sein.
"client_id" : "gematikTestPs",
Die client_id des Clients. Wird bei der Registrierung vergeben.
"scope" : "openid e-rezept",
Der Scope entspricht dem zwischen E-Rezept-Fachdienst und IDP festgelegten Wert. Mit diesem antwortet der E-Rezept-Fachdienst bei fehlendem ACCESS_TOKEN und http-Statuscode 401.
- "state" : "RGMh158B3vXdKGscjBJgB9tVCLqREw8E",
Der state der Session. Sollte dem zufällig generierten state-Wert aus der initialen Anfrage entsprechen.
+ "state" : "iKT89r3VokD1JTRBbDOpmgKSPCbD24Rp",
Der state der Session. Sollte dem zufällig generierten state-Wert aus der initialen Anfrage entsprechen.
"redirect_uri" : "http://test-ps.gematik.de/erezept",
Die für den Client beim Server hinterlegte redirect_uri. Muss dem bei der Registrierung hinterlegten Wert entsprechen.
- "exp" : 1709629182,
Gültigkeit des Tokens
- "iat" : 1709629002,
Zeitpunkt der Ausstellung des Tokens
- "code_challenge" : "4-6ElBMCFHJqukgSbZLljmRoWK_qAFDU3r-T46OiEcs",
Der Hashwert des Code-Verifiers wird zum IDP als Code-Challenge gesendet. Teil von PKCE.
- "jti" : "47c4860378014b89"
A unique identifier for the token, which can be used to prevent reuse of the token. Value is a case-sensitive string.
-}

Signature

Was verified using Key puk_idp_sig

Signature

Was verified using Key x5c-header certificate

Encryption info

Was decrypted using Key prk_idp_enc

Hierbei handelt es sich um das signierte und verschlüsselte "CHALLENGE_TOKEN".

Signature

Was verified using Key puk_idp_sig

Signature

Was verified using Key x5c-header certificate

Encryption info

Was decrypted using Key prk_idp_enc

Hierbei handelt es sich um das signierte und verschlüsselte "CHALLENGE_TOKEN".

40302localhost:44581127.0.0.1:-1

40302localhost:44639127.0.0.1:-1

RES Headers

Keep-Alive
timeout=60
Cache-Control
no-store
Version
27.0.0
Pragma
no-cache
Content-Length
0
Date
Tue, 05 Mar 2024 08:56:44 GMT
Zeitpunkt der Antwort.
Zeitpunkt der Antwort.
Location
http://test-ps.gematik.de/erezept?
Optional[code]=<Authorization Code in Base64-URL-Safe Encoding. Wird unten detaillierter aufgeführt>
Der Authorization-Code, so wie er vom Server in der vorigen Antwort auf POST /sign_response zurück gegeben wurde
&state=RGMh158B3vXdKGscjBJgB9tVCLqREw8E
Der state der Session. Sollte dem zufällig generierten state-Wert aus der initialen Anfrage entsprechen.

header.Location.code.value

JWE

Headers
{
+Date: Tue, 05 Mar 2024 11:43:19 GMT
+Location: http://test-ps.gematik.de/erezept?code=eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIiwiY3R5IjoiTkpXVCIsImV4cCI6MTcwOTYzOTA1OX0..u8OlDVMpqsXEvJfW.AlqrF8TiNyEu25RCVn5deXw7-jO0zFunF9S5geOYe5xk9-impqOvOw4di3NyuMTyaqzQa_tsosbPjKyh3Sv-9kbFg5y5ZtZrUIxifbm8wmKUJBCbewlZ5zt2JN7L8--vdCquC5cFyNgbpEBAuE29tOz7M0EjUdph2WAkFYMIRjIk8V6AZi_xPh5IPrfQvG548yd117Is7X-bOU6xB0i4KD-J4x2VFcUg0Ga1u6O0rMvGrmmKy-VwCrcB6fjEH8efZ-HEHnHb0c_j8v-HS_W7IuoVRwu2xBsui_FJ7ardEICV7DI1VCknLhG-9ZnYl3B8R39ny6_Wj0QgsVmem59EaUy4BaPhTfg9DWttAy41IRmoVy1yekx6TqIlQGxClGQ6oIOLVx5L4DXFpb9CT0XrBTKNK9fE_bZci07UFe7GY9KTIakZj8LUmLXfZ0ZRVVc_4JsE9kYKnA1kgy7NjAetWR0kX_mVwSJ5P8jrFukGhC6pS_DIyhRr17_Cft-26Fd-VV1kOFYSiDFPY6lHkL-iAn56LzN5F2RS8N7RT-mi0GsT-3mGxKt1gX0y0KqWRPFhO_M3ZIz5_GnKvy2YSWh_ntiIdg2ocw32UEgeiDeTtVVYtfS1MQ5OchNARztn_Lblklhkl_Pu-VPE1oIjXFZIAY1jvlf1wCPHH2j3cSow5FTb0fY96bMSGy1hTOFy_g6m4bcoKIhdHKIOBe9nGgo9xvEQSAXUqhFR4wpmvTOq2re6Ldy4z8I13FAqQgx5wCPjSES9x18OfJq6wL3wURmLGmhF3OSlyYcW5o4IjN6NEpGJ7CN3POa1Q4qgplfooBLzftJA0NZiqqZi02CtTCe1IltG0XsG2q8-oOUHJ8oIivvfhVNzScap2DQAhNVfcCVMT_SRM0IXFi8wnQAZLXfGRgjDXWgUltF0wStZ83vZR6w1XEB672bAQxoXXk38oBTQBM4D7TnPkknNEpK1I3lZcPJX9SK4eQlvTSOUfHjjexehumbyChBzdhYczPm4KmidS6R62NftuOhbeOhqP_PARMp7Pq9ZLd6sA3cXfdUDiqbpVpKJPKcQMSsqlVPp9c0dN2ccYJ7HC0ES_aOeaq0p1Ozz3RKF-u5zeYxPb8fSXx-5cc4cHKkEyluPE-mLGPbjXCRxX3aWOIyvSGuGl2yhi0HQcZ_HtLEAmr5IBnYRfqnIABWSm0aCkwbnM3CS-NXWODSSuh9GLGzdcCOI92nxBgTLto4i5nKTamkPiTT2fyUavYXVngkXrhl6jjXXsUgTtEps2h7-KCaTrkEtZmgOp3-AIG6CVReUDlTiWPPM4qxKOqxIm8XTZZ0e4BtIW68aP9Z0YsRg6QLDObp6GbBlhSHOHM-SBU0MhklReE4I6B3idKt5f3iK65gnEg.pr8HqkZzHalTeZs8lRa4Kg&state=iKT89r3VokD1JTRBbDOpmgKSPCbD24Rp

RES Headers

Keep-Alive
timeout=60
Cache-Control
no-store
Version
27.0.1
Pragma
no-cache
Content-Length
0
Date
Tue, 05 Mar 2024 11:43:19 GMT
Zeitpunkt der Antwort.
Zeitpunkt der Antwort.
Location
http://test-ps.gematik.de/erezept?
Optional[code]=<Authorization Code in Base64-URL-Safe Encoding. Wird unten detaillierter aufgeführt>
Der Authorization-Code, so wie er vom Server in der vorigen Antwort auf POST /sign_response zurück gegeben wurde
&state=iKT89r3VokD1JTRBbDOpmgKSPCbD24Rp
Der state der Session. Sollte dem zufällig generierten state-Wert aus der initialen Anfrage entsprechen.

header.Location.code.value

JWE

Headers
{
   "alg" : "dir",
   "enc" : "A256GCM",
   "cty" : "NJWT",
-  "exp" : 1709629064
Gültigkeit des Tokens
-}

Body

{
-  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJvcmdhbml6YXRpb25OYW1lIjpudWxsLCJwcm9mZXNzaW9uT0lEIjoiMS4yLjI3Ni4wLjc2LjQuMzAiLCJpZE51bW1lciI6IjEtSEJBLVRlc3RrYXJ0ZS04ODMxMTAwMDAxMjkwODQiLCJhbXIiOlsibWZhIiwic2MiLCJwaW4iXSwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo0NDU4MSIsInJlc3BvbnNlX3R5cGUiOiJjb2RlIiwic25jIjoiVFVZaEs5S3Ftcm1nN25RaTZRNE5oRGx1OGp6cWV4X2UiLCJjb2RlX2NoYWxsZW5nZV9tZXRob2QiOiJTMjU2IiwiZ2l2ZW5fbmFtZSI6IkfDvG50aGVyIEdyYWYiLCJ0b2tlbl90eXBlIjoiY29kZSIsIm5vbmNlIjoidE5XZVhtTEctQ2xOcTM0bjlmOVprcENROG5Ja2V5a1YiLCJjbGllbnRfaWQiOiJnZW1hdGlrVGVzdFBzIiwic2NvcGUiOiJvcGVuaWQgZS1yZXplcHQiLCJhdXRoX3RpbWUiOjE3MDk2MjkwMDQsInJlZGlyZWN0X3VyaSI6Imh0dHA6Ly90ZXN0LXBzLmdlbWF0aWsuZGUvZXJlemVwdCIsInN0YXRlIjoiUkdNaDE1OEIzdlhkS0dzY2pCSmdCOXRWQ0xxUkV3OEUiLCJleHAiOjE3MDk2MjkwNjQsImZhbWlseV9uYW1lIjoiT3TDrXMiLCJpYXQiOjE3MDk2MjkwMDQsImNvZGVfY2hhbGxlbmdlIjoiNC02RWxCTUNGSEpxdWtnU2JaTGxqbVJvV0tfcUFGRFUzci1UNDZPaUVjcyIsImp0aSI6IjFlYmE2Y2NmYzBlNTM0NzgifQ.UbuHTYkoTCf-5Y2TjItWIOlNcUp9z9ku7W_IUYACtTtWm6xg5angtFEAW3ThjhrH9BRLlrDDXwaYo0v6s64hmA"
Ein verschachtelt enthaltenes JWT
-}

header.Location.code.value.body.njwt.content

JWT

Headers
{
+  "exp" : 1709639059
Gültigkeit des Tokens
+}

Body

{
+  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJvcmdhbml6YXRpb25OYW1lIjpudWxsLCJwcm9mZXNzaW9uT0lEIjoiMS4yLjI3Ni4wLjc2LjQuMzAiLCJpZE51bW1lciI6IjEtSEJBLVRlc3RrYXJ0ZS04ODMxMTAwMDAxMjkwODQiLCJhbXIiOlsibWZhIiwic2MiLCJwaW4iXSwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo0NDYzOSIsInJlc3BvbnNlX3R5cGUiOiJjb2RlIiwic25jIjoiVHhNdy1WLTJ6RzBaaTJiLVVnRkZqR1hDdVB0cVlCS2UiLCJjb2RlX2NoYWxsZW5nZV9tZXRob2QiOiJTMjU2IiwiZ2l2ZW5fbmFtZSI6IkfDvG50aGVyIEdyYWYiLCJ0b2tlbl90eXBlIjoiY29kZSIsIm5vbmNlIjoiQTdVaHdxS2czaXF3SmVnZElrYUR4SFVWSnBhTzdkZFoiLCJjbGllbnRfaWQiOiJnZW1hdGlrVGVzdFBzIiwic2NvcGUiOiJvcGVuaWQgZS1yZXplcHQiLCJhdXRoX3RpbWUiOjE3MDk2Mzg5OTksInJlZGlyZWN0X3VyaSI6Imh0dHA6Ly90ZXN0LXBzLmdlbWF0aWsuZGUvZXJlemVwdCIsInN0YXRlIjoiaUtUODlyM1Zva0QxSlRSQmJET3BtZ0tTUENiRDI0UnAiLCJleHAiOjE3MDk2MzkwNTksImZhbWlseV9uYW1lIjoiT3TDrXMiLCJpYXQiOjE3MDk2Mzg5OTksImNvZGVfY2hhbGxlbmdlIjoiQlFoX2dnX29JdXU3dGxSa1dfZjFYXzYzRFFDRERrbTBvQjZRdGhURGZHbyIsImp0aSI6IjY1MTBiNTY0MmU3NTM2ZGEifQ.Nt1aldZ0Znb7aX2yQVQQDMz1BkQpESEgLoq6u2z_zXKYwBTCBxsscHdk14NuoKzC-z8LPaV0vYscyc7fpkTyXg"
Ein verschachtelt enthaltenes JWT
+}

header.Location.code.value.body.njwt.content

JWT

Headers
{
   "alg" : "BP256R1",
   "typ" : "JWT",
   "kid" : "puk_idp_sig"
Identifiziert den hier beschriebenen Schlüssel. Beschreibung siehe https://tools.ietf.org/html/rfc7517#section-4.5
-}

Body

{
+}

Body

{
   "organizationName" : null,
   "professionOID" : "1.2.276.0.76.4.30",
   "idNummer" : "1-HBA-Testkarte-883110000129084",
   "amr" : [ "mfa", "sc", "pin" ],
-  "iss" : "http://localhost:44581",
+  "iss" : "http://localhost:44639",
   "response_type" : "code",
Referenziert den erwarteten Response-Type des Flows. Muss immer 'code' lauten. Damit wird angezeigt das es sich hierbei um einen Authorization Code Flow handelt. Für eine nähere Erläuterung siehe OpenID-Spezifikation.
- "snc" : "TUYhK9Kqmrmg7nQi6Q4NhDlu8jzqex_e",
server-nonce. Wird verwendet um noise hinzuzufügen.
+ "snc" : "TxMw-V-2zG0Zi2b-UgFFjGXCuPtqYBKe",
server-nonce. Wird verwendet um noise hinzuzufügen.
"code_challenge_method" : "S256",
Das Primärsystem generiert einen Code-Verifier und erzeugt darüber einen Hash im Verfahren SHA-256, hier abgekürzt als S256. Teil von PKCE.
"given_name" : "Günther Graf", "token_type" : "code", - "nonce" : "tNWeXmLG-ClNq34n9f9ZkpCQ8nIkeykV",
String zu Verhinderung von CSRF-Attacken. Dieser Wert ist optional. Wenn er mitgegeben wird muss der gleiche Wert im abschließend ausgegebenen ID-Token wieder auftauchen. WICHTIG: Darf nicht länger als 512 Zeichen sein.
+ "nonce" : "A7UhwqKg3iqwJegdIkaDxHUVJpaO7ddZ",
String zu Verhinderung von CSRF-Attacken. Dieser Wert ist optional. Wenn er mitgegeben wird muss der gleiche Wert im abschließend ausgegebenen ID-Token wieder auftauchen. WICHTIG: Darf nicht länger als 512 Zeichen sein.
"client_id" : "gematikTestPs",
Die client_id des Clients. Wird bei der Registrierung vergeben.
"scope" : "openid e-rezept",
Der Scope entspricht dem zwischen E-Rezept-Fachdienst und IDP festgelegten Wert. Mit diesem antwortet der E-Rezept-Fachdienst bei fehlendem ACCESS_TOKEN und http-Statuscode 401.
- "auth_time" : 1709629004,
Timestamp der Authentisierung
+ "auth_time" : 1709638999,
Timestamp der Authentisierung
"redirect_uri" : "http://test-ps.gematik.de/erezept",
Die für den Client beim Server hinterlegte redirect_uri. Muss dem bei der Registrierung hinterlegten Wert entsprechen.
- "state" : "RGMh158B3vXdKGscjBJgB9tVCLqREw8E",
Der state der Session. Sollte dem zufällig generierten state-Wert aus der initialen Anfrage entsprechen.
- "exp" : 1709629064,
Gültigkeit des Tokens
+ "state" : "iKT89r3VokD1JTRBbDOpmgKSPCbD24Rp",
Der state der Session. Sollte dem zufällig generierten state-Wert aus der initialen Anfrage entsprechen.
+ "exp" : 1709639059,
Gültigkeit des Tokens
"family_name" : "Otís", - "iat" : 1709629004,
Zeitpunkt der Ausstellung des Tokens
- "code_challenge" : "4-6ElBMCFHJqukgSbZLljmRoWK_qAFDU3r-T46OiEcs",
Der Hashwert des Code-Verifiers wird zum IDP als Code-Challenge gesendet. Teil von PKCE.
- "jti" : "1eba6ccfc0e53478"
A unique identifier for the token, which can be used to prevent reuse of the token. Value is a case-sensitive string.
-}

Signature

Was verified using Key puk_idp_sig

Encryption info

Was decrypted using Key IDP symmetricEncryptionKey

Empty body

Signature

Was verified using Key puk_idp_sig

Encryption info

Was decrypted using Key IDP symmetricEncryptionKey

Empty body

41 POST http://localhost:40931/token127.0.0.1:-1localhost:44581

41 POST http://localhost:38497/token127.0.0.1:-1localhost:44639

REQ Headers

Content-Type
application/x-www-form-urlencoded
User-Agent
IdP-Client
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Accept
application/json
Accept-Encoding
gzip
Nicht verpflichtend
Nicht verpflichtend
Content-Length
2095
Host
localhost:44581
Nicht verpflichtend
Nicht verpflichtend
Connection
keep-alive
Nicht verpflichtend
Nicht verpflichtend

REQ Body

namevalue
client_id
gematikTestPs
Die client_id des Clients. Wird bei der Registrierung vergeben.
Die client_id des Clients. Wird bei der Registrierung vergeben.
code

JWE

Der Authorization-Code, so wie er vom Server in der vorigen Antwort auf POST /sign_response zurück gegeben wurde

Headers
{
+Host: localhost:44639
+Connection: keep-alive

REQ Headers

Content-Type
application/x-www-form-urlencoded
User-Agent
IdP-Client
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Accept
application/json
Accept-Encoding
gzip
Nicht verpflichtend
Nicht verpflichtend
Content-Length
2095
Host
localhost:44639
Nicht verpflichtend
Nicht verpflichtend
Connection
keep-alive
Nicht verpflichtend
Nicht verpflichtend

REQ Body

namevalue
client_id
gematikTestPs
Die client_id des Clients. Wird bei der Registrierung vergeben.
Die client_id des Clients. Wird bei der Registrierung vergeben.
code

JWE

Der Authorization-Code, so wie er vom Server in der vorigen Antwort auf POST /sign_response zurück gegeben wurde

Headers
{
   "alg" : "dir",
   "enc" : "A256GCM",
   "cty" : "NJWT",
-  "exp" : 1709629064
Gültigkeit des Tokens
-}

Body

{
-  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJvcmdhbml6YXRpb25OYW1lIjpudWxsLCJwcm9mZXNzaW9uT0lEIjoiMS4yLjI3Ni4wLjc2LjQuMzAiLCJpZE51bW1lciI6IjEtSEJBLVRlc3RrYXJ0ZS04ODMxMTAwMDAxMjkwODQiLCJhbXIiOlsibWZhIiwic2MiLCJwaW4iXSwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo0NDU4MSIsInJlc3BvbnNlX3R5cGUiOiJjb2RlIiwic25jIjoiVFVZaEs5S3Ftcm1nN25RaTZRNE5oRGx1OGp6cWV4X2UiLCJjb2RlX2NoYWxsZW5nZV9tZXRob2QiOiJTMjU2IiwiZ2l2ZW5fbmFtZSI6IkfDvG50aGVyIEdyYWYiLCJ0b2tlbl90eXBlIjoiY29kZSIsIm5vbmNlIjoidE5XZVhtTEctQ2xOcTM0bjlmOVprcENROG5Ja2V5a1YiLCJjbGllbnRfaWQiOiJnZW1hdGlrVGVzdFBzIiwic2NvcGUiOiJvcGVuaWQgZS1yZXplcHQiLCJhdXRoX3RpbWUiOjE3MDk2MjkwMDQsInJlZGlyZWN0X3VyaSI6Imh0dHA6Ly90ZXN0LXBzLmdlbWF0aWsuZGUvZXJlemVwdCIsInN0YXRlIjoiUkdNaDE1OEIzdlhkS0dzY2pCSmdCOXRWQ0xxUkV3OEUiLCJleHAiOjE3MDk2MjkwNjQsImZhbWlseV9uYW1lIjoiT3TDrXMiLCJpYXQiOjE3MDk2MjkwMDQsImNvZGVfY2hhbGxlbmdlIjoiNC02RWxCTUNGSEpxdWtnU2JaTGxqbVJvV0tfcUFGRFUzci1UNDZPaUVjcyIsImp0aSI6IjFlYmE2Y2NmYzBlNTM0NzgifQ.UbuHTYkoTCf-5Y2TjItWIOlNcUp9z9ku7W_IUYACtTtWm6xg5angtFEAW3ThjhrH9BRLlrDDXwaYo0v6s64hmA"
Ein verschachtelt enthaltenes JWT
-}

body.code.body.njwt.content

JWT

Headers
{
+  "exp" : 1709639059
Gültigkeit des Tokens
+}

Body

{
+  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJvcmdhbml6YXRpb25OYW1lIjpudWxsLCJwcm9mZXNzaW9uT0lEIjoiMS4yLjI3Ni4wLjc2LjQuMzAiLCJpZE51bW1lciI6IjEtSEJBLVRlc3RrYXJ0ZS04ODMxMTAwMDAxMjkwODQiLCJhbXIiOlsibWZhIiwic2MiLCJwaW4iXSwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo0NDYzOSIsInJlc3BvbnNlX3R5cGUiOiJjb2RlIiwic25jIjoiVHhNdy1WLTJ6RzBaaTJiLVVnRkZqR1hDdVB0cVlCS2UiLCJjb2RlX2NoYWxsZW5nZV9tZXRob2QiOiJTMjU2IiwiZ2l2ZW5fbmFtZSI6IkfDvG50aGVyIEdyYWYiLCJ0b2tlbl90eXBlIjoiY29kZSIsIm5vbmNlIjoiQTdVaHdxS2czaXF3SmVnZElrYUR4SFVWSnBhTzdkZFoiLCJjbGllbnRfaWQiOiJnZW1hdGlrVGVzdFBzIiwic2NvcGUiOiJvcGVuaWQgZS1yZXplcHQiLCJhdXRoX3RpbWUiOjE3MDk2Mzg5OTksInJlZGlyZWN0X3VyaSI6Imh0dHA6Ly90ZXN0LXBzLmdlbWF0aWsuZGUvZXJlemVwdCIsInN0YXRlIjoiaUtUODlyM1Zva0QxSlRSQmJET3BtZ0tTUENiRDI0UnAiLCJleHAiOjE3MDk2MzkwNTksImZhbWlseV9uYW1lIjoiT3TDrXMiLCJpYXQiOjE3MDk2Mzg5OTksImNvZGVfY2hhbGxlbmdlIjoiQlFoX2dnX29JdXU3dGxSa1dfZjFYXzYzRFFDRERrbTBvQjZRdGhURGZHbyIsImp0aSI6IjY1MTBiNTY0MmU3NTM2ZGEifQ.Nt1aldZ0Znb7aX2yQVQQDMz1BkQpESEgLoq6u2z_zXKYwBTCBxsscHdk14NuoKzC-z8LPaV0vYscyc7fpkTyXg"
Ein verschachtelt enthaltenes JWT
+}

body.code.body.njwt.content

JWT

Headers
{
   "alg" : "BP256R1",
   "typ" : "JWT",
   "kid" : "puk_idp_sig"
Identifiziert den hier beschriebenen Schlüssel. Beschreibung siehe https://tools.ietf.org/html/rfc7517#section-4.5
-}

Body

{
+}

Body

{
   "organizationName" : null,
   "professionOID" : "1.2.276.0.76.4.30",
   "idNummer" : "1-HBA-Testkarte-883110000129084",
   "amr" : [ "mfa", "sc", "pin" ],
-  "iss" : "http://localhost:44581",
+  "iss" : "http://localhost:44639",
   "response_type" : "code",
Referenziert den erwarteten Response-Type des Flows. Muss immer 'code' lauten. Damit wird angezeigt das es sich hierbei um einen Authorization Code Flow handelt. Für eine nähere Erläuterung siehe OpenID-Spezifikation.
- "snc" : "TUYhK9Kqmrmg7nQi6Q4NhDlu8jzqex_e",
server-nonce. Wird verwendet um noise hinzuzufügen.
+ "snc" : "TxMw-V-2zG0Zi2b-UgFFjGXCuPtqYBKe",
server-nonce. Wird verwendet um noise hinzuzufügen.
"code_challenge_method" : "S256",
Das Primärsystem generiert einen Code-Verifier und erzeugt darüber einen Hash im Verfahren SHA-256, hier abgekürzt als S256. Teil von PKCE.
"given_name" : "Günther Graf", "token_type" : "code", - "nonce" : "tNWeXmLG-ClNq34n9f9ZkpCQ8nIkeykV",
String zu Verhinderung von CSRF-Attacken. Dieser Wert ist optional. Wenn er mitgegeben wird muss der gleiche Wert im abschließend ausgegebenen ID-Token wieder auftauchen. WICHTIG: Darf nicht länger als 512 Zeichen sein.
+ "nonce" : "A7UhwqKg3iqwJegdIkaDxHUVJpaO7ddZ",
String zu Verhinderung von CSRF-Attacken. Dieser Wert ist optional. Wenn er mitgegeben wird muss der gleiche Wert im abschließend ausgegebenen ID-Token wieder auftauchen. WICHTIG: Darf nicht länger als 512 Zeichen sein.
"client_id" : "gematikTestPs",
Die client_id des Clients. Wird bei der Registrierung vergeben.
"scope" : "openid e-rezept",
Der Scope entspricht dem zwischen E-Rezept-Fachdienst und IDP festgelegten Wert. Mit diesem antwortet der E-Rezept-Fachdienst bei fehlendem ACCESS_TOKEN und http-Statuscode 401.
- "auth_time" : 1709629004,
Timestamp der Authentisierung
+ "auth_time" : 1709638999,
Timestamp der Authentisierung
"redirect_uri" : "http://test-ps.gematik.de/erezept",
Die für den Client beim Server hinterlegte redirect_uri. Muss dem bei der Registrierung hinterlegten Wert entsprechen.
- "state" : "RGMh158B3vXdKGscjBJgB9tVCLqREw8E",
Der state der Session. Sollte dem zufällig generierten state-Wert aus der initialen Anfrage entsprechen.
- "exp" : 1709629064,
Gültigkeit des Tokens
+ "state" : "iKT89r3VokD1JTRBbDOpmgKSPCbD24Rp",
Der state der Session. Sollte dem zufällig generierten state-Wert aus der initialen Anfrage entsprechen.
+ "exp" : 1709639059,
Gültigkeit des Tokens
"family_name" : "Otís", - "iat" : 1709629004,
Zeitpunkt der Ausstellung des Tokens
- "code_challenge" : "4-6ElBMCFHJqukgSbZLljmRoWK_qAFDU3r-T46OiEcs",
Der Hashwert des Code-Verifiers wird zum IDP als Code-Challenge gesendet. Teil von PKCE.
- "jti" : "1eba6ccfc0e53478"
A unique identifier for the token, which can be used to prevent reuse of the token. Value is a case-sensitive string.
-}

Signature

Was verified using Key puk_idp_sig

Encryption info

Was decrypted using Key IDP symmetricEncryptionKey

Der Authorization-Code, so wie er vom Server in der vorigen Antwort auf POST /sign_response zurück gegeben wurde
grant_type
authorization_code
Muss exakt diesen Wert enthalten, da es sich um eine Implementierung des OIDC Authorization Code Flows handelt.
Muss exakt diesen Wert enthalten, da es sich um eine Implementierung des OIDC Authorization Code Flows handelt.
key_verifier

JWE

JWE, welches den code_verifier sowie den token_key enthält. Dies ist ein AES-Schlüssel welcher vom Server zur Verschlüsselung der Token-Rückgaben verwendet wird.

Headers
Dieser Token wird für den Server mit dem puk_idp_enc verschlüsselt.
{
+  "iat" : 1709638999,
Zeitpunkt der Ausstellung des Tokens
+ "code_challenge" : "BQh_gg_oIuu7tlRkW_f1X_63DQCDDkm0oB6QthTDfGo",
Der Hashwert des Code-Verifiers wird zum IDP als Code-Challenge gesendet. Teil von PKCE.
+ "jti" : "6510b5642e7536da"
A unique identifier for the token, which can be used to prevent reuse of the token. Value is a case-sensitive string.
+}

Signature

Was verified using Key puk_idp_sig

Encryption info

Was decrypted using Key IDP symmetricEncryptionKey

Der Authorization-Code, so wie er vom Server in der vorigen Antwort auf POST /sign_response zurück gegeben wurde
grant_type
authorization_code
Muss exakt diesen Wert enthalten, da es sich um eine Implementierung des OIDC Authorization Code Flows handelt.
Muss exakt diesen Wert enthalten, da es sich um eine Implementierung des OIDC Authorization Code Flows handelt.
key_verifier

JWE

JWE, welches den code_verifier sowie den token_key enthält. Dies ist ein AES-Schlüssel welcher vom Server zur Verschlüsselung der Token-Rückgaben verwendet wird.

Headers
Dieser Token wird für den Server mit dem puk_idp_enc verschlüsselt.
{
   
Dieser Token wird für den Server mit dem puk_idp_enc verschlüsselt.
"alg" : "ECDH-ES", "enc" : "A256GCM", "cty" : "JSON", "epk" : { "kty" : "EC", - "x" : "RnU3uh6cquQKpq2vFdsEEyUs9dA-gsbQyupOpxZe_PI",
X-Koordinate des öffentlichen Punkts des Schlüssels
- "y" : "G0Tu0lWfJhVjQ6lSOP0O6K7PWuyFZxT7NWikjyoN1Hc",
Y-Koordinate des öffentlichen Punkts des Schlüssels
+ "x" : "ksx8oDGKvipeebhgN58vDN3evwC1l3OIBZ1LZREmfpI",
X-Koordinate des öffentlichen Punkts des Schlüssels
+ "y" : "O4caxZNM-I9oCnM811c9iMSvn2rpgPg9zk0z_kgwJRs",
Y-Koordinate des öffentlichen Punkts des Schlüssels
"crv" : "BP-256" } -}

Body
Enthalten ist der code_verifier (der zu dem code_challenge-Wert aus der initialen Anfrage passen muss) sowie der token_key. Dies ist ein vom Client zufällig gewürfelter AES256-Schlüssel in Base64-URL-Encoding. Der Server benutzt diesen Schlüssel zur Chiffrierung der beiden Token-Rückgaben in der Response (ID- und Access-Token).

{
+}

Body
Enthalten ist der code_verifier (der zu dem code_challenge-Wert aus der initialen Anfrage passen muss) sowie der token_key. Dies ist ein vom Client zufällig gewürfelter AES256-Schlüssel in Base64-URL-Encoding. Der Server benutzt diesen Schlüssel zur Chiffrierung der beiden Token-Rückgaben in der Response (ID- und Access-Token).

{
   
Enthalten ist der code_verifier (der zu dem code_challenge-Wert aus der initialen Anfrage passen muss) sowie der token_key. Dies ist ein vom Client zufällig gewürfelter AES256-Schlüssel in Base64-URL-Encoding. Der Server benutzt diesen Schlüssel zur Chiffrierung der beiden Token-Rückgaben in der Response (ID- und Access-Token).
- "token_key" : "r3agdZLy_XXfFTAKPaBjHUIywJX0kWyPJ6MNDNr0R9M", - "code_verifier" : "l4v7dMDsLaE9A-V9Sb3D3Yy9XyPWgnOCQkGzSlSOR3E" -}

Encryption info

Was decrypted using Key prk_idp_enc

JWE, welches den code_verifier sowie den token_key enthält. Dies ist ein AES-Schlüssel welcher vom Server zur Verschlüsselung der Token-Rückgaben verwendet wird.
redirect_uri
http%3A%2F%2Ftest-ps.gematik.de%2Ferezept
Die für den Client beim Server hinterlegte redirect_uri. Muss dem bei der Registrierung hinterlegten Wert entsprechen.
Die für den Client beim Server hinterlegte redirect_uri. Muss dem bei der Registrierung hinterlegten Wert entsprechen.

Encryption info

Was decrypted using Key prk_idp_enc

JWE, welches den code_verifier sowie den token_key enthält. Dies ist ein AES-Schlüssel welcher vom Server zur Verschlüsselung der Token-Rückgaben verwendet wird.
redirect_uri
http%3A%2F%2Ftest-ps.gematik.de%2Ferezept
Die für den Client beim Server hinterlegte redirect_uri. Muss dem bei der Registrierung hinterlegten Wert entsprechen.
Die für den Client beim Server hinterlegte redirect_uri. Muss dem bei der Registrierung hinterlegten Wert entsprechen.

42200localhost:44581127.0.0.1:-1

42200localhost:44639127.0.0.1:-1

RES Headers

Keep-Alive
timeout=60
Cache-Control
no-store
Version
27.0.0
Pragma
no-cache
Date
Tue, 05 Mar 2024 08:56:49 GMT
Zeitpunkt der Antwort.
Zeitpunkt der Antwort.
Content-Type
application/json

RES Body

{
+Date: Tue, 05 Mar 2024 11:43:24 GMT
+Content-Type: application/json

RES Headers

Keep-Alive
timeout=60
Cache-Control
no-store
Version
27.0.1
Pragma
no-cache
Date
Tue, 05 Mar 2024 11:43:24 GMT
Zeitpunkt der Antwort.
Zeitpunkt der Antwort.
Content-Type
application/json

RES Body

{
   "expires_in" : 300,
   "token_type" : "Bearer",
-  "id_token" : "eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIiwiY3R5IjoiTkpXVCIsImV4cCI6MTcwOTYyOTMwOX0..Wy89COTt_SPXMgtw.8lkwr8SBNWXok-nJqdXLSVG2ujN_3duvx0E4SVNLLjo8_R-h1dLedKiCU8z6K-yKqlYFrcEr1IfhL_tH6ZsCdTEA2iQM-8dOf7WBX00oVcBnnMnQCWnjvix0TMsSbM7--J4tnoLZJFJg0TsTDsp6vBXtFCP64kl8mVaOPjfQtQiY4UGLjpkGAw54equuudQP6T_sxQAbO5o4uUD_se8JbxS4inIZ8-BQDaA52-kWKnN3rFYlgriRFLevatqGETTHWxIvRMbeJ65k1WpNzeT85kZrvw463gj7uNpQcugX_BOl2h7v371ShqPDtNLAgbqs2CBXPPYkbBLvrOJD1IEFnfyns14n6RJ7rl9s0rX-q96c4sQ5pNtqUcCbdZtUAPPKqbYFppP0owxPdQpTT3Ml0_2rgK0nQsNfXnpCLSmjq3F4aH9_-2RJuPdEyJI5-ThkpczhTms6d56iLwTlj_Pks0QRBxuQT1MUlTcnvQX9zW-_gGpKb19lE_Rmvk-tUzpntMXxDna2WiKCzXCpavhjAts-jAKMU8mPqeWQD44UJn8Dq641IkQ6CZDrK61lV8eJhsJMmhI1zOEzndD9lVAZcRgrOKE8s_5Qc57PuAvOabDX_3t6E9yW4zNCTHlCjX0ts7ff6igOSHW3sILw6cQPerIaOQ5Id6G8tTf-NWu-Cu5pUt4a7OhOrLH8SojICRzlF2-TgZfUxhMytnKhNBD1M13CIhDudn3K1R8D-1QWaeTA2zRaJv8WjRmjf5tB5tnifM0NkpK93wmnNKVtWN25n9lAybXUU8dD6BeWbBx_tS4rftgesxFJZ_H0jXydlK7x7hR-WUfl6W8Vq3ZjeUsasKf1mFGdN_Q56oRqqItYkWppNsKuWOmvJ9RtlCLhQL7YU7wLk2pk3QxgxwcDcK65Ws3N79Ps8MlDLsT4BOFhqW3d7MAXAsr1KKOuNmVgTEo88EAYYhosDETjkMUVDgg3F0xLFzhosYXMxjiJsau53m9mFCbhBv_9hs8nNfWHaDeQ0FYdgUr-pNIR4n2x-IZKQbDp-XscxpyQHcFFPdoh-N0q2TydNETRjye7m4PqyJhvxke8VroXjFb7rAwIaXJHdPKk4qChuHG_RnkIRndCejpxa_ixKWhMIyEWx0C1FfgeN5JYTSsUfthkmFI_Navsv_veD2ZHUKG51Cd5BfprUlrUnC4.BGv9dDJFiNTj-Be0rfdMlA",
Das verschlüsselte ID-Token. Der Server chiffriert das Token selbst zur Sicherung des Transport-Weges. Zur Verschlüsselung verwendet wird hier der token_key aus der Anfrage des Clients.
- "access_token" : "eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIiwiY3R5IjoiTkpXVCIsImV4cCI6MTcwOTYyOTMwOX0..O7m7bGt88oy_w8qh.gcvo3nhAqrOr45qiJDqxv4kC_hf7-_4Wu24DGuJd8P0K6S8wQZ4Ij2_CejP-QhoGlP_JzN6qwdD2iH7Pcub_0kXINQGsMBTLm-6E9f2pwqeJ4Lq6oeSbaxesnTlUaPn34g-x1j3tMXHDpKkswgxhCvVYuxQyUrL5XHOdtOWCK1H1AjD6uNCqaQk_NTRXagoOpIVi4riaKF9eOVF9nfxCczppOV4PZriKGGseSBCZfkLQNp0x1vcT0H1bGrU_9noYjfTAAg6C75axYKSbYJK6g8CAPH3Wjcb3JEHdaKuVSGdEMO40aub5LIW9R41aKVul76QH4z65kP1yDqluFIH68EJvgVXo1cFDhRFJi0fXmwekJN2F2w-RJMqqu8hxR-zG34KD_HTK5OQpd6MpfRoDQBT08e02AIXIx7mAIi5A9SOVwwnYtWDPnT1y7LpH23kSXBVrx9_tMZbJIC60wwmPzZKYxd0i4DxSka-icJ1nv8nROJvfQe9gKOduAKV-be6TcuQ-MeoG_Qmsdd1A_c1nlcnT9oSvUmCEyHu-TObfJk7tE7byOPqbBTPLy33rBfjGkhiQ7-FddyP2bhope7_KUXm6tFCNYbyV-vLfmP0WZKn5Geb-ZXEHVOhfoVPBX8rGMP2TEB-Wbx4wA8bGVdPVkX9gsJcHK8dxSAxSFGBZEgS1iw2nzQqXCpt2pRX7Z9bA0WWRSCMTxysCN9rOTJsRtUhWaxvM5Ghetwu9FdJtsOxCKgO6puk3xDsxnBb6go5NtXl30KALTD62Xxa22RoPyATJnfxCzPtkjjxYpaUizLQ9AlW4DeKr-WmNYCchASH7Ixt9Rgs7lpll6_IOPL2OZhQnssOFugswfgEJjPBqMJm4lO3SmnD-WBaN3at1zBj5jilBPgfmUkYXCeco0ALaXInxng1SlTgvzNaA2Tp_6aGBJgX9td2KWmA-BvwYBt3yc2tSlQ--QiOqsTiIHJ1UVuAlqIcR2Z5g4M7gS9w0itPrLd9IDll0eXBC9VJpT_quxWGNa67ZTTIUTFQo0RToSbuLI2aQXb1BtNp0Qkcw-I0GGbxAno_SnMMxVHzPA-qNRR2-eiUvUW1-meuYvzzc9xHshK5olTjZgOx9ciZ497GDbpTVO5qo1vGUNP4KY8p30Yd9RqRJ-fZ7rkppzBKxAJaEKBJxqrjq2PzrvUrFGnKLipxu5Lp-DWOKiKin03OQasaevqjRUGrxUAs.dAFVYNzy__Yek9aUpOKSHw"
Das verschlüsselte Access-Token. Der Server chiffriert das Token selbst zur Sicherung des Transport-Weges. Zur Verschlüsselung verwendet wird hier der token_key aus der Anfrage des Clients.
-}

body.id_token.content

JWE

Headers
{
+  "id_token" : "eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIiwiY3R5IjoiTkpXVCIsImV4cCI6MTcwOTYzOTMwNH0..Gk1GtXv57My7Y63Y.YGdBJt-67VlMA19GYZg8a54nNdqDPtp31xTGWSzOZ6Upl5Aroa4Y_gDZudzvyQ1nQ7_XHaPgiLI-uD6StM4dHTIJ791A7wY6Lnt-dXUK5pD8mMBivVaBgqKdvxGn6tSXccpXzBGGNr7bvFJfT9k268AN4Wb9BHNTiW_WBZ-Su6PHMeQr_6g2xqJ4nMc_5Go0Cxp0PAxi1efDyCcG1uwfjQ5ZqQFLawUzICy6zW6dCp4nBQJh9li4DBw6Ygq3eGMS1gueMb-woR9CEgTfkC3ZTGGl2XsmQjPoZ-3-uyYz0XCvS-uVPxAAnyBimGiXQuMOw9JoVwGw5uQzZY4X22HcZf2ZzyJG8kMs4qSdPBlFXW-Qq0j3OWCzjeAK_IMA8y1mbilspugel5wIXMx9aD-jn1oT_-z8Inci7n0H-yHrdOH4hrGlww_pIK6cGKtU3cToJrK4-tzWpUN9zDmHnU_hgprBxDXUrxgB-ipyIIWmNlmt0er3r5qeFGN-FvCOshbAYTTNkwv2H3uSaBNWdu5tEOOiU0XJsSHg8HJSYDmjHoVW-nXoOfI38m9BVfVU6NYfMmGdGa9n33hI69napHaSFd805mXdw3M9R8BDzrewo1fZ13BK_o7_20kJTe1qjVb3B_uWn3qcMJIg_ey5IwHl8o0WtYMDdEvJMxGKpX2R7QKWn79GuME3HcxroBzriu-OeGQQB-8MYNTSIYCf4986vNIeD445VzSZPl2zLJqDeGAOilQy4JUT00lCea58LKlW6-eab03QFIO0vxjQtVPCVJWAla5jwIPgvxWCKC-0qrs-h6CDxg-8k0Hlj9LORGzV1obZVTwVGghpJhrfck-LSewlWMMq3Y2cYoPa8-dJYtPI4pMEN4KKVlXicql2DX9Zd11KU2kLQrEDCI0FmlhFf16L6PRjBil1Sk2AQbq3-JaarF9xuFb_ii2K3AjMQEEooYdE5KC0BzGIYgco2GCaKvA9tPCcZUmBk51IpJZhCbwsGP9S0F4iD-JDfVjkCunsM58LDK1iFlxkM9TyPAMEi28rFP99d3deoIRFH14Ha6n6FEdTnJFY-eXU82V89-NBQs3AbAhW7FjoZbBlzM_CytZ-As9NVlXHOqj-iQ4yjSAp8q21pyWjKX-ZxXApR5ldwxyeyRxMCU1L1bxBpbfm3-V48zU_5TRBUCjFIgDtYJEYWjg.FFVRbQQ7PYRpOI4PCOaAAg",
Das verschlüsselte ID-Token. Der Server chiffriert das Token selbst zur Sicherung des Transport-Weges. Zur Verschlüsselung verwendet wird hier der token_key aus der Anfrage des Clients.
+ "access_token" : "eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIiwiY3R5IjoiTkpXVCIsImV4cCI6MTcwOTYzOTMwNH0..YYGDgC9MXEua4qA_.0zj2IPTNu2dHZsaNrhlroaTFSk2wqi34O0G-WXZxfpAtyWdavXGASlRrZZQQQkjh_JYRCzm1J9tunog_lIIv-g52nWrO0brwpVU-1-wPzRKXEbUfmoQ4QhP9f93gCILCKmPTEdGHCXb-gjvxI0UwjRrlGzD6ZiPPnrBHuzM1aqQUrWBwxLfoGDZwncBp0zYMYXdTcwskcNxKTNbg3Xx5YFCtaoCHNMd9nC_4MUrSoG_2PMWG4oOAnGFfpjQ0bBEeoeRXPR3IL0V0A2TfcE3kqaAI-fDkRldaIcKXSDEJpBBEVOFE-Lqqkqj0Xv5X79bPKfV8X17U3HAUGcrqPmIjZfJ_bZvnBeBr89xL4j70a28QHYgzulV5Qbs8NcCNVt2nS8soc6qjnv3AtfkQmqVDAQqCpFRrHscOKG3epiXv6UhA_8cpSFVUntJ-A0s7FlnpNJow5HSYJTsv8BQcJxLxMDyjlQLz6GG-lYUigsvR_ArxC2tORH2d0Zb-QbKqjDvxNXvvpPkrQQWmUQ_kNplCFLXif81Dfiw3zR59VuoMWce2bE6eSTS4JNt7yE6GDdo8myqag11_IitkwUCVo-ETeDAzqRWMkwtSYTNRtUZGcTd4oedQypeOAExXqtozP14wwWV_p2mHEMbKCAE0LbdJWrRP8uqTVmqcfMFAzJyot0ZnrzIjT7plZ-mjHwUkUMRIxbtFrxfY864LdthQsCnEF2PiQSPeFnICawNb-AKx1hCLF4N-8f7JV_upqBYOHhiq5sAE4qyoMjssoqv14H4h_YieeLZfBuxnPj__XFY5MXtKjulgy-zduNGov9sCh8kmi3fqw3QCoN2deHub4sZHDq26YZ-ZHzabCbfciM5ZOFuwIDqhgufD-mmCp-YVCgyjaP-zrV29N7eRXVLrPQILNRoG3g2sJ2m1pdw-i-wL6sr18FIxAObonaJ9-uv9iFrn_wekrBQ1eW6FLFZvSbIPuHLi9jRiHz-xsVXtfw6Z9u-8Pbz67hzKP8agyUdrDonweKei824Iw3johxywD0Sj4WF5kh-BJs6XmS5muhq8fAPuzBWPEfLVwZkBODEV9U5HaBhUZc2sv41j_uAOVs7H9Lshxd8Rmziz6cKqYIyI5NOXRjSMQKBlJ8Dhv0sItIH3Kh8JoearCw8Dm_bdEE6gertl1ya-iCO22hM1_MHYf_2TW60JEeZjTKf4Fs5awiCnqLb2vKiglt5HTik.Deu5wlLo5r2kRPleyuyFBQ"
Das verschlüsselte Access-Token. Der Server chiffriert das Token selbst zur Sicherung des Transport-Weges. Zur Verschlüsselung verwendet wird hier der token_key aus der Anfrage des Clients.
+}

body.id_token.content

JWE

Headers
{
   "alg" : "dir",
   "enc" : "A256GCM",
   "cty" : "NJWT",
-  "exp" : 1709629309
Gültigkeit des Tokens
-}

Body

{
-  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJhdF9oYXNoIjoiOUc4OXpVZTV2MklYMmk3dzFwdm1aUSIsInN1YiI6InhtTnlFdDBxR3pTT3M4Q0dORXRDUkNaa1ctbW5kdnVxV2hFWDdmU1FOODAiLCJvcmdhbml6YXRpb25OYW1lIjpudWxsLCJwcm9mZXNzaW9uT0lEIjoiMS4yLjI3Ni4wLjc2LjQuMzAiLCJpZE51bW1lciI6IjEtSEJBLVRlc3RrYXJ0ZS04ODMxMTAwMDAxMjkwODQiLCJhbXIiOlsibWZhIiwic2MiLCJwaW4iXSwiaXNzIjoiaHR0cHM6Ly9pZHAuZGV2LmdlbWF0aWsuc29sdXRpb25zIiwiZ2l2ZW5fbmFtZSI6IkfDvG50aGVyIEdyYWYiLCJkaXNwbGF5X25hbWUiOiJHw7xudGhlciBHcmFmIE90w61zIiwibm9uY2UiOiJ0TldlWG1MRy1DbE5xMzRuOWY5WmtwQ1E4bklrZXlrViIsImF1ZCI6ImdlbWF0aWtUZXN0UHMiLCJhY3IiOiJnZW1hdGlrLWVoZWFsdGgtbG9hLWhpZ2giLCJhenAiOiJnZW1hdGlrVGVzdFBzIiwiYXV0aF90aW1lIjoxNzA5NjI5MDA0LCJleHAiOjE3MDk2MjkzMDksImlhdCI6MTcwOTYyOTAwOSwiZmFtaWx5X25hbWUiOiJPdMOtcyIsImp0aSI6IjZhNDM4OWJlNTViZmFlYzUifQ.NL5lfubqkRb6YmeCY2A0AmITZgUHcrxRi5yep6VPq35PpnGsCOrJALyXAQoBACuVHvokEqf8j7y94cd13lFekQ"
Ein verschachtelt enthaltenes JWT
-}

body.id_token.content.body.njwt.content

JWT

Headers
{
+  "exp" : 1709639304
Gültigkeit des Tokens
+}

Body

{
+  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJhdF9oYXNoIjoicExhMzVMazQxTTVvRDVJOURnQjRDQSIsInN1YiI6InhtTnlFdDBxR3pTT3M4Q0dORXRDUkNaa1ctbW5kdnVxV2hFWDdmU1FOODAiLCJvcmdhbml6YXRpb25OYW1lIjpudWxsLCJwcm9mZXNzaW9uT0lEIjoiMS4yLjI3Ni4wLjc2LjQuMzAiLCJpZE51bW1lciI6IjEtSEJBLVRlc3RrYXJ0ZS04ODMxMTAwMDAxMjkwODQiLCJhbXIiOlsibWZhIiwic2MiLCJwaW4iXSwiaXNzIjoiaHR0cHM6Ly9pZHAuZGV2LmdlbWF0aWsuc29sdXRpb25zIiwiZ2l2ZW5fbmFtZSI6IkfDvG50aGVyIEdyYWYiLCJkaXNwbGF5X25hbWUiOiJHw7xudGhlciBHcmFmIE90w61zIiwibm9uY2UiOiJBN1Vod3FLZzNpcXdKZWdkSWthRHhIVVZKcGFPN2RkWiIsImF1ZCI6ImdlbWF0aWtUZXN0UHMiLCJhY3IiOiJnZW1hdGlrLWVoZWFsdGgtbG9hLWhpZ2giLCJhenAiOiJnZW1hdGlrVGVzdFBzIiwiYXV0aF90aW1lIjoxNzA5NjM4OTk5LCJleHAiOjE3MDk2MzkzMDQsImlhdCI6MTcwOTYzOTAwNCwiZmFtaWx5X25hbWUiOiJPdMOtcyIsImp0aSI6ImM5ZWVjN2U4NjA0ZWQ0ZTMifQ.Mtmb8Y97aSiBfVCuVVYpmeEvwOwQ7HCFBl2Rza4IsXwjtNSuRokCwqHZVJeFgSuLeeohI0e9vrqzoR3VbshNzg"
Ein verschachtelt enthaltenes JWT
+}

body.id_token.content.body.njwt.content

JWT

Headers
{
   "alg" : "BP256R1",
   "typ" : "JWT",
   "kid" : "puk_idp_sig"
Identifiziert den hier beschriebenen Schlüssel. Beschreibung siehe https://tools.ietf.org/html/rfc7517#section-4.5
-}

Body

{
-  "at_hash" : "9G89zUe5v2IX2i7w1pvmZQ",
Erste 16 Bytes des Hash des Authentication Tokens Base64(subarray(Sha256(authentication_token), 0, 16))
+}

Body

{
+  "at_hash" : "pLa35Lk41M5oD5I9DgB4CA",
Erste 16 Bytes des Hash des Authentication Tokens Base64(subarray(Sha256(authentication_token), 0, 16))
"sub" : "xmNyEt0qGzSOs8CGNEtCRCZkW-mndvuqWhEX7fSQN80",
subject. Base64(sha256(audClaim + idNummerClaim + serverSubjectSalt))
"organizationName" : null, "professionOID" : "1.2.276.0.76.4.30", @@ -1032,27 +1032,27 @@ "iss" : "https://idp.dev.gematik.solutions", "given_name" : "Günther Graf", "display_name" : "Günther Graf Otís", - "nonce" : "tNWeXmLG-ClNq34n9f9ZkpCQ8nIkeykV",
String zu Verhinderung von CSRF-Attacken. Dieser Wert ist optional. Wenn er mitgegeben wird muss der gleiche Wert im abschließend ausgegebenen ID-Token wieder auftauchen. WICHTIG: Darf nicht länger als 512 Zeichen sein.
+ "nonce" : "A7UhwqKg3iqwJegdIkaDxHUVJpaO7ddZ",
String zu Verhinderung von CSRF-Attacken. Dieser Wert ist optional. Wenn er mitgegeben wird muss der gleiche Wert im abschließend ausgegebenen ID-Token wieder auftauchen. WICHTIG: Darf nicht länger als 512 Zeichen sein.
"aud" : "gematikTestPs", "acr" : "gematik-ehealth-loa-high", "azp" : "gematikTestPs", - "auth_time" : 1709629004,
Timestamp der Authentisierung
- "exp" : 1709629309,
Gültigkeit des Tokens
- "iat" : 1709629009,
Zeitpunkt der Ausstellung des Tokens
+ "auth_time" : 1709638999,
Timestamp der Authentisierung
+ "exp" : 1709639304,
Gültigkeit des Tokens
+ "iat" : 1709639004,
Zeitpunkt der Ausstellung des Tokens
"family_name" : "Otís", - "jti" : "6a4389be55bfaec5"
A unique identifier for the token, which can be used to prevent reuse of the token. Value is a case-sensitive string.
-}

Signature

Was verified using Key puk_idp_sig

Encryption info

Was decrypted using Key token_key

body.access_token.content

JWE

Headers
{
+  "jti" : "c9eec7e8604ed4e3"
A unique identifier for the token, which can be used to prevent reuse of the token. Value is a case-sensitive string.
+}

Signature

Was verified using Key puk_idp_sig

Encryption info

Was decrypted using Key token_key

body.access_token.content

JWE

Headers
{
   "alg" : "dir",
   "enc" : "A256GCM",
   "cty" : "NJWT",
-  "exp" : 1709629309
Gültigkeit des Tokens
-}

Body

{
-  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiYXQrSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJzdWIiOiJ4bU55RXQwcUd6U09zOENHTkV0Q1JDWmtXLW1uZHZ1cVdoRVg3ZlNRTjgwIiwicHJvZmVzc2lvbk9JRCI6IjEuMi4yNzYuMC43Ni40LjMwIiwib3JnYW5pemF0aW9uTmFtZSI6bnVsbCwiaWROdW1tZXIiOiIxLUhCQS1UZXN0a2FydGUtODgzMTEwMDAwMTI5MDg0IiwiYW1yIjpbIm1mYSIsInNjIiwicGluIl0sImlzcyI6Imh0dHBzOi8vaWRwLmRldi5nZW1hdGlrLnNvbHV0aW9ucyIsImdpdmVuX25hbWUiOiJHw7xudGhlciBHcmFmIiwiZGlzcGxheV9uYW1lIjoiR8O8bnRoZXIgR3JhZiBPdMOtcyIsImNsaWVudF9pZCI6ImdlbWF0aWtUZXN0UHMiLCJhY3IiOiJnZW1hdGlrLWVoZWFsdGgtbG9hLWhpZ2giLCJhdWQiOiJodHRwczovL2VycC10ZXN0LnplbnRyYWwuZXJwLnNwbGl0ZG5zLnRpLWRpZW5zdGUuZGUvIiwiYXpwIjoiZ2VtYXRpa1Rlc3RQcyIsInNjb3BlIjoib3BlbmlkIGUtcmV6ZXB0IiwiYXV0aF90aW1lIjoxNzA5NjI5MDA0LCJleHAiOjE3MDk2MjkzMDksImZhbWlseV9uYW1lIjoiT3TDrXMiLCJpYXQiOjE3MDk2MjkwMDksImp0aSI6IjBiYTc3NmJhNTVkZDBhMDgifQ.W8Gmez67oJKAtqWACxXovAs7VHgWUC6n9Wc720j_YOIfGUiqmPQfSO3C5oDYVIAfXYdve2r8naCh6lXCN6_gUA"
Ein verschachtelt enthaltenes JWT
-}

body.access_token.content.body.njwt.content

JWT

Headers
{
+  "exp" : 1709639304
Gültigkeit des Tokens
+}

Body

{
+  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiYXQrSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJzdWIiOiJ4bU55RXQwcUd6U09zOENHTkV0Q1JDWmtXLW1uZHZ1cVdoRVg3ZlNRTjgwIiwicHJvZmVzc2lvbk9JRCI6IjEuMi4yNzYuMC43Ni40LjMwIiwib3JnYW5pemF0aW9uTmFtZSI6bnVsbCwiaWROdW1tZXIiOiIxLUhCQS1UZXN0a2FydGUtODgzMTEwMDAwMTI5MDg0IiwiYW1yIjpbIm1mYSIsInNjIiwicGluIl0sImlzcyI6Imh0dHBzOi8vaWRwLmRldi5nZW1hdGlrLnNvbHV0aW9ucyIsImdpdmVuX25hbWUiOiJHw7xudGhlciBHcmFmIiwiZGlzcGxheV9uYW1lIjoiR8O8bnRoZXIgR3JhZiBPdMOtcyIsImNsaWVudF9pZCI6ImdlbWF0aWtUZXN0UHMiLCJhY3IiOiJnZW1hdGlrLWVoZWFsdGgtbG9hLWhpZ2giLCJhdWQiOiJodHRwczovL2VycC10ZXN0LnplbnRyYWwuZXJwLnNwbGl0ZG5zLnRpLWRpZW5zdGUuZGUvIiwiYXpwIjoiZ2VtYXRpa1Rlc3RQcyIsInNjb3BlIjoib3BlbmlkIGUtcmV6ZXB0IiwiYXV0aF90aW1lIjoxNzA5NjM4OTk5LCJleHAiOjE3MDk2MzkzMDQsImZhbWlseV9uYW1lIjoiT3TDrXMiLCJpYXQiOjE3MDk2MzkwMDQsImp0aSI6ImU5ZDJhZThmNjhjYjhjMzIifQ.QJ_Dprp1bz7nTKaay5qXvwXs3I70rW0dWHwBEuRgiGOjLTEVAFR_XbcdOP8VJt0f0d4tArqbETzKTx7iWyQdEg"
Ein verschachtelt enthaltenes JWT
+}

body.access_token.content.body.njwt.content

JWT

Headers
{
   "alg" : "BP256R1",
   "typ" : "at+JWT",
   "kid" : "puk_idp_sig"
Identifiziert den hier beschriebenen Schlüssel. Beschreibung siehe https://tools.ietf.org/html/rfc7517#section-4.5
-}

Body

{
+}

Body

{
   "sub" : "xmNyEt0qGzSOs8CGNEtCRCZkW-mndvuqWhEX7fSQN80",
subject. Base64(sha256(audClaim + idNummerClaim + serverSubjectSalt))
"professionOID" : "1.2.276.0.76.4.30", "organizationName" : null, @@ -1066,12 +1066,12 @@ "aud" : "https://erp-test.zentral.erp.splitdns.ti-dienste.de/", "azp" : "gematikTestPs", "scope" : "openid e-rezept",
Der Scope entspricht dem zwischen E-Rezept-Fachdienst und IDP festgelegten Wert. Mit diesem antwortet der E-Rezept-Fachdienst bei fehlendem ACCESS_TOKEN und http-Statuscode 401.
- "auth_time" : 1709629004,
Timestamp der Authentisierung
- "exp" : 1709629309,
Gültigkeit des Tokens
+ "auth_time" : 1709638999,
Timestamp der Authentisierung
+ "exp" : 1709639304,
Gültigkeit des Tokens
"family_name" : "Otís", - "iat" : 1709629009,
Zeitpunkt der Ausstellung des Tokens
- "jti" : "0ba776ba55dd0a08"
A unique identifier for the token, which can be used to prevent reuse of the token. Value is a case-sensitive string.
-}

Signature

Was verified using Key puk_idp_sig

Encryption info

Was decrypted using Key token_key

Created Tue, 5 Mar 2024 09:56:52 +0100
\ No newline at end of file + \ No newline at end of file diff --git a/doc/tokenFlowSso.html b/doc/tokenFlowSso.html index 758838f..eb6a3a7 100644 --- a/doc/tokenFlowSso.html +++ b/doc/tokenFlowSso.html @@ -665,50 +665,50 @@ background-color: #469408!important; }
Gerendert mit https://github.com/gematik/app-RbelLogger
Created Tue, 5 Mar 2024 09:56:36 +0100
Created Tue, 5 Mar 2024 12:43:11 +0100

13 GET http://localhost:40931/.well-known/openid-configuration127.0.0.1:-1localhost:46453

13 GET http://localhost:38497/.well-known/openid-configuration127.0.0.1:-1localhost:35977

REQ Headers

User-Agent
IdP-Client
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Accept-Encoding
gzip
Nicht verpflichtend
Nicht verpflichtend
Host
localhost:46453
Nicht verpflichtend
Nicht verpflichtend
Connection
keep-alive
Nicht verpflichtend
Nicht verpflichtend
Empty body

REQ Headers

User-Agent
IdP-Client
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Accept-Encoding
gzip
Nicht verpflichtend
Nicht verpflichtend
Host
localhost:35977
Nicht verpflichtend
Nicht verpflichtend
Connection
keep-alive
Nicht verpflichtend
Nicht verpflichtend
Empty body

14200localhost:46453127.0.0.1:-1

14200localhost:35977127.0.0.1:-1

RES Headers

Keep-Alive
timeout=60
Cache-Control
no-store
Version
27.0.0
Pragma
no-cache
Content-Length
3118
Date
Tue, 05 Mar 2024 08:56:06 GMT
Zeitpunkt der Antwort.
Zeitpunkt der Antwort.
Content-Type
application/jwt;charset=UTF-8

RES Body

JWT

Headers
{
+Date: Tue, 05 Mar 2024 11:42:42 GMT
+Content-Type: application/jwt;charset=UTF-8

RES Headers

Keep-Alive
timeout=60
Cache-Control
no-store
Version
27.0.1
Pragma
no-cache
Content-Length
3118
Date
Tue, 05 Mar 2024 11:42:42 GMT
Zeitpunkt der Antwort.
Zeitpunkt der Antwort.
Content-Type
application/jwt;charset=UTF-8

RES Body

JWT

Headers
{
   "alg" : "BP256R1",
   "typ" : "JWT",
   "kid" : "puk_disc_sig",
Identifiziert den hier beschriebenen Schlüssel. Beschreibung siehe https://tools.ietf.org/html/rfc7517#section-4.5
"x5c" : [ "MIICsTCCAligAwIBAgIHAbssqQhqOzAKBggqhkjOPQQDAjCBhDELMAkGA1UEBhMCREUxHzAdBgNVBAoMFmdlbWF0aWsgR21iSCBOT1QtVkFMSUQxMjAwBgNVBAsMKUtvbXBvbmVudGVuLUNBIGRlciBUZWxlbWF0aWtpbmZyYXN0cnVrdHVyMSAwHgYDVQQDDBdHRU0uS09NUC1DQTEwIFRFU1QtT05MWTAeFw0yMTAxMTUwMDAwMDBaFw0yNjAxMTUyMzU5NTlaMEkxCzAJBgNVBAYTAkRFMSYwJAYDVQQKDB1nZW1hdGlrIFRFU1QtT05MWSAtIE5PVC1WQUxJRDESMBAGA1UEAwwJSURQIFNpZyAzMFowFAYHKoZIzj0CAQYJKyQDAwIIAQEHA0IABIYZnwiGAn5QYOx43Z8MwaZLD3r/bz6BTcQO5pbeum6qQzYD5dDCcriw/VNPPZCQzXQPg4StWyy5OOq9TogBEmOjge0wgeowDgYDVR0PAQH/BAQDAgeAMC0GBSskCAMDBCQwIjAgMB4wHDAaMAwMCklEUC1EaWVuc3QwCgYIKoIUAEwEggQwIQYDVR0gBBowGDAKBggqghQATASBSzAKBggqghQATASBIzAfBgNVHSMEGDAWgBQo8Pjmqch3zENF25qu1zqDrA4PqDA4BggrBgEFBQcBAQQsMCowKAYIKwYBBQUHMAGGHGh0dHA6Ly9laGNhLmdlbWF0aWsuZGUvb2NzcC8wHQYDVR0OBBYEFC94M9LgW44lNgoAbkPaomnLjS8/MAwGA1UdEwEB/wQCMAAwCgYIKoZIzj0EAwIDRwAwRAIgCg4yZDWmyBirgxzawz/S8DJnRFKtYU/YGNlRc7+kBHcCIBuzba3GspqSmoP1VwMeNNKNaLsgV8vMbDJb30aqaiX1"
Enthält das verwendete Signer-Zertifikat als Base64 ASN.1 DER-Encoding. Hier kommt ausnahmsweise NICHT URL-safes Base64-Encoding zum Einsatz!
] -}

body.header.x5c.0.content

X509 Certificate

Subject: C=DE,O=gematik TEST-ONLY - NOT-VALID,CN=IDP Sig 3

Issuer: C=DE,O=gematik GmbH NOT-VALID,OU=Komponenten-CA der Telematikinfrastruktur,CN=GEM.KOMP-CA10 TEST-ONLY

Serialnumber: 487275465566779

Valid From: 2021-01-15T00:00Z[UTC]

Valid Until: 2026-01-15T23:59:59Z[UTC]


Body

{
-  "authorization_endpoint" : "http://localhost:40931/sign_response",
URL des Authorization Endpunkts.
- "auth_pair_endpoint" : "http://localhost:40931/alt_response",
URL des Biometrie-Authorization Endpunkts.
- "sso_endpoint" : "http://localhost:40931/sso_response",
URL des SSO-Authorization Endpunkts.
- "uri_pair" : "http://localhost:40931/pairings",
URL des Pairing-Endpunkts
- "token_endpoint" : "http://localhost:40931/token",
URL des Authorization Endpunkts.
- "third_party_authorization_endpoint" : "http://localhost:40931/extauth", +}

body.header.x5c.0.content

X509 Certificate

Subject: C=DE,O=gematik TEST-ONLY - NOT-VALID,CN=IDP Sig 3

Issuer: C=DE,O=gematik GmbH NOT-VALID,OU=Komponenten-CA der Telematikinfrastruktur,CN=GEM.KOMP-CA10 TEST-ONLY

Serialnumber: 487275465566779

Valid From: 2021-01-15T00:00Z[UTC]

Valid Until: 2026-01-15T23:59:59Z[UTC]


Body

{
+  "authorization_endpoint" : "http://localhost:38497/sign_response",
URL des Authorization Endpunkts.
+ "auth_pair_endpoint" : "http://localhost:38497/alt_response",
URL des Biometrie-Authorization Endpunkts.
+ "sso_endpoint" : "http://localhost:38497/sso_response",
URL des SSO-Authorization Endpunkts.
+ "uri_pair" : "http://localhost:38497/pairings",
URL des Pairing-Endpunkts
+ "token_endpoint" : "http://localhost:38497/token",
URL des Authorization Endpunkts.
+ "third_party_authorization_endpoint" : "http://localhost:38497/extauth", "federation_authorization_endpoint" : "https://idpfadi.dev.gematik.solutions/auth", - "uri_disc" : "http://localhost:40931/.well-known/openid-configuration",
URL des Discovery-Dokuments
+ "uri_disc" : "http://localhost:38497/.well-known/openid-configuration",
URL des Discovery-Dokuments
"issuer" : "https://idp.dev.gematik.solutions", - "jwks_uri" : "http://localhost:40931/jwks",
URL einer JWKS-Struktur mit allen vom Server verwendeten Schlüsseln
- "exp" : 1709715366,
Gültigkeit des Tokens
- "iat" : 1709628966,
Zeitpunkt der Ausstellung des Tokens
- "uri_puk_idp_enc" : "http://localhost:40931/idpEnc/jwk.json", - "uri_puk_idp_sig" : "http://localhost:40931/idpSig/jwk.json", + "jwks_uri" : "http://localhost:38497/jwks",
URL einer JWKS-Struktur mit allen vom Server verwendeten Schlüsseln
+ "exp" : 1709725362,
Gültigkeit des Tokens
+ "iat" : 1709638962,
Zeitpunkt der Ausstellung des Tokens
+ "uri_puk_idp_enc" : "http://localhost:38497/idpEnc/jwk.json", + "uri_puk_idp_sig" : "http://localhost:38497/idpSig/jwk.json", "subject_types_supported" : [ "pairwise" ], "id_token_signing_alg_values_supported" : [ "BP256R1" ], "response_types_supported" : [ "code" ], @@ -718,27 +718,27 @@ "acr_values_supported" : [ "gematik-ehealth-loa-high" ], "token_endpoint_auth_methods_supported" : [ "none" ], "code_challenge_methods_supported" : [ "S256" ], - "kk_app_list_uri" : "http://localhost:40931/directory/kk_apps", - "fed_idp_list_uri" : "http://localhost:40931/fed_idp_list" -}

Signature

Was verified using Key puk_disc_sig

Signature

Was verified using Key puk_disc_sig

15 GET http://localhost:40931/idpSig/jwk.json127.0.0.1:-1localhost:46453

15 GET http://localhost:38497/idpSig/jwk.json127.0.0.1:-1localhost:35977

REQ Headers

User-Agent
IdP-Client
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Accept-Encoding
gzip
Nicht verpflichtend
Nicht verpflichtend
Host
localhost:46453
Nicht verpflichtend
Nicht verpflichtend
Connection
keep-alive
Nicht verpflichtend
Nicht verpflichtend
Empty body

REQ Headers

User-Agent
IdP-Client
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Accept-Encoding
gzip
Nicht verpflichtend
Nicht verpflichtend
Host
localhost:35977
Nicht verpflichtend
Nicht verpflichtend
Connection
keep-alive
Nicht verpflichtend
Nicht verpflichtend
Empty body

16200localhost:46453127.0.0.1:-1

RES Headers

Keep-Alive
timeout=60
Version
27.0.0
Date
Tue, 05 Mar 2024 08:56:10 GMT
Zeitpunkt der Antwort.
Zeitpunkt der Antwort.
Content-Type
application/json

RES Body

{
+{"x5c":["MIICsTCCAligAwIBAgIHA61I5ACUjTAKBggqhkjOPQQDAjCBhDELMAkGA1UEBhMCREUxHzAdBgNVBAoMFmdlbWF0aWsgR21iSCBOT1QtVkFMSUQxMjAwBgNVBAsMKUtvbXBvbmVudGVuLUNBIGRlciBUZWxlbWF0aWtpbmZyYXN0cnVrdHVyMSAwHgYDVQQDDBdHRU0uS09NUC1DQTEwIFRFU1QtT05MWTAeFw0yMDA4MDQwMDAwMDBaFw0yNTA4MDQyMzU5NTlaMEkxCzAJBgNVBAYTAkRFMSYwJAYDVQQKDB1nZW1hdGlrIFRFU1QtT05MWSAtIE5PVC1WQUxJRDESMBAGA1UEAwwJSURQIFNpZyAxMFowFAYHKoZIzj0CAQYJKyQDAwIIAQEHA0IABJZQrG1NWxIB3kz/6Z2zojlkJqN3vJXZ3EZnJ6JXTXw5ZDFZ5XjwWmtgfomv3VOV7qzI5ycUSJysMWDEu3mqRcajge0wgeowHQYDVR0OBBYEFJ8DVLAZWT+BlojTD4MT/Na+ES8YMDgGCCsGAQUFBwEBBCwwKjAoBggrBgEFBQcwAYYcaHR0cDovL2VoY2EuZ2VtYXRpay5kZS9vY3NwLzAMBgNVHRMBAf8EAjAAMCEGA1UdIAQaMBgwCgYIKoIUAEwEgUswCgYIKoIUAEwEgSMwHwYDVR0jBBgwFoAUKPD45qnId8xDRduartc6g6wOD6gwLQYFKyQIAwMEJDAiMCAwHjAcMBowDAwKSURQLURpZW5zdDAKBggqghQATASCBDAOBgNVHQ8BAf8EBAMCB4AwCgYIKoZIzj0EAwIDRwAwRAIgVBPhAwyX8HAVH0O0b3+VazpBAWkQNjkEVRkv+EYX1e8CIFdn4O+nivM+XVi9xiKK4dW1R7MD334OpOPTFjeEhIVV"],"use":"sig","kid":"puk_idp_sig","kty":"EC","crv":"BP-256","x":"llCsbU1bEgHeTP_pnbOiOWQmo3e8ldncRmcnoldNfDk","y":"ZDFZ5XjwWmtgfomv3VOV7qzI5ycUSJysMWDEu3mqRcY"}

16200localhost:35977127.0.0.1:-1

RES Headers

Keep-Alive
timeout=60
Version
27.0.1
Date
Tue, 05 Mar 2024 11:42:46 GMT
Zeitpunkt der Antwort.
Zeitpunkt der Antwort.
Content-Type
application/json

RES Body

{
   "x5c" : [ "MIICsTCCAligAwIBAgIHA61I5ACUjTAKBggqhkjOPQQDAjCBhDELMAkGA1UEBhMCREUxHzAdBgNVBAoMFmdlbWF0aWsgR21iSCBOT1QtVkFMSUQxMjAwBgNVBAsMKUtvbXBvbmVudGVuLUNBIGRlciBUZWxlbWF0aWtpbmZyYXN0cnVrdHVyMSAwHgYDVQQDDBdHRU0uS09NUC1DQTEwIFRFU1QtT05MWTAeFw0yMDA4MDQwMDAwMDBaFw0yNTA4MDQyMzU5NTlaMEkxCzAJBgNVBAYTAkRFMSYwJAYDVQQKDB1nZW1hdGlrIFRFU1QtT05MWSAtIE5PVC1WQUxJRDESMBAGA1UEAwwJSURQIFNpZyAxMFowFAYHKoZIzj0CAQYJKyQDAwIIAQEHA0IABJZQrG1NWxIB3kz/6Z2zojlkJqN3vJXZ3EZnJ6JXTXw5ZDFZ5XjwWmtgfomv3VOV7qzI5ycUSJysMWDEu3mqRcajge0wgeowHQYDVR0OBBYEFJ8DVLAZWT+BlojTD4MT/Na+ES8YMDgGCCsGAQUFBwEBBCwwKjAoBggrBgEFBQcwAYYcaHR0cDovL2VoY2EuZ2VtYXRpay5kZS9vY3NwLzAMBgNVHRMBAf8EAjAAMCEGA1UdIAQaMBgwCgYIKoIUAEwEgUswCgYIKoIUAEwEgSMwHwYDVR0jBBgwFoAUKPD45qnId8xDRduartc6g6wOD6gwLQYFKyQIAwMEJDAiMCAwHjAcMBowDAwKSURQLURpZW5zdDAKBggqghQATASCBDAOBgNVHQ8BAf8EBAMCB4AwCgYIKoZIzj0EAwIDRwAwRAIgVBPhAwyX8HAVH0O0b3+VazpBAWkQNjkEVRkv+EYX1e8CIFdn4O+nivM+XVi9xiKK4dW1R7MD334OpOPTFjeEhIVV"
Enthält das verwendete Signer-Zertifikat als Base64 ASN.1 DER-Encoding. Hier kommt ausnahmsweise NICHT URL-safes Base64-Encoding zum Einsatz!
], "use" : "sig",
Erlaubte Verwendungen des Schlüssels. Siehe https://tools.ietf.org/html/rfc7517#section-4.2
"kid" : "puk_idp_sig",
Identifiziert den hier beschriebenen Schlüssel. Beschreibung siehe https://tools.ietf.org/html/rfc7517#section-4.5
@@ -746,57 +746,57 @@ "crv" : "BP-256", "x" : "llCsbU1bEgHeTP_pnbOiOWQmo3e8ldncRmcnoldNfDk",
X-Koordinate des öffentlichen Punkts des Schlüssels
"y" : "ZDFZ5XjwWmtgfomv3VOV7qzI5ycUSJysMWDEu3mqRcY"
Y-Koordinate des öffentlichen Punkts des Schlüssels
-}

body.x5c.0.content

X509 Certificate

Subject: C=DE,O=gematik TEST-ONLY - NOT-VALID,CN=IDP Sig 1

Issuer: C=DE,O=gematik GmbH NOT-VALID,OU=Komponenten-CA der Telematikinfrastruktur,CN=GEM.KOMP-CA10 TEST-ONLY

Serialnumber: 1034953504625805

Valid From: 2020-08-04T00:00Z[UTC]

Valid Until: 2025-08-04T23:59:59Z[UTC]


17 GET http://localhost:40931/idpEnc/jwk.json127.0.0.1:-1localhost:46453

17 GET http://localhost:38497/idpEnc/jwk.json127.0.0.1:-1localhost:35977

REQ Headers

User-Agent
IdP-Client
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Accept-Encoding
gzip
Nicht verpflichtend
Nicht verpflichtend
Host
localhost:46453
Nicht verpflichtend
Nicht verpflichtend
Connection
keep-alive
Nicht verpflichtend
Nicht verpflichtend
Empty body

REQ Headers

User-Agent
IdP-Client
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Accept-Encoding
gzip
Nicht verpflichtend
Nicht verpflichtend
Host
localhost:35977
Nicht verpflichtend
Nicht verpflichtend
Connection
keep-alive
Nicht verpflichtend
Nicht verpflichtend
Empty body

18200localhost:46453127.0.0.1:-1

RES Headers

Keep-Alive
timeout=60
Version
27.0.0
Date
Tue, 05 Mar 2024 08:56:12 GMT
Zeitpunkt der Antwort.
Zeitpunkt der Antwort.
Content-Type
application/json

RES Body

{
+{"use":"enc","kid":"puk_idp_enc","kty":"EC","crv":"BP-256","x":"QLpJ_LpFx-6yJhsb4OvHwU1khLnviiOwYOvmf5clK7w","y":"mHuknfNkoMmSbytt4br0YGihOixcmBKy80UfSLdXGe4"}

18200localhost:35977127.0.0.1:-1

RES Headers

Keep-Alive
timeout=60
Version
27.0.1
Date
Tue, 05 Mar 2024 11:42:48 GMT
Zeitpunkt der Antwort.
Zeitpunkt der Antwort.
Content-Type
application/json

RES Body

{
   "use" : "enc",
Erlaubte Verwendungen des Schlüssels. Siehe https://tools.ietf.org/html/rfc7517#section-4.2
"kid" : "puk_idp_enc",
Identifiziert den hier beschriebenen Schlüssel. Beschreibung siehe https://tools.ietf.org/html/rfc7517#section-4.5
"kty" : "EC", "crv" : "BP-256", "x" : "QLpJ_LpFx-6yJhsb4OvHwU1khLnviiOwYOvmf5clK7w",
X-Koordinate des öffentlichen Punkts des Schlüssels
"y" : "mHuknfNkoMmSbytt4br0YGihOixcmBKy80UfSLdXGe4"
Y-Koordinate des öffentlichen Punkts des Schlüssels
-}

19 GET http://localhost:40931/sign_response?client_id=eRezeptApp&response_type=code&redirect_uri=http%3A%2F%2Fredirect.gematik.de%2Ferezept&state=oRLaQO5P_T1oNxpwDD0e3hUPsvRGnjJl&code_challenge=ojytDlouoxV6vBRVyoz5iGBLh5emhj018OEACb-5CEU&code_challenge_method=S256&scope=openid+e-rezept&nonce=R54h-jfR_GGp6T7VvdPHdJoNP1WC9DXk127.0.0.1:-1localhost:46453

19 GET http://localhost:38497/sign_response?client_id=eRezeptApp&response_type=code&redirect_uri=http%3A%2F%2Fredirect.gematik.de%2Ferezept&state=p_y9jlAfQU7UO_1GrDP9hgjzYzkO_SGK&code_challenge=62CPsvsuHjE-pS5KBLXUQQMefydFy82ejXl4t00q1hk&code_challenge_method=S256&scope=openid+e-rezept&nonce=aU2RjDutS968d2Jj6Duk-_XyH1MVEt-E127.0.0.1:-1localhost:35977

REQ Headers

User-Agent
IdP-Client
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Accept
application/json
Accept-Encoding
gzip
Nicht verpflichtend
Nicht verpflichtend
Host
localhost:46453
Nicht verpflichtend
Nicht verpflichtend
Connection
keep-alive
Nicht verpflichtend
Nicht verpflichtend
Empty body

REQ Headers

User-Agent
IdP-Client
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Accept
application/json
Accept-Encoding
gzip
Nicht verpflichtend
Nicht verpflichtend
Host
localhost:35977
Nicht verpflichtend
Nicht verpflichtend
Connection
keep-alive
Nicht verpflichtend
Nicht verpflichtend
Empty body

20200localhost:46453127.0.0.1:-1

20200localhost:35977127.0.0.1:-1

RES Headers

Keep-Alive
timeout=60
Cache-Control
no-store
Version
27.0.0
Pragma
no-cache
Date
Tue, 05 Mar 2024 08:56:12 GMT
Zeitpunkt der Antwort.
Zeitpunkt der Antwort.
Content-Type
application/json

RES Body

{
-  "challenge" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjQ2NDUzIiwicmVzcG9uc2VfdHlwZSI6ImNvZGUiLCJzbmMiOiI5V3kwSWl1RnptUXhLOVUtNjY5bWFJNGhrMlVSRktjMDRlNnN4NTZkMWJ3IiwiY29kZV9jaGFsbGVuZ2VfbWV0aG9kIjoiUzI1NiIsInRva2VuX3R5cGUiOiJjaGFsbGVuZ2UiLCJub25jZSI6IlI1NGgtamZSX0dHcDZUN1Z2ZFBIZEpvTlAxV0M5RFhrIiwiY2xpZW50X2lkIjoiZVJlemVwdEFwcCIsInNjb3BlIjoib3BlbmlkIGUtcmV6ZXB0Iiwic3RhdGUiOiJvUkxhUU81UF9UMW9OeHB3REQwZTNoVVBzdlJHbmpKbCIsInJlZGlyZWN0X3VyaSI6Imh0dHA6Ly9yZWRpcmVjdC5nZW1hdGlrLmRlL2VyZXplcHQiLCJleHAiOjE3MDk2MjkxNTMsImlhdCI6MTcwOTYyODk3MywiY29kZV9jaGFsbGVuZ2UiOiJvanl0RGxvdW94VjZ2QlJWeW96NWlHQkxoNWVtaGowMThPRUFDYi01Q0VVIiwianRpIjoiNzZhNTkxOTVmMDYwMmE4YSJ9.N81SjE-Iw2nJBkZtgNygATsXNSf_UoIsF7kYOhFSvgGHTznrZqLNKD8paAcfntwmEX-4RlafcDerUj7Qla-kgg",
Die vom Client mittels der eGK bzw. SMC-B zu signierende Challenge besteht aus einem Base64-codierten Challenge-Token.
+Date: Tue, 05 Mar 2024 11:42:48 GMT +Content-Type: application/json

RES Headers

Keep-Alive
timeout=60
Cache-Control
no-store
Version
27.0.1
Pragma
no-cache
Date
Tue, 05 Mar 2024 11:42:48 GMT
Zeitpunkt der Antwort.
Zeitpunkt der Antwort.
Content-Type
application/json

RES Body

{
+  "challenge" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjM1OTc3IiwicmVzcG9uc2VfdHlwZSI6ImNvZGUiLCJzbmMiOiJyTUNod214cGZkSTNGTE1rc0E3X0VlTWJjWjh5UDFRTnBfbzg1WVAydXAwIiwiY29kZV9jaGFsbGVuZ2VfbWV0aG9kIjoiUzI1NiIsInRva2VuX3R5cGUiOiJjaGFsbGVuZ2UiLCJub25jZSI6ImFVMlJqRHV0Uzk2OGQySmo2RHVrLV9YeUgxTVZFdC1FIiwiY2xpZW50X2lkIjoiZVJlemVwdEFwcCIsInNjb3BlIjoib3BlbmlkIGUtcmV6ZXB0Iiwic3RhdGUiOiJwX3k5amxBZlFVN1VPXzFHckRQOWhnanpZemtPX1NHSyIsInJlZGlyZWN0X3VyaSI6Imh0dHA6Ly9yZWRpcmVjdC5nZW1hdGlrLmRlL2VyZXplcHQiLCJleHAiOjE3MDk2MzkxNDgsImlhdCI6MTcwOTYzODk2OCwiY29kZV9jaGFsbGVuZ2UiOiI2MkNQc3ZzdUhqRS1wUzVLQkxYVVFRTWVmeWRGeTgyZWpYbDR0MDBxMWhrIiwianRpIjoiZWRhMmEwZjJiMWUyNDlmZiJ9.oUHwfkGOOloG3g-FWddIVzqwVvaguxpTZpVb-ec_SdRkryK_2UTwB_AUzG0g0kD3IqTBi4IEXAqvy_N1LeYjfw",
Die vom Client mittels der eGK bzw. SMC-B zu signierende Challenge besteht aus einem Base64-codierten Challenge-Token.
"user_consent" : { "requested_scopes" : { "e-rezept" : "Zugriff auf die E-Rezept-Funktionalität.", @@ -811,140 +811,140 @@ "family_name" : "Zustimmung zur Verarbeitung des Nachnamens" } } -}

body.challenge.content

JWT

Headers
{
+}

body.challenge.content

JWT

Headers
{
   "alg" : "BP256R1",
   "typ" : "JWT",
   "kid" : "puk_idp_sig"
Identifiziert den hier beschriebenen Schlüssel. Beschreibung siehe https://tools.ietf.org/html/rfc7517#section-4.5
-}

Body

{
-  "iss" : "http://localhost:46453",
+}

Body

{
+  "iss" : "http://localhost:35977",
   "response_type" : "code",
Referenziert den erwarteten Response-Type des Flows. Muss immer 'code' lauten. Damit wird angezeigt das es sich hierbei um einen Authorization Code Flow handelt. Für eine nähere Erläuterung siehe OpenID-Spezifikation.
- "snc" : "9Wy0IiuFzmQxK9U-669maI4hk2URFKc04e6sx56d1bw",
server-nonce. Wird verwendet um noise hinzuzufügen.
+ "snc" : "rMChwmxpfdI3FLMksA7_EeMbcZ8yP1QNp_o85YP2up0",
server-nonce. Wird verwendet um noise hinzuzufügen.
"code_challenge_method" : "S256",
Das Primärsystem generiert einen Code-Verifier und erzeugt darüber einen Hash im Verfahren SHA-256, hier abgekürzt als S256. Teil von PKCE.
"token_type" : "challenge", - "nonce" : "R54h-jfR_GGp6T7VvdPHdJoNP1WC9DXk",
String zu Verhinderung von CSRF-Attacken. Dieser Wert ist optional. Wenn er mitgegeben wird muss der gleiche Wert im abschließend ausgegebenen ID-Token wieder auftauchen. WICHTIG: Darf nicht länger als 512 Zeichen sein.
+ "nonce" : "aU2RjDutS968d2Jj6Duk-_XyH1MVEt-E",
String zu Verhinderung von CSRF-Attacken. Dieser Wert ist optional. Wenn er mitgegeben wird muss der gleiche Wert im abschließend ausgegebenen ID-Token wieder auftauchen. WICHTIG: Darf nicht länger als 512 Zeichen sein.
"client_id" : "eRezeptApp",
Die client_id des Clients. Wird bei der Registrierung vergeben.
"scope" : "openid e-rezept",
Der Scope entspricht dem zwischen E-Rezept-Fachdienst und IDP festgelegten Wert. Mit diesem antwortet der E-Rezept-Fachdienst bei fehlendem ACCESS_TOKEN und http-Statuscode 401.
- "state" : "oRLaQO5P_T1oNxpwDD0e3hUPsvRGnjJl",
Der state der Session. Sollte dem zufällig generierten state-Wert aus der initialen Anfrage entsprechen.
+ "state" : "p_y9jlAfQU7UO_1GrDP9hgjzYzkO_SGK",
Der state der Session. Sollte dem zufällig generierten state-Wert aus der initialen Anfrage entsprechen.
"redirect_uri" : "http://redirect.gematik.de/erezept",
Die für den Client beim Server hinterlegte redirect_uri. Muss dem bei der Registrierung hinterlegten Wert entsprechen.
- "exp" : 1709629153,
Gültigkeit des Tokens
- "iat" : 1709628973,
Zeitpunkt der Ausstellung des Tokens
- "code_challenge" : "ojytDlouoxV6vBRVyoz5iGBLh5emhj018OEACb-5CEU",
Der Hashwert des Code-Verifiers wird zum IDP als Code-Challenge gesendet. Teil von PKCE.
- "jti" : "76a59195f0602a8a"
A unique identifier for the token, which can be used to prevent reuse of the token. Value is a case-sensitive string.
-}

Signature

Was verified using Key puk_idp_sig

Signature

Was verified using Key puk_idp_sig

21 POST http://localhost:40931/sign_response127.0.0.1:-1localhost:46453

21 POST http://localhost:38497/sign_response127.0.0.1:-1localhost:35977

REQ Headers

Content-Type
application/x-www-form-urlencoded
User-Agent
IdP-Client
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Accept-Encoding
gzip
Nicht verpflichtend
Nicht verpflichtend
Content-Length
3978
Host
localhost:46453
Nicht verpflichtend
Nicht verpflichtend
Connection
keep-alive
Nicht verpflichtend
Nicht verpflichtend

REQ Body

namevalue
signed_challenge

JWE

Hierbei handelt es sich um das signierte und verschlüsselte "CHALLENGE_TOKEN".

Headers
{
+Host: localhost:35977
+Connection: keep-alive

REQ Headers

Content-Type
application/x-www-form-urlencoded
User-Agent
IdP-Client
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Accept-Encoding
gzip
Nicht verpflichtend
Nicht verpflichtend
Content-Length
3978
Host
localhost:35977
Nicht verpflichtend
Nicht verpflichtend
Connection
keep-alive
Nicht verpflichtend
Nicht verpflichtend

REQ Body

namevalue
signed_challenge

JWE

Hierbei handelt es sich um das signierte und verschlüsselte "CHALLENGE_TOKEN".

Headers
{
   "alg" : "ECDH-ES",
   "enc" : "A256GCM",
   "cty" : "NJWT",
-  "exp" : 1709629153,
Gültigkeit des Tokens
Dieser EXP-Header muss exakt dem EXP-Wert aus dem Body der Server-Challenge entsprechen.
+ "exp" : 1709639148,
Gültigkeit des Tokens
Dieser EXP-Header muss exakt dem EXP-Wert aus dem Body der Server-Challenge entsprechen.
"epk" : { "kty" : "EC", - "x" : "WW1lP2Dcwn3dpGabtlUxd7HACBcZ0WikZbebxm6er_U",
X-Koordinate des öffentlichen Punkts des Schlüssels
- "y" : "P8azSijgxTpAFcjH5m0LaXFIuE8fGCHVCv07isLfvJc",
Y-Koordinate des öffentlichen Punkts des Schlüssels
+ "x" : "Yft8Q4GcmdEv0Y2jNAUBpItyvSr5rAOwL0mqabPbs4o",
X-Koordinate des öffentlichen Punkts des Schlüssels
+ "y" : "GMAnQ7KCk-QKFiLQiHIZSLiTQOfUjPPpVbq8-5hVLLU",
Y-Koordinate des öffentlichen Punkts des Schlüssels
"crv" : "BP-256" } -}

Body

{
-  "njwt" : "eyJ0eXAiOiJKV1QiLCJjdHkiOiJOSldUIiwieDVjIjpbIk1JSURTekNDQXZLZ0F3SUJBZ0lIQTI1VktBSGN2ekFLQmdncWhrak9QUVFEQWpDQmxqRUxNQWtHQTFVRUJoTUNSRVV4SHpBZEJnTlZCQW9NRm1kbGJXRjBhV3NnUjIxaVNDQk9UMVF0VmtGTVNVUXhSVEJEQmdOVkJBc01QRVZzWld0MGNtOXVhWE5qYUdVZ1IyVnpkVzVrYUdWcGRITnJZWEowWlMxRFFTQmtaWElnVkdWc1pXMWhkR2xyYVc1bWNtRnpkSEoxYTNSMWNqRWZNQjBHQTFVRUF3d1dSMFZOTGtWSFN5MURRVEV3SUZSRlUxUXRUMDVNV1RBZUZ3MHlNakV4TWpRd01EQXdNREJhRncweU5UQTFNVGt5TXpVNU5UbGFNSUhPTVFzd0NRWURWUVFHRXdKRVJURWRNQnNHQTFVRUNnd1VWR1Z6ZENCSFMxWXRVMVpPVDFRdFZrRk1TVVF4RXpBUkJnTlZCQXNNQ2xneE1UQTBNVEUyTnpVeEVqQVFCZ05WQkFzTUNURXdPVFV3TURrMk9URVNNQkFHQTFVRUJBd0pRc08yWkdWbVpXeGtNU0l3SUFZRFZRUXFEQmxFWVhKcGRYTWdUV2xqYUdGbGJDQkNjbWxoYmlCVlltSnZNVDh3UFFZRFZRUURERFpFWVhKcGRYTWdUV2xqYUdGbGJDQkNjbWxoYmlCVlltSnZJRWR5WVdZZ2RtOXVJRUxEdG1SbFptVnNaQ0JVUlZOVUxVOU9URmt3V2pBVUJnY3Foa2pPUFFJQkJna3JKQU1EQWdnQkFRY0RRZ0FFSGxOY296bmpkb2kwWXh2MjdCM3lHYUUvMTl2ak9KSTc4d1QyeURjZWMrbVdBbFJjL2ZFL0J5aFBjL0lPTGtnc2FabWJLdU5RaGhlcEU0UFE0cXRZRGFPQjd6Q0I3REFNQmdOVkhSTUJBZjhFQWpBQU1COEdBMVVkSXdRWU1CYUFGRVN4VEFGWVZCN2MyVGUrNUxJL0ttNmtYSWtkTUIwR0ExVWREZ1FXQkJSS1YzM3hmcWsySHRkOEx6VTR0SlRZWFZMdG1UQTRCZ2dyQmdFRkJRY0JBUVFzTUNvd0tBWUlLd1lCQlFVSE1BR0dIR2gwZEhBNkx5OWxhR05oTG1kbGJXRjBhV3N1WkdVdmIyTnpjQzh3RGdZRFZSMFBBUUgvQkFRREFnZUFNQ0FHQTFVZElBUVpNQmN3Q2dZSUtvSVVBRXdFZ1NNd0NRWUhLb0lVQUV3RVJqQXdCZ1VySkFnREF3UW5NQ1V3SXpBaE1COHdIVEFRREE1V1pYSnphV05vWlhKMFpTOHRjakFKQmdjcWdoUUFUQVF4TUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDSUh1c3dCSUlNVHZXUmYrYjVQdThudDltRVoxK0ZkOG8yQjNlMmF0VjJjNzNBaUJwQU1GdUlZMkpJQ1RpNW4xWWo2cnc5NFpMc2lFZlNKVzdtdTJlVTJMZGF3PT0iXSwiYWxnIjoiQlAyNTZSMSJ9.eyJuand0IjoiZXlKaGJHY2lPaUpDVURJMU5sSXhJaXdpZEhsd0lqb2lTbGRVSWl3aWEybGtJam9pY0hWclgybGtjRjl6YVdjaWZRLmV5SnBjM01pT2lKb2RIUndPaTh2Ykc5allXeG9iM04wT2pRMk5EVXpJaXdpY21WemNHOXVjMlZmZEhsd1pTSTZJbU52WkdVaUxDSnpibU1pT2lJNVYza3dTV2wxUm5wdFVYaExPVlV0TmpZNWJXRkpOR2hyTWxWU1JrdGpNRFJsTm5ONE5UWmtNV0ozSWl3aVkyOWtaVjlqYUdGc2JHVnVaMlZmYldWMGFHOWtJam9pVXpJMU5pSXNJblJ2YTJWdVgzUjVjR1VpT2lKamFHRnNiR1Z1WjJVaUxDSnViMjVqWlNJNklsSTFOR2d0YW1aU1gwZEhjRFpVTjFaMlpGQklaRXB2VGxBeFYwTTVSRmhySWl3aVkyeHBaVzUwWDJsa0lqb2laVkpsZW1Wd2RFRndjQ0lzSW5OamIzQmxJam9pYjNCbGJtbGtJR1V0Y21WNlpYQjBJaXdpYzNSaGRHVWlPaUp2VWt4aFVVODFVRjlVTVc5T2VIQjNSRVF3WlROb1ZWQnpkbEpIYm1wS2JDSXNJbkpsWkdseVpXTjBYM1Z5YVNJNkltaDBkSEE2THk5eVpXUnBjbVZqZEM1blpXMWhkR2xyTG1SbEwyVnlaWHBsY0hRaUxDSmxlSEFpT2pFM01EazJNamt4TlRNc0ltbGhkQ0k2TVRjd09UWXlPRGszTXl3aVkyOWtaVjlqYUdGc2JHVnVaMlVpT2lKdmFubDBSR3h2ZFc5NFZqWjJRbEpXZVc5Nk5XbEhRa3hvTldWdGFHb3dNVGhQUlVGRFlpMDFRMFZWSWl3aWFuUnBJam9pTnpaaE5Ua3hPVFZtTURZd01tRTRZU0o5Lk44MVNqRS1JdzJuSkJrWnRnTnlnQVRzWE5TZl9Vb0lzRjdrWU9oRlN2Z0dIVHpuclpxTE5LRDhwYUFjZm50d21FWC00UmxhZmNEZXJVajdRbGEta2dnIn0.GydtEDQWUZAWrSpyWgrLM-RDjIBj6o3vkTFTYs6-U6kRUqi9xfMpg59nXkoUsIJsixgXhbJHeX9ebddWCPNlUA"
Ein verschachtelt enthaltenes JWT
-}

body.signed_challenge.body.njwt.content

JWT

Headers
{
+}

Body

{
+  "njwt" : "eyJ0eXAiOiJKV1QiLCJjdHkiOiJOSldUIiwieDVjIjpbIk1JSURTekNDQXZLZ0F3SUJBZ0lIQTI1VktBSGN2ekFLQmdncWhrak9QUVFEQWpDQmxqRUxNQWtHQTFVRUJoTUNSRVV4SHpBZEJnTlZCQW9NRm1kbGJXRjBhV3NnUjIxaVNDQk9UMVF0VmtGTVNVUXhSVEJEQmdOVkJBc01QRVZzWld0MGNtOXVhWE5qYUdVZ1IyVnpkVzVrYUdWcGRITnJZWEowWlMxRFFTQmtaWElnVkdWc1pXMWhkR2xyYVc1bWNtRnpkSEoxYTNSMWNqRWZNQjBHQTFVRUF3d1dSMFZOTGtWSFN5MURRVEV3SUZSRlUxUXRUMDVNV1RBZUZ3MHlNakV4TWpRd01EQXdNREJhRncweU5UQTFNVGt5TXpVNU5UbGFNSUhPTVFzd0NRWURWUVFHRXdKRVJURWRNQnNHQTFVRUNnd1VWR1Z6ZENCSFMxWXRVMVpPVDFRdFZrRk1TVVF4RXpBUkJnTlZCQXNNQ2xneE1UQTBNVEUyTnpVeEVqQVFCZ05WQkFzTUNURXdPVFV3TURrMk9URVNNQkFHQTFVRUJBd0pRc08yWkdWbVpXeGtNU0l3SUFZRFZRUXFEQmxFWVhKcGRYTWdUV2xqYUdGbGJDQkNjbWxoYmlCVlltSnZNVDh3UFFZRFZRUURERFpFWVhKcGRYTWdUV2xqYUdGbGJDQkNjbWxoYmlCVlltSnZJRWR5WVdZZ2RtOXVJRUxEdG1SbFptVnNaQ0JVUlZOVUxVOU9URmt3V2pBVUJnY3Foa2pPUFFJQkJna3JKQU1EQWdnQkFRY0RRZ0FFSGxOY296bmpkb2kwWXh2MjdCM3lHYUUvMTl2ak9KSTc4d1QyeURjZWMrbVdBbFJjL2ZFL0J5aFBjL0lPTGtnc2FabWJLdU5RaGhlcEU0UFE0cXRZRGFPQjd6Q0I3REFNQmdOVkhSTUJBZjhFQWpBQU1COEdBMVVkSXdRWU1CYUFGRVN4VEFGWVZCN2MyVGUrNUxJL0ttNmtYSWtkTUIwR0ExVWREZ1FXQkJSS1YzM3hmcWsySHRkOEx6VTR0SlRZWFZMdG1UQTRCZ2dyQmdFRkJRY0JBUVFzTUNvd0tBWUlLd1lCQlFVSE1BR0dIR2gwZEhBNkx5OWxhR05oTG1kbGJXRjBhV3N1WkdVdmIyTnpjQzh3RGdZRFZSMFBBUUgvQkFRREFnZUFNQ0FHQTFVZElBUVpNQmN3Q2dZSUtvSVVBRXdFZ1NNd0NRWUhLb0lVQUV3RVJqQXdCZ1VySkFnREF3UW5NQ1V3SXpBaE1COHdIVEFRREE1V1pYSnphV05vWlhKMFpTOHRjakFKQmdjcWdoUUFUQVF4TUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDSUh1c3dCSUlNVHZXUmYrYjVQdThudDltRVoxK0ZkOG8yQjNlMmF0VjJjNzNBaUJwQU1GdUlZMkpJQ1RpNW4xWWo2cnc5NFpMc2lFZlNKVzdtdTJlVTJMZGF3PT0iXSwiYWxnIjoiQlAyNTZSMSJ9.eyJuand0IjoiZXlKaGJHY2lPaUpDVURJMU5sSXhJaXdpZEhsd0lqb2lTbGRVSWl3aWEybGtJam9pY0hWclgybGtjRjl6YVdjaWZRLmV5SnBjM01pT2lKb2RIUndPaTh2Ykc5allXeG9iM04wT2pNMU9UYzNJaXdpY21WemNHOXVjMlZmZEhsd1pTSTZJbU52WkdVaUxDSnpibU1pT2lKeVRVTm9kMjE0Y0daa1NUTkdURTFyYzBFM1gwVmxUV0pqV2poNVVERlJUbkJmYnpnMVdWQXlkWEF3SWl3aVkyOWtaVjlqYUdGc2JHVnVaMlZmYldWMGFHOWtJam9pVXpJMU5pSXNJblJ2YTJWdVgzUjVjR1VpT2lKamFHRnNiR1Z1WjJVaUxDSnViMjVqWlNJNkltRlZNbEpxUkhWMFV6azJPR1F5U21vMlJIVnJMVjlZZVVneFRWWkZkQzFGSWl3aVkyeHBaVzUwWDJsa0lqb2laVkpsZW1Wd2RFRndjQ0lzSW5OamIzQmxJam9pYjNCbGJtbGtJR1V0Y21WNlpYQjBJaXdpYzNSaGRHVWlPaUp3WDNrNWFteEJabEZWTjFWUFh6Rkhja1JRT1dobmFucFplbXRQWDFOSFN5SXNJbkpsWkdseVpXTjBYM1Z5YVNJNkltaDBkSEE2THk5eVpXUnBjbVZqZEM1blpXMWhkR2xyTG1SbEwyVnlaWHBsY0hRaUxDSmxlSEFpT2pFM01EazJNemt4TkRnc0ltbGhkQ0k2TVRjd09UWXpPRGsyT0N3aVkyOWtaVjlqYUdGc2JHVnVaMlVpT2lJMk1rTlFjM1p6ZFVocVJTMXdVelZMUWt4WVZWRlJUV1ZtZVdSR2VUZ3laV3BZYkRSME1EQnhNV2hySWl3aWFuUnBJam9pWldSaE1tRXdaakppTVdVeU5EbG1aaUo5Lm9VSHdma0dPT2xvRzNnLUZXZGRJVnpxd1Z2YWd1eHBUWnBWYi1lY19TZFJrcnlLXzJVVHdCX0FVekcwZzBrRDNJcVRCaTRJRVhBcXZ5X04xTGVZamZ3In0.GXo5L--y2S3-a1IiOe3yoNmWCoGf_lZt7iCs42gmiYyjmk8n7oV9KSRSzeinFDUHOA9eT9iaTHpTaoX9K1PL-g"
Ein verschachtelt enthaltenes JWT
+}

body.signed_challenge.body.njwt.content

JWT

Headers
{
   "typ" : "JWT",
   "cty" : "NJWT",
   "x5c" : [ "MIIDSzCCAvKgAwIBAgIHA25VKAHcvzAKBggqhkjOPQQDAjCBljELMAkGA1UEBhMCREUxHzAdBgNVBAoMFmdlbWF0aWsgR21iSCBOT1QtVkFMSUQxRTBDBgNVBAsMPEVsZWt0cm9uaXNjaGUgR2VzdW5kaGVpdHNrYXJ0ZS1DQSBkZXIgVGVsZW1hdGlraW5mcmFzdHJ1a3R1cjEfMB0GA1UEAwwWR0VNLkVHSy1DQTEwIFRFU1QtT05MWTAeFw0yMjExMjQwMDAwMDBaFw0yNTA1MTkyMzU5NTlaMIHOMQswCQYDVQQGEwJERTEdMBsGA1UECgwUVGVzdCBHS1YtU1ZOT1QtVkFMSUQxEzARBgNVBAsMClgxMTA0MTE2NzUxEjAQBgNVBAsMCTEwOTUwMDk2OTESMBAGA1UEBAwJQsO2ZGVmZWxkMSIwIAYDVQQqDBlEYXJpdXMgTWljaGFlbCBCcmlhbiBVYmJvMT8wPQYDVQQDDDZEYXJpdXMgTWljaGFlbCBCcmlhbiBVYmJvIEdyYWYgdm9uIELDtmRlZmVsZCBURVNULU9OTFkwWjAUBgcqhkjOPQIBBgkrJAMDAggBAQcDQgAEHlNcoznjdoi0Yxv27B3yGaE/19vjOJI78wT2yDcec+mWAlRc/fE/ByhPc/IOLkgsaZmbKuNQhhepE4PQ4qtYDaOB7zCB7DAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFESxTAFYVB7c2Te+5LI/Km6kXIkdMB0GA1UdDgQWBBRKV33xfqk2Htd8LzU4tJTYXVLtmTA4BggrBgEFBQcBAQQsMCowKAYIKwYBBQUHMAGGHGh0dHA6Ly9laGNhLmdlbWF0aWsuZGUvb2NzcC8wDgYDVR0PAQH/BAQDAgeAMCAGA1UdIAQZMBcwCgYIKoIUAEwEgSMwCQYHKoIUAEwERjAwBgUrJAgDAwQnMCUwIzAhMB8wHTAQDA5WZXJzaWNoZXJ0ZS8tcjAJBgcqghQATAQxMAoGCCqGSM49BAMCA0cAMEQCIHuswBIIMTvWRf+b5Pu8nt9mEZ1+Fd8o2B3e2atV2c73AiBpAMFuIY2JICTi5n1Yj6rw94ZLsiEfSJW7mu2eU2Ldaw=="
Enthält das verwendete Signer-Zertifikat als Base64 ASN.1 DER-Encoding. Hier kommt ausnahmsweise NICHT URL-safes Base64-Encoding zum Einsatz!
], "alg" : "BP256R1" -}

body.signed_challenge.body.njwt.content.header.x5c.0.content

X509 Certificate

Subject: C=DE,O=Test GKV-SVNOT-VALID,OU=X110411675,OU=109500969,SURNAME=Bödefeld,GIVENNAME=Darius Michael Brian Ubbo,CN=Darius Michael Brian Ubbo Graf von Bödefeld TEST-ONLY

Issuer: C=DE,O=gematik GmbH NOT-VALID,OU=Elektronische Gesundheitskarte-CA der Telematikinfrastruktur,CN=GEM.EGK-CA10 TEST-ONLY

Serialnumber: 965736952618175

Valid From: 2022-11-24T00:00Z[UTC]

Valid Until: 2025-05-19T23:59:59Z[UTC]


Body

{
-  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjQ2NDUzIiwicmVzcG9uc2VfdHlwZSI6ImNvZGUiLCJzbmMiOiI5V3kwSWl1RnptUXhLOVUtNjY5bWFJNGhrMlVSRktjMDRlNnN4NTZkMWJ3IiwiY29kZV9jaGFsbGVuZ2VfbWV0aG9kIjoiUzI1NiIsInRva2VuX3R5cGUiOiJjaGFsbGVuZ2UiLCJub25jZSI6IlI1NGgtamZSX0dHcDZUN1Z2ZFBIZEpvTlAxV0M5RFhrIiwiY2xpZW50X2lkIjoiZVJlemVwdEFwcCIsInNjb3BlIjoib3BlbmlkIGUtcmV6ZXB0Iiwic3RhdGUiOiJvUkxhUU81UF9UMW9OeHB3REQwZTNoVVBzdlJHbmpKbCIsInJlZGlyZWN0X3VyaSI6Imh0dHA6Ly9yZWRpcmVjdC5nZW1hdGlrLmRlL2VyZXplcHQiLCJleHAiOjE3MDk2MjkxNTMsImlhdCI6MTcwOTYyODk3MywiY29kZV9jaGFsbGVuZ2UiOiJvanl0RGxvdW94VjZ2QlJWeW96NWlHQkxoNWVtaGowMThPRUFDYi01Q0VVIiwianRpIjoiNzZhNTkxOTVmMDYwMmE4YSJ9.N81SjE-Iw2nJBkZtgNygATsXNSf_UoIsF7kYOhFSvgGHTznrZqLNKD8paAcfntwmEX-4RlafcDerUj7Qla-kgg"
Ein verschachtelt enthaltenes JWT
-}

body.signed_challenge.body.njwt.content.body.njwt.content

JWT

Headers
{
+}

body.signed_challenge.body.njwt.content.header.x5c.0.content

X509 Certificate

Subject: C=DE,O=Test GKV-SVNOT-VALID,OU=X110411675,OU=109500969,SURNAME=Bödefeld,GIVENNAME=Darius Michael Brian Ubbo,CN=Darius Michael Brian Ubbo Graf von Bödefeld TEST-ONLY

Issuer: C=DE,O=gematik GmbH NOT-VALID,OU=Elektronische Gesundheitskarte-CA der Telematikinfrastruktur,CN=GEM.EGK-CA10 TEST-ONLY

Serialnumber: 965736952618175

Valid From: 2022-11-24T00:00Z[UTC]

Valid Until: 2025-05-19T23:59:59Z[UTC]


Body

{
+  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjM1OTc3IiwicmVzcG9uc2VfdHlwZSI6ImNvZGUiLCJzbmMiOiJyTUNod214cGZkSTNGTE1rc0E3X0VlTWJjWjh5UDFRTnBfbzg1WVAydXAwIiwiY29kZV9jaGFsbGVuZ2VfbWV0aG9kIjoiUzI1NiIsInRva2VuX3R5cGUiOiJjaGFsbGVuZ2UiLCJub25jZSI6ImFVMlJqRHV0Uzk2OGQySmo2RHVrLV9YeUgxTVZFdC1FIiwiY2xpZW50X2lkIjoiZVJlemVwdEFwcCIsInNjb3BlIjoib3BlbmlkIGUtcmV6ZXB0Iiwic3RhdGUiOiJwX3k5amxBZlFVN1VPXzFHckRQOWhnanpZemtPX1NHSyIsInJlZGlyZWN0X3VyaSI6Imh0dHA6Ly9yZWRpcmVjdC5nZW1hdGlrLmRlL2VyZXplcHQiLCJleHAiOjE3MDk2MzkxNDgsImlhdCI6MTcwOTYzODk2OCwiY29kZV9jaGFsbGVuZ2UiOiI2MkNQc3ZzdUhqRS1wUzVLQkxYVVFRTWVmeWRGeTgyZWpYbDR0MDBxMWhrIiwianRpIjoiZWRhMmEwZjJiMWUyNDlmZiJ9.oUHwfkGOOloG3g-FWddIVzqwVvaguxpTZpVb-ec_SdRkryK_2UTwB_AUzG0g0kD3IqTBi4IEXAqvy_N1LeYjfw"
Ein verschachtelt enthaltenes JWT
+}

body.signed_challenge.body.njwt.content.body.njwt.content

JWT

Headers
{
   "alg" : "BP256R1",
   "typ" : "JWT",
   "kid" : "puk_idp_sig"
Identifiziert den hier beschriebenen Schlüssel. Beschreibung siehe https://tools.ietf.org/html/rfc7517#section-4.5
-}

Body

{
-  "iss" : "http://localhost:46453",
+}

Body

{
+  "iss" : "http://localhost:35977",
   "response_type" : "code",
Referenziert den erwarteten Response-Type des Flows. Muss immer 'code' lauten. Damit wird angezeigt das es sich hierbei um einen Authorization Code Flow handelt. Für eine nähere Erläuterung siehe OpenID-Spezifikation.
- "snc" : "9Wy0IiuFzmQxK9U-669maI4hk2URFKc04e6sx56d1bw",
server-nonce. Wird verwendet um noise hinzuzufügen.
+ "snc" : "rMChwmxpfdI3FLMksA7_EeMbcZ8yP1QNp_o85YP2up0",
server-nonce. Wird verwendet um noise hinzuzufügen.
"code_challenge_method" : "S256",
Das Primärsystem generiert einen Code-Verifier und erzeugt darüber einen Hash im Verfahren SHA-256, hier abgekürzt als S256. Teil von PKCE.
"token_type" : "challenge", - "nonce" : "R54h-jfR_GGp6T7VvdPHdJoNP1WC9DXk",
String zu Verhinderung von CSRF-Attacken. Dieser Wert ist optional. Wenn er mitgegeben wird muss der gleiche Wert im abschließend ausgegebenen ID-Token wieder auftauchen. WICHTIG: Darf nicht länger als 512 Zeichen sein.
+ "nonce" : "aU2RjDutS968d2Jj6Duk-_XyH1MVEt-E",
String zu Verhinderung von CSRF-Attacken. Dieser Wert ist optional. Wenn er mitgegeben wird muss der gleiche Wert im abschließend ausgegebenen ID-Token wieder auftauchen. WICHTIG: Darf nicht länger als 512 Zeichen sein.
"client_id" : "eRezeptApp",
Die client_id des Clients. Wird bei der Registrierung vergeben.
"scope" : "openid e-rezept",
Der Scope entspricht dem zwischen E-Rezept-Fachdienst und IDP festgelegten Wert. Mit diesem antwortet der E-Rezept-Fachdienst bei fehlendem ACCESS_TOKEN und http-Statuscode 401.
- "state" : "oRLaQO5P_T1oNxpwDD0e3hUPsvRGnjJl",
Der state der Session. Sollte dem zufällig generierten state-Wert aus der initialen Anfrage entsprechen.
+ "state" : "p_y9jlAfQU7UO_1GrDP9hgjzYzkO_SGK",
Der state der Session. Sollte dem zufällig generierten state-Wert aus der initialen Anfrage entsprechen.
"redirect_uri" : "http://redirect.gematik.de/erezept",
Die für den Client beim Server hinterlegte redirect_uri. Muss dem bei der Registrierung hinterlegten Wert entsprechen.
- "exp" : 1709629153,
Gültigkeit des Tokens
- "iat" : 1709628973,
Zeitpunkt der Ausstellung des Tokens
- "code_challenge" : "ojytDlouoxV6vBRVyoz5iGBLh5emhj018OEACb-5CEU",
Der Hashwert des Code-Verifiers wird zum IDP als Code-Challenge gesendet. Teil von PKCE.
- "jti" : "76a59195f0602a8a"
A unique identifier for the token, which can be used to prevent reuse of the token. Value is a case-sensitive string.
-}

Signature

Was verified using Key puk_idp_sig

Signature

Was verified using Key 965736952618175

Encryption info

Was decrypted using Key prk_idp_enc

Hierbei handelt es sich um das signierte und verschlüsselte "CHALLENGE_TOKEN".

Signature

Was verified using Key puk_idp_sig

Signature

Was verified using Key 965736952618175

Encryption info

Was decrypted using Key prk_idp_enc

Hierbei handelt es sich um das signierte und verschlüsselte "CHALLENGE_TOKEN".

22302localhost:46453127.0.0.1:-1

22302localhost:35977127.0.0.1:-1

RES Headers

Keep-Alive
timeout=60
Cache-Control
no-store
Version
27.0.0
Pragma
no-cache
Content-Length
0
Date
Tue, 05 Mar 2024 08:56:14 GMT
Zeitpunkt der Antwort.
Zeitpunkt der Antwort.
Location
http://redirect.gematik.de/erezept?
Optional[code]=<Authorization Code in Base64-URL-Safe Encoding. Wird unten detaillierter aufgeführt>
Der Authorization-Code, so wie er vom Server in der vorigen Antwort auf POST /sign_response zurück gegeben wurde
&Optional[ssotoken]=<SSO-Token in Base64-URL-Safe Encoding. Wird unten detaillierter aufgeführt>
Der SSO-Token. Mit diesem kann der Client sich wiederholt einloggen ohne erneut den Besitz der Karte durch unterschreiben einer Challenge beweisen zu müssen. Er ist vom IDP für den IDP verschlüsselt und dementsprechend vom Client nicht weiter zu verarbeiten.
&state=oRLaQO5P_T1oNxpwDD0e3hUPsvRGnjJl
Der state der Session. Sollte dem zufällig generierten state-Wert aus der initialen Anfrage entsprechen.

header.Location.code.value

JWE

Headers
{
+Date: Tue, 05 Mar 2024 11:42:50 GMT
+Location: http://redirect.gematik.de/erezept?code=eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIiwiY3R5IjoiTkpXVCIsImV4cCI6MTcwOTYzOTAzMH0..1MhNq0YQ2UQVCAp4.NtwgHeXzj8rzYN8Y7Ad466Hwz12WV8nObu3kJEyeZmqOyg1noX8LettUEcVhGgusjA0lUEDlVJpMHnBvAkTQjKnN6TRwQNYP093-fzLiThiPXonaEG7J_8Rjcq1N4TMjsEsQstA3gZdUGxPOxRm1kjpBWdEQEfFCMY4MRVvh6JRmA0sHHQdqTwImgF-rSIEopGmYM6s2G0I37fKHU9Dh41tzN0Nz9J_1hMyqDLoTlO8Yz1Uax0ilhp04LJOTqJPmrnA3ip_KCPRdRuPdm7TPej-_NTMUqzkniSptPZJy0bw_2855XP-0XXysfkwBqeS0geXTboBgXiG_hFs6y7VJdTaNxiyrOuWcEXNPPpexfcSjJlvcX4qZCqRJiKl003xiFHihgCut_7qa5OHKP7wJbN0e15YsM-a3um7ZBJy77QZvmLRnpc5x56BvrvFlzCqTP_iSWJ6hMMdL-d7dFXiXNjlY2tFweQ27MEBJdAfpQOlk4hqGzua7e32MDEL0NACdMUIutAg5ufZ9RlXjaKxABl_92maPHyELbQYN2UFqefjkTm4EDM8dKKaF8GqBI95fBn9jeWe-p6LgU49O88ZuGTtJynF1WCZmYq4w2Fe9KowZNYErg4noWi4QkQ0HWFVYmK9z7BaKOqwS-mLAmbE_39gdEMiUfqYAqXPC23aqO2_s0nX4JqTD7UyoqQ-zFs0f5L0pK7SiUXTuFij8ooKziIqDsy5ovZm8tcDVFsyz-WvAqDM5qxKPy51IDXN5C4LwctwHBsGkZxR2Cebg64qt7yM3o_UfGEAkifJSQPvW3Cx0Ch1M7nquxr319slbUQVdyQ_83oYZOG9DZA6EZN_-gmG6K4SxPcj8PF8W7XXOtsAftny8MYZdzDMmrx6S5O0tuJLyH4hCvT0k0EQCT4xW_exWdyFEaWprxUOGOlpP2xTlIUy4E_sE4YGDJN_7EALkVUo34UglDKquOIND-m5wAFe-REEK-7aospiX-4IV0XRETaqo3DYPJt_FwC0q0BpVfnDEPKyvqfQtK8mdxhnC7n1DWz8Qca3LuAUq0prHq4fRxjOgpP0SjwkbvQKMSUXJ0Ml5kayigIBx8nDA2yU6BZTNaIRmXc1UYA6hdjp5OTZ6NUwVv_ye6kD6zQUV-ybhhAt-G-iXqHsWGT9y7dgN87L5clX39uXnI2l-OQh7Lse3fa-D_6gPKKXZe8BISVpeEYHg_rCE2aQIqxVnGJI7iFQsRB1J5zlfbAvdf48S2ERGVJZp4PDqmk1IjH8DXss-jGtoXTeYJCWsTTDLQOdK3cH42b9VvSwLLXKph2PyjHzb7dUnOTjV5dV6kQFEChT90oo9Bdh-klSzfA1qHGNYEoEJLkgO-JNcoENkBLHRFuj0r_-QUBwg58KsMXBR7dX8oNIyfcD7omar.GZbD8IMy6lX4PBOhsXwa2g&ssotoken=eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIiwiY3R5IjoiTkpXVCIsImV4cCI6MTcwOTY4MjE3MH0..lxrGp6dXSPFkYL0b.AI4E59X1eF8gyP1XkjKZtzf3PzxhR4D_dqAl0884r2rpOj5U_Ms-opEX2Mep3b17b4nZICVC8k3Pd9HpScQY4uCSySMvWxKF7GVL24b7ouNmPMMfV1jlR_H085jXNab6yac9s_kGcg_ojkBdzG-wu_TtFCKP9xanJsMFO1wcUqWEwwzgnBClLY-AW9Pl4wl6PAslvn8D5YM4Com7Ek4kri9yJKdJoq0weWGCsrEzBFgeKC8nTNcZiT0UMTd6KMx2vAQcGDR3fvkiykiz8L5lN9VX_1BwZwz58Hu4fyujpMYzqdLPoalk5UB15mUhnMdB0Ml3Y9NBM_lDVeRiiWlG8aeZ2Ft4cH1BCcIUbxIQ47Jmzaa-gUpmeeM_sEZsShK9L2iASwpaTKuAPAmhikH7dA0dZ39LG30EKC5r2GOjAUexJ2NGEmXG6UTbKKACIdi7I-rY8KMOdPMGAcQpOKk-UWRLlX3LYAhIYyIg165Gw-TpzKFp9v4ElDH7e1JoPMYcsbQR5lsyvAfTiFDE5vDCtDsEWG6JFcw8g8ql6_XWiQZPshwxjiZfzqXnITGjzxfnm7puM6cJhxvKt18bAE6mtQZEk6LWVc--zkmYj9iiqdRAVSize45xbFtgGJWG73DmlbVAXbhcwsR0t7ewIFJ32yEE2DKfU6zgcsqUGzmFM9havbr8r-GBfxbzsnEMy8H4vzuDmAY9FUZbOo5K5wb9WPqwuFq5nYKyiCDSWi1tADXH_OHt_4m-Y5qVl9gxWX0EbXOBbjTUv4F3s-ILN4dWDrBiPdSp90O7upjh61_KdTMf7Yr8umC6Vwtn-GGzFtr5ym-BMwOVjyz3SpaFK5eufwpANV-VJGJkUHX_F518zcSZogHwlDiT_aeqVKXLgddkmKSaDnmVjZKYG9VZkc7EuFDmqSGAjClWYURdiTrEbLiUbg9LftkRgeZitiPwrtcFW1r8WP-Yy54HmB864bKEKjAEMOnKM1Q7btMOW77NV9NxynGC3DBNZggm5mrK8OTPGqWW0HL2nxKqLVJC1V3fbjnbl2OfMBIghJBzRVueFK4U0OEop6NmYA0lpFA1tpQlTaz7dkjLquPqs8PrRKUO-VxQdkYr37Ab_JXRJgxdCk01l-EgMB59dAuk1aCqRTMnQlUgS8j_aDKEshwm3WSzpaJcznTACKipVeRnfdPwBvtrXKwDqg8mxhEkEJiTOUtmcHCaNjwKxsLl0uLxJNTz9MgrBYFax4vR7qArf3oM3qgE7iwq43rih2LNrnjBZBgF4_TsbLAR7-vPBMHLJrrhhxpsATxB9nzjDDcragv73U5kKDgvZxByiZSGhCdr8VRQMnzXyORJKjECYnhVugitpP1uvd6N2PC1L-x6QSufAXihuKhlNupzVwluHG2jPsdZFzeVttotKe7K_PsrDWFKoh3XIgXjvNR_M1GQ8IpOOgm_u0jg9eM39IbRFaucCX_P804Y0yu6xnWs0TKiEGC3R8E4fSJZ_PzD8EMNWwoZ63_pBGYHxSRf0atxAjP3kdExA8Jtjyv9EypyRpPpn9wMLNmj2zQckdAHt8qWogDP8UO0PlegtiR5oa3KUa2c0UJdUf8C2d1AN2RZS6Af-5Vaa4tw2whEVAum5bTRp_JQAOfLB5-YKiGw638CMLECY_O3WNBYCp5uDs5-7_1zqJkxhC77TD0C7HHX6jee5l_Jfx039qwEUmOOVPzMnYSpR8dAzirO39rhBAzqxpHPDYWBv2BTVHwZKFLS3Hhyxc7ehdS4mj4VI15Qqk9S5pPbIN045VaTHJSC1NpyvrJZzV2lWY-tKwFuR1P2WmFvI7M3OrYE-0PwwhGMjTrcz02pe3DUcihWYVps-MnrfPTrHEeGDdyNnHEf6xY2KZR_MUy2YMrWh4HKTlOmaecwAo7K_mva-nhPPkt_pWB3TFbuhfVFkIKL2W08aoFP4TwgSyusfWEnWK0_Klubq8dsiLODoxGMoVd1js89Cydv98maKLAujl4EwcNNE5Q4wL7YSSl70KpnyqKtcvH5PCrdihxsFL5DJf-me4VWhcQYPb-5pdngjI3PvTSF_rDhk7qWbRx7aN5IinUx1vETC3h_Of9fr-7lcucLbe2SXmdqNXbws4Gjixz1VAMWwjG7E_dyE0K93n3UwtjwD8rhYVBEmiSZW6Lp69NtyF05nGKrz4Tl_htBQsn4NIWtITbDsPz8nQacrdH3T0bAC6ExNOCatdUuIcSx12igmXNtS0n2brm9ajUF0_9s08CX7tsgozBfZUoCwObv47bKmYy207q8bEUWtVTCVknmi50V0bWX0hAqVk89r62hd6hUuGtgKhYjyDCWA5GNdvsVfVjUcxloSfQ9XaEuczJYSkk25Be154ZEQDBbU4v-Lr18SM2rDGDb8er7Fh791LcPDSa0S2yYoWeTCkIrI1wsewyFQqRB-Ff2-I-PG9zp9XTXFIDtY8qf7Z3gPwsUDrqW-GmmrX3WhSGYvlj0kBjPrD4Et4XKkALgCyC084BQvwEtpnvFTZnOixAjgZA1AZI6ZkU9vEaqkS1kJabOxqIR325_p5EAImPnzCD-D-CyJEZe3LGy8jBOAhPdN7dK-VN81DDA2DcEzk_nOaJD2OP7uwq77pUP_oAOBw_MLlWrQJ1wRYNFd49nYTNU-5hSd85pQolQ-Abv7HCvXdXoH_vz--UQ7AhxKU-EWPdipjS91ZYQBg7gmUy8OSkLa4Fx7dvJUZR0kTh5kuSp121l8NLOA3ENMUt8Q5JC6JK8H9Jox8tAq4JqD_RjyNgcoGvXifNzxgeSl2p-_MZc6VOcJP2gD0ttMaHPiGb4b42Zfubqh5CY_xo5aooRPRbwXshREaK1Nch8nCuhNtp3HEKTHZT7Add7dAh5lobqXawJanW_FzO417Rr1g_MWcnrD_SI3J6lCZeUTWkDHhfYFQETNc1LdQkwEToVhmL8nXrTNfgC9S2rRseypk1xwIruQvTYRDlQTgiwQFtd631SNKvpdBnwIZEjt_lVAx_Dm3ZMO4BBbGX-Gn6a624Kj3RyFGU4KERk.fOpZ3SMHXlD5KUBwr3jcSg&state=p_y9jlAfQU7UO_1GrDP9hgjzYzkO_SGK

RES Headers

Keep-Alive
timeout=60
Cache-Control
no-store
Version
27.0.1
Pragma
no-cache
Content-Length
0
Date
Tue, 05 Mar 2024 11:42:50 GMT
Zeitpunkt der Antwort.
Zeitpunkt der Antwort.
Location
http://redirect.gematik.de/erezept?
Optional[code]=<Authorization Code in Base64-URL-Safe Encoding. Wird unten detaillierter aufgeführt>
Der Authorization-Code, so wie er vom Server in der vorigen Antwort auf POST /sign_response zurück gegeben wurde
&Optional[ssotoken]=<SSO-Token in Base64-URL-Safe Encoding. Wird unten detaillierter aufgeführt>
Der SSO-Token. Mit diesem kann der Client sich wiederholt einloggen ohne erneut den Besitz der Karte durch unterschreiben einer Challenge beweisen zu müssen. Er ist vom IDP für den IDP verschlüsselt und dementsprechend vom Client nicht weiter zu verarbeiten.
&state=p_y9jlAfQU7UO_1GrDP9hgjzYzkO_SGK
Der state der Session. Sollte dem zufällig generierten state-Wert aus der initialen Anfrage entsprechen.

header.Location.code.value

JWE

Headers
{
   "alg" : "dir",
   "enc" : "A256GCM",
   "cty" : "NJWT",
-  "exp" : 1709629034
Gültigkeit des Tokens
-}

Body

{
-  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJvcmdhbml6YXRpb25OYW1lIjoiVGVzdCBHS1YtU1ZOT1QtVkFMSUQiLCJwcm9mZXNzaW9uT0lEIjoiMS4yLjI3Ni4wLjc2LjQuNDkiLCJpZE51bW1lciI6IlgxMTA0MTE2NzUiLCJhbXIiOlsibWZhIiwic2MiLCJwaW4iXSwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo0NjQ1MyIsInJlc3BvbnNlX3R5cGUiOiJjb2RlIiwic25jIjoiSl9kVmt1Wl9xYmdvQTBScWRfcjh6bWdjU2N6eV9NamgiLCJjb2RlX2NoYWxsZW5nZV9tZXRob2QiOiJTMjU2IiwiZ2l2ZW5fbmFtZSI6IkRhcml1cyBNaWNoYWVsIEJyaWFuIFViYm8iLCJ0b2tlbl90eXBlIjoiY29kZSIsIm5vbmNlIjoiUjU0aC1qZlJfR0dwNlQ3VnZkUEhkSm9OUDFXQzlEWGsiLCJjbGllbnRfaWQiOiJlUmV6ZXB0QXBwIiwic2NvcGUiOiJvcGVuaWQgZS1yZXplcHQiLCJhdXRoX3RpbWUiOjE3MDk2Mjg5NzQsInJlZGlyZWN0X3VyaSI6Imh0dHA6Ly9yZWRpcmVjdC5nZW1hdGlrLmRlL2VyZXplcHQiLCJzdGF0ZSI6Im9STGFRTzVQX1Qxb054cHdERDBlM2hVUHN2UkduakpsIiwiZXhwIjoxNzA5NjI5MDM0LCJmYW1pbHlfbmFtZSI6IkLDtmRlZmVsZCIsImlhdCI6MTcwOTYyODk3NCwiY29kZV9jaGFsbGVuZ2UiOiJvanl0RGxvdW94VjZ2QlJWeW96NWlHQkxoNWVtaGowMThPRUFDYi01Q0VVIiwianRpIjoiM2MxNDA4NWU1MmE0N2U3MyJ9.BranxwvANjUSPqT8RtntfOSKbhHiFxCCmrapyQdMmpgU0liNYwsXb5BgqrNfItRpTAgBgDIQdh0OYHMt4EMpVg"
Ein verschachtelt enthaltenes JWT
-}

header.Location.code.value.body.njwt.content

JWT

Headers
{
+  "exp" : 1709639030
Gültigkeit des Tokens
+}

Body

{
+  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJvcmdhbml6YXRpb25OYW1lIjoiVGVzdCBHS1YtU1ZOT1QtVkFMSUQiLCJwcm9mZXNzaW9uT0lEIjoiMS4yLjI3Ni4wLjc2LjQuNDkiLCJpZE51bW1lciI6IlgxMTA0MTE2NzUiLCJhbXIiOlsibWZhIiwic2MiLCJwaW4iXSwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDozNTk3NyIsInJlc3BvbnNlX3R5cGUiOiJjb2RlIiwic25jIjoiRjVsbVA2czVIZDBIcEgxMmotcmJaNnd3b2R2RklvbFEiLCJjb2RlX2NoYWxsZW5nZV9tZXRob2QiOiJTMjU2IiwiZ2l2ZW5fbmFtZSI6IkRhcml1cyBNaWNoYWVsIEJyaWFuIFViYm8iLCJ0b2tlbl90eXBlIjoiY29kZSIsIm5vbmNlIjoiYVUyUmpEdXRTOTY4ZDJKajZEdWstX1h5SDFNVkV0LUUiLCJjbGllbnRfaWQiOiJlUmV6ZXB0QXBwIiwic2NvcGUiOiJvcGVuaWQgZS1yZXplcHQiLCJhdXRoX3RpbWUiOjE3MDk2Mzg5NzAsInJlZGlyZWN0X3VyaSI6Imh0dHA6Ly9yZWRpcmVjdC5nZW1hdGlrLmRlL2VyZXplcHQiLCJzdGF0ZSI6InBfeTlqbEFmUVU3VU9fMUdyRFA5aGdqell6a09fU0dLIiwiZXhwIjoxNzA5NjM5MDMwLCJmYW1pbHlfbmFtZSI6IkLDtmRlZmVsZCIsImlhdCI6MTcwOTYzODk3MCwiY29kZV9jaGFsbGVuZ2UiOiI2MkNQc3ZzdUhqRS1wUzVLQkxYVVFRTWVmeWRGeTgyZWpYbDR0MDBxMWhrIiwianRpIjoiNmUyYWU5NWIwMzVjZWZiMyJ9.nvd8ecrs6zLJVbf9nOzexNATfvey_eGpGafHFhU-4ZB6QqHlt6dHraJEcoUJqodTNfp2EGSCM083LXyI0v4V6A"
Ein verschachtelt enthaltenes JWT
+}

header.Location.code.value.body.njwt.content

JWT

Headers
{
   "alg" : "BP256R1",
   "typ" : "JWT",
   "kid" : "puk_idp_sig"
Identifiziert den hier beschriebenen Schlüssel. Beschreibung siehe https://tools.ietf.org/html/rfc7517#section-4.5
-}

Body

{
+}

Body

{
   "organizationName" : "Test GKV-SVNOT-VALID",
   "professionOID" : "1.2.276.0.76.4.49",
   "idNummer" : "X110411675",
   "amr" : [ "mfa", "sc", "pin" ],
-  "iss" : "http://localhost:46453",
+  "iss" : "http://localhost:35977",
   "response_type" : "code",
Referenziert den erwarteten Response-Type des Flows. Muss immer 'code' lauten. Damit wird angezeigt das es sich hierbei um einen Authorization Code Flow handelt. Für eine nähere Erläuterung siehe OpenID-Spezifikation.
- "snc" : "J_dVkuZ_qbgoA0Rqd_r8zmgcSczy_Mjh",
server-nonce. Wird verwendet um noise hinzuzufügen.
+ "snc" : "F5lmP6s5Hd0HpH12j-rbZ6wwodvFIolQ",
server-nonce. Wird verwendet um noise hinzuzufügen.
"code_challenge_method" : "S256",
Das Primärsystem generiert einen Code-Verifier und erzeugt darüber einen Hash im Verfahren SHA-256, hier abgekürzt als S256. Teil von PKCE.
"given_name" : "Darius Michael Brian Ubbo", "token_type" : "code", - "nonce" : "R54h-jfR_GGp6T7VvdPHdJoNP1WC9DXk",
String zu Verhinderung von CSRF-Attacken. Dieser Wert ist optional. Wenn er mitgegeben wird muss der gleiche Wert im abschließend ausgegebenen ID-Token wieder auftauchen. WICHTIG: Darf nicht länger als 512 Zeichen sein.
+ "nonce" : "aU2RjDutS968d2Jj6Duk-_XyH1MVEt-E",
String zu Verhinderung von CSRF-Attacken. Dieser Wert ist optional. Wenn er mitgegeben wird muss der gleiche Wert im abschließend ausgegebenen ID-Token wieder auftauchen. WICHTIG: Darf nicht länger als 512 Zeichen sein.
"client_id" : "eRezeptApp",
Die client_id des Clients. Wird bei der Registrierung vergeben.
"scope" : "openid e-rezept",
Der Scope entspricht dem zwischen E-Rezept-Fachdienst und IDP festgelegten Wert. Mit diesem antwortet der E-Rezept-Fachdienst bei fehlendem ACCESS_TOKEN und http-Statuscode 401.
- "auth_time" : 1709628974,
Timestamp der Authentisierung
+ "auth_time" : 1709638970,
Timestamp der Authentisierung
"redirect_uri" : "http://redirect.gematik.de/erezept",
Die für den Client beim Server hinterlegte redirect_uri. Muss dem bei der Registrierung hinterlegten Wert entsprechen.
- "state" : "oRLaQO5P_T1oNxpwDD0e3hUPsvRGnjJl",
Der state der Session. Sollte dem zufällig generierten state-Wert aus der initialen Anfrage entsprechen.
- "exp" : 1709629034,
Gültigkeit des Tokens
+ "state" : "p_y9jlAfQU7UO_1GrDP9hgjzYzkO_SGK",
Der state der Session. Sollte dem zufällig generierten state-Wert aus der initialen Anfrage entsprechen.
+ "exp" : 1709639030,
Gültigkeit des Tokens
"family_name" : "Bödefeld", - "iat" : 1709628974,
Zeitpunkt der Ausstellung des Tokens
- "code_challenge" : "ojytDlouoxV6vBRVyoz5iGBLh5emhj018OEACb-5CEU",
Der Hashwert des Code-Verifiers wird zum IDP als Code-Challenge gesendet. Teil von PKCE.
- "jti" : "3c14085e52a47e73"
A unique identifier for the token, which can be used to prevent reuse of the token. Value is a case-sensitive string.
-}

Signature

Was verified using Key puk_idp_sig

Encryption info

Was decrypted using Key IDP symmetricEncryptionKey

header.Location.ssotoken.value

JWE

Headers
{
+  "iat" : 1709638970,
Zeitpunkt der Ausstellung des Tokens
+ "code_challenge" : "62CPsvsuHjE-pS5KBLXUQQMefydFy82ejXl4t00q1hk",
Der Hashwert des Code-Verifiers wird zum IDP als Code-Challenge gesendet. Teil von PKCE.
+ "jti" : "6e2ae95b035cefb3"
A unique identifier for the token, which can be used to prevent reuse of the token. Value is a case-sensitive string.
+}

Signature

Was verified using Key puk_idp_sig

Encryption info

Was decrypted using Key IDP symmetricEncryptionKey

header.Location.ssotoken.value

JWE

Headers
{
   "alg" : "dir",
   "enc" : "A256GCM",
   "cty" : "NJWT",
-  "exp" : 1709672174
Gültigkeit des Tokens
-}

Body

{
-  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJvcmdhbml6YXRpb25OYW1lIjoiVGVzdCBHS1YtU1ZOT1QtVkFMSUQiLCJwcm9mZXNzaW9uT0lEIjoiMS4yLjI3Ni4wLjc2LjQuNDkiLCJhdXRoX3RpbWUiOjE3MDk2Mjg5NzQsImFtciI6WyJtZmEiLCJzYyIsInBpbiJdLCJpZE51bW1lciI6IlgxMTA0MTE2NzUiLCJpc3MiOiJodHRwczovL2lkcC5kZXYuZ2VtYXRpay5zb2x1dGlvbnMiLCJjbmYiOnsieDVjIjpbIk1JSURTekNDQXZLZ0F3SUJBZ0lIQTI1VktBSGN2ekFLQmdncWhrak9QUVFEQWpDQmxqRUxNQWtHQTFVRUJoTUNSRVV4SHpBZEJnTlZCQW9NRm1kbGJXRjBhV3NnUjIxaVNDQk9UMVF0VmtGTVNVUXhSVEJEQmdOVkJBc01QRVZzWld0MGNtOXVhWE5qYUdVZ1IyVnpkVzVrYUdWcGRITnJZWEowWlMxRFFTQmtaWElnVkdWc1pXMWhkR2xyYVc1bWNtRnpkSEoxYTNSMWNqRWZNQjBHQTFVRUF3d1dSMFZOTGtWSFN5MURRVEV3SUZSRlUxUXRUMDVNV1RBZUZ3MHlNakV4TWpRd01EQXdNREJhRncweU5UQTFNVGt5TXpVNU5UbGFNSUhPTVFzd0NRWURWUVFHRXdKRVJURWRNQnNHQTFVRUNnd1VWR1Z6ZENCSFMxWXRVMVpPVDFRdFZrRk1TVVF4RXpBUkJnTlZCQXNNQ2xneE1UQTBNVEUyTnpVeEVqQVFCZ05WQkFzTUNURXdPVFV3TURrMk9URVNNQkFHQTFVRUJBd0pRc08yWkdWbVpXeGtNU0l3SUFZRFZRUXFEQmxFWVhKcGRYTWdUV2xqYUdGbGJDQkNjbWxoYmlCVlltSnZNVDh3UFFZRFZRUURERFpFWVhKcGRYTWdUV2xqYUdGbGJDQkNjbWxoYmlCVlltSnZJRWR5WVdZZ2RtOXVJRUxEdG1SbFptVnNaQ0JVUlZOVUxVOU9URmt3V2pBVUJnY3Foa2pPUFFJQkJna3JKQU1EQWdnQkFRY0RRZ0FFSGxOY296bmpkb2kwWXh2MjdCM3lHYUUvMTl2ak9KSTc4d1QyeURjZWMrbVdBbFJjL2ZFL0J5aFBjL0lPTGtnc2FabWJLdU5RaGhlcEU0UFE0cXRZRGFPQjd6Q0I3REFNQmdOVkhSTUJBZjhFQWpBQU1COEdBMVVkSXdRWU1CYUFGRVN4VEFGWVZCN2MyVGUrNUxJL0ttNmtYSWtkTUIwR0ExVWREZ1FXQkJSS1YzM3hmcWsySHRkOEx6VTR0SlRZWFZMdG1UQTRCZ2dyQmdFRkJRY0JBUVFzTUNvd0tBWUlLd1lCQlFVSE1BR0dIR2gwZEhBNkx5OWxhR05oTG1kbGJXRjBhV3N1WkdVdmIyTnpjQzh3RGdZRFZSMFBBUUgvQkFRREFnZUFNQ0FHQTFVZElBUVpNQmN3Q2dZSUtvSVVBRXdFZ1NNd0NRWUhLb0lVQUV3RVJqQXdCZ1VySkFnREF3UW5NQ1V3SXpBaE1COHdIVEFRREE1V1pYSnphV05vWlhKMFpTOHRjakFKQmdjcWdoUUFUQVF4TUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDSUh1c3dCSUlNVHZXUmYrYjVQdThudDltRVoxK0ZkOG8yQjNlMmF0VjJjNzNBaUJwQU1GdUlZMkpJQ1RpNW4xWWo2cnc5NFpMc2lFZlNKVzdtdTJlVTJMZGF3PT0iXSwia2lkIjoiOTY1NzM2OTUyNjE4MTc1Iiwia3R5IjoiRUMiLCJjcnYiOiJCUC0yNTYiLCJ4IjoiSGxOY296bmpkb2kwWXh2MjdCM3lHYUVfMTl2ak9KSTc4d1QyeURjZWMtayIsInkiOiJsZ0pVWFAzeFB3Y29UM1B5RGk1SUxHbVpteXJqVUlZWHFST0QwT0tyV0EwIn0sImdpdmVuX25hbWUiOiJEYXJpdXMgTWljaGFlbCBCcmlhbiBVYmJvIiwiZXhwIjoxNzA5NjcyMTc0LCJpYXQiOjE3MDk2Mjg5NzQsImZhbWlseV9uYW1lIjoiQsO2ZGVmZWxkIn0.mwS7sNZbI-8k4aYtPSnoh61gE3z546UsKXPSMzgDFmWTFuSGeJgAKHCVMIT0YQmO4YFwnVSpP2Z6ZJF_Zk6DLg"
Ein verschachtelt enthaltenes JWT
-}

header.Location.ssotoken.value.body.njwt.content

JWT

Headers
{
+  "exp" : 1709682170
Gültigkeit des Tokens
+}

Body

{
+  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJvcmdhbml6YXRpb25OYW1lIjoiVGVzdCBHS1YtU1ZOT1QtVkFMSUQiLCJwcm9mZXNzaW9uT0lEIjoiMS4yLjI3Ni4wLjc2LjQuNDkiLCJhdXRoX3RpbWUiOjE3MDk2Mzg5NzAsImFtciI6WyJtZmEiLCJzYyIsInBpbiJdLCJpZE51bW1lciI6IlgxMTA0MTE2NzUiLCJpc3MiOiJodHRwczovL2lkcC5kZXYuZ2VtYXRpay5zb2x1dGlvbnMiLCJjbmYiOnsieDVjIjpbIk1JSURTekNDQXZLZ0F3SUJBZ0lIQTI1VktBSGN2ekFLQmdncWhrak9QUVFEQWpDQmxqRUxNQWtHQTFVRUJoTUNSRVV4SHpBZEJnTlZCQW9NRm1kbGJXRjBhV3NnUjIxaVNDQk9UMVF0VmtGTVNVUXhSVEJEQmdOVkJBc01QRVZzWld0MGNtOXVhWE5qYUdVZ1IyVnpkVzVrYUdWcGRITnJZWEowWlMxRFFTQmtaWElnVkdWc1pXMWhkR2xyYVc1bWNtRnpkSEoxYTNSMWNqRWZNQjBHQTFVRUF3d1dSMFZOTGtWSFN5MURRVEV3SUZSRlUxUXRUMDVNV1RBZUZ3MHlNakV4TWpRd01EQXdNREJhRncweU5UQTFNVGt5TXpVNU5UbGFNSUhPTVFzd0NRWURWUVFHRXdKRVJURWRNQnNHQTFVRUNnd1VWR1Z6ZENCSFMxWXRVMVpPVDFRdFZrRk1TVVF4RXpBUkJnTlZCQXNNQ2xneE1UQTBNVEUyTnpVeEVqQVFCZ05WQkFzTUNURXdPVFV3TURrMk9URVNNQkFHQTFVRUJBd0pRc08yWkdWbVpXeGtNU0l3SUFZRFZRUXFEQmxFWVhKcGRYTWdUV2xqYUdGbGJDQkNjbWxoYmlCVlltSnZNVDh3UFFZRFZRUURERFpFWVhKcGRYTWdUV2xqYUdGbGJDQkNjbWxoYmlCVlltSnZJRWR5WVdZZ2RtOXVJRUxEdG1SbFptVnNaQ0JVUlZOVUxVOU9URmt3V2pBVUJnY3Foa2pPUFFJQkJna3JKQU1EQWdnQkFRY0RRZ0FFSGxOY296bmpkb2kwWXh2MjdCM3lHYUUvMTl2ak9KSTc4d1QyeURjZWMrbVdBbFJjL2ZFL0J5aFBjL0lPTGtnc2FabWJLdU5RaGhlcEU0UFE0cXRZRGFPQjd6Q0I3REFNQmdOVkhSTUJBZjhFQWpBQU1COEdBMVVkSXdRWU1CYUFGRVN4VEFGWVZCN2MyVGUrNUxJL0ttNmtYSWtkTUIwR0ExVWREZ1FXQkJSS1YzM3hmcWsySHRkOEx6VTR0SlRZWFZMdG1UQTRCZ2dyQmdFRkJRY0JBUVFzTUNvd0tBWUlLd1lCQlFVSE1BR0dIR2gwZEhBNkx5OWxhR05oTG1kbGJXRjBhV3N1WkdVdmIyTnpjQzh3RGdZRFZSMFBBUUgvQkFRREFnZUFNQ0FHQTFVZElBUVpNQmN3Q2dZSUtvSVVBRXdFZ1NNd0NRWUhLb0lVQUV3RVJqQXdCZ1VySkFnREF3UW5NQ1V3SXpBaE1COHdIVEFRREE1V1pYSnphV05vWlhKMFpTOHRjakFKQmdjcWdoUUFUQVF4TUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDSUh1c3dCSUlNVHZXUmYrYjVQdThudDltRVoxK0ZkOG8yQjNlMmF0VjJjNzNBaUJwQU1GdUlZMkpJQ1RpNW4xWWo2cnc5NFpMc2lFZlNKVzdtdTJlVTJMZGF3PT0iXSwia2lkIjoiOTY1NzM2OTUyNjE4MTc1Iiwia3R5IjoiRUMiLCJjcnYiOiJCUC0yNTYiLCJ4IjoiSGxOY296bmpkb2kwWXh2MjdCM3lHYUVfMTl2ak9KSTc4d1QyeURjZWMtayIsInkiOiJsZ0pVWFAzeFB3Y29UM1B5RGk1SUxHbVpteXJqVUlZWHFST0QwT0tyV0EwIn0sImdpdmVuX25hbWUiOiJEYXJpdXMgTWljaGFlbCBCcmlhbiBVYmJvIiwiZXhwIjoxNzA5NjgyMTcwLCJpYXQiOjE3MDk2Mzg5NzAsImZhbWlseV9uYW1lIjoiQsO2ZGVmZWxkIn0.S18an3rc54jGjzPYp_AFwf42BQsNUblhTKM68RlAmOSgufj59zLWQmtPSnJsNIxSJDMrHLz_ti5vLhxRTADrwg"
Ein verschachtelt enthaltenes JWT
+}

header.Location.ssotoken.value.body.njwt.content

JWT

Headers
{
   "alg" : "BP256R1",
   "typ" : "JWT",
   "kid" : "puk_idp_sig"
Identifiziert den hier beschriebenen Schlüssel. Beschreibung siehe https://tools.ietf.org/html/rfc7517#section-4.5
-}

Body

{
+}

Body

{
   "organizationName" : "Test GKV-SVNOT-VALID",
   "professionOID" : "1.2.276.0.76.4.49",
-  "auth_time" : 1709628974,
Timestamp der Authentisierung
+ "auth_time" : 1709638970,
Timestamp der Authentisierung
"amr" : [ "mfa", "sc", "pin" ], "idNummer" : "X110411675", "iss" : "https://idp.dev.gematik.solutions", @@ -957,103 +957,103 @@ "y" : "lgJUXP3xPwcoT3PyDi5ILGmZmyrjUIYXqROD0OKrWA0"
Y-Koordinate des öffentlichen Punkts des Schlüssels
}, "given_name" : "Darius Michael Brian Ubbo", - "exp" : 1709672174,
Gültigkeit des Tokens
- "iat" : 1709628974,
Zeitpunkt der Ausstellung des Tokens
+ "exp" : 1709682170,
Gültigkeit des Tokens
+ "iat" : 1709638970,
Zeitpunkt der Ausstellung des Tokens
"family_name" : "Bödefeld" -}

header.Location.ssotoken.value.body.njwt.content.body.cnf.x5c.0.content

X509 Certificate

Subject: C=DE,O=Test GKV-SVNOT-VALID,OU=X110411675,OU=109500969,SURNAME=Bödefeld,GIVENNAME=Darius Michael Brian Ubbo,CN=Darius Michael Brian Ubbo Graf von Bödefeld TEST-ONLY

Issuer: C=DE,O=gematik GmbH NOT-VALID,OU=Elektronische Gesundheitskarte-CA der Telematikinfrastruktur,CN=GEM.EGK-CA10 TEST-ONLY

Serialnumber: 965736952618175

Valid From: 2022-11-24T00:00Z[UTC]

Valid Until: 2025-05-19T23:59:59Z[UTC]


Signature

Was verified using Key puk_idp_sig

Encryption info

Was decrypted using Key IDP symmetricEncryptionKey

Empty body

Signature

Was verified using Key puk_idp_sig

Encryption info

Was decrypted using Key IDP symmetricEncryptionKey

Empty body

23 POST http://localhost:40931/token127.0.0.1:-1localhost:46453

23 POST http://localhost:38497/token127.0.0.1:-1localhost:35977

REQ Headers

Content-Type
application/x-www-form-urlencoded
User-Agent
IdP-Client
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Accept
application/json
Accept-Encoding
gzip
Nicht verpflichtend
Nicht verpflichtend
Content-Length
2111
Host
localhost:46453
Nicht verpflichtend
Nicht verpflichtend
Connection
keep-alive
Nicht verpflichtend
Nicht verpflichtend

REQ Body

namevalue
client_id
eRezeptApp
Die client_id des Clients. Wird bei der Registrierung vergeben.
Die client_id des Clients. Wird bei der Registrierung vergeben.
code

JWE

Der Authorization-Code, so wie er vom Server in der vorigen Antwort auf POST /sign_response zurück gegeben wurde

Headers
{
+Host: localhost:35977
+Connection: keep-alive

REQ Headers

Content-Type
application/x-www-form-urlencoded
User-Agent
IdP-Client
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Accept
application/json
Accept-Encoding
gzip
Nicht verpflichtend
Nicht verpflichtend
Content-Length
2111
Host
localhost:35977
Nicht verpflichtend
Nicht verpflichtend
Connection
keep-alive
Nicht verpflichtend
Nicht verpflichtend

REQ Body

namevalue
client_id
eRezeptApp
Die client_id des Clients. Wird bei der Registrierung vergeben.
Die client_id des Clients. Wird bei der Registrierung vergeben.
code

JWE

Der Authorization-Code, so wie er vom Server in der vorigen Antwort auf POST /sign_response zurück gegeben wurde

Headers
{
   "alg" : "dir",
   "enc" : "A256GCM",
   "cty" : "NJWT",
-  "exp" : 1709629034
Gültigkeit des Tokens
-}

Body

{
-  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJvcmdhbml6YXRpb25OYW1lIjoiVGVzdCBHS1YtU1ZOT1QtVkFMSUQiLCJwcm9mZXNzaW9uT0lEIjoiMS4yLjI3Ni4wLjc2LjQuNDkiLCJpZE51bW1lciI6IlgxMTA0MTE2NzUiLCJhbXIiOlsibWZhIiwic2MiLCJwaW4iXSwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo0NjQ1MyIsInJlc3BvbnNlX3R5cGUiOiJjb2RlIiwic25jIjoiSl9kVmt1Wl9xYmdvQTBScWRfcjh6bWdjU2N6eV9NamgiLCJjb2RlX2NoYWxsZW5nZV9tZXRob2QiOiJTMjU2IiwiZ2l2ZW5fbmFtZSI6IkRhcml1cyBNaWNoYWVsIEJyaWFuIFViYm8iLCJ0b2tlbl90eXBlIjoiY29kZSIsIm5vbmNlIjoiUjU0aC1qZlJfR0dwNlQ3VnZkUEhkSm9OUDFXQzlEWGsiLCJjbGllbnRfaWQiOiJlUmV6ZXB0QXBwIiwic2NvcGUiOiJvcGVuaWQgZS1yZXplcHQiLCJhdXRoX3RpbWUiOjE3MDk2Mjg5NzQsInJlZGlyZWN0X3VyaSI6Imh0dHA6Ly9yZWRpcmVjdC5nZW1hdGlrLmRlL2VyZXplcHQiLCJzdGF0ZSI6Im9STGFRTzVQX1Qxb054cHdERDBlM2hVUHN2UkduakpsIiwiZXhwIjoxNzA5NjI5MDM0LCJmYW1pbHlfbmFtZSI6IkLDtmRlZmVsZCIsImlhdCI6MTcwOTYyODk3NCwiY29kZV9jaGFsbGVuZ2UiOiJvanl0RGxvdW94VjZ2QlJWeW96NWlHQkxoNWVtaGowMThPRUFDYi01Q0VVIiwianRpIjoiM2MxNDA4NWU1MmE0N2U3MyJ9.BranxwvANjUSPqT8RtntfOSKbhHiFxCCmrapyQdMmpgU0liNYwsXb5BgqrNfItRpTAgBgDIQdh0OYHMt4EMpVg"
Ein verschachtelt enthaltenes JWT
-}

body.code.body.njwt.content

JWT

Headers
{
+  "exp" : 1709639030
Gültigkeit des Tokens
+}

Body

{
+  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJvcmdhbml6YXRpb25OYW1lIjoiVGVzdCBHS1YtU1ZOT1QtVkFMSUQiLCJwcm9mZXNzaW9uT0lEIjoiMS4yLjI3Ni4wLjc2LjQuNDkiLCJpZE51bW1lciI6IlgxMTA0MTE2NzUiLCJhbXIiOlsibWZhIiwic2MiLCJwaW4iXSwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDozNTk3NyIsInJlc3BvbnNlX3R5cGUiOiJjb2RlIiwic25jIjoiRjVsbVA2czVIZDBIcEgxMmotcmJaNnd3b2R2RklvbFEiLCJjb2RlX2NoYWxsZW5nZV9tZXRob2QiOiJTMjU2IiwiZ2l2ZW5fbmFtZSI6IkRhcml1cyBNaWNoYWVsIEJyaWFuIFViYm8iLCJ0b2tlbl90eXBlIjoiY29kZSIsIm5vbmNlIjoiYVUyUmpEdXRTOTY4ZDJKajZEdWstX1h5SDFNVkV0LUUiLCJjbGllbnRfaWQiOiJlUmV6ZXB0QXBwIiwic2NvcGUiOiJvcGVuaWQgZS1yZXplcHQiLCJhdXRoX3RpbWUiOjE3MDk2Mzg5NzAsInJlZGlyZWN0X3VyaSI6Imh0dHA6Ly9yZWRpcmVjdC5nZW1hdGlrLmRlL2VyZXplcHQiLCJzdGF0ZSI6InBfeTlqbEFmUVU3VU9fMUdyRFA5aGdqell6a09fU0dLIiwiZXhwIjoxNzA5NjM5MDMwLCJmYW1pbHlfbmFtZSI6IkLDtmRlZmVsZCIsImlhdCI6MTcwOTYzODk3MCwiY29kZV9jaGFsbGVuZ2UiOiI2MkNQc3ZzdUhqRS1wUzVLQkxYVVFRTWVmeWRGeTgyZWpYbDR0MDBxMWhrIiwianRpIjoiNmUyYWU5NWIwMzVjZWZiMyJ9.nvd8ecrs6zLJVbf9nOzexNATfvey_eGpGafHFhU-4ZB6QqHlt6dHraJEcoUJqodTNfp2EGSCM083LXyI0v4V6A"
Ein verschachtelt enthaltenes JWT
+}

body.code.body.njwt.content

JWT

Headers
{
   "alg" : "BP256R1",
   "typ" : "JWT",
   "kid" : "puk_idp_sig"
Identifiziert den hier beschriebenen Schlüssel. Beschreibung siehe https://tools.ietf.org/html/rfc7517#section-4.5
-}

Body

{
+}

Body

{
   "organizationName" : "Test GKV-SVNOT-VALID",
   "professionOID" : "1.2.276.0.76.4.49",
   "idNummer" : "X110411675",
   "amr" : [ "mfa", "sc", "pin" ],
-  "iss" : "http://localhost:46453",
+  "iss" : "http://localhost:35977",
   "response_type" : "code",
Referenziert den erwarteten Response-Type des Flows. Muss immer 'code' lauten. Damit wird angezeigt das es sich hierbei um einen Authorization Code Flow handelt. Für eine nähere Erläuterung siehe OpenID-Spezifikation.
- "snc" : "J_dVkuZ_qbgoA0Rqd_r8zmgcSczy_Mjh",
server-nonce. Wird verwendet um noise hinzuzufügen.
+ "snc" : "F5lmP6s5Hd0HpH12j-rbZ6wwodvFIolQ",
server-nonce. Wird verwendet um noise hinzuzufügen.
"code_challenge_method" : "S256",
Das Primärsystem generiert einen Code-Verifier und erzeugt darüber einen Hash im Verfahren SHA-256, hier abgekürzt als S256. Teil von PKCE.
"given_name" : "Darius Michael Brian Ubbo", "token_type" : "code", - "nonce" : "R54h-jfR_GGp6T7VvdPHdJoNP1WC9DXk",
String zu Verhinderung von CSRF-Attacken. Dieser Wert ist optional. Wenn er mitgegeben wird muss der gleiche Wert im abschließend ausgegebenen ID-Token wieder auftauchen. WICHTIG: Darf nicht länger als 512 Zeichen sein.
+ "nonce" : "aU2RjDutS968d2Jj6Duk-_XyH1MVEt-E",
String zu Verhinderung von CSRF-Attacken. Dieser Wert ist optional. Wenn er mitgegeben wird muss der gleiche Wert im abschließend ausgegebenen ID-Token wieder auftauchen. WICHTIG: Darf nicht länger als 512 Zeichen sein.
"client_id" : "eRezeptApp",
Die client_id des Clients. Wird bei der Registrierung vergeben.
"scope" : "openid e-rezept",
Der Scope entspricht dem zwischen E-Rezept-Fachdienst und IDP festgelegten Wert. Mit diesem antwortet der E-Rezept-Fachdienst bei fehlendem ACCESS_TOKEN und http-Statuscode 401.
- "auth_time" : 1709628974,
Timestamp der Authentisierung
+ "auth_time" : 1709638970,
Timestamp der Authentisierung
"redirect_uri" : "http://redirect.gematik.de/erezept",
Die für den Client beim Server hinterlegte redirect_uri. Muss dem bei der Registrierung hinterlegten Wert entsprechen.
- "state" : "oRLaQO5P_T1oNxpwDD0e3hUPsvRGnjJl",
Der state der Session. Sollte dem zufällig generierten state-Wert aus der initialen Anfrage entsprechen.
- "exp" : 1709629034,
Gültigkeit des Tokens
+ "state" : "p_y9jlAfQU7UO_1GrDP9hgjzYzkO_SGK",
Der state der Session. Sollte dem zufällig generierten state-Wert aus der initialen Anfrage entsprechen.
+ "exp" : 1709639030,
Gültigkeit des Tokens
"family_name" : "Bödefeld", - "iat" : 1709628974,
Zeitpunkt der Ausstellung des Tokens
- "code_challenge" : "ojytDlouoxV6vBRVyoz5iGBLh5emhj018OEACb-5CEU",
Der Hashwert des Code-Verifiers wird zum IDP als Code-Challenge gesendet. Teil von PKCE.
- "jti" : "3c14085e52a47e73"
A unique identifier for the token, which can be used to prevent reuse of the token. Value is a case-sensitive string.
-}

Signature

Was verified using Key puk_idp_sig

Encryption info

Was decrypted using Key IDP symmetricEncryptionKey

Der Authorization-Code, so wie er vom Server in der vorigen Antwort auf POST /sign_response zurück gegeben wurde
grant_type
authorization_code
Muss exakt diesen Wert enthalten, da es sich um eine Implementierung des OIDC Authorization Code Flows handelt.
Muss exakt diesen Wert enthalten, da es sich um eine Implementierung des OIDC Authorization Code Flows handelt.
key_verifier

JWE

JWE, welches den code_verifier sowie den token_key enthält. Dies ist ein AES-Schlüssel welcher vom Server zur Verschlüsselung der Token-Rückgaben verwendet wird.

Headers
Dieser Token wird für den Server mit dem puk_idp_enc verschlüsselt.
{
+  "iat" : 1709638970,
Zeitpunkt der Ausstellung des Tokens
+ "code_challenge" : "62CPsvsuHjE-pS5KBLXUQQMefydFy82ejXl4t00q1hk",
Der Hashwert des Code-Verifiers wird zum IDP als Code-Challenge gesendet. Teil von PKCE.
+ "jti" : "6e2ae95b035cefb3"
A unique identifier for the token, which can be used to prevent reuse of the token. Value is a case-sensitive string.
+}

Signature

Was verified using Key puk_idp_sig

Encryption info

Was decrypted using Key IDP symmetricEncryptionKey

Der Authorization-Code, so wie er vom Server in der vorigen Antwort auf POST /sign_response zurück gegeben wurde
grant_type
authorization_code
Muss exakt diesen Wert enthalten, da es sich um eine Implementierung des OIDC Authorization Code Flows handelt.
Muss exakt diesen Wert enthalten, da es sich um eine Implementierung des OIDC Authorization Code Flows handelt.
key_verifier

JWE

JWE, welches den code_verifier sowie den token_key enthält. Dies ist ein AES-Schlüssel welcher vom Server zur Verschlüsselung der Token-Rückgaben verwendet wird.

Headers
Dieser Token wird für den Server mit dem puk_idp_enc verschlüsselt.
{
   
Dieser Token wird für den Server mit dem puk_idp_enc verschlüsselt.
"alg" : "ECDH-ES", "enc" : "A256GCM", "cty" : "JSON", "epk" : { "kty" : "EC", - "x" : "QHD9lb9m5N4WmivViWWlty_e2SYTxupr3IapZUa0Cbk",
X-Koordinate des öffentlichen Punkts des Schlüssels
- "y" : "PZXlCCoymCdEJ8oMV_ihXDdWKkWawOHqUNE1DThRWjc",
Y-Koordinate des öffentlichen Punkts des Schlüssels
+ "x" : "RGqlI6VVtVOeu_Lewrr75NBgmpqsSSkgtZxYZapVQds",
X-Koordinate des öffentlichen Punkts des Schlüssels
+ "y" : "A2FMa-fOc4DYSD3AL7bA1IfK-MdLr8cwJ5Nci6ArGQ8",
Y-Koordinate des öffentlichen Punkts des Schlüssels
"crv" : "BP-256" } -}

Body
Enthalten ist der code_verifier (der zu dem code_challenge-Wert aus der initialen Anfrage passen muss) sowie der token_key. Dies ist ein vom Client zufällig gewürfelter AES256-Schlüssel in Base64-URL-Encoding. Der Server benutzt diesen Schlüssel zur Chiffrierung der beiden Token-Rückgaben in der Response (ID- und Access-Token).

{
+}

Body
Enthalten ist der code_verifier (der zu dem code_challenge-Wert aus der initialen Anfrage passen muss) sowie der token_key. Dies ist ein vom Client zufällig gewürfelter AES256-Schlüssel in Base64-URL-Encoding. Der Server benutzt diesen Schlüssel zur Chiffrierung der beiden Token-Rückgaben in der Response (ID- und Access-Token).

{
   
Enthalten ist der code_verifier (der zu dem code_challenge-Wert aus der initialen Anfrage passen muss) sowie der token_key. Dies ist ein vom Client zufällig gewürfelter AES256-Schlüssel in Base64-URL-Encoding. Der Server benutzt diesen Schlüssel zur Chiffrierung der beiden Token-Rückgaben in der Response (ID- und Access-Token).
- "token_key" : "XWa6ViRcN59QBhfwWKRoWljt7k2Y9OsSrw4y2VbPkAQ", - "code_verifier" : "mpb35L-AQ2334nCG-xKdjO_iVWMUm3P-HTHPSK5lZ1o" -}

Encryption info

Was decrypted using Key prk_idp_enc

JWE, welches den code_verifier sowie den token_key enthält. Dies ist ein AES-Schlüssel welcher vom Server zur Verschlüsselung der Token-Rückgaben verwendet wird.
redirect_uri
http%3A%2F%2Fredirect.gematik.de%2Ferezept
Die für den Client beim Server hinterlegte redirect_uri. Muss dem bei der Registrierung hinterlegten Wert entsprechen.
Die für den Client beim Server hinterlegte redirect_uri. Muss dem bei der Registrierung hinterlegten Wert entsprechen.

Encryption info

Was decrypted using Key prk_idp_enc

JWE, welches den code_verifier sowie den token_key enthält. Dies ist ein AES-Schlüssel welcher vom Server zur Verschlüsselung der Token-Rückgaben verwendet wird.
redirect_uri
http%3A%2F%2Fredirect.gematik.de%2Ferezept
Die für den Client beim Server hinterlegte redirect_uri. Muss dem bei der Registrierung hinterlegten Wert entsprechen.
Die für den Client beim Server hinterlegte redirect_uri. Muss dem bei der Registrierung hinterlegten Wert entsprechen.

24200localhost:46453127.0.0.1:-1

24200localhost:35977127.0.0.1:-1

RES Headers

Keep-Alive
timeout=60
Cache-Control
no-store
Version
27.0.0
Pragma
no-cache
Date
Tue, 05 Mar 2024 08:56:23 GMT
Zeitpunkt der Antwort.
Zeitpunkt der Antwort.
Content-Type
application/json

RES Body

{
+Date: Tue, 05 Mar 2024 11:42:58 GMT
+Content-Type: application/json

RES Headers

Keep-Alive
timeout=60
Cache-Control
no-store
Version
27.0.1
Pragma
no-cache
Date
Tue, 05 Mar 2024 11:42:58 GMT
Zeitpunkt der Antwort.
Zeitpunkt der Antwort.
Content-Type
application/json

RES Body

{
   "expires_in" : 300,
   "token_type" : "Bearer",
-  "id_token" : "eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIiwiY3R5IjoiTkpXVCIsImV4cCI6MTcwOTYyOTI4M30..WiUTtEj18rPW_8ED.mifmaUlf4hJYuYj-91s2RA-iRl8GGrA9s_2AaipqroyvKHTpEQpxQfnlr-QJ9oiYep2-YU8g3e-imlrxm53xS_9RP8yGwEkyda4jrPzsz0ttnOp3yjj20SYowGouPk0PWYzSzDSPDTWcql9QcMLOxqVTlIoHlAxXPfyzrTPITeOgkhSOTwOxYTvGDssP9sL2r-ZOB_WTue_aG37VmT6bUKQiPKKzdfYW0P42cWPTAavVu445Y7JcuJpjrb5cZzqm9TlpoO5s5Uk5awxQmyfaHlY5iF1KD9otUpIPh_4BxXvc6qnDtBduxVHrZYFEhdi7jEMjjHSHbxndq0BghxySt0qcx3Pl3FLa1m9xn5-kKBjCCrqR7W4oMjKMAj0ciPUfr11MDyXsODkjRagswJdlY8UOl_jjIl3g4jIlIPWoQFunX24A6bZ3kV4T4e5-Kl7jTH3BO2-j2exKlTe50ifYCqDC2ZbmYlkOBsVoRAw7-oE6JIhhhhca7IsA_mnmLD5p-qLUY3McG9-mCgUoBJdynXbb7mL0Xj9X0-N0D_AAZKjUyPEJeH1GSimTpg1UMNt2icdr7XO0YorQ45HGPJOXdqGUGyTQl1xNlgcahp_m-yKtprUCyFL5UM3rPA6YXc0zqmavWs0Oyfmac28FhRK39O0KFksX-EGy-CQUbzEuDMgDxkbsA8VujzjSjv40T7LhFgqwOnkgpUQJxUZjqegi3nTG2hGpzwCc5wXfpMPHNOAkINlQ0rIijAIdQmuEVqWISU7Xbl2UFxarAsYeVe5QnWAjz_5OuxwnR1EM586pub5fPdlRc4l2FcXzU5me8MIgPlrM_SsoMng9fq0BR89srlKiPn9F_sSj66x4MrAwxLxWUwZ9wnSCTTKcDYNDOzZfs9_rmsPM9jxPCM-tb-HXpzBxFNtR_NSaXvgoUB8iYhOMqBLNiT2FxNkSv4ij080YfyaSV8V4Xn8socvt67mqLRfN_VDH47mSt4rtasLw0JTW-C3SQmMGIAPW-aIAyjcQpNo38pUsWOK6qqJo1LZ63prOcUqERgrB2_Ea0dZhpD4Kqsk0xzhfS9j-22ApYx9SH2_8ODBf_O0yMO34QqCUpvkjlATGttAhuOHSoA6gFM--A3PdJJrGXVZBSfvamvy7yLmOajhTrKVRbQtBnvi2ZyeRo289Sw7_czPe_O5AR0nQbi7qQ4Qx6_oYoi5oVS3D_UIDt3wrFjuPHRiOa0y1qTI.6uNJqF5ltTw8SY2_NYuCBw",
Das verschlüsselte ID-Token. Der Server chiffriert das Token selbst zur Sicherung des Transport-Weges. Zur Verschlüsselung verwendet wird hier der token_key aus der Anfrage des Clients.
- "access_token" : "eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIiwiY3R5IjoiTkpXVCIsImV4cCI6MTcwOTYyOTI4M30..nV9uwSPoplUdLTwI.oPmXRw1HjStOlD8qCctmpqZkM3reFfuCl89nvLGBmThoridGhQJQfaH6AA3lWy5Bsuwb30NrYHJ2yn9vBDmU0AAZmOn-I0oRIqAK0BH5vAT1Mpjiz62IIY7CwGfSLK81rKXFd8Vl1BYROAIPiYj8WAsvXTOSvj-fWqLhgyp4EIchdxA1gf8wnuBgQM73pp2fefAjgh7rt1wrhbu9Wf6eb0FJMkmhPCKUbaYtvATr5YZm0xlqUcOoiNahA_4MRNa0dtLg5uIQ8hKBcthi2YfmqLS4zHgXLLCAwdEHk70KOd7herjSdFZXV7ZuktaVL3fgh_Gs54HjPD48npWyj23jhbQEFhkvgsRgJuX63S4nlCkPFJIgpuLgx5H8ylQ7OawtOYXhsk8eBF11mfLrIt-6pVY8IThWo7D-Igc9MG08ZB7_Zp5pqCdvWr4DZo9I-Ll_F8XsVXTbiincL0HkM_dzhv9x6Q9cmjbBAOAZq_JKCNOXDqsyvMTxRScBD5NXsSsnRh_G2QA_-SSDrLv2chCAA-DlaX7XU_ZR_DZt8JUkr9GXKT94mrLXGnaNILH1OQRaColWMYpbtTNTwL7FH0plyMfF078CdiSHzjhvYuJ5jSHFJ4Oph7X5Px0O-JUF4j6yDwlo9D4UDuhQVr28ys-Savt8aHcihiHsDYSSAxeTqx-5KDS2pY1pVvS05aPjPtkopQmTWQd3oHUK3Psq__lPHOOc3To6l_6u_OaW9w4YNVCdUqGXT1d7sbG2RTJUur6_ClrtzW0kGCOUnmkXbzG8tuzptifzDLrIBzS1MRL6Yv6NltwMVKt0GSA48DUlu5zB9-dGTdUmoA-aNcDEdTxfzAoPyvlDYQg3kBO6aCgu-YroEzdzQn83JsdbtdDfOsjHEsMN1K3u3UK0wV9zuB9GWZ3gANJKOlGMsuoiRCQBtnK0gXOX4dvx2aB_fvEcC7-hi1TLh4SNbfo_iU2F2iPmutrEizbnsIPGWaspg99kzxoUAKOYK1NOlo3sWHh7S7sIXBcnNt6rsRtNxbCCrTK2lEatrPNCliS9g3k-aO7gVClwU_KzsViyy5CF0MxfC31DNXcZMkCiqOzo2wGNrRDiIhVs1Ln5SbD_sMMBfsIcuIG2PXGX_afIisywGj8PBzwy7KFhuCrDFqB4fxdbERJ3XlHJ-5Ij2PUw2qytGLDA6DDXHv4_kk1j96gfjk5cwvYuh4u4K-ZvXf-H9ysIBCXofpTsdaoXgfYankPJuAhGELZIc2Yw4EKErcY.tmx4Da3yxF-Le47YhKGDEw"
Das verschlüsselte Access-Token. Der Server chiffriert das Token selbst zur Sicherung des Transport-Weges. Zur Verschlüsselung verwendet wird hier der token_key aus der Anfrage des Clients.
-}

body.id_token.content

JWE

Headers
{
+  "id_token" : "eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIiwiY3R5IjoiTkpXVCIsImV4cCI6MTcwOTYzOTI3OH0..pxekt160xtTiL6YV.oip2PNbTWitN_rEVnm7FeTN5r4CWwTfHHXF-ev5QmHF-nmZgW3mBygV_DTAUKemKf73kITNuCPbN1mj9_IgJ9sbJSqSL7A5jLkcAsoSuYCSdG4QHYKFaw_WrpUOMclvDWCy6ETtZNh1_csHGJwIy09eX0NPZnhrEDH_Ul3RXRaHV6DA8-eSgIKidF_W1MjdYYp5B8KejhhT1rH3YV4Fhw3BEY0s5GZ_agtsp6q6oSIZTBzaKiQrMg0oy0d9PxAiCcNVgXbq9eyurvIspZP6pkepA28-pWhQba510-zrF3Th6JlHw8vgz24QUGdThj_98c3iagb8vNraFaGqsGFUDPAJvkH8bTFc1BDaQzFcTILSLtdATi6NTnflbPu1xNgm4suNwODETspDRonZPwGeiGy1KW5ii4FluNMHBrSDplaLk4MuUnic-M1lfCJbhHYqz8_4c90v8JbM004MCeiBaPLAhsBQ98f08t_9vSzkwsCJ260E_AOtUOuiKOZp4VQbOIa6ayl3crYaOQ2kNA5XoErEvSOHhaPQUMFHESbI2CQ-AGnsAaKxzav1HxM2yk6gw0u2zV8kjg1b1YX9zBdE-_oD7orECIF6GMKB1aySYBJgyiCX-JMe0NJP26p5HmePTvgCroPOMMrccwsWHoHfr9aFf-4CMkhOQJAFnTifQtY-0NMZfKuGPlBq-_SRv3v4Ygrm7564rwYEIG-3e3hVamEhdGFwI5lesj_P5CVGA20WKQ5abk6K8R3wDN4LxpEVW5ghLVKvCJFCR6gZCUEtkbE_shswgCUCvr7WzVLjbZDMCcqIa11naaP9CCfgUz-fLgr-Ls2FdEb2mhOQZGLW6wk1lwFum3Ql569AUd2XgRJ9sF-Boeo4bOXzLTxss3ih9kM3DKPJEWoUxUjqAFPFrPNJg3wgTZzPdNg7Cqfz_3l1y9LLOKlruIC6EjWCCKTzPHbADwSCPipt8yxufXaEIWF2tUKtg2lpWW1iKkiB2M6Zri3YAIBnAzRS3NjH3XfrR3f2cvw2NqPL5bmZmuWdIrGcMwpYyNWhH7MSyb8gQZ2xcAsDeHnOSDP3YJroXMLMbvcWoia5kHD1d2gpbDgsdSrxGCcM3MDoB4-jVjFqjZgn767SvahVkZ8yhcn6n0WJvzuhvHGsvecHD0DeEx45Y1Q40-85WDDw8ZQRzoZE-n6EpsDueqA1v07heJQk5658-czkbYZ1PcSk_hBrFfCbJrPc.Su7GOkcTbIqa7cUWpcat4w",
Das verschlüsselte ID-Token. Der Server chiffriert das Token selbst zur Sicherung des Transport-Weges. Zur Verschlüsselung verwendet wird hier der token_key aus der Anfrage des Clients.
+ "access_token" : "eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIiwiY3R5IjoiTkpXVCIsImV4cCI6MTcwOTYzOTI3OH0..MDNUQBiEmf-BfXtd.A_S8CrEvSemM590jP80YhpQ--91MmoBFU5aJphaMzrA0oJU_kyhWIw0cVUaew20JWL2iIQVosaMI509cXxiNNBaxnbru5V-EmTgwTzKobao01ysasj0huFGZF78uj1wJR4EMpRw3Ebdw9uoIDHDpau86pkM101y-biKLQFFncpG3mT6WZ57W-4L4-_hzMQED-AKLSCrglts49uCkKJt2GUpWD4S3Sh7fpNEbKld8gmRv1Aj6JudUmyyqHxqz9cI0TXdB4n0vDmT2j_Fkzy_eOvmYZ9kO7fbWSbSbx1xBYYW2EMGyIFUhbfJ3hUBnb94sgMXP6Zj7DCXSjNl8IljbhzrQpDrm23_hiaVpsjA0unxWyUl5bd3Q54IOuf40KRHkvA25aRv0aWMG9mS12guBrIVNzcb43Vdb9f9VbYFyxNprZxTpAc_Tf0rMoKlF-IFdbM1rGel3t73kYGlsuBYae77FteoZPrjsJPkb7qyuGVI1bEAOC8Ms5Kz5YSKFz0-Os763eKlj1Lqg4sz1YlghLaCkhxvDJL8nOqxG6OR7vtLb1x4IY3JzZJJ--rxkQ3bNJMJ8Fcuz-a1m12PVMRVAd60P5OJorLFX3ap7PFFg6tXUQ0-iNCwkrUeqdXr3FImuI5HhY3aFp_ecwE3HBIr5QoyTFic__DvE3_QcwosKngYSnF0yo7B6J1fEtvQU0WW8hSMxcMk4RtrLyS4CjzpA_9CuRzSrQavbzxP3heH4Tssb5yF8BMc2Z3QC_YKNnv2mdZKxgkrt4nUEVlf-1Rc08JUb1UKd7oqGjvbWmZy7RL4gt_Orom4yopfyTWz5gzbDot6R8v_E3yTYnGZTZFnIpg_59rZGnJLl1Gi67QRPlYyvDBcfcJmkqNBh_EVW-zmXq8RZFIG7jMUKrG5ojbUSbHQTBNsBjVk9Atg_1olQpQifUOmPDlSAxVknvtaUIlVDqhCWOJC0tvALpfWzch0FUaJ4NY6lUqVL_I2l2jyfo4vnRa_r5DoYVh7_r6ZFLMFqY6IHWqeZYGX1pRGLQefZFbtJ6DuaXC2yX3f9stW4Mb2vQ3ZonKmD3tXE5Rbs08uR8ruiONQPUgR8N46gC5L6VBKdu1KDAGrV7_ApqKo-PC69wIf19GUMmYgVuH_mB1mnl83FAqfeN37nEqhJtfSEDy7kzhGs-2TjmdSZb90wkNEnx4Z5F1mjbaML6Vc8VdR3eRnQsl9aIPkb4QTRIt0RkwkW1LYIJj9TdzncV38F7cCgbV6z6xU8EU0.uWbDQ6HYs3tJssnPnuy_4g"
Das verschlüsselte Access-Token. Der Server chiffriert das Token selbst zur Sicherung des Transport-Weges. Zur Verschlüsselung verwendet wird hier der token_key aus der Anfrage des Clients.
+}

body.id_token.content

JWE

Headers
{
   "alg" : "dir",
   "enc" : "A256GCM",
   "cty" : "NJWT",
-  "exp" : 1709629283
Gültigkeit des Tokens
-}

Body

{
-  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJhdF9oYXNoIjoia3p0Njc3X192aWxYMGdEMUJBdVNndyIsInN1YiI6InAyaC1SVDZFRVJnaGJqUDhSMXdueXo4azR4aE9od2Jlc0pSUDBYbnVTbW8iLCJvcmdhbml6YXRpb25OYW1lIjoiVGVzdCBHS1YtU1ZOT1QtVkFMSUQiLCJwcm9mZXNzaW9uT0lEIjoiMS4yLjI3Ni4wLjc2LjQuNDkiLCJpZE51bW1lciI6IlgxMTA0MTE2NzUiLCJhbXIiOlsibWZhIiwic2MiLCJwaW4iXSwiaXNzIjoiaHR0cHM6Ly9pZHAuZGV2LmdlbWF0aWsuc29sdXRpb25zIiwiZ2l2ZW5fbmFtZSI6IkRhcml1cyBNaWNoYWVsIEJyaWFuIFViYm8iLCJkaXNwbGF5X25hbWUiOiJEYXJpdXMgTWljaGFlbCBCcmlhbiBVYmJvIELDtmRlZmVsZCIsIm5vbmNlIjoiUjU0aC1qZlJfR0dwNlQ3VnZkUEhkSm9OUDFXQzlEWGsiLCJhdWQiOiJlUmV6ZXB0QXBwIiwiYWNyIjoiZ2VtYXRpay1laGVhbHRoLWxvYS1oaWdoIiwiYXpwIjoiZVJlemVwdEFwcCIsImF1dGhfdGltZSI6MTcwOTYyODk3NCwiZXhwIjoxNzA5NjI5MjgzLCJpYXQiOjE3MDk2Mjg5ODMsImZhbWlseV9uYW1lIjoiQsO2ZGVmZWxkIiwianRpIjoiZjA5ZmM2M2MxZjEwZDI4MiJ9.fEqfrH57cNUU-bLS3D56jyzvW1fEXBdXo2fyzN77NJuC_Rs8HQyhc8x0vfhLvSv9IOTUeaP7eiZo_Eq_e0guLg"
Ein verschachtelt enthaltenes JWT
-}

body.id_token.content.body.njwt.content

JWT

Headers
{
+  "exp" : 1709639278
Gültigkeit des Tokens
+}

Body

{
+  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJhdF9oYXNoIjoiWU1PSktBU2RVeGlRai15S1phZlhVQSIsInN1YiI6InAyaC1SVDZFRVJnaGJqUDhSMXdueXo4azR4aE9od2Jlc0pSUDBYbnVTbW8iLCJvcmdhbml6YXRpb25OYW1lIjoiVGVzdCBHS1YtU1ZOT1QtVkFMSUQiLCJwcm9mZXNzaW9uT0lEIjoiMS4yLjI3Ni4wLjc2LjQuNDkiLCJpZE51bW1lciI6IlgxMTA0MTE2NzUiLCJhbXIiOlsibWZhIiwic2MiLCJwaW4iXSwiaXNzIjoiaHR0cHM6Ly9pZHAuZGV2LmdlbWF0aWsuc29sdXRpb25zIiwiZ2l2ZW5fbmFtZSI6IkRhcml1cyBNaWNoYWVsIEJyaWFuIFViYm8iLCJkaXNwbGF5X25hbWUiOiJEYXJpdXMgTWljaGFlbCBCcmlhbiBVYmJvIELDtmRlZmVsZCIsIm5vbmNlIjoiYVUyUmpEdXRTOTY4ZDJKajZEdWstX1h5SDFNVkV0LUUiLCJhdWQiOiJlUmV6ZXB0QXBwIiwiYWNyIjoiZ2VtYXRpay1laGVhbHRoLWxvYS1oaWdoIiwiYXpwIjoiZVJlemVwdEFwcCIsImF1dGhfdGltZSI6MTcwOTYzODk3MCwiZXhwIjoxNzA5NjM5Mjc4LCJpYXQiOjE3MDk2Mzg5NzgsImZhbWlseV9uYW1lIjoiQsO2ZGVmZWxkIiwianRpIjoiMTA4YTRkMDFhYzZlYWMzYSJ9.ac_RXOp6ng5bdqPx7aVJXASkTN2ZtjQPTQYDR98SrjIwTYPG-HuUaCBtIMrpxylXPYFCSfnNMQXyIpQ9QhNFaA"
Ein verschachtelt enthaltenes JWT
+}

body.id_token.content.body.njwt.content

JWT

Headers
{
   "alg" : "BP256R1",
   "typ" : "JWT",
   "kid" : "puk_idp_sig"
Identifiziert den hier beschriebenen Schlüssel. Beschreibung siehe https://tools.ietf.org/html/rfc7517#section-4.5
-}

Body

{
-  "at_hash" : "kzt677__vilX0gD1BAuSgw",
Erste 16 Bytes des Hash des Authentication Tokens Base64(subarray(Sha256(authentication_token), 0, 16))
+}

Body

{
+  "at_hash" : "YMOJKASdUxiQj-yKZafXUA",
Erste 16 Bytes des Hash des Authentication Tokens Base64(subarray(Sha256(authentication_token), 0, 16))
"sub" : "p2h-RT6EERghbjP8R1wnyz8k4xhOhwbesJRP0XnuSmo",
subject. Base64(sha256(audClaim + idNummerClaim + serverSubjectSalt))
"organizationName" : "Test GKV-SVNOT-VALID", "professionOID" : "1.2.276.0.76.4.49", @@ -1062,27 +1062,27 @@ "iss" : "https://idp.dev.gematik.solutions", "given_name" : "Darius Michael Brian Ubbo", "display_name" : "Darius Michael Brian Ubbo Bödefeld", - "nonce" : "R54h-jfR_GGp6T7VvdPHdJoNP1WC9DXk",
String zu Verhinderung von CSRF-Attacken. Dieser Wert ist optional. Wenn er mitgegeben wird muss der gleiche Wert im abschließend ausgegebenen ID-Token wieder auftauchen. WICHTIG: Darf nicht länger als 512 Zeichen sein.
+ "nonce" : "aU2RjDutS968d2Jj6Duk-_XyH1MVEt-E",
String zu Verhinderung von CSRF-Attacken. Dieser Wert ist optional. Wenn er mitgegeben wird muss der gleiche Wert im abschließend ausgegebenen ID-Token wieder auftauchen. WICHTIG: Darf nicht länger als 512 Zeichen sein.
"aud" : "eRezeptApp", "acr" : "gematik-ehealth-loa-high", "azp" : "eRezeptApp", - "auth_time" : 1709628974,
Timestamp der Authentisierung
- "exp" : 1709629283,
Gültigkeit des Tokens
- "iat" : 1709628983,
Zeitpunkt der Ausstellung des Tokens
+ "auth_time" : 1709638970,
Timestamp der Authentisierung
+ "exp" : 1709639278,
Gültigkeit des Tokens
+ "iat" : 1709638978,
Zeitpunkt der Ausstellung des Tokens
"family_name" : "Bödefeld", - "jti" : "f09fc63c1f10d282"
A unique identifier for the token, which can be used to prevent reuse of the token. Value is a case-sensitive string.
-}

Signature

Was verified using Key puk_idp_sig

Encryption info

Was decrypted using Key token_key

body.access_token.content

JWE

Headers
{
+  "jti" : "108a4d01ac6eac3a"
A unique identifier for the token, which can be used to prevent reuse of the token. Value is a case-sensitive string.
+}

Signature

Was verified using Key puk_idp_sig

Encryption info

Was decrypted using Key token_key

body.access_token.content

JWE

Headers
{
   "alg" : "dir",
   "enc" : "A256GCM",
   "cty" : "NJWT",
-  "exp" : 1709629283
Gültigkeit des Tokens
-}

Body

{
-  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiYXQrSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJzdWIiOiJwMmgtUlQ2RUVSZ2hialA4UjF3bnl6OGs0eGhPaHdiZXNKUlAwWG51U21vIiwicHJvZmVzc2lvbk9JRCI6IjEuMi4yNzYuMC43Ni40LjQ5Iiwib3JnYW5pemF0aW9uTmFtZSI6IlRlc3QgR0tWLVNWTk9ULVZBTElEIiwiaWROdW1tZXIiOiJYMTEwNDExNjc1IiwiYW1yIjpbIm1mYSIsInNjIiwicGluIl0sImlzcyI6Imh0dHBzOi8vaWRwLmRldi5nZW1hdGlrLnNvbHV0aW9ucyIsImdpdmVuX25hbWUiOiJEYXJpdXMgTWljaGFlbCBCcmlhbiBVYmJvIiwiZGlzcGxheV9uYW1lIjoiRGFyaXVzIE1pY2hhZWwgQnJpYW4gVWJibyBCw7ZkZWZlbGQiLCJjbGllbnRfaWQiOiJlUmV6ZXB0QXBwIiwiYWNyIjoiZ2VtYXRpay1laGVhbHRoLWxvYS1oaWdoIiwiYXVkIjoiaHR0cHM6Ly9lcnAtdGVzdC56ZW50cmFsLmVycC5zcGxpdGRucy50aS1kaWVuc3RlLmRlLyIsImF6cCI6ImVSZXplcHRBcHAiLCJzY29wZSI6Im9wZW5pZCBlLXJlemVwdCIsImF1dGhfdGltZSI6MTcwOTYyODk3NCwiZXhwIjoxNzA5NjI5MjgzLCJmYW1pbHlfbmFtZSI6IkLDtmRlZmVsZCIsImlhdCI6MTcwOTYyODk4MywianRpIjoiODAzOWFlN2QyM2JiMTgwZCJ9.SYcXYwkWXLvNu91V148RIPOcLLQNIRH_3sESVHoo6EkUSf9FsZNrD5CSFiSpRITMtxdSUKE8egw2WdvkTn3-sg"
Ein verschachtelt enthaltenes JWT
-}

body.access_token.content.body.njwt.content

JWT

Headers
{
+  "exp" : 1709639278
Gültigkeit des Tokens
+}

Body

{
+  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiYXQrSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJzdWIiOiJwMmgtUlQ2RUVSZ2hialA4UjF3bnl6OGs0eGhPaHdiZXNKUlAwWG51U21vIiwicHJvZmVzc2lvbk9JRCI6IjEuMi4yNzYuMC43Ni40LjQ5Iiwib3JnYW5pemF0aW9uTmFtZSI6IlRlc3QgR0tWLVNWTk9ULVZBTElEIiwiaWROdW1tZXIiOiJYMTEwNDExNjc1IiwiYW1yIjpbIm1mYSIsInNjIiwicGluIl0sImlzcyI6Imh0dHBzOi8vaWRwLmRldi5nZW1hdGlrLnNvbHV0aW9ucyIsImdpdmVuX25hbWUiOiJEYXJpdXMgTWljaGFlbCBCcmlhbiBVYmJvIiwiZGlzcGxheV9uYW1lIjoiRGFyaXVzIE1pY2hhZWwgQnJpYW4gVWJibyBCw7ZkZWZlbGQiLCJjbGllbnRfaWQiOiJlUmV6ZXB0QXBwIiwiYWNyIjoiZ2VtYXRpay1laGVhbHRoLWxvYS1oaWdoIiwiYXVkIjoiaHR0cHM6Ly9lcnAtdGVzdC56ZW50cmFsLmVycC5zcGxpdGRucy50aS1kaWVuc3RlLmRlLyIsImF6cCI6ImVSZXplcHRBcHAiLCJzY29wZSI6Im9wZW5pZCBlLXJlemVwdCIsImF1dGhfdGltZSI6MTcwOTYzODk3MCwiZXhwIjoxNzA5NjM5Mjc4LCJmYW1pbHlfbmFtZSI6IkLDtmRlZmVsZCIsImlhdCI6MTcwOTYzODk3OCwianRpIjoiZmMzOTIwODU2ZjZiNzRlZiJ9.XVnx44BawO78--gLvyhKO5hBhPOdkPNZJzThB2DIf4Y2rVoe91vLuvnLfWcBk_WaKmhZ1KcQm8Paqlmu07O2pw"
Ein verschachtelt enthaltenes JWT
+}

body.access_token.content.body.njwt.content

JWT

Headers
{
   "alg" : "BP256R1",
   "typ" : "at+JWT",
   "kid" : "puk_idp_sig"
Identifiziert den hier beschriebenen Schlüssel. Beschreibung siehe https://tools.ietf.org/html/rfc7517#section-4.5
-}

Body

{
+}

Body

{
   "sub" : "p2h-RT6EERghbjP8R1wnyz8k4xhOhwbesJRP0XnuSmo",
subject. Base64(sha256(audClaim + idNummerClaim + serverSubjectSalt))
"professionOID" : "1.2.276.0.76.4.49", "organizationName" : "Test GKV-SVNOT-VALID", @@ -1096,37 +1096,37 @@ "aud" : "https://erp-test.zentral.erp.splitdns.ti-dienste.de/", "azp" : "eRezeptApp", "scope" : "openid e-rezept",
Der Scope entspricht dem zwischen E-Rezept-Fachdienst und IDP festgelegten Wert. Mit diesem antwortet der E-Rezept-Fachdienst bei fehlendem ACCESS_TOKEN und http-Statuscode 401.
- "auth_time" : 1709628974,
Timestamp der Authentisierung
- "exp" : 1709629283,
Gültigkeit des Tokens
+ "auth_time" : 1709638970,
Timestamp der Authentisierung
+ "exp" : 1709639278,
Gültigkeit des Tokens
"family_name" : "Bödefeld", - "iat" : 1709628983,
Zeitpunkt der Ausstellung des Tokens
- "jti" : "8039ae7d23bb180d"
A unique identifier for the token, which can be used to prevent reuse of the token. Value is a case-sensitive string.
-}

Signature

Was verified using Key puk_idp_sig

Encryption info

Was decrypted using Key token_key

Signature

Was verified using Key puk_idp_sig

Encryption info

Was decrypted using Key token_key

25 GET http://localhost:40931/sign_response?client_id=eRezeptApp&response_type=code&redirect_uri=http%3A%2F%2Fredirect.gematik.de%2Ferezept&state=NHKbi4n7V_AkUPPDm5DXvsaUEyfwvJ91&code_challenge=oGaSVVV6uLw6h3S2Er2fes3zWyxKupPrslTXdvgOQn4&code_challenge_method=S256&scope=openid+e-rezept&nonce=iDGTMYNiYnj-0rG4Lecpgyke5rbevpCS127.0.0.1:-1localhost:46453

25 GET http://localhost:38497/sign_response?client_id=eRezeptApp&response_type=code&redirect_uri=http%3A%2F%2Fredirect.gematik.de%2Ferezept&state=tmIaYF9vkw9X78O_rhq_78UBDkiGe72n&code_challenge=BRIY_JJJrLn0h-Md4lBeXVp_1c79jUPsSOS4RKg-YUY&code_challenge_method=S256&scope=openid+e-rezept&nonce=ud_bQhavtIhDA14O1vDEPgDu7RTZAHhL127.0.0.1:-1localhost:35977

REQ Headers

User-Agent
IdP-Client
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Accept
application/json
Accept-Encoding
gzip
Nicht verpflichtend
Nicht verpflichtend
Host
localhost:46453
Nicht verpflichtend
Nicht verpflichtend
Connection
keep-alive
Nicht verpflichtend
Nicht verpflichtend
Empty body

REQ Headers

User-Agent
IdP-Client
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Accept
application/json
Accept-Encoding
gzip
Nicht verpflichtend
Nicht verpflichtend
Host
localhost:35977
Nicht verpflichtend
Nicht verpflichtend
Connection
keep-alive
Nicht verpflichtend
Nicht verpflichtend
Empty body

26200localhost:46453127.0.0.1:-1

26200localhost:35977127.0.0.1:-1

RES Headers

Keep-Alive
timeout=60
Cache-Control
no-store
Version
27.0.0
Pragma
no-cache
Date
Tue, 05 Mar 2024 08:56:26 GMT
Zeitpunkt der Antwort.
Zeitpunkt der Antwort.
Content-Type
application/json

RES Body

{
-  "challenge" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjQ2NDUzIiwicmVzcG9uc2VfdHlwZSI6ImNvZGUiLCJzbmMiOiJoNmU4WWVJY2wtNGlOdC1yUzBvYTBWOGQ0LTV4X1lDX1FTN0M0MWRnY2I4IiwiY29kZV9jaGFsbGVuZ2VfbWV0aG9kIjoiUzI1NiIsInRva2VuX3R5cGUiOiJjaGFsbGVuZ2UiLCJub25jZSI6ImlER1RNWU5pWW5qLTByRzRMZWNwZ3lrZTVyYmV2cENTIiwiY2xpZW50X2lkIjoiZVJlemVwdEFwcCIsInNjb3BlIjoib3BlbmlkIGUtcmV6ZXB0Iiwic3RhdGUiOiJOSEtiaTRuN1ZfQWtVUFBEbTVEWHZzYVVFeWZ3dko5MSIsInJlZGlyZWN0X3VyaSI6Imh0dHA6Ly9yZWRpcmVjdC5nZW1hdGlrLmRlL2VyZXplcHQiLCJleHAiOjE3MDk2MjkxNjYsImlhdCI6MTcwOTYyODk4NiwiY29kZV9jaGFsbGVuZ2UiOiJvR2FTVlZWNnVMdzZoM1MyRXIyZmVzM3pXeXhLdXBQcnNsVFhkdmdPUW40IiwianRpIjoiMGZiMzM5ZmQ1NmE5ZjAzMSJ9.XKYzg_TOVURytI7EPxYKDJ9X-0U84RhisO-a_X5pEEALTADNWQkQpb5wbtlNq2uvGQs4CG0N9w3lb5sRoroiZQ",
Die vom Client mittels der eGK bzw. SMC-B zu signierende Challenge besteht aus einem Base64-codierten Challenge-Token.
+Date: Tue, 05 Mar 2024 11:43:02 GMT +Content-Type: application/json

RES Headers

Keep-Alive
timeout=60
Cache-Control
no-store
Version
27.0.1
Pragma
no-cache
Date
Tue, 05 Mar 2024 11:43:02 GMT
Zeitpunkt der Antwort.
Zeitpunkt der Antwort.
Content-Type
application/json

RES Body

{
+  "challenge" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjM1OTc3IiwicmVzcG9uc2VfdHlwZSI6ImNvZGUiLCJzbmMiOiJkTWhEV0NEX2drdGNEVzA0R0prMVlwaGEtMHZDRnV5Z1lobUNCRVExSUtjIiwiY29kZV9jaGFsbGVuZ2VfbWV0aG9kIjoiUzI1NiIsInRva2VuX3R5cGUiOiJjaGFsbGVuZ2UiLCJub25jZSI6InVkX2JRaGF2dEloREExNE8xdkRFUGdEdTdSVFpBSGhMIiwiY2xpZW50X2lkIjoiZVJlemVwdEFwcCIsInNjb3BlIjoib3BlbmlkIGUtcmV6ZXB0Iiwic3RhdGUiOiJ0bUlhWUY5dmt3OVg3OE9fcmhxXzc4VUJEa2lHZTcybiIsInJlZGlyZWN0X3VyaSI6Imh0dHA6Ly9yZWRpcmVjdC5nZW1hdGlrLmRlL2VyZXplcHQiLCJleHAiOjE3MDk2MzkxNjIsImlhdCI6MTcwOTYzODk4MiwiY29kZV9jaGFsbGVuZ2UiOiJCUklZX0pKSnJMbjBoLU1kNGxCZVhWcF8xYzc5alVQc1NPUzRSS2ctWVVZIiwianRpIjoiNjk5NzBiMWY4OGJlNmNiYSJ9.Jmw7hPrNhUr61V88jw6JSfzkbuithPDZb9KwHFywEvNgBxcYZQnP4T2tljKare4czd6lEweAJWZxvOhlCwko8g",
Die vom Client mittels der eGK bzw. SMC-B zu signierende Challenge besteht aus einem Base64-codierten Challenge-Token.
"user_consent" : { "requested_scopes" : { "e-rezept" : "Zugriff auf die E-Rezept-Funktionalität.", @@ -1141,55 +1141,55 @@ "family_name" : "Zustimmung zur Verarbeitung des Nachnamens" } } -}

body.challenge.content

JWT

Headers
{
+}

body.challenge.content

JWT

Headers
{
   "alg" : "BP256R1",
   "typ" : "JWT",
   "kid" : "puk_idp_sig"
Identifiziert den hier beschriebenen Schlüssel. Beschreibung siehe https://tools.ietf.org/html/rfc7517#section-4.5
-}

Body

{
-  "iss" : "http://localhost:46453",
+}

Body

{
+  "iss" : "http://localhost:35977",
   "response_type" : "code",
Referenziert den erwarteten Response-Type des Flows. Muss immer 'code' lauten. Damit wird angezeigt das es sich hierbei um einen Authorization Code Flow handelt. Für eine nähere Erläuterung siehe OpenID-Spezifikation.
- "snc" : "h6e8YeIcl-4iNt-rS0oa0V8d4-5x_YC_QS7C41dgcb8",
server-nonce. Wird verwendet um noise hinzuzufügen.
+ "snc" : "dMhDWCD_gktcDW04GJk1Ypha-0vCFuygYhmCBEQ1IKc",
server-nonce. Wird verwendet um noise hinzuzufügen.
"code_challenge_method" : "S256",
Das Primärsystem generiert einen Code-Verifier und erzeugt darüber einen Hash im Verfahren SHA-256, hier abgekürzt als S256. Teil von PKCE.
"token_type" : "challenge", - "nonce" : "iDGTMYNiYnj-0rG4Lecpgyke5rbevpCS",
String zu Verhinderung von CSRF-Attacken. Dieser Wert ist optional. Wenn er mitgegeben wird muss der gleiche Wert im abschließend ausgegebenen ID-Token wieder auftauchen. WICHTIG: Darf nicht länger als 512 Zeichen sein.
+ "nonce" : "ud_bQhavtIhDA14O1vDEPgDu7RTZAHhL",
String zu Verhinderung von CSRF-Attacken. Dieser Wert ist optional. Wenn er mitgegeben wird muss der gleiche Wert im abschließend ausgegebenen ID-Token wieder auftauchen. WICHTIG: Darf nicht länger als 512 Zeichen sein.
"client_id" : "eRezeptApp",
Die client_id des Clients. Wird bei der Registrierung vergeben.
"scope" : "openid e-rezept",
Der Scope entspricht dem zwischen E-Rezept-Fachdienst und IDP festgelegten Wert. Mit diesem antwortet der E-Rezept-Fachdienst bei fehlendem ACCESS_TOKEN und http-Statuscode 401.
- "state" : "NHKbi4n7V_AkUPPDm5DXvsaUEyfwvJ91",
Der state der Session. Sollte dem zufällig generierten state-Wert aus der initialen Anfrage entsprechen.
+ "state" : "tmIaYF9vkw9X78O_rhq_78UBDkiGe72n",
Der state der Session. Sollte dem zufällig generierten state-Wert aus der initialen Anfrage entsprechen.
"redirect_uri" : "http://redirect.gematik.de/erezept",
Die für den Client beim Server hinterlegte redirect_uri. Muss dem bei der Registrierung hinterlegten Wert entsprechen.
- "exp" : 1709629166,
Gültigkeit des Tokens
- "iat" : 1709628986,
Zeitpunkt der Ausstellung des Tokens
- "code_challenge" : "oGaSVVV6uLw6h3S2Er2fes3zWyxKupPrslTXdvgOQn4",
Der Hashwert des Code-Verifiers wird zum IDP als Code-Challenge gesendet. Teil von PKCE.
- "jti" : "0fb339fd56a9f031"
A unique identifier for the token, which can be used to prevent reuse of the token. Value is a case-sensitive string.
-}

Signature

Was verified using Key puk_idp_sig

Signature

Was verified using Key puk_idp_sig

27 POST http://localhost:40931/sso_response127.0.0.1:-1localhost:46453

27 POST http://localhost:38497/sso_response127.0.0.1:-1localhost:35977

REQ Headers

Content-Type
application/x-www-form-urlencoded
User-Agent
IdP-Client
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Accept
application/json
Accept-Encoding
gzip
Nicht verpflichtend
Nicht verpflichtend
Content-Length
3992
Host
localhost:46453
Nicht verpflichtend
Nicht verpflichtend
Connection
keep-alive
Nicht verpflichtend
Nicht verpflichtend

REQ Body

namevalue
ssotoken

JWE

Der SSO-Token. Mit diesem kann der Client sich wiederholt einloggen ohne erneut den Besitz der Karte durch unterschreiben einer Challenge beweisen zu müssen. Er ist vom IDP für den IDP verschlüsselt und dementsprechend vom Client nicht weiter zu verarbeiten.

Headers
{
+Host: localhost:35977
+Connection: keep-alive

REQ Headers

Content-Type
application/x-www-form-urlencoded
User-Agent
IdP-Client
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Accept
application/json
Accept-Encoding
gzip
Nicht verpflichtend
Nicht verpflichtend
Content-Length
3992
Host
localhost:35977
Nicht verpflichtend
Nicht verpflichtend
Connection
keep-alive
Nicht verpflichtend
Nicht verpflichtend

REQ Body

namevalue
ssotoken

JWE

Der SSO-Token. Mit diesem kann der Client sich wiederholt einloggen ohne erneut den Besitz der Karte durch unterschreiben einer Challenge beweisen zu müssen. Er ist vom IDP für den IDP verschlüsselt und dementsprechend vom Client nicht weiter zu verarbeiten.

Headers
{
   "alg" : "dir",
   "enc" : "A256GCM",
   "cty" : "NJWT",
-  "exp" : 1709672174
Gültigkeit des Tokens
-}

Body

{
-  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJvcmdhbml6YXRpb25OYW1lIjoiVGVzdCBHS1YtU1ZOT1QtVkFMSUQiLCJwcm9mZXNzaW9uT0lEIjoiMS4yLjI3Ni4wLjc2LjQuNDkiLCJhdXRoX3RpbWUiOjE3MDk2Mjg5NzQsImFtciI6WyJtZmEiLCJzYyIsInBpbiJdLCJpZE51bW1lciI6IlgxMTA0MTE2NzUiLCJpc3MiOiJodHRwczovL2lkcC5kZXYuZ2VtYXRpay5zb2x1dGlvbnMiLCJjbmYiOnsieDVjIjpbIk1JSURTekNDQXZLZ0F3SUJBZ0lIQTI1VktBSGN2ekFLQmdncWhrak9QUVFEQWpDQmxqRUxNQWtHQTFVRUJoTUNSRVV4SHpBZEJnTlZCQW9NRm1kbGJXRjBhV3NnUjIxaVNDQk9UMVF0VmtGTVNVUXhSVEJEQmdOVkJBc01QRVZzWld0MGNtOXVhWE5qYUdVZ1IyVnpkVzVrYUdWcGRITnJZWEowWlMxRFFTQmtaWElnVkdWc1pXMWhkR2xyYVc1bWNtRnpkSEoxYTNSMWNqRWZNQjBHQTFVRUF3d1dSMFZOTGtWSFN5MURRVEV3SUZSRlUxUXRUMDVNV1RBZUZ3MHlNakV4TWpRd01EQXdNREJhRncweU5UQTFNVGt5TXpVNU5UbGFNSUhPTVFzd0NRWURWUVFHRXdKRVJURWRNQnNHQTFVRUNnd1VWR1Z6ZENCSFMxWXRVMVpPVDFRdFZrRk1TVVF4RXpBUkJnTlZCQXNNQ2xneE1UQTBNVEUyTnpVeEVqQVFCZ05WQkFzTUNURXdPVFV3TURrMk9URVNNQkFHQTFVRUJBd0pRc08yWkdWbVpXeGtNU0l3SUFZRFZRUXFEQmxFWVhKcGRYTWdUV2xqYUdGbGJDQkNjbWxoYmlCVlltSnZNVDh3UFFZRFZRUURERFpFWVhKcGRYTWdUV2xqYUdGbGJDQkNjbWxoYmlCVlltSnZJRWR5WVdZZ2RtOXVJRUxEdG1SbFptVnNaQ0JVUlZOVUxVOU9URmt3V2pBVUJnY3Foa2pPUFFJQkJna3JKQU1EQWdnQkFRY0RRZ0FFSGxOY296bmpkb2kwWXh2MjdCM3lHYUUvMTl2ak9KSTc4d1QyeURjZWMrbVdBbFJjL2ZFL0J5aFBjL0lPTGtnc2FabWJLdU5RaGhlcEU0UFE0cXRZRGFPQjd6Q0I3REFNQmdOVkhSTUJBZjhFQWpBQU1COEdBMVVkSXdRWU1CYUFGRVN4VEFGWVZCN2MyVGUrNUxJL0ttNmtYSWtkTUIwR0ExVWREZ1FXQkJSS1YzM3hmcWsySHRkOEx6VTR0SlRZWFZMdG1UQTRCZ2dyQmdFRkJRY0JBUVFzTUNvd0tBWUlLd1lCQlFVSE1BR0dIR2gwZEhBNkx5OWxhR05oTG1kbGJXRjBhV3N1WkdVdmIyTnpjQzh3RGdZRFZSMFBBUUgvQkFRREFnZUFNQ0FHQTFVZElBUVpNQmN3Q2dZSUtvSVVBRXdFZ1NNd0NRWUhLb0lVQUV3RVJqQXdCZ1VySkFnREF3UW5NQ1V3SXpBaE1COHdIVEFRREE1V1pYSnphV05vWlhKMFpTOHRjakFKQmdjcWdoUUFUQVF4TUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDSUh1c3dCSUlNVHZXUmYrYjVQdThudDltRVoxK0ZkOG8yQjNlMmF0VjJjNzNBaUJwQU1GdUlZMkpJQ1RpNW4xWWo2cnc5NFpMc2lFZlNKVzdtdTJlVTJMZGF3PT0iXSwia2lkIjoiOTY1NzM2OTUyNjE4MTc1Iiwia3R5IjoiRUMiLCJjcnYiOiJCUC0yNTYiLCJ4IjoiSGxOY296bmpkb2kwWXh2MjdCM3lHYUVfMTl2ak9KSTc4d1QyeURjZWMtayIsInkiOiJsZ0pVWFAzeFB3Y29UM1B5RGk1SUxHbVpteXJqVUlZWHFST0QwT0tyV0EwIn0sImdpdmVuX25hbWUiOiJEYXJpdXMgTWljaGFlbCBCcmlhbiBVYmJvIiwiZXhwIjoxNzA5NjcyMTc0LCJpYXQiOjE3MDk2Mjg5NzQsImZhbWlseV9uYW1lIjoiQsO2ZGVmZWxkIn0.mwS7sNZbI-8k4aYtPSnoh61gE3z546UsKXPSMzgDFmWTFuSGeJgAKHCVMIT0YQmO4YFwnVSpP2Z6ZJF_Zk6DLg"
Ein verschachtelt enthaltenes JWT
-}

body.ssotoken.body.njwt.content

JWT

Headers
{
+  "exp" : 1709682170
Gültigkeit des Tokens
+}

Body

{
+  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJvcmdhbml6YXRpb25OYW1lIjoiVGVzdCBHS1YtU1ZOT1QtVkFMSUQiLCJwcm9mZXNzaW9uT0lEIjoiMS4yLjI3Ni4wLjc2LjQuNDkiLCJhdXRoX3RpbWUiOjE3MDk2Mzg5NzAsImFtciI6WyJtZmEiLCJzYyIsInBpbiJdLCJpZE51bW1lciI6IlgxMTA0MTE2NzUiLCJpc3MiOiJodHRwczovL2lkcC5kZXYuZ2VtYXRpay5zb2x1dGlvbnMiLCJjbmYiOnsieDVjIjpbIk1JSURTekNDQXZLZ0F3SUJBZ0lIQTI1VktBSGN2ekFLQmdncWhrak9QUVFEQWpDQmxqRUxNQWtHQTFVRUJoTUNSRVV4SHpBZEJnTlZCQW9NRm1kbGJXRjBhV3NnUjIxaVNDQk9UMVF0VmtGTVNVUXhSVEJEQmdOVkJBc01QRVZzWld0MGNtOXVhWE5qYUdVZ1IyVnpkVzVrYUdWcGRITnJZWEowWlMxRFFTQmtaWElnVkdWc1pXMWhkR2xyYVc1bWNtRnpkSEoxYTNSMWNqRWZNQjBHQTFVRUF3d1dSMFZOTGtWSFN5MURRVEV3SUZSRlUxUXRUMDVNV1RBZUZ3MHlNakV4TWpRd01EQXdNREJhRncweU5UQTFNVGt5TXpVNU5UbGFNSUhPTVFzd0NRWURWUVFHRXdKRVJURWRNQnNHQTFVRUNnd1VWR1Z6ZENCSFMxWXRVMVpPVDFRdFZrRk1TVVF4RXpBUkJnTlZCQXNNQ2xneE1UQTBNVEUyTnpVeEVqQVFCZ05WQkFzTUNURXdPVFV3TURrMk9URVNNQkFHQTFVRUJBd0pRc08yWkdWbVpXeGtNU0l3SUFZRFZRUXFEQmxFWVhKcGRYTWdUV2xqYUdGbGJDQkNjbWxoYmlCVlltSnZNVDh3UFFZRFZRUURERFpFWVhKcGRYTWdUV2xqYUdGbGJDQkNjbWxoYmlCVlltSnZJRWR5WVdZZ2RtOXVJRUxEdG1SbFptVnNaQ0JVUlZOVUxVOU9URmt3V2pBVUJnY3Foa2pPUFFJQkJna3JKQU1EQWdnQkFRY0RRZ0FFSGxOY296bmpkb2kwWXh2MjdCM3lHYUUvMTl2ak9KSTc4d1QyeURjZWMrbVdBbFJjL2ZFL0J5aFBjL0lPTGtnc2FabWJLdU5RaGhlcEU0UFE0cXRZRGFPQjd6Q0I3REFNQmdOVkhSTUJBZjhFQWpBQU1COEdBMVVkSXdRWU1CYUFGRVN4VEFGWVZCN2MyVGUrNUxJL0ttNmtYSWtkTUIwR0ExVWREZ1FXQkJSS1YzM3hmcWsySHRkOEx6VTR0SlRZWFZMdG1UQTRCZ2dyQmdFRkJRY0JBUVFzTUNvd0tBWUlLd1lCQlFVSE1BR0dIR2gwZEhBNkx5OWxhR05oTG1kbGJXRjBhV3N1WkdVdmIyTnpjQzh3RGdZRFZSMFBBUUgvQkFRREFnZUFNQ0FHQTFVZElBUVpNQmN3Q2dZSUtvSVVBRXdFZ1NNd0NRWUhLb0lVQUV3RVJqQXdCZ1VySkFnREF3UW5NQ1V3SXpBaE1COHdIVEFRREE1V1pYSnphV05vWlhKMFpTOHRjakFKQmdjcWdoUUFUQVF4TUFvR0NDcUdTTTQ5QkFNQ0EwY0FNRVFDSUh1c3dCSUlNVHZXUmYrYjVQdThudDltRVoxK0ZkOG8yQjNlMmF0VjJjNzNBaUJwQU1GdUlZMkpJQ1RpNW4xWWo2cnc5NFpMc2lFZlNKVzdtdTJlVTJMZGF3PT0iXSwia2lkIjoiOTY1NzM2OTUyNjE4MTc1Iiwia3R5IjoiRUMiLCJjcnYiOiJCUC0yNTYiLCJ4IjoiSGxOY296bmpkb2kwWXh2MjdCM3lHYUVfMTl2ak9KSTc4d1QyeURjZWMtayIsInkiOiJsZ0pVWFAzeFB3Y29UM1B5RGk1SUxHbVpteXJqVUlZWHFST0QwT0tyV0EwIn0sImdpdmVuX25hbWUiOiJEYXJpdXMgTWljaGFlbCBCcmlhbiBVYmJvIiwiZXhwIjoxNzA5NjgyMTcwLCJpYXQiOjE3MDk2Mzg5NzAsImZhbWlseV9uYW1lIjoiQsO2ZGVmZWxkIn0.S18an3rc54jGjzPYp_AFwf42BQsNUblhTKM68RlAmOSgufj59zLWQmtPSnJsNIxSJDMrHLz_ti5vLhxRTADrwg"
Ein verschachtelt enthaltenes JWT
+}

body.ssotoken.body.njwt.content

JWT

Headers
{
   "alg" : "BP256R1",
   "typ" : "JWT",
   "kid" : "puk_idp_sig"
Identifiziert den hier beschriebenen Schlüssel. Beschreibung siehe https://tools.ietf.org/html/rfc7517#section-4.5
-}

Body

{
+}

Body

{
   "organizationName" : "Test GKV-SVNOT-VALID",
   "professionOID" : "1.2.276.0.76.4.49",
-  "auth_time" : 1709628974,
Timestamp der Authentisierung
+ "auth_time" : 1709638970,
Timestamp der Authentisierung
"amr" : [ "mfa", "sc", "pin" ], "idNummer" : "X110411675", "iss" : "https://idp.dev.gematik.solutions", @@ -1202,168 +1202,168 @@ "y" : "lgJUXP3xPwcoT3PyDi5ILGmZmyrjUIYXqROD0OKrWA0"
Y-Koordinate des öffentlichen Punkts des Schlüssels
}, "given_name" : "Darius Michael Brian Ubbo", - "exp" : 1709672174,
Gültigkeit des Tokens
- "iat" : 1709628974,
Zeitpunkt der Ausstellung des Tokens
+ "exp" : 1709682170,
Gültigkeit des Tokens
+ "iat" : 1709638970,
Zeitpunkt der Ausstellung des Tokens
"family_name" : "Bödefeld" -}

body.ssotoken.body.njwt.content.body.cnf.x5c.0.content

X509 Certificate

Subject: C=DE,O=Test GKV-SVNOT-VALID,OU=X110411675,OU=109500969,SURNAME=Bödefeld,GIVENNAME=Darius Michael Brian Ubbo,CN=Darius Michael Brian Ubbo Graf von Bödefeld TEST-ONLY

Issuer: C=DE,O=gematik GmbH NOT-VALID,OU=Elektronische Gesundheitskarte-CA der Telematikinfrastruktur,CN=GEM.EGK-CA10 TEST-ONLY

Serialnumber: 965736952618175

Valid From: 2022-11-24T00:00Z[UTC]

Valid Until: 2025-05-19T23:59:59Z[UTC]


Signature

Was verified using Key puk_idp_sig

Encryption info

Was decrypted using Key IDP symmetricEncryptionKey

Der SSO-Token. Mit diesem kann der Client sich wiederholt einloggen ohne erneut den Besitz der Karte durch unterschreiben einer Challenge beweisen zu müssen. Er ist vom IDP für den IDP verschlüsselt und dementsprechend vom Client nicht weiter zu verarbeiten.
unsigned_challenge

JWT

Headers
{
+}

body.ssotoken.body.njwt.content.body.cnf.x5c.0.content

X509 Certificate

Subject: C=DE,O=Test GKV-SVNOT-VALID,OU=X110411675,OU=109500969,SURNAME=Bödefeld,GIVENNAME=Darius Michael Brian Ubbo,CN=Darius Michael Brian Ubbo Graf von Bödefeld TEST-ONLY

Issuer: C=DE,O=gematik GmbH NOT-VALID,OU=Elektronische Gesundheitskarte-CA der Telematikinfrastruktur,CN=GEM.EGK-CA10 TEST-ONLY

Serialnumber: 965736952618175

Valid From: 2022-11-24T00:00Z[UTC]

Valid Until: 2025-05-19T23:59:59Z[UTC]


Signature

Was verified using Key puk_idp_sig

Encryption info

Was decrypted using Key IDP symmetricEncryptionKey

Der SSO-Token. Mit diesem kann der Client sich wiederholt einloggen ohne erneut den Besitz der Karte durch unterschreiben einer Challenge beweisen zu müssen. Er ist vom IDP für den IDP verschlüsselt und dementsprechend vom Client nicht weiter zu verarbeiten.
unsigned_challenge

JWT

Headers
{
   "alg" : "BP256R1",
   "typ" : "JWT",
   "kid" : "puk_idp_sig"
Identifiziert den hier beschriebenen Schlüssel. Beschreibung siehe https://tools.ietf.org/html/rfc7517#section-4.5
-}

Body

{
-  "iss" : "http://localhost:46453",
+}

Body

{
+  "iss" : "http://localhost:35977",
   "response_type" : "code",
Referenziert den erwarteten Response-Type des Flows. Muss immer 'code' lauten. Damit wird angezeigt das es sich hierbei um einen Authorization Code Flow handelt. Für eine nähere Erläuterung siehe OpenID-Spezifikation.
- "snc" : "h6e8YeIcl-4iNt-rS0oa0V8d4-5x_YC_QS7C41dgcb8",
server-nonce. Wird verwendet um noise hinzuzufügen.
+ "snc" : "dMhDWCD_gktcDW04GJk1Ypha-0vCFuygYhmCBEQ1IKc",
server-nonce. Wird verwendet um noise hinzuzufügen.
"code_challenge_method" : "S256",
Das Primärsystem generiert einen Code-Verifier und erzeugt darüber einen Hash im Verfahren SHA-256, hier abgekürzt als S256. Teil von PKCE.
"token_type" : "challenge", - "nonce" : "iDGTMYNiYnj-0rG4Lecpgyke5rbevpCS",
String zu Verhinderung von CSRF-Attacken. Dieser Wert ist optional. Wenn er mitgegeben wird muss der gleiche Wert im abschließend ausgegebenen ID-Token wieder auftauchen. WICHTIG: Darf nicht länger als 512 Zeichen sein.
+ "nonce" : "ud_bQhavtIhDA14O1vDEPgDu7RTZAHhL",
String zu Verhinderung von CSRF-Attacken. Dieser Wert ist optional. Wenn er mitgegeben wird muss der gleiche Wert im abschließend ausgegebenen ID-Token wieder auftauchen. WICHTIG: Darf nicht länger als 512 Zeichen sein.
"client_id" : "eRezeptApp",
Die client_id des Clients. Wird bei der Registrierung vergeben.
"scope" : "openid e-rezept",
Der Scope entspricht dem zwischen E-Rezept-Fachdienst und IDP festgelegten Wert. Mit diesem antwortet der E-Rezept-Fachdienst bei fehlendem ACCESS_TOKEN und http-Statuscode 401.
- "state" : "NHKbi4n7V_AkUPPDm5DXvsaUEyfwvJ91",
Der state der Session. Sollte dem zufällig generierten state-Wert aus der initialen Anfrage entsprechen.
+ "state" : "tmIaYF9vkw9X78O_rhq_78UBDkiGe72n",
Der state der Session. Sollte dem zufällig generierten state-Wert aus der initialen Anfrage entsprechen.
"redirect_uri" : "http://redirect.gematik.de/erezept",
Die für den Client beim Server hinterlegte redirect_uri. Muss dem bei der Registrierung hinterlegten Wert entsprechen.
- "exp" : 1709629166,
Gültigkeit des Tokens
- "iat" : 1709628986,
Zeitpunkt der Ausstellung des Tokens
- "code_challenge" : "oGaSVVV6uLw6h3S2Er2fes3zWyxKupPrslTXdvgOQn4",
Der Hashwert des Code-Verifiers wird zum IDP als Code-Challenge gesendet. Teil von PKCE.
- "jti" : "0fb339fd56a9f031"
A unique identifier for the token, which can be used to prevent reuse of the token. Value is a case-sensitive string.
-}

Signature

Was verified using Key puk_idp_sig

Signature

Was verified using Key puk_idp_sig

28302localhost:46453127.0.0.1:-1

28302localhost:35977127.0.0.1:-1

RES Headers

Keep-Alive
timeout=60
Cache-Control
no-store
Version
27.0.0
Pragma
no-cache
Content-Length
0
Date
Tue, 05 Mar 2024 08:56:27 GMT
Zeitpunkt der Antwort.
Zeitpunkt der Antwort.
Location
http://redirect.gematik.de/erezept?
Optional[code]=<Authorization Code in Base64-URL-Safe Encoding. Wird unten detaillierter aufgeführt>
Der Authorization-Code, so wie er vom Server in der vorigen Antwort auf POST /sign_response zurück gegeben wurde
&state=NHKbi4n7V_AkUPPDm5DXvsaUEyfwvJ91
Der state der Session. Sollte dem zufällig generierten state-Wert aus der initialen Anfrage entsprechen.

header.Location.code.value

JWE

Headers
{
+Date: Tue, 05 Mar 2024 11:43:03 GMT
+Location: http://redirect.gematik.de/erezept?code=eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIiwiY3R5IjoiTkpXVCIsImV4cCI6MTcwOTY0MjU4M30..XWe9l4XuaVMlcEPQ.NWiGeJN3CBdlY5Kk7XNq_U4fVEedvFInIw3vWXhg7nBkUTub9bPTaH9hoLx2tmYh5Pq7PBigql0n71DKh50MrUzBY-xzLd_68Nh1DdEs766l8Q4lbBBEeX5GV4TurunG8WDnoEZ4r4qps4JBlE83RQZ2JNNOEib3X2vqJn7vU2aZ4EcPIznzdyQzwz66RYctvVsVFQT9tn5ro0s-q4jpBqVvPZphExujyaKH7jc5nsYgcw1Yv_zvB-Jadvu8A4-tN-nq8_eybhZMhsd5aowtgY1UCcd4_KOwLPKknS11661gfjrRXCwN3F-aONd1rc4isE7cUtJU-2f6DUVAaXH-5sRFB85WoO9f4AdEfQZ2V7hEd_JCCO5W6uS2sZC2-O6Df6bVFUvpC3M4KXt3Y6f8FJYgWnAE5v5EB-FvO7TSGIqRhSyUFcrB4DYz6Nu-YnjJRsJgWOrY4DJBRHT7UyPYNLYFgj3Y8A36Deg9gtUWxLgBouZ9zbIgv90jSl49LkEXFVlaSkD90jU4GGkgqy72_te-Zeu08PWbus6_q0Zr34hcxwpwfyDwqMDH9GPt6RRR81ioqNT-zuuGVg-QdfQfKG4j6PhvUQUAfCJvxWql2jNgzk39udJtWylDHeoFZyDeWRkZfuVPMyiuHmDfJ-zMnso8HtvM3yTa75fY7VFU36jcYrkHS5zUtk9Q-tx2VGXK4xaw7vOF7xFibmVH3x_lAUhzILh-FdgyfAOvDkKm-iPFgtWvAm93tCZIzZqQVTR7LOlKo-x6-lj8TmeLxS0xJBlbrMnGjgqp9VNxXo3_Y4YGvT-BNtC6DDaWhPlA-LF5ZG0QSC4pXITZMe-S_52vMFPgmsZ89wrc4TFkIUsZMuZ3386VWlwyhhY9nYkdLHHLonJJdPSRK3Jpj89QOrKD3mvwl_idn6sf4d3AJMWfPliRqFauw0i9X7HbWlaSmtvUacXG4TMdiRvjcb-4EhNzEHOSu6XFdC6bVk7pRGkbow1Lr99nPjPh9eD0gcnzlHL7jEjoAdiHfRYqlzDqmdjvfHl9zEbUEcwOcFVLCtExObRKvuUCM24Pca1qfHvAWrJ8KYLxEMJpmvVanHEBgrGqArVc8WJafzs-xqwOxHjTVGNoPxnuCBjLsmippUn1w5GkgFgMATjmdw852Ci7NGmELgzrHWZdZfjULgjSXRFaH3CB_KOWIgt9XHoO8BTDMAgN6lusN3t4sHvxIKU3GRNhV-wdq-kVaBYm0FpsF97y4pLi1o2jil-yHcfMpoeJiHPeneMI5VJCQkmPyA1kiPTvJqs1RYir1Bo7GGQMrrSbxwJO_rrR2toNVn4LnLJp7gzR6CVYabm9nAc0jLcnbuKJs40zUiB90PVV.dnaMdblZm1wD3xXq7VWJpQ&state=tmIaYF9vkw9X78O_rhq_78UBDkiGe72n

RES Headers

Keep-Alive
timeout=60
Cache-Control
no-store
Version
27.0.1
Pragma
no-cache
Content-Length
0
Date
Tue, 05 Mar 2024 11:43:03 GMT
Zeitpunkt der Antwort.
Zeitpunkt der Antwort.
Location
http://redirect.gematik.de/erezept?
Optional[code]=<Authorization Code in Base64-URL-Safe Encoding. Wird unten detaillierter aufgeführt>
Der Authorization-Code, so wie er vom Server in der vorigen Antwort auf POST /sign_response zurück gegeben wurde
&state=tmIaYF9vkw9X78O_rhq_78UBDkiGe72n
Der state der Session. Sollte dem zufällig generierten state-Wert aus der initialen Anfrage entsprechen.

header.Location.code.value

JWE

Headers
{
   "alg" : "dir",
   "enc" : "A256GCM",
   "cty" : "NJWT",
-  "exp" : 1709632587
Gültigkeit des Tokens
-}

Body

{
-  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJvcmdhbml6YXRpb25OYW1lIjoiVGVzdCBHS1YtU1ZOT1QtVkFMSUQiLCJwcm9mZXNzaW9uT0lEIjoiMS4yLjI3Ni4wLjc2LjQuNDkiLCJpZE51bW1lciI6IlgxMTA0MTE2NzUiLCJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjQ2NDUzIiwicmVzcG9uc2VfdHlwZSI6ImNvZGUiLCJzbmMiOiJaRm92QllJUk9zcG5vcnEzR1pjMnV4OUVtX1E5dzVueCIsImNvZGVfY2hhbGxlbmdlX21ldGhvZCI6IlMyNTYiLCJnaXZlbl9uYW1lIjoiRGFyaXVzIE1pY2hhZWwgQnJpYW4gVWJibyIsInRva2VuX3R5cGUiOiJjb2RlIiwibm9uY2UiOiJpREdUTVlOaVluai0wckc0TGVjcGd5a2U1cmJldnBDUyIsImNsaWVudF9pZCI6ImVSZXplcHRBcHAiLCJzY29wZSI6Im9wZW5pZCBlLXJlemVwdCIsImF1dGhfdGltZSI6MTcwOTYyODk4NywicmVkaXJlY3RfdXJpIjoiaHR0cDovL3JlZGlyZWN0LmdlbWF0aWsuZGUvZXJlemVwdCIsInN0YXRlIjoiTkhLYmk0bjdWX0FrVVBQRG01RFh2c2FVRXlmd3ZKOTEiLCJleHAiOjE3MDk2MzI1ODcsImZhbWlseV9uYW1lIjoiQsO2ZGVmZWxkIiwiaWF0IjoxNzA5NjI4OTg3LCJjb2RlX2NoYWxsZW5nZSI6Im9HYVNWVlY2dUx3NmgzUzJFcjJmZXMzeld5eEt1cFByc2xUWGR2Z09RbjQiLCJqdGkiOiIwODkzOWQ3NjEwM2Y5NzQ1In0.ZNGv9QGyRoj99gje6S3ELjG8tcB6D-AhT9A4p3-O6sEIyU4YQSnJkCrW8Sl4vIojPETsHeZG3vLCohwPVZ46KQ"
Ein verschachtelt enthaltenes JWT
-}

header.Location.code.value.body.njwt.content

JWT

Headers
{
+  "exp" : 1709642583
Gültigkeit des Tokens
+}

Body

{
+  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJvcmdhbml6YXRpb25OYW1lIjoiVGVzdCBHS1YtU1ZOT1QtVkFMSUQiLCJwcm9mZXNzaW9uT0lEIjoiMS4yLjI3Ni4wLjc2LjQuNDkiLCJpZE51bW1lciI6IlgxMTA0MTE2NzUiLCJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjM1OTc3IiwicmVzcG9uc2VfdHlwZSI6ImNvZGUiLCJzbmMiOiJ6VnFWNEpBNDcwZ3dPa0xzOFM2dkR1VS1QOFJCeWtVTiIsImNvZGVfY2hhbGxlbmdlX21ldGhvZCI6IlMyNTYiLCJnaXZlbl9uYW1lIjoiRGFyaXVzIE1pY2hhZWwgQnJpYW4gVWJibyIsInRva2VuX3R5cGUiOiJjb2RlIiwibm9uY2UiOiJ1ZF9iUWhhdnRJaERBMTRPMXZERVBnRHU3UlRaQUhoTCIsImNsaWVudF9pZCI6ImVSZXplcHRBcHAiLCJzY29wZSI6Im9wZW5pZCBlLXJlemVwdCIsImF1dGhfdGltZSI6MTcwOTYzODk4MywicmVkaXJlY3RfdXJpIjoiaHR0cDovL3JlZGlyZWN0LmdlbWF0aWsuZGUvZXJlemVwdCIsInN0YXRlIjoidG1JYVlGOXZrdzlYNzhPX3JocV83OFVCRGtpR2U3Mm4iLCJleHAiOjE3MDk2NDI1ODMsImZhbWlseV9uYW1lIjoiQsO2ZGVmZWxkIiwiaWF0IjoxNzA5NjM4OTgzLCJjb2RlX2NoYWxsZW5nZSI6IkJSSVlfSkpKckxuMGgtTWQ0bEJlWFZwXzFjNzlqVVBzU09TNFJLZy1ZVVkiLCJqdGkiOiI1MjgyZTI4ODFiMzRmZGUzIn0.EuF3urIs7etJ2eCbAP2hYpBKBfMaq4Z_g1vfFrG7m3cMA3U7FQdoUWIRM7ZrMERGU3lF7DV7iRsg4sUeS6HhwQ"
Ein verschachtelt enthaltenes JWT
+}

header.Location.code.value.body.njwt.content

JWT

Headers
{
   "alg" : "BP256R1",
   "typ" : "JWT",
   "kid" : "puk_idp_sig"
Identifiziert den hier beschriebenen Schlüssel. Beschreibung siehe https://tools.ietf.org/html/rfc7517#section-4.5
-}

Body

{
+}

Body

{
   "organizationName" : "Test GKV-SVNOT-VALID",
   "professionOID" : "1.2.276.0.76.4.49",
   "idNummer" : "X110411675",
-  "iss" : "http://localhost:46453",
+  "iss" : "http://localhost:35977",
   "response_type" : "code",
Referenziert den erwarteten Response-Type des Flows. Muss immer 'code' lauten. Damit wird angezeigt das es sich hierbei um einen Authorization Code Flow handelt. Für eine nähere Erläuterung siehe OpenID-Spezifikation.
- "snc" : "ZFovBYIROspnorq3GZc2ux9Em_Q9w5nx",
server-nonce. Wird verwendet um noise hinzuzufügen.
+ "snc" : "zVqV4JA470gwOkLs8S6vDuU-P8RBykUN",
server-nonce. Wird verwendet um noise hinzuzufügen.
"code_challenge_method" : "S256",
Das Primärsystem generiert einen Code-Verifier und erzeugt darüber einen Hash im Verfahren SHA-256, hier abgekürzt als S256. Teil von PKCE.
"given_name" : "Darius Michael Brian Ubbo", "token_type" : "code", - "nonce" : "iDGTMYNiYnj-0rG4Lecpgyke5rbevpCS",
String zu Verhinderung von CSRF-Attacken. Dieser Wert ist optional. Wenn er mitgegeben wird muss der gleiche Wert im abschließend ausgegebenen ID-Token wieder auftauchen. WICHTIG: Darf nicht länger als 512 Zeichen sein.
+ "nonce" : "ud_bQhavtIhDA14O1vDEPgDu7RTZAHhL",
String zu Verhinderung von CSRF-Attacken. Dieser Wert ist optional. Wenn er mitgegeben wird muss der gleiche Wert im abschließend ausgegebenen ID-Token wieder auftauchen. WICHTIG: Darf nicht länger als 512 Zeichen sein.
"client_id" : "eRezeptApp",
Die client_id des Clients. Wird bei der Registrierung vergeben.
"scope" : "openid e-rezept",
Der Scope entspricht dem zwischen E-Rezept-Fachdienst und IDP festgelegten Wert. Mit diesem antwortet der E-Rezept-Fachdienst bei fehlendem ACCESS_TOKEN und http-Statuscode 401.
- "auth_time" : 1709628987,
Timestamp der Authentisierung
+ "auth_time" : 1709638983,
Timestamp der Authentisierung
"redirect_uri" : "http://redirect.gematik.de/erezept",
Die für den Client beim Server hinterlegte redirect_uri. Muss dem bei der Registrierung hinterlegten Wert entsprechen.
- "state" : "NHKbi4n7V_AkUPPDm5DXvsaUEyfwvJ91",
Der state der Session. Sollte dem zufällig generierten state-Wert aus der initialen Anfrage entsprechen.
- "exp" : 1709632587,
Gültigkeit des Tokens
+ "state" : "tmIaYF9vkw9X78O_rhq_78UBDkiGe72n",
Der state der Session. Sollte dem zufällig generierten state-Wert aus der initialen Anfrage entsprechen.
+ "exp" : 1709642583,
Gültigkeit des Tokens
"family_name" : "Bödefeld", - "iat" : 1709628987,
Zeitpunkt der Ausstellung des Tokens
- "code_challenge" : "oGaSVVV6uLw6h3S2Er2fes3zWyxKupPrslTXdvgOQn4",
Der Hashwert des Code-Verifiers wird zum IDP als Code-Challenge gesendet. Teil von PKCE.
- "jti" : "08939d76103f9745"
A unique identifier for the token, which can be used to prevent reuse of the token. Value is a case-sensitive string.
-}

Signature

Was verified using Key puk_idp_sig

Encryption info

Was decrypted using Key IDP symmetricEncryptionKey

Empty body

Signature

Was verified using Key puk_idp_sig

Encryption info

Was decrypted using Key IDP symmetricEncryptionKey

Empty body

29 POST http://localhost:40931/token127.0.0.1:-1localhost:46453

29 POST http://localhost:38497/token127.0.0.1:-1localhost:35977

REQ Headers

Content-Type
application/x-www-form-urlencoded
User-Agent
IdP-Client
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Accept
application/json
Accept-Encoding
gzip
Nicht verpflichtend
Nicht verpflichtend
Content-Length
2067
Host
localhost:46453
Nicht verpflichtend
Nicht verpflichtend
Connection
keep-alive
Nicht verpflichtend
Nicht verpflichtend

REQ Body

namevalue
client_id
eRezeptApp
Die client_id des Clients. Wird bei der Registrierung vergeben.
Die client_id des Clients. Wird bei der Registrierung vergeben.
code

JWE

Der Authorization-Code, so wie er vom Server in der vorigen Antwort auf POST /sign_response zurück gegeben wurde

Headers
{
+Host: localhost:35977
+Connection: keep-alive

REQ Headers

Content-Type
application/x-www-form-urlencoded
User-Agent
IdP-Client
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Der User-Agent des Clients. Muss vorhanden sein. Wird gegen eine Blocklist geprüft
Accept
application/json
Accept-Encoding
gzip
Nicht verpflichtend
Nicht verpflichtend
Content-Length
2067
Host
localhost:35977
Nicht verpflichtend
Nicht verpflichtend
Connection
keep-alive
Nicht verpflichtend
Nicht verpflichtend

REQ Body

namevalue
client_id
eRezeptApp
Die client_id des Clients. Wird bei der Registrierung vergeben.
Die client_id des Clients. Wird bei der Registrierung vergeben.
code

JWE

Der Authorization-Code, so wie er vom Server in der vorigen Antwort auf POST /sign_response zurück gegeben wurde

Headers
{
   "alg" : "dir",
   "enc" : "A256GCM",
   "cty" : "NJWT",
-  "exp" : 1709632587
Gültigkeit des Tokens
-}

Body

{
-  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJvcmdhbml6YXRpb25OYW1lIjoiVGVzdCBHS1YtU1ZOT1QtVkFMSUQiLCJwcm9mZXNzaW9uT0lEIjoiMS4yLjI3Ni4wLjc2LjQuNDkiLCJpZE51bW1lciI6IlgxMTA0MTE2NzUiLCJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjQ2NDUzIiwicmVzcG9uc2VfdHlwZSI6ImNvZGUiLCJzbmMiOiJaRm92QllJUk9zcG5vcnEzR1pjMnV4OUVtX1E5dzVueCIsImNvZGVfY2hhbGxlbmdlX21ldGhvZCI6IlMyNTYiLCJnaXZlbl9uYW1lIjoiRGFyaXVzIE1pY2hhZWwgQnJpYW4gVWJibyIsInRva2VuX3R5cGUiOiJjb2RlIiwibm9uY2UiOiJpREdUTVlOaVluai0wckc0TGVjcGd5a2U1cmJldnBDUyIsImNsaWVudF9pZCI6ImVSZXplcHRBcHAiLCJzY29wZSI6Im9wZW5pZCBlLXJlemVwdCIsImF1dGhfdGltZSI6MTcwOTYyODk4NywicmVkaXJlY3RfdXJpIjoiaHR0cDovL3JlZGlyZWN0LmdlbWF0aWsuZGUvZXJlemVwdCIsInN0YXRlIjoiTkhLYmk0bjdWX0FrVVBQRG01RFh2c2FVRXlmd3ZKOTEiLCJleHAiOjE3MDk2MzI1ODcsImZhbWlseV9uYW1lIjoiQsO2ZGVmZWxkIiwiaWF0IjoxNzA5NjI4OTg3LCJjb2RlX2NoYWxsZW5nZSI6Im9HYVNWVlY2dUx3NmgzUzJFcjJmZXMzeld5eEt1cFByc2xUWGR2Z09RbjQiLCJqdGkiOiIwODkzOWQ3NjEwM2Y5NzQ1In0.ZNGv9QGyRoj99gje6S3ELjG8tcB6D-AhT9A4p3-O6sEIyU4YQSnJkCrW8Sl4vIojPETsHeZG3vLCohwPVZ46KQ"
Ein verschachtelt enthaltenes JWT
-}

body.code.body.njwt.content

JWT

Headers
{
+  "exp" : 1709642583
Gültigkeit des Tokens
+}

Body

{
+  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJvcmdhbml6YXRpb25OYW1lIjoiVGVzdCBHS1YtU1ZOT1QtVkFMSUQiLCJwcm9mZXNzaW9uT0lEIjoiMS4yLjI3Ni4wLjc2LjQuNDkiLCJpZE51bW1lciI6IlgxMTA0MTE2NzUiLCJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjM1OTc3IiwicmVzcG9uc2VfdHlwZSI6ImNvZGUiLCJzbmMiOiJ6VnFWNEpBNDcwZ3dPa0xzOFM2dkR1VS1QOFJCeWtVTiIsImNvZGVfY2hhbGxlbmdlX21ldGhvZCI6IlMyNTYiLCJnaXZlbl9uYW1lIjoiRGFyaXVzIE1pY2hhZWwgQnJpYW4gVWJibyIsInRva2VuX3R5cGUiOiJjb2RlIiwibm9uY2UiOiJ1ZF9iUWhhdnRJaERBMTRPMXZERVBnRHU3UlRaQUhoTCIsImNsaWVudF9pZCI6ImVSZXplcHRBcHAiLCJzY29wZSI6Im9wZW5pZCBlLXJlemVwdCIsImF1dGhfdGltZSI6MTcwOTYzODk4MywicmVkaXJlY3RfdXJpIjoiaHR0cDovL3JlZGlyZWN0LmdlbWF0aWsuZGUvZXJlemVwdCIsInN0YXRlIjoidG1JYVlGOXZrdzlYNzhPX3JocV83OFVCRGtpR2U3Mm4iLCJleHAiOjE3MDk2NDI1ODMsImZhbWlseV9uYW1lIjoiQsO2ZGVmZWxkIiwiaWF0IjoxNzA5NjM4OTgzLCJjb2RlX2NoYWxsZW5nZSI6IkJSSVlfSkpKckxuMGgtTWQ0bEJlWFZwXzFjNzlqVVBzU09TNFJLZy1ZVVkiLCJqdGkiOiI1MjgyZTI4ODFiMzRmZGUzIn0.EuF3urIs7etJ2eCbAP2hYpBKBfMaq4Z_g1vfFrG7m3cMA3U7FQdoUWIRM7ZrMERGU3lF7DV7iRsg4sUeS6HhwQ"
Ein verschachtelt enthaltenes JWT
+}

body.code.body.njwt.content

JWT

Headers
{
   "alg" : "BP256R1",
   "typ" : "JWT",
   "kid" : "puk_idp_sig"
Identifiziert den hier beschriebenen Schlüssel. Beschreibung siehe https://tools.ietf.org/html/rfc7517#section-4.5
-}

Body

{
+}

Body

{
   "organizationName" : "Test GKV-SVNOT-VALID",
   "professionOID" : "1.2.276.0.76.4.49",
   "idNummer" : "X110411675",
-  "iss" : "http://localhost:46453",
+  "iss" : "http://localhost:35977",
   "response_type" : "code",
Referenziert den erwarteten Response-Type des Flows. Muss immer 'code' lauten. Damit wird angezeigt das es sich hierbei um einen Authorization Code Flow handelt. Für eine nähere Erläuterung siehe OpenID-Spezifikation.
- "snc" : "ZFovBYIROspnorq3GZc2ux9Em_Q9w5nx",
server-nonce. Wird verwendet um noise hinzuzufügen.
+ "snc" : "zVqV4JA470gwOkLs8S6vDuU-P8RBykUN",
server-nonce. Wird verwendet um noise hinzuzufügen.
"code_challenge_method" : "S256",
Das Primärsystem generiert einen Code-Verifier und erzeugt darüber einen Hash im Verfahren SHA-256, hier abgekürzt als S256. Teil von PKCE.
"given_name" : "Darius Michael Brian Ubbo", "token_type" : "code", - "nonce" : "iDGTMYNiYnj-0rG4Lecpgyke5rbevpCS",
String zu Verhinderung von CSRF-Attacken. Dieser Wert ist optional. Wenn er mitgegeben wird muss der gleiche Wert im abschließend ausgegebenen ID-Token wieder auftauchen. WICHTIG: Darf nicht länger als 512 Zeichen sein.
+ "nonce" : "ud_bQhavtIhDA14O1vDEPgDu7RTZAHhL",
String zu Verhinderung von CSRF-Attacken. Dieser Wert ist optional. Wenn er mitgegeben wird muss der gleiche Wert im abschließend ausgegebenen ID-Token wieder auftauchen. WICHTIG: Darf nicht länger als 512 Zeichen sein.
"client_id" : "eRezeptApp",
Die client_id des Clients. Wird bei der Registrierung vergeben.
"scope" : "openid e-rezept",
Der Scope entspricht dem zwischen E-Rezept-Fachdienst und IDP festgelegten Wert. Mit diesem antwortet der E-Rezept-Fachdienst bei fehlendem ACCESS_TOKEN und http-Statuscode 401.
- "auth_time" : 1709628987,
Timestamp der Authentisierung
+ "auth_time" : 1709638983,
Timestamp der Authentisierung
"redirect_uri" : "http://redirect.gematik.de/erezept",
Die für den Client beim Server hinterlegte redirect_uri. Muss dem bei der Registrierung hinterlegten Wert entsprechen.
- "state" : "NHKbi4n7V_AkUPPDm5DXvsaUEyfwvJ91",
Der state der Session. Sollte dem zufällig generierten state-Wert aus der initialen Anfrage entsprechen.
- "exp" : 1709632587,
Gültigkeit des Tokens
+ "state" : "tmIaYF9vkw9X78O_rhq_78UBDkiGe72n",
Der state der Session. Sollte dem zufällig generierten state-Wert aus der initialen Anfrage entsprechen.
+ "exp" : 1709642583,
Gültigkeit des Tokens
"family_name" : "Bödefeld", - "iat" : 1709628987,
Zeitpunkt der Ausstellung des Tokens
- "code_challenge" : "oGaSVVV6uLw6h3S2Er2fes3zWyxKupPrslTXdvgOQn4",
Der Hashwert des Code-Verifiers wird zum IDP als Code-Challenge gesendet. Teil von PKCE.
- "jti" : "08939d76103f9745"
A unique identifier for the token, which can be used to prevent reuse of the token. Value is a case-sensitive string.
-}

Signature

Was verified using Key puk_idp_sig

Encryption info

Was decrypted using Key IDP symmetricEncryptionKey

Der Authorization-Code, so wie er vom Server in der vorigen Antwort auf POST /sign_response zurück gegeben wurde
grant_type
authorization_code
Muss exakt diesen Wert enthalten, da es sich um eine Implementierung des OIDC Authorization Code Flows handelt.
Muss exakt diesen Wert enthalten, da es sich um eine Implementierung des OIDC Authorization Code Flows handelt.
key_verifier

JWE

JWE, welches den code_verifier sowie den token_key enthält. Dies ist ein AES-Schlüssel welcher vom Server zur Verschlüsselung der Token-Rückgaben verwendet wird.

Headers
Dieser Token wird für den Server mit dem puk_idp_enc verschlüsselt.
{
+  "iat" : 1709638983,
Zeitpunkt der Ausstellung des Tokens
+ "code_challenge" : "BRIY_JJJrLn0h-Md4lBeXVp_1c79jUPsSOS4RKg-YUY",
Der Hashwert des Code-Verifiers wird zum IDP als Code-Challenge gesendet. Teil von PKCE.
+ "jti" : "5282e2881b34fde3"
A unique identifier for the token, which can be used to prevent reuse of the token. Value is a case-sensitive string.
+}

Signature

Was verified using Key puk_idp_sig

Encryption info

Was decrypted using Key IDP symmetricEncryptionKey

Der Authorization-Code, so wie er vom Server in der vorigen Antwort auf POST /sign_response zurück gegeben wurde
grant_type
authorization_code
Muss exakt diesen Wert enthalten, da es sich um eine Implementierung des OIDC Authorization Code Flows handelt.
Muss exakt diesen Wert enthalten, da es sich um eine Implementierung des OIDC Authorization Code Flows handelt.
key_verifier

JWE

JWE, welches den code_verifier sowie den token_key enthält. Dies ist ein AES-Schlüssel welcher vom Server zur Verschlüsselung der Token-Rückgaben verwendet wird.

Headers
Dieser Token wird für den Server mit dem puk_idp_enc verschlüsselt.
{
   
Dieser Token wird für den Server mit dem puk_idp_enc verschlüsselt.
"alg" : "ECDH-ES", "enc" : "A256GCM", "cty" : "JSON", "epk" : { "kty" : "EC", - "x" : "ePVc3ZRKl7cCckjsFXW7K_1gWcizf1N2Xl0PzJ0RKc0",
X-Koordinate des öffentlichen Punkts des Schlüssels
- "y" : "ZPZ3e2nQKUvOT1SB8bIxSoCWFjMWcxR5I3D4QQxEzDk",
Y-Koordinate des öffentlichen Punkts des Schlüssels
+ "x" : "ocjoxWnQBvjQV-LgMZ_e_WdRBZhgGUtMiGzghAp4X84",
X-Koordinate des öffentlichen Punkts des Schlüssels
+ "y" : "kJOOeVPUAgBApD3XipfY8JBnldXfIU7nJVz10FcEMHo",
Y-Koordinate des öffentlichen Punkts des Schlüssels
"crv" : "BP-256" } -}

Body
Enthalten ist der code_verifier (der zu dem code_challenge-Wert aus der initialen Anfrage passen muss) sowie der token_key. Dies ist ein vom Client zufällig gewürfelter AES256-Schlüssel in Base64-URL-Encoding. Der Server benutzt diesen Schlüssel zur Chiffrierung der beiden Token-Rückgaben in der Response (ID- und Access-Token).

{
+}

Body
Enthalten ist der code_verifier (der zu dem code_challenge-Wert aus der initialen Anfrage passen muss) sowie der token_key. Dies ist ein vom Client zufällig gewürfelter AES256-Schlüssel in Base64-URL-Encoding. Der Server benutzt diesen Schlüssel zur Chiffrierung der beiden Token-Rückgaben in der Response (ID- und Access-Token).

{
   
Enthalten ist der code_verifier (der zu dem code_challenge-Wert aus der initialen Anfrage passen muss) sowie der token_key. Dies ist ein vom Client zufällig gewürfelter AES256-Schlüssel in Base64-URL-Encoding. Der Server benutzt diesen Schlüssel zur Chiffrierung der beiden Token-Rückgaben in der Response (ID- und Access-Token).
- "token_key" : "y9cuzq0FIsHA9DzqBtvpKxe7tBtOvFQsYV_X0O0-nqw", - "code_verifier" : "BQ3RsOSVXFQhh22pSFcBMEkJekNSStCQJt6DKBrA5pg" -}

Encryption info

Was decrypted using Key prk_idp_enc

JWE, welches den code_verifier sowie den token_key enthält. Dies ist ein AES-Schlüssel welcher vom Server zur Verschlüsselung der Token-Rückgaben verwendet wird.
redirect_uri
http%3A%2F%2Fredirect.gematik.de%2Ferezept
Die für den Client beim Server hinterlegte redirect_uri. Muss dem bei der Registrierung hinterlegten Wert entsprechen.
Die für den Client beim Server hinterlegte redirect_uri. Muss dem bei der Registrierung hinterlegten Wert entsprechen.

Encryption info

Was decrypted using Key prk_idp_enc

JWE, welches den code_verifier sowie den token_key enthält. Dies ist ein AES-Schlüssel welcher vom Server zur Verschlüsselung der Token-Rückgaben verwendet wird.
redirect_uri
http%3A%2F%2Fredirect.gematik.de%2Ferezept
Die für den Client beim Server hinterlegte redirect_uri. Muss dem bei der Registrierung hinterlegten Wert entsprechen.
Die für den Client beim Server hinterlegte redirect_uri. Muss dem bei der Registrierung hinterlegten Wert entsprechen.

30200localhost:46453127.0.0.1:-1

30200localhost:35977127.0.0.1:-1

RES Headers

Keep-Alive
timeout=60
Cache-Control
no-store
Version
27.0.0
Pragma
no-cache
Date
Tue, 05 Mar 2024 08:56:32 GMT
Zeitpunkt der Antwort.
Zeitpunkt der Antwort.
Content-Type
application/json

RES Body

{
+Date: Tue, 05 Mar 2024 11:43:08 GMT
+Content-Type: application/json

RES Headers

Keep-Alive
timeout=60
Cache-Control
no-store
Version
27.0.1
Pragma
no-cache
Date
Tue, 05 Mar 2024 11:43:08 GMT
Zeitpunkt der Antwort.
Zeitpunkt der Antwort.
Content-Type
application/json

RES Body

{
   "expires_in" : 300,
   "token_type" : "Bearer",
-  "id_token" : "eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIiwiY3R5IjoiTkpXVCIsImV4cCI6MTcwOTYyOTI5Mn0..8kk0yhDKYOT9rUbf.nhApuBOQBHXhurxPOjobajC_PT0yA89bVGXdD7KXtBqZoGNKJtyjwK_qtRfQcc8DXzhF2FbWiktTvZWG-BkIqjm3vBbpY-hl3t6Yb8_yI18z02F9__YvpLMptZvM2NhAB9U2dhqJNUl8bdGGbj7kSGYSYrPlnXkB9LDHPPiveR7BqXe4WSPhVBMA1j8DyybhRAFI0vL2gUr4n0dPjcsMupGQAWDyxAIr5trO2JWy2PJcIZHj3CgxNwUkMZNjL9UFJjfyXOtFheEtwPIk8Cr0D13nsfer75UO5WJxjb0mKYpo-pGHlswxMQWTBjHhxJ8VOcYgV7CDz49iO0VrI2UQ3OZYgeq0zr4Q1sU8BBxHJx0QruGRehxZWIFJit_gfkC4xr-g1CSeNd3CbICAjOLhNkcaM2Gn1KM20ceJUFwAjY4h5Lb_zHFp1xLr1aE65FrqzVZY1vHq0s_agyVOCpzvyEd4eKdX7ew4LOczAHpkYPmAkUNlWlfiLzYSAgxDUAXjVtcyxw_rFg1IxylpgZxoasI87k7CGHkFXKGRxtMyq7m_lygUZW8nfFx2iavLwXQMSAGo99j3iHrncdePaZtE_x58oy5JKH1-mUO8w5S-QYJ5M1OezbuLsTxlAQ-5E6Dsrev588-39gWUgeEWijf3WHKgmgnMCLEWFz9dM6FqQoQRpLnsR67QFeBdqotaKFAOAa8ECkj2s-_lPtmmRDEr27P_X66EyU2h3pJaVOjjZ_zc5Urs5fgql8g3OYoAFhe7hU3rzIxC0r6ov6zIVG0ml0dnVhgDHHXBdBDQX8ob9MMC-4jgFyFue_JDbKy6NnwKpNSbmtsOvwQ-Oos3fgaTvMu9VnfSYXbJYi5GBCT4GACIqhFTjKUdsNSNTBsRuRmVJumYYAqIEhJa31GBQwJ86mU1sFUkvqHnbNhuWGTnVWwU36ETvsiDD1AmDCPyLtsa8NHQuPAYBwBYbhZBXe2PGPUbaqCZgHl59-aW_oMGy6HiVYI4j2bZIteOfNzCYSLykaHq4KvixYqvHklZngV-PvO-H9odT_Ltg2IWHaxOdh-SEXlIWgHNTjw19mWOpfVr2lW8IxnVOBYdYjurgHDI1B3QqUwwkyNWAFIBvPoPUTptTDQOI7Adby6awbKdcWnC1Q9f-lmlXUn_OJGmXpd6sE7UnZbPb2UHdGByfORBURkp-XkheS0RH_s89olk57XZApt0EbAxgwPaPrmFrVD6ipM.P8ABtfbn2wCTIlVKrmhi3w",
Das verschlüsselte ID-Token. Der Server chiffriert das Token selbst zur Sicherung des Transport-Weges. Zur Verschlüsselung verwendet wird hier der token_key aus der Anfrage des Clients.
- "access_token" : "eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIiwiY3R5IjoiTkpXVCIsImV4cCI6MTcwOTYyOTI5Mn0..YOUx1Uz0jec68hEr.hfD26HRqAoywy4HyOPdmFk-XftsqMOaXzjy9foUP7EGzu0OzPAktFYUj6eCHCuBKpUR9Hksp3xPLhcuieFEIOQ0DnF_6Acp1pLwDlsm1343OmQ0cWqHK9T2xcJ8mv3xiJmrKJmrZ0yYlThuCKZhHqUb4o_1qwAZ1F2q_bGWvrhDsdxAO4fUIAdkthSLkziHWAGNhrjdKmRkDgmNo5QqPcOEEf-rEZAdo_86Z8t2xD7SaolFne4U6FSUcw7hJ4VJVXoXslcRzIPLswZO0d4Oc_OuTMJHwfHWzgzgEnc1o1QDwKfcGg1LpZfqh0G9T4MvvX7_2c5mq5kgmIa-qXDACs8A3ldQU18iBtbkTPGKqiEVywtP4MCMph3UYicqM_3QL6puQGWVjY1Jn8S1TQwqsFzwK6JAp-mveVBNX-U7M22tOGaAo9wDsk1lJExN7suN2K95GTH8kEkrv7UELtqnaP3d0pUpOTGz5hi_dB_d59phR_ER4lszJEvOO6jPQPQ-Jh2ivNnjYDyx6BlHe1oOy6hOtsYkBZQ8ADHdpXnr78OMeJdvl7EDun3bmk-7qF_a16SdNLXMPAxXrGySDlBf9_vV0a5MTwFH6iRGvXi9nmDKU37Z6qfb9diiulbxciEKfEKmEPrqp5OcTPTbm2LWaSXMXCY2AfkIHvXUhgSsEw4oPkFdHd2_Ol7zT3dLbFKWFFCKAf9hLmMaTFpMwAURgsZnQMBw1uORxzTufRfBpB71wHFWchkDLkGZoOFgWI3muFg-hkCZNLB27RRftjTFN_-x0WwEFGIhd97bCJpKjx073ZbL4JoNv9pBFRTDIw2wS81iZZQZpVhgpoC3ZcNVK5ViVJm6Ssgx7CGLPQ0fQigMgdwmfD4eJFWcn8KsSK8nLKqJtUbmUfbhfyF9OknybHaJ9Bn5IBtPuv3uvp6Kj0_SiWn7h4UVP7ylFf4QcKcrEk61hvj7jeoWncWfSIuiiZ1RMXwhZQ163fj9he4010id88CBwRUSulIELOeNMoHveEannY2KzbckFU6TAFaUPeg5NTyntbKOTRdljG8RoEmZbDYHuZLQv88vN7ChR9IssuZJWsfC9lwzezRKKVtzuulQL77Hfcj6twI2_HAqneaMaEHRoKHnTHl5i3a3-Ra8OZq-p83MFnVBSEsTv8P4WJ5aa6Lw3WKXXq5sid-GppnpX-tduq__4mwxnGYaCM5N9zF0UAGo1EU5DH9xwDPZkFskCAtmlpz-aUjy1m0PixunnmNKmvd4pTec.odD79f3X2jusqIcT5ly9fQ"
Das verschlüsselte Access-Token. Der Server chiffriert das Token selbst zur Sicherung des Transport-Weges. Zur Verschlüsselung verwendet wird hier der token_key aus der Anfrage des Clients.
-}

body.id_token.content

JWE

Headers
{
+  "id_token" : "eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIiwiY3R5IjoiTkpXVCIsImV4cCI6MTcwOTYzOTI4OH0..iM-aUPXv4HP_fahl.W91NaCI6NfjV6jvh-75dBC_60UFIkoxgxv2k37M_9HbPhUW__kZWa8H5SqdX1j__E_1dL-Mxs1_H5066B3lNhqsGk-tx9X7NOna1WuPVCc5Xw1XJAa5-Tt3VdW1DoD-obI-Tbqb8Gi5a1gk9m2ljRpzv8XIFi04qv9aP8A452t-w4Gn48UDGjdtD1OhFsHjen2Y-ijMC0g1pAN0ZSu3iIuGBXizdKEo_xm7jz9Stbogj96fJoy-W8_RYmnNR2-PHq8OBvK0jbfAWXo4kKMdAbjEWeBwHE5lg3VSB7dF0c1ZcwhxwJo0eWDVCOy7U9WS0Jm3r2hNGOYf165P90AzvRG15BpqC3rFI4odmA798YQH05sRvb_0fT81PaOb8q0YalZUmr6LEEWHKVkL5sgyHAjIjIppSsKn9txr1lVm0T6Xe6fhTEVV4ZMDqUQY9ess1WhGs5loiZ72FJUD1KYssOoNQSmMvX5PB0rZ8CWN6f-nXBv_rCoFn1fpgjr4jc-HzT0bULehk0O9Jj_GToJMMSIHAHeP3VyGqFM8GwpFZHM7OS6vT8zi2zcuaePI5znAnKk_0qYN7y9ZYJaBGnjvZUdclT3sRMnyP5TqjIbRZ9QCWeA4MLAE_DLC3wixDMoGCjJqjoMX59ALqdSRV8Bt00-p_KzPHyrNA5RyIaTIS240G4yUVV0X4aYM-ngOOf4c_x7L1UbY2Vp4DaAjh_HrD5HVU5W0ZoZ9hQq5U_WiAj06DErPPRosDBuwU3aO0FPKVjAkkCIfqtehPdFlfxytMSWDv_vi3aUCSbA4HWH4WBdnzxwxQIozhLkV3yK_O-57aLE593EQZWdQsrb9aVka4649rNgPNvy4bXQ2NADEb3WKbNboR7mIsdtQEU_x4jiC9BPvmJ_MPjHHLFyX1ZtVHEjemVyylM7YUQ7gEt3AWLdrmjiSkWAPM09PMmjOoqXgq9JCghLAkMnlvoBM4roP-_ZW0suKUbXZ2rD1LeD5Z5H8SWJ_FY3fLCxVLYNKLMifLaTK6jXAJBKaao9SypwxJNXxrBsc8lpfOjPVGIlgSyDRhesWIqM6s3jxnx_5u2uz2mzi5ru20S692SRyiL6h4WaomLfQnsnO7lBTTjieco4OEyTQkkbIF7WokkWw3rPcebJLUu5HC7KgV4fGOoqxW3L-yhez9IloWhkf52WClM18Zk8bl0w1oSRTaIJ835BdmOHXEEJxFvjBrORcZcRaODt0.k9flToEbxkcM-Sbh6zD7aw",
Das verschlüsselte ID-Token. Der Server chiffriert das Token selbst zur Sicherung des Transport-Weges. Zur Verschlüsselung verwendet wird hier der token_key aus der Anfrage des Clients.
+ "access_token" : "eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIiwiY3R5IjoiTkpXVCIsImV4cCI6MTcwOTYzOTI4OH0..aTiK_WpmJOHqCF1G.E_T4NsWRYTbnMYkqDDJbl0EWFXb5yGqaPQNoVVlDP2mf7ok-ICzNKSOkfFu0f_YTvI64FNZoOA4ptNN63P_M1O-Frsiu69o-yyeBadWCxYVR50zZ4_sbpF6drduOH_8QgL7W9NQQ_axF-wWSBVKdmsytiGTPvvfQ-hlDGACnVPh07us4D0q51HL1LecI-97Whemig_IZrce1_IuuR6v5ndMuD6dvual-QKd6KlTlKS8P6WBzs1wGTNgYhm9tuo_qAJjf6oH9_4LpoIiSckdUWv8vLqNarXAHag7tjJfbE0JORE7sgaT40n_WIU_keQy6mZP4a1d1rnVzTCW_gkD1MvwB7KyKGH_PnXeWLB4YSpH7Nh_sXFX2362suBY6LQNCJRVGF-8AsyXX1M7gskDKwdjuJs6IBBKfBTQphefQ7j1pSnoTKmNBxoWlc4f3wWyoEd--hlcuKzqApc_y9kSG3hXloP2GJ9E_ifri40AZGHxdsCou2AKgRFD-0MYAIuxuHuX97ecIukeYf3WcbUiQgC_1jpejsXoVzdOusTG9sUGu_YZKHrYX7RjZqn-MH3lOvvYGyYS6c1MdZPfeQeMOxjVWRJ-n2bmS_EUzrkt5hQN5aLG0jZckoIibS84zFDZ0SARJuBTio_Tqmqo_qXTqWh7O7DfbTudMpdxHsvZvi6xco9IVgW_LGgDZdOQEd4DjQh1kIVFGi6-I9rlHie6DO_2rBQi3UpezZze_snJFY0IjDz-UJH2KYamj4wgCUUGhFein1Pc8wMosC7H3unxsNmb4HGeOxVMcaw0adixdvRuGbtjPnOU5BIFbjPK9GlrviyMEKk0_CrFXL36NqYnuaKOpDEksP_uAdRSy2pw8nQx-iOubwGG9vQQs55Y9JmP_VurU2aSzsHHDOjjqOZHGL-I8imsZgieKnektqYZkbEftay8To3l_iwT8fNqGgDzEVZPy9iCkeWX2HJtcU3mpUCwNbiNeUaav4Hn7POo_Tz2tRs8L9rg3lRCyc3MK7Z0eYoiyb0LLptss_L4N3hvMi49qsUoi7VQFUcgGo2nus3TDkyeLoUxHmK8lfgoZqCz6JLGZ6p5I6L-MHKLDRf5jf5hdcjByxFKJawVB-vApE02-bJE_CoP-XcALosvPj6aFyjGK7ouyjd6_fqCnNHvLTVYiA_U948IgCvEY8IhyGLnNBF2glg2yID0XbWVmu7Te-djM_1FctzU4cSbbKk7aOCVtRsErUJNDE7knz449SKJtc7JySDCWPBc.gMcBOMCvJE30kKL82fMIJQ"
Das verschlüsselte Access-Token. Der Server chiffriert das Token selbst zur Sicherung des Transport-Weges. Zur Verschlüsselung verwendet wird hier der token_key aus der Anfrage des Clients.
+}

body.id_token.content

JWE

Headers
{
   "alg" : "dir",
   "enc" : "A256GCM",
   "cty" : "NJWT",
-  "exp" : 1709629292
Gültigkeit des Tokens
-}

Body

{
-  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJhdF9oYXNoIjoiclRYcDVNWV91cldiUnRwNGZjbHJuQSIsInN1YiI6InAyaC1SVDZFRVJnaGJqUDhSMXdueXo4azR4aE9od2Jlc0pSUDBYbnVTbW8iLCJvcmdhbml6YXRpb25OYW1lIjoiVGVzdCBHS1YtU1ZOT1QtVkFMSUQiLCJwcm9mZXNzaW9uT0lEIjoiMS4yLjI3Ni4wLjc2LjQuNDkiLCJpZE51bW1lciI6IlgxMTA0MTE2NzUiLCJhbXIiOlsibWZhIiwic2MiLCJwaW4iXSwiaXNzIjoiaHR0cHM6Ly9pZHAuZGV2LmdlbWF0aWsuc29sdXRpb25zIiwiZ2l2ZW5fbmFtZSI6IkRhcml1cyBNaWNoYWVsIEJyaWFuIFViYm8iLCJkaXNwbGF5X25hbWUiOiJEYXJpdXMgTWljaGFlbCBCcmlhbiBVYmJvIELDtmRlZmVsZCIsIm5vbmNlIjoiaURHVE1ZTmlZbmotMHJHNExlY3BneWtlNXJiZXZwQ1MiLCJhdWQiOiJlUmV6ZXB0QXBwIiwiYWNyIjoiZ2VtYXRpay1laGVhbHRoLWxvYS1oaWdoIiwiYXpwIjoiZVJlemVwdEFwcCIsImF1dGhfdGltZSI6MTcwOTYyODk4NywiZXhwIjoxNzA5NjI5MjkyLCJpYXQiOjE3MDk2Mjg5OTIsImZhbWlseV9uYW1lIjoiQsO2ZGVmZWxkIiwianRpIjoiZWVkNDlkNzgyNTNmMzE1YSJ9.neFjAL6U37OtNthKQcQiTKxdiiuhhKDWibV5DmqU1PI-XJthmrcDTRKcDLgCt2SFjwvACf9bxG1CPfaCyROPWQ"
Ein verschachtelt enthaltenes JWT
-}

body.id_token.content.body.njwt.content

JWT

Headers
{
+  "exp" : 1709639288
Gültigkeit des Tokens
+}

Body

{
+  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJhdF9oYXNoIjoiSlVzc1l6aVQtelRnbXRScGVtQktrZyIsInN1YiI6InAyaC1SVDZFRVJnaGJqUDhSMXdueXo4azR4aE9od2Jlc0pSUDBYbnVTbW8iLCJvcmdhbml6YXRpb25OYW1lIjoiVGVzdCBHS1YtU1ZOT1QtVkFMSUQiLCJwcm9mZXNzaW9uT0lEIjoiMS4yLjI3Ni4wLjc2LjQuNDkiLCJpZE51bW1lciI6IlgxMTA0MTE2NzUiLCJhbXIiOlsibWZhIiwic2MiLCJwaW4iXSwiaXNzIjoiaHR0cHM6Ly9pZHAuZGV2LmdlbWF0aWsuc29sdXRpb25zIiwiZ2l2ZW5fbmFtZSI6IkRhcml1cyBNaWNoYWVsIEJyaWFuIFViYm8iLCJkaXNwbGF5X25hbWUiOiJEYXJpdXMgTWljaGFlbCBCcmlhbiBVYmJvIELDtmRlZmVsZCIsIm5vbmNlIjoidWRfYlFoYXZ0SWhEQTE0TzF2REVQZ0R1N1JUWkFIaEwiLCJhdWQiOiJlUmV6ZXB0QXBwIiwiYWNyIjoiZ2VtYXRpay1laGVhbHRoLWxvYS1oaWdoIiwiYXpwIjoiZVJlemVwdEFwcCIsImF1dGhfdGltZSI6MTcwOTYzODk4MywiZXhwIjoxNzA5NjM5Mjg4LCJpYXQiOjE3MDk2Mzg5ODgsImZhbWlseV9uYW1lIjoiQsO2ZGVmZWxkIiwianRpIjoiYTJjYjNjNThkMWJlMWZhOCJ9.DAUK1uVmmQd0MnrP5xUCaQziwTrmnFyEhhqS3BXPycUZwZEK9-vz1q3oCc7IbkKiPOyxp3Et0kJgpr2w4JY35g"
Ein verschachtelt enthaltenes JWT
+}

body.id_token.content.body.njwt.content

JWT

Headers
{
   "alg" : "BP256R1",
   "typ" : "JWT",
   "kid" : "puk_idp_sig"
Identifiziert den hier beschriebenen Schlüssel. Beschreibung siehe https://tools.ietf.org/html/rfc7517#section-4.5
-}

Body

{
-  "at_hash" : "rTXp5MY_urWbRtp4fclrnA",
Erste 16 Bytes des Hash des Authentication Tokens Base64(subarray(Sha256(authentication_token), 0, 16))
+}

Body

{
+  "at_hash" : "JUssYziT-zTgmtRpemBKkg",
Erste 16 Bytes des Hash des Authentication Tokens Base64(subarray(Sha256(authentication_token), 0, 16))
"sub" : "p2h-RT6EERghbjP8R1wnyz8k4xhOhwbesJRP0XnuSmo",
subject. Base64(sha256(audClaim + idNummerClaim + serverSubjectSalt))
"organizationName" : "Test GKV-SVNOT-VALID", "professionOID" : "1.2.276.0.76.4.49", @@ -1372,27 +1372,27 @@ "iss" : "https://idp.dev.gematik.solutions", "given_name" : "Darius Michael Brian Ubbo", "display_name" : "Darius Michael Brian Ubbo Bödefeld", - "nonce" : "iDGTMYNiYnj-0rG4Lecpgyke5rbevpCS",
String zu Verhinderung von CSRF-Attacken. Dieser Wert ist optional. Wenn er mitgegeben wird muss der gleiche Wert im abschließend ausgegebenen ID-Token wieder auftauchen. WICHTIG: Darf nicht länger als 512 Zeichen sein.
+ "nonce" : "ud_bQhavtIhDA14O1vDEPgDu7RTZAHhL",
String zu Verhinderung von CSRF-Attacken. Dieser Wert ist optional. Wenn er mitgegeben wird muss der gleiche Wert im abschließend ausgegebenen ID-Token wieder auftauchen. WICHTIG: Darf nicht länger als 512 Zeichen sein.
"aud" : "eRezeptApp", "acr" : "gematik-ehealth-loa-high", "azp" : "eRezeptApp", - "auth_time" : 1709628987,
Timestamp der Authentisierung
- "exp" : 1709629292,
Gültigkeit des Tokens
- "iat" : 1709628992,
Zeitpunkt der Ausstellung des Tokens
+ "auth_time" : 1709638983,
Timestamp der Authentisierung
+ "exp" : 1709639288,
Gültigkeit des Tokens
+ "iat" : 1709638988,
Zeitpunkt der Ausstellung des Tokens
"family_name" : "Bödefeld", - "jti" : "eed49d78253f315a"
A unique identifier for the token, which can be used to prevent reuse of the token. Value is a case-sensitive string.
-}

Signature

Was verified using Key puk_idp_sig

Encryption info

Was decrypted using Key token_key

body.access_token.content

JWE

Headers
{
+  "jti" : "a2cb3c58d1be1fa8"
A unique identifier for the token, which can be used to prevent reuse of the token. Value is a case-sensitive string.
+}

Signature

Was verified using Key puk_idp_sig

Encryption info

Was decrypted using Key token_key

body.access_token.content

JWE

Headers
{
   "alg" : "dir",
   "enc" : "A256GCM",
   "cty" : "NJWT",
-  "exp" : 1709629292
Gültigkeit des Tokens
-}

Body

{
-  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiYXQrSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJzdWIiOiJwMmgtUlQ2RUVSZ2hialA4UjF3bnl6OGs0eGhPaHdiZXNKUlAwWG51U21vIiwicHJvZmVzc2lvbk9JRCI6IjEuMi4yNzYuMC43Ni40LjQ5Iiwib3JnYW5pemF0aW9uTmFtZSI6IlRlc3QgR0tWLVNWTk9ULVZBTElEIiwiaWROdW1tZXIiOiJYMTEwNDExNjc1IiwiYW1yIjpbIm1mYSIsInNjIiwicGluIl0sImlzcyI6Imh0dHBzOi8vaWRwLmRldi5nZW1hdGlrLnNvbHV0aW9ucyIsImdpdmVuX25hbWUiOiJEYXJpdXMgTWljaGFlbCBCcmlhbiBVYmJvIiwiZGlzcGxheV9uYW1lIjoiRGFyaXVzIE1pY2hhZWwgQnJpYW4gVWJibyBCw7ZkZWZlbGQiLCJjbGllbnRfaWQiOiJlUmV6ZXB0QXBwIiwiYWNyIjoiZ2VtYXRpay1laGVhbHRoLWxvYS1oaWdoIiwiYXVkIjoiaHR0cHM6Ly9lcnAtdGVzdC56ZW50cmFsLmVycC5zcGxpdGRucy50aS1kaWVuc3RlLmRlLyIsImF6cCI6ImVSZXplcHRBcHAiLCJzY29wZSI6Im9wZW5pZCBlLXJlemVwdCIsImF1dGhfdGltZSI6MTcwOTYyODk4NywiZXhwIjoxNzA5NjI5MjkyLCJmYW1pbHlfbmFtZSI6IkLDtmRlZmVsZCIsImlhdCI6MTcwOTYyODk5MiwianRpIjoiYjk5OGE3NWE0ZWM0YTZlZCJ9.OYvtQwvEWdD8Aj-wMIxgeUlI5nl0i-K20d18S7cX3K4FtKfFmVANNQVMeJww2b5D6j19KnBqvY9TOTgY7A2Z2w"
Ein verschachtelt enthaltenes JWT
-}

body.access_token.content.body.njwt.content

JWT

Headers
{
+  "exp" : 1709639288
Gültigkeit des Tokens
+}

Body

{
+  "njwt" : "eyJhbGciOiJCUDI1NlIxIiwidHlwIjoiYXQrSldUIiwia2lkIjoicHVrX2lkcF9zaWcifQ.eyJzdWIiOiJwMmgtUlQ2RUVSZ2hialA4UjF3bnl6OGs0eGhPaHdiZXNKUlAwWG51U21vIiwicHJvZmVzc2lvbk9JRCI6IjEuMi4yNzYuMC43Ni40LjQ5Iiwib3JnYW5pemF0aW9uTmFtZSI6IlRlc3QgR0tWLVNWTk9ULVZBTElEIiwiaWROdW1tZXIiOiJYMTEwNDExNjc1IiwiYW1yIjpbIm1mYSIsInNjIiwicGluIl0sImlzcyI6Imh0dHBzOi8vaWRwLmRldi5nZW1hdGlrLnNvbHV0aW9ucyIsImdpdmVuX25hbWUiOiJEYXJpdXMgTWljaGFlbCBCcmlhbiBVYmJvIiwiZGlzcGxheV9uYW1lIjoiRGFyaXVzIE1pY2hhZWwgQnJpYW4gVWJibyBCw7ZkZWZlbGQiLCJjbGllbnRfaWQiOiJlUmV6ZXB0QXBwIiwiYWNyIjoiZ2VtYXRpay1laGVhbHRoLWxvYS1oaWdoIiwiYXVkIjoiaHR0cHM6Ly9lcnAtdGVzdC56ZW50cmFsLmVycC5zcGxpdGRucy50aS1kaWVuc3RlLmRlLyIsImF6cCI6ImVSZXplcHRBcHAiLCJzY29wZSI6Im9wZW5pZCBlLXJlemVwdCIsImF1dGhfdGltZSI6MTcwOTYzODk4MywiZXhwIjoxNzA5NjM5Mjg4LCJmYW1pbHlfbmFtZSI6IkLDtmRlZmVsZCIsImlhdCI6MTcwOTYzODk4OCwianRpIjoiY2MzMWM1YmQ4MDEzYjc1ZSJ9.jS23ZPUL26rxmBcyHcwwxAjJMNy21t9vcZCtdzSSeY1G09GM-Ksq_E4Fgqy_0npPtpHYwD63hpTiTE_pOXNRCQ"
Ein verschachtelt enthaltenes JWT
+}

body.access_token.content.body.njwt.content

JWT

Headers
{
   "alg" : "BP256R1",
   "typ" : "at+JWT",
   "kid" : "puk_idp_sig"
Identifiziert den hier beschriebenen Schlüssel. Beschreibung siehe https://tools.ietf.org/html/rfc7517#section-4.5
-}

Body

{
+}

Body

{
   "sub" : "p2h-RT6EERghbjP8R1wnyz8k4xhOhwbesJRP0XnuSmo",
subject. Base64(sha256(audClaim + idNummerClaim + serverSubjectSalt))
"professionOID" : "1.2.276.0.76.4.49", "organizationName" : "Test GKV-SVNOT-VALID", @@ -1406,12 +1406,12 @@ "aud" : "https://erp-test.zentral.erp.splitdns.ti-dienste.de/", "azp" : "eRezeptApp", "scope" : "openid e-rezept",
Der Scope entspricht dem zwischen E-Rezept-Fachdienst und IDP festgelegten Wert. Mit diesem antwortet der E-Rezept-Fachdienst bei fehlendem ACCESS_TOKEN und http-Statuscode 401.
- "auth_time" : 1709628987,
Timestamp der Authentisierung
- "exp" : 1709629292,
Gültigkeit des Tokens
+ "auth_time" : 1709638983,
Timestamp der Authentisierung
+ "exp" : 1709639288,
Gültigkeit des Tokens
"family_name" : "Bödefeld", - "iat" : 1709628992,
Zeitpunkt der Ausstellung des Tokens
- "jti" : "b998a75a4ec4a6ed"
A unique identifier for the token, which can be used to prevent reuse of the token. Value is a case-sensitive string.
-}

Signature

Was verified using Key puk_idp_sig

Encryption info

Was decrypted using Key token_key

Created Tue, 5 Mar 2024 09:56:36 +0100
\ No newline at end of file + \ No newline at end of file diff --git a/idp-client/pom.xml b/idp-client/pom.xml index 0ebcade..aab27d7 100644 --- a/idp-client/pom.xml +++ b/idp-client/pom.xml @@ -7,13 +7,13 @@ de.gematik.idp idp-global - 27.0.0 + 27.0.1 ../pom.xml de.gematik.idp idp-client - 27.0.0 + 27.0.1 jar diff --git a/idp-commons/pom.xml b/idp-commons/pom.xml index 649c736..d070a3f 100644 --- a/idp-commons/pom.xml +++ b/idp-commons/pom.xml @@ -6,12 +6,12 @@ de.gematik.idp idp-global - 27.0.0 + 27.0.1 ../pom.xml idp-commons - 27.0.0 + 27.0.1 diff --git a/idp-crypto/pom.xml b/idp-crypto/pom.xml index 30b06ed..45f1340 100644 --- a/idp-crypto/pom.xml +++ b/idp-crypto/pom.xml @@ -6,12 +6,12 @@ de.gematik.idp idp-global - 27.0.0 + 27.0.1 ../pom.xml idp-crypto - 27.0.0 + 27.0.1 diff --git a/idp-report/pom.xml b/idp-report/pom.xml index 9cc56df..946dc99 100644 --- a/idp-report/pom.xml +++ b/idp-report/pom.xml @@ -6,7 +6,7 @@ de.gematik.idp idp-global - 27.0.0 + 27.0.1 idp-report diff --git a/idp-sektoral/pom.xml b/idp-sektoral/pom.xml index fb40151..c648447 100644 --- a/idp-sektoral/pom.xml +++ b/idp-sektoral/pom.xml @@ -7,12 +7,12 @@ de.gematik.idp idp-global - 27.0.0 + 27.0.1 ../pom.xml idp-sektoral - 27.0.0 + 27.0.1 jar diff --git a/idp-server/pom.xml b/idp-server/pom.xml index 4293be9..5aacc3e 100644 --- a/idp-server/pom.xml +++ b/idp-server/pom.xml @@ -7,12 +7,12 @@ de.gematik.idp idp-global - 27.0.0 + 27.0.1 ../pom.xml idp-server - 27.0.0 + 27.0.1 jar diff --git a/idp-server/src/main/resources/application.yml b/idp-server/src/main/resources/application.yml index 3d93282..a479e3c 100644 --- a/idp-server/src/main/resources/application.yml +++ b/idp-server/src/main/resources/application.yml @@ -51,6 +51,10 @@ idp: description: "123 Test" audienceUrl: "https://template.audience.de" claimsToBeIncluded: [ ORGANIZATION_NAME, PROFESSION_OID, ID_NUMBER ] + epa: + description: "epa scopes" + audienceUrl: "https://epa.audience.de" + claimsToBeIncluded: [ ORGANIZATION_NAME, PROFESSION_OID, ID_NUMBER ] registeredClient: eRezeptApp: redirectUri: http://redirect.gematik.de/erezept diff --git a/idp-test/pom.xml b/idp-test/pom.xml index 48a6071..bb08f42 100644 --- a/idp-test/pom.xml +++ b/idp-test/pom.xml @@ -6,11 +6,11 @@ de.gematik.idp idp-global - 27.0.0 + 27.0.1 ../pom.xml idp-test - 27.0.0 + 27.0.1 diff --git a/idp-testsuite/pom.xml b/idp-testsuite/pom.xml index 1d4e3e9..51acc9f 100644 --- a/idp-testsuite/pom.xml +++ b/idp-testsuite/pom.xml @@ -7,12 +7,12 @@ de.gematik.idp idp-global - 27.0.0 + 27.0.1 ../pom.xml idp-testsuite - 27.0.0 + 27.0.1 jar diff --git a/pom.xml b/pom.xml index cc50aaa..ce24faf 100644 --- a/pom.xml +++ b/pom.xml @@ -13,7 +13,7 @@ de.gematik.idp idp-global - 27.0.0 + 27.0.1 pom IDP