Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Campi JWT CUSTOM CLAIMS subject #1392

Open
Sebaurzi02 opened this issue Dec 9, 2024 · 17 comments
Open

Campi JWT CUSTOM CLAIMS subject #1392

Sebaurzi02 opened this issue Dec 9, 2024 · 17 comments
Labels
VERIFY The fixed issue needs to be verified and closed by the user

Comments

@Sebaurzi02
Copy link

Salve a tutti, per la compilazione dei seguenti campi CUSTOM CLAIMS presenti nel JWT Signature :
-subject_organization_id,
-subject_organization,
-subject_application_id,
-subject_application_vendor,
-subject_application_version;

cosa dovrei inserire nello specifico?
in attesa di un riscontro , a presto.

@LucaRogledi
Copy link

Buongiorno,
Per la compilazione dei campi indicati, può fare riferimento a quanto riportato in documetazione - integrazione-gateway.

-subject_organization_id: codice della regione indicato in tabella 6.4-3 AD 2.5
-subject_organization: regione indicata in tabella 6.4-3 AD 2.5
-subject_application_id: ID applicativo dell’utente
-subject_application_vendor: Vendor applicativo dell’utente
-subject_application_version: Versione applicativo dell’utente

Grazie

@LucaRogledi LucaRogledi added VERIFY The fixed issue needs to be verified and closed by the user and removed ON-HOLD labels Dec 9, 2024
@Sebaurzi02
Copy link
Author

{"type":"https://govway.org/handling-errors/401/TokenAuthenticationFailed.html","title":"TokenAuthenticationFailed","status":401,"detail":"Invalid token","govway_id":"98df2461-b60f-11ef-a4d1-005056ae54fa"}

il Gateway mi risponde con questo errore, allego payload utilizzati

Payload FSE-Signature:
{"iss": "integrity:S1...........",
"iat": 1733478901,
"exp": 1733824501,
"jti": "1540918801",
"aud": "https://modipa-val.fse.salute.gov.it/govway/rest/in/FSE/gateway/v1",
"sub": "VRDMRC67T20I257E^^^&2.16.840.1.113883.2.9.4.3.2&ISO",
"subject_role": "AAS",
"purpose_of_use": "TREATMENT",
"subject_application_id": "subject-application-id",
"subject_application_vendor": "subject-application-vendor",
"subject_application_version": "subject-application-version",
"locality": "LABORATORIO DI PROVA^^^^^&2.16.840.1.113883.2.9.4.1.3&ISO^^^^190111123456",
"subject_organization_id": "190",
"subject_organization": "Regione Sicilia",
"aud": "https://modipa-val.fse.salute.gov.it/govway/rest/in/FSE/gateway/v1",
"patient_consent": true,
"action_id": "CREATE",
"resource_hl7_type": "('11502-2^^2.16.840.1.113883.6.1')",
"jti": "1234",
"person_id":"VRDMRC67T20I257E^^^&2.16.840.1.113883.2.9.4.3.2&ISO"}

Payload FSE-Auth:
{"iss": "auth:S1..........",
"iat": 1540890704,
"exp": 1540918800,
"jti": "1540918800",
"aud": "https://modipa-val.fse.salute.gov.it/govway/rest/in/FSE/gateway/v1",
"sub": "VRDMRC67T20I257E^^^&2.16.840.1.113883.2.9.4.3.2&ISO"}

@LucaRogledi
Copy link

Buongiorno,
decodificando il jtw bearer e signature della chiamata con "govway_id":"98df2461-b60f-11ef-a4d1-005056ae54fa" tramite il tool online jwt.io risulta:

SIGNATURE

  • il campo x5c nella sezione header non è contenuto in un array come indicato in documentazione
    image
    image
  • il payload riuslta decodificato come stringa invece che come json, contenendo backslash e separatori \ \t.
    image
  • iss contiene auth invece di integrity "auth:S1#111#MEDIANETSERVIZISRLX1\" invece di "integrity:S1#111#MEDIANETSERVIZISRLX1"

BEARER

  • il campo x5c nella sezione header non è contenuto in un array come indicato in documentazione
  • iss contiene un common name diverso dal certificato di firma utilizzato per il token Signature "auth:190201123456XX" invece di "auth:S1#111#MEDIANETSERVIZISRLX1"
    image

I token utilizzati presentano un Invalid Signature
image
La invitiamo gentilmente a riprovare dopo aver modificato quanto indicato e verificare tramite il tool online jwt.io che risulti Signature Verified.
In caso possa esserle utile le segnaliamo che è possibile scaricare il tool jwt-generator per la generazione dei token.
Grazie

@Sebaurzi02
Copy link
Author

Ho modificato quanto indicato adesso il gateway restituisce un errore con codice 400
{"type":"https://govway.org/handling-errors/400/InteroperabilityInvalidRequest.html","title":"InteroperabilityInvalidRequest","status":400,"detail":"Received request is not conform to the required interoperability profile","govway_id":"daa699b8-b61e-11ef-808a-005056ae7395"} :

utilizzando jwt.io per entrambi i token ho signature verified
img2

@LucaRogledi LucaRogledi added ON-HOLD and removed VERIFY The fixed issue needs to be verified and closed by the user labels Dec 9, 2024
@LucaRogledi
Copy link

Buon pomeriggio,
Dalle verifiche sui token della chiamata con "govway_id":"daa699b8-b61e-11ef-808a-005056ae7395" risulta che il Token è scaduto in data '2018-10-30_18:00:00.000' Token creato da troppo tempo (data creazione: '2018-10-30_10:11:44.000').
La invitiamo gentilmente a verificare che i campi iat e exp dei token bearer e signature siano valorizzati correttamente.

Bearer
image

Signature
image

Grazie

@LucaRogledi LucaRogledi added VERIFY The fixed issue needs to be verified and closed by the user and removed ON-HOLD labels Dec 9, 2024
@Sebaurzi02
Copy link
Author

Buon pomeriggio,
come indicato ho corretto i campi adesso provando ad effettuare la POST ricevo questo errore, forse dovuto alla mancanza di file Attachment o manca qualcosa nel body della richiesta? Grazie per la disponibilità rimango in attesa
:
{"type":"https://govway.org/handling-errors/400/InvalidRequestContent.html","title":"InvalidRequestContent","status":400,"detail":"Request content not conform to API specification: Validation error(s) :\nAn error occurred when getting the body content from type 'multipart/form-data; charset=utf-8'.\njava.io.IOException: org.apache.commons.fileupload.FileUploadException: the request was rejected because no multipart boundary was found (code: 201)\n","govway_id":"9db0140f-b63c-11ef-a4d1-005056ae54fa"}

@IStacchiotti IStacchiotti added ON-HOLD and removed VERIFY The fixed issue needs to be verified and closed by the user labels Dec 10, 2024
@IStacchiotti
Copy link

Buongiorno, come riferimento, la rimandiamo a questo link in documentazione che riporta un esempio di richiesta di tipo “Verifica con Attachment”.
Dalle nostre analisi inoltre, risulta che non è stato allegato un pdf alla richiesta: potrebbe riprovare allegandolo?
Le chiederemmo inoltre di specificare il client utilizzato.
Grazie

@IStacchiotti IStacchiotti added VERIFY The fixed issue needs to be verified and closed by the user and removed ON-HOLD labels Dec 10, 2024
@MedianetServiziSrl
Copy link

Abbiamo provato ad allegare un PDF di test come indicato attendiamo riscontro, l'errore sembra non cambiare, inoltre cosa si intende per specificare il client utilizzato?
:
{"type":"https://govway.org/handling-errors/400/InvalidRequestContent.html","title":"InvalidRequestContent","status":400,"detail":"Request content not conform to API specification: Validation error(s) :\nAn error occurred when getting the body content from type 'multipart/form-data'.\njava.io.IOException: org.apache.commons.fileupload.FileUploadException: the request was rejected because no multipart boundary was found (code: 201)\n","govway_id":"8bd4499b-b6eb-11ef-808a-005056ae7395"}

