-
Notifications
You must be signed in to change notification settings - Fork 11
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
Traccia in accordo alle nuove specifiche di interoperabilità #28
Comments
Una proposta di standardizzazione per l'interscambio di tracce firmate tra fruitori ed erogatori dei servizi applicativi deve anche definire quali sono le modalità in cui è recuperabile il certificato pubblico dell'emittente della traccia al fine di poter effettuare la verifica del jwt firmato. Possibili soluzioni possono essere:
La soluzione di inserire il certificato x509 o la url nell'header 'x5c' o 'x5u' consente al soggetto che deve validare la traccia di ottenere facilmente il certificato con cui tale traccia è stata firmata. Prima di utilizzare il certifcato deve verificarlo (rispetto alla CA pubblica che lo ha emesso). |
Ogni traccia deve essere identificabile univocamente attraverso un id.
GovWay attualmente invia tale identificativo, rappresentato dall'id di transazione, nell'header http 'GovWay-Transaction-ID' sia nella richiesta che nella risposta. Un gateway dovrebbe poi mettere a disposizione un servizio che consente di recuperare la traccia attraverso tale identificatvo. Di seguito una proposta di interfaccia openapi di tale servizio. |
@andreapoli molto interessante! Potrebbe essere una proposta da portare ad un tavolo più largo - magari con qualche modifica. I punti:
|
Per poter discutere su un'istanza e non sullo schema ecco un esempio di traccia convertita nel formato yaml e commentata in ogni campo con l'indicazione anche sull'obbligatorietà.
Di seguito un esempio di traccia contenente solamente i campi obbligatori. I benefici della strutturazione delle informazioni della richiesta e della risposta (oltre a api e mittente) a loro volta in oggetti non emergono esaminando la traccia con il subset minimo. La strutturazione permette di evitare fastidiosi prefissi 'richiesta_' o 'risposta_' e anche una estensione di tali informazioni risulta più semplice poichè ben localizzata alla struttura dati interessata. |
Tutte le possibili modalità utilizzabili per firmare la traccia in JSON Web Signature (JWS) sono:
La modalità JSON Serialization con 'Unencoded Payload Option' consente di avere una traccia firmata 'in chiaro' (non codificata tramite base64 etc...). I caratteri utilizzati all'interno traccia devono soddisfare le restrizioni indicate nel RFC 7797. Le modalità 'detached', citate anche all'interno della specifica JWS - Unencoded Payload Option, permettono di non doversi preoccupare delle restrizioni. |
@ioggstream nei precedenti commenti trovi qualche riflessione sui punti da te sollevati. |
Obiettivo
Far evolvere la traccia SPCoop in accordo alle nuove specifiche di interoperabilità, con l'obiettivo di:
Saranno realizzate due versioni della traccia:
Considerazioni sul non ripudio
Se la richiesta è stata firmata dal mittente (tramite http-signature, jws, xml-signature o altri modi ...), la traccia estesa rappresenterà un Token NRO (Non Repudiation of Origin) che accerta l’integrità e l’originalità dei dati contenuti in associazione al mittente. La conservazione dei contenuti firmati all'interno della traccia da parte del soggetto ricevente rappresenta infatti una prova dell’avvenuto invio dei dati contenuti, da parte del soggetto mittente.
Se la risposta viene firmata dal destinatario (tramite http-signature, jws, xml-signature o altri modi ...) la traccia estesa rappresenta un Token NRO a parti invertite.
La firma della traccia estesa da parte del soggetto ricevente rappresenta un Token NRR (Non Repudiation of Receipt) che riporta le evidenze del messaggio ricevuto con firma del destinatario (sarà possibile per il mittente richiedere la traccia tramite un servizio push o pull, possibilmente da standardizzare in ambito specifiche di interoperabilità.
Le medesime considerazioni per il recupero della traccia valgono a parti invertite per rappresentare un Token NRR della risposta.
The text was updated successfully, but these errors were encountered: