Closed TheVise1975 closed 11 months ago
Ho fatto una prova anche oggi, cambiando alcune cose sulla "segnature", ma ricevo ancora questo errore:
{"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":"20b2f97c-8459-11ee-b400-005056ae1884"}
Il servizio C003 prevede dati diversi in criteriRicerca
:
- codice fiscale
- nome
- cognome
- sesso
- data di nascita
- luogo di nascita: comune o stato oppure:
- idANPR
quelli che stai usando adesso sono idonei, ad esempio, per il servizio C001, dove puoi interrogare per CF:
- codice fiscale oppure:
- nome
- cognome
- sesso
- data di nascita
- luogo di nascita: comune o stato oppure:
- idANPR
Fai riferimento alle specifiche dei singoli servizi ANPR che trovi in PDND
Il problema dovuto al fatto che il token di integrity non è corretto Token senza claim 'signed_headers'
Quello che possiamo dare è un esempio di client che implementa i profili di cui Anpr necessita.
Il servizio C003 prevede dati diversi in
criteriRicerca
:
- codice fiscale
- nome
- cognome
- sesso
- data di nascita
- luogo di nascita: comune o stato oppure:
- idANPR
quelli che stai usando adesso sono idonei, ad esempio, per il servizio C001, dove puoi interrogare per CF:
- codice fiscale oppure:
- nome
- cognome
- sesso
- data di nascita
- luogo di nascita: comune o stato oppure:
- idANPR
Fai riferimento alle specifiche dei singoli servizi ANPR che trovi in PDND
Per caso hai un JSON di prova ?
Il problema dovuto al fatto che il token di integrity non è corretto Token senza claim 'signed_headers'
Quello che possiamo dare è un esempio di client che implementa i profili di cui Anpr necessita.
3964
Io ho dato un'occhiata al client java, da cui ho provato a implementare la mia versione C#...ma se il java funziona (non ho testato) e il mio no...qualcosa vuol dire che l'ho persa per strada...
Esiste una versione declinata per il servizio C003?
Per quanto riguarda gli altri servizi del Ministero, esiste qualcosa che a fronte del codice fiscale mi restituisce i dati anagrafici e residenza?
Grazie V.
Una cosa tipo questa?
{ "idOperazioneClient":"1", "criteriRicerca":{ "codiceFiscale":"STTSGT90A01H501J", "cognome":"SOGGETTO", "nome":"SETTIMO", "sesso":"M", "datiNascita":{ "dataEvento":"1990-01-01", "luogoNascita":{ "comune":{ "nomecomune":"ROMA", "siglaProvinciaIstat":"RM" } } } }, "datiRichiesta":{ "dataRiferimentoRichiesta":"2023-11-23", "motivoRichiesta":"PROT.NUM.12345", "casoUso":"C003" }
es. C003
{
"idOperazioneClient": "0",
"criteriRicerca": {
"codiceFiscale": "DLDRND00R10C573B"
},
"verifica": {
"generalita": {
"codiceFiscale": {
"codFiscale": "DLDRND00R10C573B"
},
"cognome": "DEL DEO",
"nome": "ARMANDO",
"sesso": "M",
"dataNascita": "2000-10-10+02:00",
"luogoNascita": {
"comune": {
"nomeComune": "CESENA",
"codiceIstat": "040007",
"siglaProvinciaIstat": "FC"
}
}
}
},
"datiRichiesta": { "dataRiferimentoRichiesta": "2021-12-13", "motivoRichiesta": "1", "casoUso": "C003" } }
Ripeto che i problemi che hai sono dovuti ai token. Non sei ancora arrivato a problemi sul payload della richiesta. Il client java, se sostituisci tutte le info in pdnd.properties (clientid, purposeid del c003 etc.) e nel file test incolla una richiesta di C003 (vedi sopra) vedrai che funziona. Lo hanno provato già in tanti
Premessa, ho configurato il client JAVA e con il JSON che mi hai girato funziona.
Adesso veniamo alle note dolenti, ho ricreato passo passo la generazione dei token in C# e ottengo ancora un http400.
Premesso che l'header è sempre { "kid": "ROwdvbcXiCzbzuzKkLTsl4DVD7_fWZA535wmhddRur8", "alg": "RS256", "typ": "JWT" }
Questo è il mio token AGID-JWT-TrackingEvidence eyJraWQiOiJST3dkdmJjWGlDemJ6dXpLa0xUc2w0RFZEN19mV1pBNTM1d21oZGRSdXI4IiwiYWxnIjoiUlMyNTYiLCJ0eXAiOiJKV1QifQ.eyJqdGkiOiIwMzM5OWNiMi0xYmM5LTQ1Y2YtODRlYi0xZTI3MWQyYzU5MWYiLCJwdXJwb3NlSWQiOiIyNDNkODEwYi1lZTNjLTRlNGItYmYxYS01N2QwZjBlMjk3ZDIiLCJkbm9uY2UiOiIxMjM0NTY3ODkwMTIzIiwidXNlcklEIjoiVXNlcjEyMyIsInVzZXJMb2NhdGlvbiI6IjI2LjIuMTIuMjMiLCJMb0EiOiJMT0EzIiwiYXVkIjoiaHR0cHM6Ly9tb2RpcGEtdmFsLmFucHIuaW50ZXJuby5pdC9nb3Z3YXkvcmVzdC9pbi9NaW5JbnRlcm5vUG9ydGFBTlBSL0MwMDMtc2Vydml6aW9WZXJpZmljYURpY2hHZW5lcmFsaXRhL3YxIiwiaXNzIjoiN2RlNzBiODQtZWJlOS00ZWI0LWI0MWYtNDViZjdkZjBhODcxIiwic3ViIjoiN2RlNzBiODQtZWJlOS00ZWI0LWI0MWYtNDViZjdkZjBhODcxIiwiaWF0IjoxNzAxMzQ0MTU3LCJuYmYiOjE3MDEzNDQxNTcsImV4cCI6MTcwMTM0NDQ1N30.U4Ht82QAnsKREpFY16eJMBWEy8-h6nw4ub4wJFrsYKiGvJSvqtUcnYXmpL3kwQ5pGF7ie2tWBHx0T_0YQ_Q7IHYZuhvdtXHYCULKFBDnqAyiwHGZ3uz5O9Ubosv8oDlysO80pRuSuHbTCsX-hspLlBNr7YESDU5BQpruvrpSXScnuqchEkZDrSEvbS3BIg2Pp2K0nYA1iullykT-v34nE9RDPACcO5P6aoRSfvyB9PAW3Z0KihQL461O5xkDHVl99Mf1wNlcFsHSzsiLcWy9BL13ctNOsvIMrG2eDNn73guU7SXsjRUAzfYrtd2YTuW9ndfkQTU7F-ZUwlqmOi7Jiw
Corrispondente a: PAYLOAD { "jti": "03399cb2-1bc9-45cf-84eb-1e271d2c591f", "purposeId": "243d810b-ee3c-4e4b-bf1a-57d0f0e297d2", "dnonce": "1234567890123", "userID": "User123", "userLocation": "26.2.12.23", "LoA": "LOA3", "aud": "https://modipa-val.anpr.interno.it/govway/rest/in/MinInternoPortaANPR/C003-servizioVerificaDichGeneralita/v1", "iss": "7de70b84-ebe9-4eb4-b41f-45bf7df0a871", "sub": "7de70b84-ebe9-4eb4-b41f-45bf7df0a871", "iat": 1701344157, "nbf": 1701344157, "exp": 1701344457 }
Ho calcolato l'impronta SHA256 e costruito il token per PDND 072717d04b7a034e47c4b04a2b5e5920401b8de748e2382e3c22ca03fa1e87e0
Questo è il mio "assertion" per PDND eyJraWQiOiJST3dkdmJjWGlDemJ6dXpLa0xUc2w0RFZEN19mV1pBNTM1d21oZGRSdXI4IiwiYWxnIjoiUlMyNTYiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhdXRoLnVhdC5pbnRlcm9wLnBhZ29wYS5pdC9jbGllbnQtYXNzZXJ0aW9uIiwiaXNzIjoiN2RlNzBiODQtZWJlOS00ZWI0LWI0MWYtNDViZjdkZjBhODcxIiwic3ViIjoiN2RlNzBiODQtZWJlOS00ZWI0LWI0MWYtNDViZjdkZjBhODcxIiwicHVycG9zZUlkIjoiMjQzZDgxMGItZWUzYy00ZTRiLWJmMWEtNTdkMGYwZTI5N2QyIiwianRpIjoiNWMyMGNmMTktMzUwZC00YjcxLTlmNDUtMDhjNzE2N2RmYjQyIiwiaWF0IjoxNzAxMzQ0MTU5LCJleHAiOjE3MDE0MDQxNTksImRpZ2VzdCI6eyJhbGciOiJTSEEyNTYiLCJ2YWx1ZSI6IjA3MjcxN2QwNGI3YTAzNGU0N2M0YjA0YTJiNWU1OTIwNDAxYjhkZTc0OGUyMzgyZTNjMjJjYTAzZmExZTg3ZTAifX0.CNhzh-zmWYkzolxHtTcyoJwvqmbce-22XNuu1qf7WcwAC0v_3rDdOLBLJyapNi5V2s-LCAeb54HzQeutn_6YN0RKenvkjs5IstXNxlb3TqPSft__xbmG0vrwpR8cv131-Id1w5ZwOAsJzVDo5I6hg82ZxEU1qE6ZldNpVn7O3tXxk-fPMPHqDaUZgHm_bwiWbiFm1BFdBDkjgQw2YN8kMG8JpOVx6LdK2I-q8ZEaaroawB1gJ5Zm6YSUT1T-lWnWUMu1vo2WO5AKStXraEbpkrxt6X-6WFncBx65hTUWeJ8LEW6HtRoCg3wskKF3n27X1Z_rFFx_J-H8qFHR1chH8Q
corrispondente a { "aud": "auth.uat.interop.pagopa.it/client-assertion", "iss": "7de70b84-ebe9-4eb4-b41f-45bf7df0a871", "sub": "7de70b84-ebe9-4eb4-b41f-45bf7df0a871", "purposeId": "243d810b-ee3c-4e4b-bf1a-57d0f0e297d2", "jti": "5c20cf19-350d-4b71-9f45-08c7167dfb42", "iat": 1701344159, "exp": 1701404159, "digest": { "alg": "SHA256", "value": "072717d04b7a034e47c4b04a2b5e5920401b8de748e2382e3c22ca03fa1e87e0" } }
PDND Risponde e mi restituisce il voucher eyJ0eXAiOiJhdCtqd3QiLCJhbGciOiJSUzI1NiIsInVzZSI6InNpZyIsImtpZCI6IjMyZDhhMzIxLTE1NjgtNDRmNS05NTU4LWE5MDcyZjUxOWQyZCJ9.eyJhdWQiOiJodHRwczovL21vZGlwYS12YWwuYW5wci5pbnRlcm5vLml0L2dvdndheS9yZXN0L2luL01pbkludGVybm9Qb3J0YUFOUFIvQzAwMy1zZXJ2aXppb1ZlcmlmaWNhRGljaEdlbmVyYWxpdGEvdjEiLCJzdWIiOiI3ZGU3MGI4NC1lYmU5LTRlYjQtYjQxZi00NWJmN2RmMGE4NzEiLCJuYmYiOjE3MDEzNDA1NjAsImRpZ2VzdCI6eyJhbGciOiJTSEEyNTYiLCJ2YWx1ZSI6IjA3MjcxN2QwNGI3YTAzNGU0N2M0YjA0YTJiNWU1OTIwNDAxYjhkZTc0OGUyMzgyZTNjMjJjYTAzZmExZTg3ZTAifSwicHVycG9zZUlkIjoiMjQzZDgxMGItZWUzYy00ZTRiLWJmMWEtNTdkMGYwZTI5N2QyIiwiaXNzIjoidWF0LmludGVyb3AucGFnb3BhLml0IiwiZXhwIjoxNzAxMzQxMTYwLCJpYXQiOjE3MDEzNDA1NjAsImNsaWVudF9pZCI6IjdkZTcwYjg0LWViZTktNGViNC1iNDFmLTQ1YmY3ZGYwYTg3MSIsImp0aSI6ImU5ZTA5ODgxLWEyNWItNGYzYS04MmMyLWExNWUzODgyZGM4ZCJ9.nl-1FBlmsoOVbr567T9OvOILdTwUR_TC6uu9hPiEl9XsyEKDkyfgD4UpUwChk5itDJxH868mwSDBapLma-NMLIhiZcSdqs3xaseScnxpl7RlHx6VYSSn1UZhTRJtyROiCBPYwu7uMC5tHHD0jXYgBS-HCF_0_1JL86jdbAdQ1UVzar4E8yiYmhQNPt4-GYwcjitZnUVwy92bspduKGJ26TnnmdDJ6teQ06Y02TZIpQWvy7x5mWacJloo1dT3J3xJ4BA3FPHoXfQqwGi0bqbavaKTpZ7zWTZfE1DY5u0YlrxvXSZdNRR5sJsJBTzb6wnTV6QUZ7i2pVzIQCrV5gyqGg
Corrispondente a: { "aud": "https://modipa-val.anpr.interno.it/govway/rest/in/MinInternoPortaANPR/C003-servizioVerificaDichGeneralita/v1", "sub": "7de70b84-ebe9-4eb4-b41f-45bf7df0a871", "nbf": 1701340560, "digest": { "alg": "SHA256", "value": "072717d04b7a034e47c4b04a2b5e5920401b8de748e2382e3c22ca03fa1e87e0" }, "purposeId": "243d810b-ee3c-4e4b-bf1a-57d0f0e297d2", "iss": "uat.interop.pagopa.it", "exp": 1701341160, "iat": 1701340560, "client_id": "7de70b84-ebe9-4eb4-b41f-45bf7df0a871", "jti": "e9e09881-a25b-4f3a-82c2-a15e3882dc8d" }
Calcolol'impronta del file JSON di richiesta e la rappresento in base64 frS285X4CkUCivxXMFPoQhdCn5A8mzIKzJQLy4geo7k=
Compongo il token di integrità: eyJraWQiOiJST3dkdmJjWGlDemJ6dXpLa0xUc2w0RFZEN19mV1pBNTM1d21oZGRSdXI4IiwiYWxnIjoiUlMyNTYiLCJ0eXAiOiJKV1QifQ.eyJqdGkiOiIwNGQ5MDhjZi1iODcyLTQxNGMtYjBjMS1hMmJlOThhN2ZmMjEiLCJhdWQiOiJodHRwczovL21vZGlwYS12YWwuYW5wci5pbnRlcm5vLml0L2dvdndheS9yZXN0L2luL01pbkludGVybm9Qb3J0YUFOUFIvQzAwMy1zZXJ2aXppb1ZlcmlmaWNhRGljaEdlbmVyYWxpdGEvdjEiLCJpYXQiOjE3MDEzNDQxNjAsIm5iZiI6MTcwMTM0NDE2MCwiZXhwIjoxNzAxNDA0MTYwLCJpc3MiOiI3ZGU3MGI4NC1lYmU5LTRlYjQtYjQxZi00NWJmN2RmMGE4NzEiLCJzdWIiOiI3ZGU3MGI4NC1lYmU5LTRlYjQtYjQxZi00NWJmN2RmMGE4NzEiLCJzaWduZWRfaGVhZGVycyI6W3siZGlnZXN0IjoiU0hBLTI1Nj1mclMyODVYNENrVUNpdnhYTUZQb1FoZENuNUE4bXpJS3pKUUx5NGdlbzdrPSJ9LHsiY29udGVudC10eXBlIjoiYXBwbGljYXRpb24vanNvbiJ9XX0.UFb7YXmUVovCQUfduNZbFgeKm5bP0o0zcs6OWXT6TUlFy8Br16gC0H6U9oRPYYSsktYB8U5h-X2Pf16tiJuq3hDS24KqOKKWUAib9w8yb5yaQeSnMJJSjou8x8nrNnsne3mx7E8bIPuNI90vghZ3U5lJAY-hauBYuUALVK7tgnu8RN0zRQa15ZsABifkx28vg3k9zyPfXuEvJQqWuKHp2czD1FfkdM4J9TV3oGhUZ6MVyaJqUxzRGxNlsgKtaMpg5eRpmLTUuq3pR7--b_x19qhMUkJ77RD_Q8ATBIPLsH5J864FaulvwwnIMv1UDl1PMlzmPqFe56KncSIyJatpnA
Corrispondente a: { "jti": "04d908cf-b872-414c-b0c1-a2be98a7ff21", "aud": "https://modipa-val.anpr.interno.it/govway/rest/in/MinInternoPortaANPR/C003-servizioVerificaDichGeneralita/v1", "iat": 1701344160, "nbf": 1701344160, "exp": 1701404160, "iss": "7de70b84-ebe9-4eb4-b41f-45bf7df0a871", "sub": "7de70b84-ebe9-4eb4-b41f-45bf7df0a871", "signed_headers": [ { "digest": "SHA-256=frS285X4CkUCivxXMFPoQhdCn5A8mzIKzJQLy4geo7k=" }, { "content-type": "application/json" } ] }
Eseguo la chiamata all'url del servizio con i parametri dell'header, e il json nel body e ottengo un 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":"efa9b713-8f65-11ee-827e-005056ae5232"}
il mio file di ricerca è questo
{ "idOperazioneClient": "1", "criteriRicerca": { "codiceFiscale": "SGGPRM60A01H501A" }, "verifica": { "generalita": { "codiceFiscale": { "codFiscale": "SGGPRM60A01H501A" }, "cognome": "SOGGETTO", "nome": "PRIMO", "sesso": "M", "dataNascita": "1960-01-01+02:00", "luogoNascita": { "comune": { "nomeComune": "ROMA", "codiceIstat": "058091", "siglaProvinciaIstat": "RM" } } } }, "datiRichiesta": { "dataRiferimentoRichiesta": "2023-11-29", "motivoRichiesta": "1", "casoUso": "C003" } }
L'unica cosa che ho notato di differente sui token, a parte ovviamente il valore di jti e delle date, la presenza della data "nbf" nel token di assertion del client JAVA, Se non lo riporto nella mia chiamata c#, riesco a farmi restituire il voucher da PDND. Se lo inserisco la chiamata mi va in errore (cosi' come se copio il valore della mia assertion nell'interfaccia di debug di PDND mi da un errore: Client assertion validation failure. Reason: JWT before use time)
Se copio il valore dell' assertion creato su JAVA, e lo inserisco sulla maschera di debug di PDND, me la segna valida....
Salve, relativamente al govway_id":"efa9b713-8f65-11ee-827e-005056ae5232" l'errore che ci risulta è questo: Verifica ModI della richiesta fallita: Riscontrate 4 eccezioni. Token non utilizzabile prima della data '2023-11-30_12:36:00.000' Token creato nel futuro (data creazione: '2023-11-30_12:36:00.000') [Header 'Agid-JWT-TrackingEvidence'] Token non utilizzabile prima della data '2023-11-30_12:35:57.000' [Header 'Agid-JWT-TrackingEvidence'] Token creato nel futuro (data creazione: '2023-11-30_12:35:57.000')
Ok.... direi che qualcosa ho portato a casa...
{"listaSoggetti":{"datiSoggetto":[{"infoSoggettoEnte":[{"chiave":"Verifica generalita'","id":"1002","valore":"S"}]}]},"idOperazioneANPR":"59512789"}
Direi di si. Ottimo Buona giornata
Buongiorno, sto provando ad eseguire l'integrazione con il servizio C003-servizioVerificaDichGeneralita-approvazione_automatica, v. 2 in ambiente di collaudo tramite il passaggio attraverso PDND.
Sto eseguendo l'integrazione in .NET, per cui il codice riportato sotto riguarda questa implementazione. Ho configurato la finalità e l'e-service su PDND e ottenuto le "chiavi" per invocare il servizio.
L'url di audience che dovrei richiamare alla fine è: https://modipa-val.anpr.interno.it/govway/rest/in/MinInternoPortaANPR-PDND/C003-servizioVerificaDichGeneralita/v1
Il json della mia richiesta è questo:
{ "idOperazioneClient": "1", "criteriRicerca": { "codiceFiscale": "XXXXXX11X22X123X" }, "datiRichiesta": { "dataRiferimentoRichiesta": "2023-11-15", "motivoRichiesta": "1", "casoUso": "C003" } }
Per prima cosa ho predisposto la chiamata di audit
{ { "iss", _iss }, { "sub",_sub}, { "aud", audience }, { "userID", userId }, { "userLocation", location }, { "LoA", loa }, { "purposeId", _purposeId }, { "dnonce", dnonce }, { "jti", jti.ToString() }, { "iat", iat }, { "exp", exp} };
L'ho firmato con la mia chiave privata (associata all'e-client) e successivamente calcolato lo SHA256.
Ho quindi richiesto il voucher a PDND andando a chiamare l'url auth.uat.interop.pagopa.it/client-assertion
{ "userLocation", location }, { "LoA", loa }, { "dnonce", dnonce }, { "iat", iat }, { "exp", exp}, { "digest", new Dictionary<string, object> { { "alg", "SHA256" }, { "value", auditHash } } } };
ho calcolato lo sha256 del payload. (_payloadHash) ho calcolato lo sha256 del JSON di richiesta (encodedBody)
Una volta ricevuto il TOKEN ho eseguito la chiamata al servizio C003 sono andato ad eseguire la chiamata al servizio
string myUrl = "https://modipa-val.anpr.interno.it/govway/rest/in/MinInternoPortaANPR-PDND/C003-servizioVerificaDichGeneralita/v1/anpr-service-e002"; WebRequest request = WebRequest.Create(myUrl); request.Method = "POST"; request.ContentType = "application/json"; request.Headers.Add("Authorization", "Bearer " + token); request.Headers.Add("Agid-JWT-Signature", _payloadHash); request.Headers.Add("Agid-JWT-TrackingEvidence", auditHash); request.Headers.Add("Digest", "SHA-256=" + encodedBody);
using (Stream dataStream = request.GetRequestStream()) { byte[] byteArray = Encoding.UTF8.GetBytes(jsonRequest); dataStream.Write(byteArray, 0, byteArray.Length); }
Tuttavia la chiamata non mi va a buon fine, ottengo un HTTP Error 400 con la seguente motivazione
{"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":"a0684398-8231-11ee-bb73-005056ae1884"}
Potreste gentilmente indicarmi cosa non è corretto?
grazie