italia / anpr

Issue tracker e documentazione di ANPR - Anagrafe Nazionale della Popolazione Residente
Creative Commons Attribution 4.0 International
179 stars 49 forks source link

[C019] - Info riutilizzo voucher #4450

Closed MatteoSoftlab closed 5 months ago

MatteoSoftlab commented 5 months ago

Buonasera, come società di IT stiamo lavorando per integrare il C019 ed a fatica (data l'incompletezza della documentazione ricevuta) siamo riusciti ad implementare correttamente i requisiti AGID riuscendo ad ottenere una response (vedi "idOperazioneANPR":"60451039"). Nella giornata di ieri provando ad interrogare nuovamente il servizio dopo un primo test andato bene ottenevo un errore che il vostro supporto mi ha poi identificato con: Token non utilizzabile prima della data '2024-03-06_08:58:07.000'.

Effettivamente per ora procedo alla richiesta di un nuovo voucher per ogni invocazione del C019 ma non riesco a capire come riutilizzare un voucher nel suo periodo di validità (vanno rigenerati gli header "Agid-JWT-Signature" e "Agid-JWT-TrackingEvidence" ?).

In più tentando nuovamente oggi sto ricevendo response dal C019 senza aver modificato il software (quindi con un nuovo voucher per ogni invocazione del C019).

Posso chiedere spiegazioni?

azabatta commented 5 months ago

Buonasera, l'errore "Token non utilizzabile prima della data '2024-03-06_08:58:07.000" è dovuto al fatto che all'interno del token viene impostato il claim nbf con una data-ora maggiore rispetto alla data-ora di invocazione del servizio. L'errore quindi non è dovuto alla scadenza del token. Per gli eservice ANPR il voucher generato da PDND e quello che implementa il profilo AUDIT-REST-02 hanno una durata di 10 minuti. Naturalmente il token che implementa il profilo INTEGRITY-REST-02 deve essere prodotto ad ogni chiamata in quanto varia il payload della richiesta. Saluti

MatteoSoftlab commented 5 months ago

Salve, scusi ma sto impostando il claim nbf con lo stesso valore del claim iat quindi la sua indicazione non mi torna. Ad ogni modo la questione che mi preme di più è capire se per l'invocazione del C019 occorre invocare ogni volta "https://auth.uat.interop.pagopa.it/token.oauth2" per avere quello che definite voucher. Perché provando invece a conservarne il valore dell'access token e utilizzarlo per chiamate successive (come farei con un token outh2) prendo un 400 anche se genero nuovamente il contenuto dell'header "Agid-JWT-TrackingEvidence" (che credo sia il token a cui Lei fa riferimento quando parla di token che implementa il profilo INTEGRITY-REST-02).

Grazie ancora

azabatta commented 5 months ago

Buonasera, non deve invocare ogni volta "https://auth.uat.interop.pagopa.it/token.oauth2" perchè il voucher ha la durata di 10 minuti. L'errore 400 avrà un'altra causa. Cortesemente può riprovare ed specificare qui l'id-govway? Grazie

MatteoSoftlab commented 5 months ago

Salve, di seguito l'esito di un test effettuato riciclando il voucher utilizzato per l'esito OK del C019 (vedi "idOperazioneANPR":"60452352") ma generando da capo i JWT "Agid-JWT-TrackingEvidence" e "Agid-JWT-Signature":

400 Bad Request: "{"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":"987ab02a-dc91-11ee-9422-005056ae5232"}"

Grazie mille

azabatta commented 5 months ago

Di seguito l'errore riscontrato: Verifica ModI della richiesta fallita: [Header 'Authorization'] possiede un valore nel campo 'digest.value' non corrispondente al token di audit previsto dal pattern 'AUDIT_REST_02'

MatteoSoftlab commented 5 months ago

Ok, 'digest.value' è di fatto l'encoding del "Agid-JWT-TrackingEvidence" quindi oltre al voucher devo conservare anche quello per poter effettuare nuove chiamate nel periodo di validità del vocher stesso. Così facendo il test è ok.

Grazie