@IStacchiotti
Copy link

Ok, grazie per il riscontro. State utilizzando ad esempio Postman per l'invocazione oppure riga di comando?

@IStacchiotti IStacchiotti added question Further information is requested and removed VERIFY The fixed issue needs to be verified and closed by the user labels Dec 10, 2024
@MedianetServiziSrl
Copy link

L'invocazione della POST viene effettuato da codice, stiamo effettuando dei test dal nostro sistema interno, nella richiesta precedente ci confermate recezione PDF di test?

@IStacchiotti
Copy link

IStacchiotti commented Dec 10, 2024

Buonasera, confermiamo che ora il file pdf risulta allegato alla richiesta.

Di seguito il message.bin che risulta a sistema per la transazione con govway_id "8bd4499b-b6eb-11ef-808a-005056ae7395":

--3a392f47-aae7-4289-ac4a-8adfaeeade15
Content-Type: application/json; charset=utf-8
Content-Disposition: form-data; name=entry

requestBody={"healthDataFormat": "CDA","activity": "VERIFICA","mode": "ATTACHMENT"}
--3a392f47-aae7-4289-ac4a-8adfaeeade15
Content-Type: application/pdf
Content-Disposition: form-data; name=attachment
[Bin del PDF]
--3a392f47-aae7-4289-ac4a-8adfaeeade15--

Si seguito invece un esempio per una transazione avvenuta con successo:

----------020723154735284
Content-Disposition: form-data; name="requestBody"
Content-Type: application/json
Content-Transfer-Encoding: binary
{
  "healthDataFormat": "CDA",
  "mode": "ATTACHMENT",
  "activity": "VALIDATION"
}
----------020723154735284
Content-Disposition: form-data; name="file"; filename="20230207154734-24979.pdf"
Content-Type: application/pdf
Content-Transfer-Encoding: binary
[Bin del PDF]
----------020723154735284--

Invitiamo pertanto a:

  1. sostituire nella sezione dedicata alla request body, name=entry requestBody= con name="requestBody"
  2. sostituire nella sezione dedicata al pdf, name=attachment con name="file"; filename="%NOME_PDF%.pdf"

Nel caso vi possa essere di aiuto, rimandiamo anche al ticket #777: alcuni fornitori hanno ricevuto un errore simile tentando l'invocazione da codice.
Rimaniamo a disposizione nel caso in cui l'errore dovesse persistere, grazie

@MedianetServiziSrl
Copy link

Buonasera, la ringrazio del tempo e degli esempi, in questo caso molto esaustivi; dopo alcune prove, siamo arrivati al punto di ricevere questa risposta dalla chiamata "POST" :

{"traceID":"7b4278ba430949f3","spanID":"7b4278ba430949f3","type":"/msg/jwt-validation","title":"Campo token JWT non valido.","detail":"Il codice fiscale nel campo sub non è corretto","status":403,"instance":"/jwt-mandatory-field-malformed","workflowInstanceId":"UNKNOWN_WORKFLOW_ID"}


Potrei sapere se l'errore è dato dal fatto che il json utilizzato per creare il jwt è un esempio o se effettivamete si sta sbagliando qualcosa nella realizzazione di quest'ultimo??

Grazie anticipatamente,
Buona serata

@vigliottim vigliottim added ON-HOLD and removed question Further information is requested labels Dec 11, 2024
@vigliottim
Copy link

Buongiorno,
analizzando i log della chiamata con "traceID":"7b4278ba430949f3", è emerso che l'errore ricevuto in risposta è causato dalla valorizzazione non corretta del campo sub contenuto nei JWT.

