Closed antoniopantocb closed 1 year ago
Buongiorno, state facendo dei test in ambiente di produzione anzichè collaudo. Questa la url di collaudo: https://modipa-val.anpr.interno.it/govway/rest/in/MinInternoPortaANPR-PDND/C029-servizioAccertamentoDatiAnagrafici/v1/anpr-service-e002'
Naturalmente dovrete sottoscrivere un accordo di fruizione sulla pdnd di collaudo
Buongiorno, chiedo all mia amministrazione di attivarla e appena pronta rilancio lo script e l'aggiorno se tutto ok. Grazie intanto
Antonio Pantò UOC - Innovazione tecnologica via XXV Aprile, 4 - 20092 Cinisello Balsamo 02 66023 - 711 [ http://www.comune.cinisello-balsamo.mi.it/ | www.comune.cinisello-balsamo.mi.it ] [ http://www.facebook.com/comunedicinisellobalsamo | www.facebook.com/comunedicinisellobalsamo ]
Da: "amollicone1982" @.> A: "italia/anpr" @.> Cc: "antoniopantocb" @.>, "Author" @.> Inviato: Martedì, 19 settembre 2023 9:44:36 Oggetto: Re: [italia/anpr] [PDND C029] Errore di comunicazione con e-Service PDND C029-servizioAccertamentoDatiAnagrafici-approvazione_automatica (Issue #4105)
Buongiorno, state facendo dei test in ambiente di produzione anzichè collaudo. Questa la url di collaudo: [ https://modipa-val.anpr.interno.it/govway/rest/in/MinInternoPortaANPR-PDND/C029-servizioAccertamentoDatiAnagrafici/v1/anpr-service-e002 | https://modipa-val.anpr.interno.it/govway/rest/in/MinInternoPortaANPR-PDND/C029-servizioAccertamentoDatiAnagrafici/v1/anpr-service-e002 ] '
— Reply to this email directly, [ https://github.com/italia/anpr/issues/4105#issuecomment-1724992531 | view it on GitHub ] , or [ https://github.com/notifications/unsubscribe-auth/BCU7DWDQL6UQT6NYI7IZBV3X3FEN3ANCNFSM6AAAAAA442LVSQ | unsubscribe ] . You are receiving this because you authored the thread. Message ID: <italia/anpr/issues/4105/1724992531 @ github . com>
Buonasera, richiamando il servizio in ambiente di collaudo la piattaforma PDND ci ritorna l'access token da spendere ma il servizio ANPR ritorna il seguente messaggio:
Checkresult: access_token Expire_in: :600, Returned with status 60 and output: Array ( )
Può darci qualche dettaglio del problema? Grazie in anticipo Cordialmente
Ci dovrebbe essere un govway-id restituito dal servizio. Quale url sta chiamando?
Ho notato che in PDND indicano uno diverso dallo yalm
se vede su pdnd lo yaml la url è leggermente diversa dall'audience: https://modipa-val.anpr.interno.it/govway/rest/in/MinInternoPortaANPR-PDND/C015-servizioAccertamentoGeneralita/v1
quello sopra indicato è l'aud
ok ma nella chiamata abbiamo messo quello giusto, corretto?
grazie per l'aiuto così tempestivo, è un buon servizio
quello non lo so. lo chiedo a voi. se chiamate la url giusta ricevete sicuramente una risposta con codice http (404, 400) e un govway-id
abbiamo chiamato questa url https://modipa-val.anpr.interno.it/govway/rest/in/MinInternoPortaANPR-PDND/C029-servizioAccertamentoDatiAnagrafici/v1/anpr-service-e002 E' corretto?
si è corretta. la chiamate in POST? Cosa ricevete in risposta?
in POST con una curl
"curl -X 'POST' \ 'https://modipa-val.anpr.interno.it/govway/rest/in/MinInternoPortaANPR-PDND/C029-servizioAccertamentoDatiAnagrafici/v1/anpr-service-e002' \ -H 'accept: application/json' \ -H 'Authorization: Bearer " . $voucher . "' \ -H 'Agid-JWT-TrackingEvidence: " . $jwt . "' \ -H 'Digest: SHA-256=" . $jwt_sha256 . "' \ -H 'Content-Type: application/json' \ -d '{ \"idOperazioneClient\": \"00001\", \"criteriRicerca\": { \"codiceFiscale\": \"QRTSGT90A01H501B\" }, \"datiRichiesta\": { \"dataRiferimentoRichiesta\": \"2023-09-19\", \"motivoRichiesta\": \"100-23\", \"casoUso\": \"C029\" } }' ";
riceviamo:
Returned with status 60 and output: Array ( )
ho verificato che 60 è un errore di curl che non trusta il certificato dell'endpoint che puntate
Si il voucher ci viene restituito correttamente, se serve lo posso mettere in chiaro (per mail?)
Come info: In ambiente di produzione l'id del messaggio di eerore veniva restituito da ANPR... Il codice è lo stesso (php)
Non trusta il certificato perché viene respinto da ANPR? forse è dipeso da sha256? noi facciamo l'has del jwt finale, è forse un errore?
grazie ancora infinite per la pazienza (top)
potrebbe essere che noi abbiamo un TLS più alto del vostro?
dovete mettere l'opzione -k. Stiamo parlando di trustare un certificato server. Non c'entra il livello di tls
ci provo e ti aggiorno
giusto!
ora ritorna l'errore :D questo:
Checkresult: access_token Expire_in: :600, Returned with status 0 and output: Array ( [0] => {"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":"324b0088-56fb-11ee-870a-005056ae1884"} )
Fine processo
manca il token Agid-JWT-Signature
ok che ha lo stesso contenuto di Agid-JWT-TrackingEvidence giusto?
no, avete letto le linee guida su come implementare i token richiesti (AUDIT_REST_02 e INTEGRITY_REST_02)? Documento operativo - Pattern sicurezza - v1.1.pdf
se leggete la guida vedrete che anche Agid-JWT-TrackingEvidence è fatto male
Certo le abbiamo lette:
un esempio: POST https://api.erogatore.example/rest/service/v1/hello/echo/ HTTP/1.1 Accept: application/json Autorization: Bearer AftgSSDGciFEEOiJfsI1NfsdfsdfiIsInR5c.vfd5... Agid-JWT-TrackingEvidence: eyJhbGciOiJSUzI1NiIsInR5c.vz8... Digest: SHA-256=cFfTOCesrWTLVzxn8fmHl4AcrUs40Lv5D275FmAZ96E= Content-Type: application/json {"testo": "Ciao mondo"}
Evidence contiene il JWT almeno sembra. Se non pjuoi al momento esserci di ulteriore aiuto leggeremo meglio, ma non sono fatte benissimo...
nel Agid-JWT-TrackingEvidence inviato mancano sicuramente loa, userid, userlocation come indicato dalla guida
lo so, il problema è la frammentazione delle guide, è davvero oneroso mettere insieme tutto il materiale. Se ci si basa sulla piattaforma PDND e sugli esempi in piattaforma molto non viene detto o esemplificato...
Aggiungo e ti aggiorno grazie ancora intanto
sicuramente è frammentata L'idea è che nello yaml sono censite le info richieste dal servizio (per es. AUDIT_REST_02 e INTEGRITY_REST_02) e il fruitore sul sito di agid si va a vedere come implemetare i profili censiti (l'allegato che vi ho dato lo trovate sul sito agid per le linee guida di interoperabilità). Ci aggiorniamo
Buongiorno, abbiamo fatto i compiti e ora l'errore restituito è il seguente:
Checkresult: access_token Expire_in: :600, Returned with status 0 and output: Array ( [0] => {"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":"19003da5-57b4-11ee-983b-005056ae5232"} )
Fine processo
Ho dubbio sull'utilizzo di UTF8... se necessario anche in php... volevo però capire il significato del govway_id restituito.
Grazie come sempre del prezioso aiuto Antonio
Questo è il payload del token integrity inviato da voi: { "iss": "b37f56fb-ac24-43a9-95bb-c22d05a679fc", "sub": "b37f56fb-ac24-43a9-95bb-c22d05a679fc", "aud": "https://modipa-val.anpr.interno.it/govway/rest/in/MinInternoPortaANPR/C029-servizioAccertamentoDatiAnagrafici/v1", "purposeId": "56080e6b-b5ed-4c66-9f94-0f23b3ce96d4", "jti": "635f8c5f-5aa8-4bb7-97c1-79d8e186b6f9", "iat": 1695217107, "exp": ":600,", "signed_headers": { "digest": "N2VlODc5YTg0OGRjN2ZmMDA2NjA4ZTVmM2I4MWI4ZTNjODJlZDFiMWUxOTdiNjQ4ZjBkNWQwOTJjMjc2YTAyZQ==", "content-type": "application/json", "content-encoding": "UTF-8" } }
Gli errori sono i seguenti: Token con claim 'exp' non valido: Character : is neither a decimal digit number, decimal point, nor "e" notation exponential mark. Header HTTP 'Digest' possiede un valore non corrispondente al messaggio Claim 'signed_headers' con un formato non valido; atteso un array Header HTTP 'Digest' non presente nella lista degli header firmati (token claim 'signed_headers')
Vi allego il payload di un token fatto bene: "nbf": 1695218061, "exp": 1695218361, "jti": "377d4eef-57b5-11ee-ba10-005056ae0307", "aud": "https://modipa-val.anpr.interno.it/govway/rest/in/MinInternoPortaANPR/C019-servizioAccertamentoEsistenzaVita/v1", "client_id": "6bbb319b-dd52-4435-b619-f07b3dd8005a", "iss": "MUR-INTRA", "sub": "ANIS", "signed_headers": [ { "digest": "SHA-256=l9R0KLIrHVR8lxPEFfCoecYYUypk7BUmI64hJykEg+c=" }, { "content-type": "application/json" } ] }
grazie adesso sistemo grazie 100 (top)
Ho sistemato i due errori, ho visto anche che nel token di esempio viene riportato clientId e non purposeId, e non viene riportato "content-encoding": "UTF-8" , ma non so se è una differenza critica. La chiamata ha generato il seguente errore: govway_id":"ab9a5e43-57bd-11ee-983b-005056ae5232"
sempre se è possibile sapere il dettaglio sarebbe fantastico, intanto elimino anche le sopracitate differenze
grazie ancora intanto
Header HTTP 'Digest' possiede un valore non corrispondente al messaggio Header HTTP 'content-encoding', dichiarato tra gli header firmati, non trovato nell'http header
ho calcolato il digest del payload e dovrebbe essere questo fuh5qEjcf/AGYI5fO4G448gu0bHhl7ZI8NXQksJ2oC4= invece voi passate altro
"govway_id":"d4efe450-57c1-11ee-8298-005056ae1884"
forse è rimasto solo il problema del digest. Grazie per il calcolo. Calcolo il digest sul corpo della richiesta, fordse non è corretto... approfondisco (provo a calcolarlo per vedere se viene uguale a quello da te indicato) (top)
infatti ora l'errore è solo "Header HTTP 'Digest' possiede un valore non corrispondente al messaggio"
buongiono afrontera85 corretto anche l'ultimo errore ma (aiuto!) questo il nuovo codice di errore: "govway_id":"42d74658-584b-11ee-8d8c-005056ae1884"
Header HTTP 'Digest' presente in una richiesta con http payload vuoto
grazie intanto afrontera85 avevo dimenticato di aggiornare una variabile nel riscrivere il codice. Ora però il codice di errore è il seguente: "govway_id":"e4692ccb-5850-11ee-9bb9-005056ae5232"
Ma non esiste una tabella dei codici da consultare direttamente per fare il debug del codice? Per forutna voi siete (top) molto efficienti ma consultare direttamente il bug permetterebbe una risoluzione dei problemi ancora più veloce
grazie ad ogni modo Antonio
suppongo sia questo l'unico modo di procedere...poi il mio collega saprà rispondere meglio al riguardo Intanto l'errore è: Validazione security token ModI 'AUDIT' della richiesta fallita Riscontrate 2 eccezioni. [Header 'Agid-JWT-TrackingEvidence'] Token senza claim 'userID' [Header 'Agid-JWT-TrackingEvidence'] Token senza claim 'userLocation'
Questo è l'unico modo per evitare attacchi di information disclosure. L'idea è quella di mettere a disposizione a breve un client di esempio. Un eventuale attaccante che un codice di errore parlante riuscirebbe a capire se ha superato o meno l'errore facendo invocazioni massive
Buongiorno amollicone ok La request è andata a buon fine, l'ultimo problema era una questione di lettere maiuscole e minuscole, quindi da rispettare nella stesura del nome dei claim. Riporto questo errore così a chi legge può tornare utile e non perdere tempo.
Grazie ancora di tutto (top)
Buongiorno, effettuando una chiamata verso il vostro servizio di interop della piattaforma PDND (C029-servizioAccertamentoDatiAnagrafici) abbiamo ricevuto un errore di cui vorremmo avere qualche specifica.
Nel dettaglio:
Data di invio: 18/09/2023
La piattaforma PDND ha generato correttamente l'access token che abbiamo incluso nell'header della chiamata.
I nostri dati inviati: "curl -X 'POST' \ 'https://modipa.anpr.interno.it/govway/rest/in/MinInternoPortaANPR-PDND/C029-servizioAccertamentoDatiAnagrafici/v1/anpr-service-e002' \ -H 'accept: application/json' \ -H 'Authorization: Bearer " . $voucher . "' \ -H 'Agid-JWT-TrackingEvidence: " . $jwt . "' \ -H 'Digest: SHA-256=" . $jwt_sha256 . "' \ -H 'Content-Type: application/json' \ -d '{ \"idOperazioneClient\": \"6000\", \"criteriRicerca\": { \"codiceFiscale\": \"XXX\" }, \"datiRichiesta\": { \"dataRiferimentoRichiesta\": \"2023-09-18\", \"motivoRichiesta\": \"XXX-23\", \"casoUso\": \"C029\" } }' "
L'errore ricevuto:
Returned with status 0 and output: Array ( [0] => {"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":"0efa01ac-5628-11ee-a7c4-005056ae6555"} )
Grazie