anticorruzione / npa

17 stars 6 forks source link

PDND - eService [PCP - codeList, versione 4] - metodo status - errore 400 #889

Closed VincenzoISWEB closed 8 months ago

VincenzoISWEB commented 9 months ago

Salve,

abbiamo provato ad eseguire delle chiamate di tesr al servizio codeList, nello speifico al metodo 'status'.

La procedura seguita è la seguente

  1. Generazione del ClientAssertion contenente, come da documentazione Trasmettere e tracciare dati complementari alla richiesta , il parametro "digest" che risulta correttamente validata dal servizio "Debug della client assertion" presente sulla PDND
  2. Otteniamo il Voucher dalla chiamata all'endpoint 'https://auth.uat.interop.pagopa.it/token.oauth2'
  3. generiamo l' "Agid-JWT-TrackingEvidence" utilizzando nell'header i parametri del client registrato sulla PDND e nel payload i dati richiesti nelle specifiche JWS
    {
    "header":{
      "alg":"RS256",
      "typ":"JWT",
      "kid":"XXXXXXXXXXXXXXXXXXXXXXXXXXX"
    },
    "payload":{
      "jti":"XXXXXXXXXXXX",
      "iat":1702652426,
      "nbf":1702652431,
      "exp":1702652435,
      "aud":"https://apigw-test.anticorruzione.it/modi/rest/CodeList/v2",
      "userCodiceFiscale":"CodiceFiscale comunicato per mezzo mail",
      "userRole":"RP",
      "userLoa":3,
      "userIdpType":"SPID",
      "SAcodiceAUSA":"XXXXXXXXXX",
      "regCodicePiattaforma":"0000001",
      "regCodiceComponente":"0000001",
      "businessFlowID":"00000000-0000-0000-0000-000000000000",
      "traceID":"XXXXXXXXXXXXX",
      "spanID":"XXXXXXXXXXXX",
      "purposeId":"XXXXXXXXXXX"
    }
    }
  4. Effettuiamo la chiamata al servizio https://apigw-test.anticorruzione.it/modi/rest/CodeList/v2/status riscontrando il seguente 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":"f8139594-9b3c-11ee-9fc8-0050568e08b3"
    }

Da un check effettuato con ANAC è risultato il seguente errore sui loro sistemi:

Validazione security token ModI 'AUDIT' della richiesta fallita: [c1355]
[Header 'Agid-JWT-TrackingEvidence'] Signature verification failed: [COMPACT] Signature verification failure: Process 'kid' error: Retrieve remote key 'XXXXXXXXXXXXXXXXXXXXX' failed: Retrieve external resource

Chiediamo gentilmente un chiarimento in merito

obigno77 commented 9 months ago

chiedo cortesemente di riprovare

VincenzoISWEB commented 9 months ago

Purtroppo riscontriamo ancora il problema. Di seguito il messaggio di errore ricevuto :

{ "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":"1e864859-9dcc-11ee-8e81-0050568e9679" }

obigno77 commented 9 months ago

Ora però abbiamo un problema diverso che riguarda la valorizzazione dei claim sul token Verifica ModI della richiesta fallita: Riscontrate 2 eccezioni. [Header 'Agid-JWT-TrackingEvidence'] Token non utilizzabile prima della data '2023-12-18_19:01:22.000' [Header 'Agid-JWT-TrackingEvidence'] Token creato nel futuro (data creazione: '2023-12-18_19:01:17.000') Attenzione all'orologio di sistema

VincenzoISWEB commented 9 months ago

Ho aggiornato il Timezone di sistema in Europe/Rome (GMT+1), precedentemente era UTC.

Ho eseguito una nuova chiamata all'endpoint https://apigw-test.anticorruzione.it/modi/rest/CodeList/v2/recupera-elenco-tipologiche alle ore "Dec 20 2023 11:14:25". Ci siamo accorti che il Date all'interno del claim restituito dal Server è in ritardo di 15 secondi circa, per questo motivo abbiamo forzato i parametri 'iat', 'nbf', 'exp' impostando il timestamp con 30 secondi in meno ("Dec 20 2023 11:13:55").