image

FSE-JWT-Signature Token/Authorizazion Bearer Token:
"sub": "VRDMRC67T20I257E^^^&2.16.840.1.113883.2.9.4.3.2&ISO"

Infatti, il codice fiscale utilizzato (VRDMRC67T20I257E) è stato inserito all'interno della documentazione a titolo di esempio.

image

In assenza di un CF valido e al fine di svolgere chiamate di test ai servizi, può valorizzare il campo sub come indicato di seguito:

"sub": "PROVAX00X00X000Y^^^&2.16.840.1.113883.2.9.4.3.2&ISO"

Inoltre, le facciamo presente che il codice fiscale contenuto all'interno del campo person_id deve essere quello del paziente del CDA2 (attributo extension all'interno dell'elemento patientRole/id).

image
FSE-JWT-Signature Token: "person_id": "VRDMRC67T20I257E^^^&2.16.840.1.113883.2.9.4.3.2&ISO"
image

Per ulteriori informazioni sui campi contenuti nei token la invitiamo a consultare la documentazione al link:
https://github.com/ministero-salute/it-fse-support/tree/main/doc/integrazione-gateway#131-campi-contenuti-nei-jwt

@vigliottim vigliottim added VERIFY The fixed issue needs to be verified and closed by the user and removed ON-HOLD labels Dec 11, 2024
@MedianetServiziSrl
Copy link

Buonasera,

inviando la richiesta POST dopo aver modificato i campi indicati, il gateway restituisce questo codice è un errore o la richiesta è andata a buon fine?

Saluti.

{"traceID":"c44e0f3669fe5d73","spanID":"c44e0f3669fe5d73","workflowInstanceId":"2.16.840.1.113883.2.9.2.190.4.1.1.dbb7e87032f3d8befa995e873d009a40216405c8908f198349a1830e582c4a10.7a36b5fa87^^^^urn:ihe:iti:xdw:2013:workflowInstanceId"}

@vigliottim
Copy link

Buonasera,
la chiamata da lei effettuata si è conclusa con successo.
Può verificarne i dettagli chiamando il servizio status:

Rimaniamo a disposizione per ulteriori chiarimenti.

@MedianetServiziSrl
Copy link

Buonasera, sto cercando di inviare un CDA PSS, ma ricevo questo errore, quale sarebbe il codice coretto hl7 per il PSS?:

{"traceID":"c9e4ae319b5dc3b1","spanID":"c9e4ae319b5dc3b1","type":"/msg/jwt-validation","title":"Campo token JWT non valido.","detail":"JWT payload: Tipologia documento diversa dalla tipologia di CDA (code - codesystem)","status":403,"instance":"/jwt-document-type","workflowInstanceId":"2.16.840.1.113883.2.9.2.120.4.4.a9f4347f79cf3e1cf2ff4d79eaf6d0cf8d4a82cf3fb4e942adcc54e7fc27772e.f1d7b3283b^^^^urn:ihe:iti:xdw:2013:workflowInstanceId"}

Saluti.

@vigliottim
Copy link

Buonasera,
il codice relativo alla tipologia documentale PSS con cui valorizzare l'attributo code del tag code del CDA2 è il seguente: code="60591-5"

image

image

Inoltre, le facciamo presente che il campo resource_hl7_type contenuto nel JWT è ottenuto dal concatenamento dei campi code e codesystem secondo il seguente formato:
"resource_hl7_type": "('CODE^^CODESYSTEM')"
La invitiamo a controllare che il valore del campo CODE inserito in resource_hl7_type del JWT sia coerente con quello inserito nel tag code contenuto all'interno del CDA (relativo alla tipologia di documento in esame).
Di seguito può trovare alcuni link utili:

Rimaniamo a disposizione per ulteriori chiarimenti.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
VERIFY The fixed issue needs to be verified and closed by the user
Projects
None yet
Development

No branches or pull requests

5 participants