il Payload comunicato all'interno del JWS era così formato:

{
   "jti":"e63242db-f47c-40a4-98b8-935d007852ab",
   "iat":1703070835,
   "nbf":1703070835,
   "exp":1703070835,
   "aud":"https://apigw-test.anticorruzione.it/modi/rest/CodeList/v2",
   "userCodiceFiscale":"CodiceFiscale comunicato per mezzo mail",
   "userRole":"RP",
   "userLoa":3,
   "userIdpType":"SPID",
   "SAcodiceAUSA":"XXXXXXXXX",
   "regCodicePiattaforma":"0000001",
   "regCodiceComponente":"0000001",
   "businessFlowID":"00000000-0000-0000-0000-000000000000",
   "traceID":"45277781-e71e-4dce-96a3-bb252867c32b",
   "spanID":"45277781-e71e-4dce-96a3-bb252867c32b",
   "purposeId":"XXXXXXXXXX"
}

L'errore restituito è il seguente

{
   "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":"683fa8db-9f26-11ee-8e81-0050568e9679"
}

mentre i codici di GovWay nella risposta sono:

GovWay-Message-ID: 7dd0a744-0aa5-41db-9551-c9d1ecfc2480
GovWay-Transaction-ID: 683fa8db-9f26-11ee-8e81-0050568e9679
obigno77 commented 9 months ago

Verifica ModI della richiesta fallita: Riscontrate 2 eccezioni. [GOVWAY-661] [Header 'Agid-JWT-TrackingEvidence'] Token scaduto in data '2023-12-20_12:13:55.000' [GOVWAY-661] [Header 'Agid-JWT-TrackingEvidence'] Token creato da troppo tempo (data creazione: '2023-12-20_12:13:55.000')

VincenzoISWEB commented 9 months ago

Abbiamo riprovato come descritto precedentemente inserendo nel valore "exp" un delay di 20 secondi ricevendo nuovamente il seguente 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":"fe2d60d9-a018-11ee-9fc8-0050568e08b3"
}

i codici di GovWay:

GovWay-Message-ID: eb40ad33-0230-493a-8c96-2ffdb985a8fa
GovWay-Transaction-ID: fe2d60d9-a018-11ee-9fc8-0050568e08b3

Per completezza inviamo il nuovo payload

{
   "jti":"426b5f9e-2b76-4ae4-adfb-e07e56eb0add",
   "iat":1703175882,
   "nbf":1703175882,
   "exp":1703175902,
   "aud":"https://apigw-test.anticorruzione.it/modi/rest/CodeList/v2",
   "userCodiceFiscale":"CodiceFiscale comunicato per mezzo mail",
   "userRole":"RP",
   "userLoa":3,
   "userIdpType":"SPID",
   "SAcodiceAUSA":"XXXXXXXXX",
   "regCodicePiattaforma":"0000001",
   "regCodiceComponente":"0000001",
   "businessFlowID":"00000000-0000-0000-0000-000000000000",
   "traceID":"79a4bba4-e894-46ba-a143-f81f08ef0a06",
   "spanID":"79a4bba4-e894-46ba-a143-f81f08ef0a06",
   "purposeId":"XXXXXXXXXX"
}

Chiediamo, al fine di velocizzare il superamento della problematica, un breve incontro per eseguire le chiamate e i relativi debug in diretta.

VincenzoISWEB commented 8 months ago

Il problema era relativo alle date "iat", "nbf", "exp" in quanto risultavano essere successive rispetto all'orario del Server restituito nel header della risposta di errore. Abbiamo risolto anticipandole di 30 sec .

Chiudo la issue a seguito della risoluzione descritta