Closed micheleselea closed 1 year ago
Buon pomeriggio, sto sentendo il team e torno ad aggiornare la issue con una risposta approfondita. Grazie
Buon pomeriggio, come prima cosa rimando alla guida in particolare alla sezione sul ciclo di vita dei voucher e sul materiale crittografico. Poi avremmo bisogno di sapere in maniera più specifica il vostro obiettivo, in quanto i well known linkati sono sia quello di interop, che quello di Selfcare (totalmente esterno ad interoperabilità). Nel frattempo il team backend sta dando un'occhiata al resto della issue.
Buonasera, si quei link di guida gli ho letti e infatti in quello dove si parla del voucher c'è la voce che riguarda il download da https://interop.pagopa.it/.well-known/jwks.json per la validazione del jwt da parte dell'erogatore del servizio. Qui si dice che n è la chiave pubblica, non si parla di x5c che vedo in effetti solo nell'altro link ma forse quello non riguarda me in questo caso. Sostanzialmente stiamo sviluppando delle api per i software dei comuni al fine appunto di renderli accessibili da questa piattaforma. Attualmente stiamo sviluppando le API come EROGATORE, ma poi probabilmente lo faremo anche come fruitore
Buonasera, confermo che per le API su PDND interoperabilità basta basarsi sulla guida e sul nostro well known. Poi non so se avete già provato a creare un e-service sulla piattaforma in ambiente di collaudo (quindi a simulare il tutto come erogatori), ma procedendo lì ci sono delle altre istruzioni specifiche per le chiavi e lo stacco del token.
In ogni caso qualsiasi feedback è il benvenuto, in particolare su tutto ciò che potrebbe non essere chiaro così che lo sistemiamo e lo rendiamo il più fruibile possibile!
Ancora non ho creato un e-service perché sto aspettando che l'ente per cui lo facciamo faccia l'accreditamento in modo da cominciare a fare qualche esperimento in merito. In realtà dalla guida a quell'indirizzo è tutto abbastanza chiaro sia il discorso del JWT della creazione del token e del controllo dei dati del JWT e della firma L'unica perplessità che mi rimane attualmente è che nella guida si parla di scaricare il well-known per ottenere una cosa di questo tipo
{
"keys": [{
"kty": "RSA",
"n": "qU2Bp7xgkXBQI2w2PZ5LZGo34TIjoir-ul0x4jZ_d9hN6q-zQpmAqIxjrfHLwtTqNNug5majcgOw7mYZoeN92SZU3DrGepS1UkwYHOQEPH5OvUZ3260Ek0lqjwlBYZ92muFnO6OCHFY3v11NIvNGsOeJUkXRDzwN6Rvmumyji0ukoJfOMqJMbN0U2hm7xmv07yiJxJ8sw-0A9ojmYwUU-ctFqJLipzNVeuX6R-4uJ5L9ryIOu6Mbe4XTWtWdtV_J-yr6f-bLmezpAb8gOkvTslrxqsZds30c4EC5-9kWZIm-cV_mMdx402QAet7SomTZOnUfmfvoziLNL8mPjFmTMQ",
"e": "AQAB",
"alg": "RS256",
"kid": "199d08d2-9971-4979-a78d-e6f7a544f296"
}]
}
A questo punto c'è ascritto che "n" è la chiave pubblica, ma non capisco in che formato sia, quindi non capisco come caricare la chiave pubblica per fare poi il check della firma. La mia domanda era sostanzialmente quella, comunque appena mi danno l'accreditamento procederò con gli e-service per vedere se online trovo altra documentazione
Ok sono riuscito a trovare il modo, chiudo il ticket
Ok sono riuscito a trovare il modo, chiudo il ticket
E' possibile avere maggiori informazioni sul "modo" che ha trovato per usare il campo "n"? Grazie
C'è una funzione opessl per creare la chiave RSA partendo da modulo ed esponente
Ancora non ho creato un e-service perché sto aspettando che l'ente per cui lo facciamo faccia l'accreditamento in modo da cominciare a fare qualche esperimento in merito. In realtà dalla guida a quell'indirizzo è tutto abbastanza chiaro sia il discorso del JWT della creazione del token e del controllo dei dati del JWT e della firma L'unica perplessità che mi rimane attualmente è che nella guida si parla di scaricare il well-known per ottenere una cosa di questo tipo
{ "keys": [{ "kty": "RSA", "n": "qU2Bp7xgkXBQI2w2PZ5LZGo34TIjoir-ul0x4jZ_d9hN6q-zQpmAqIxjrfHLwtTqNNug5majcgOw7mYZoeN92SZU3DrGepS1UkwYHOQEPH5OvUZ3260Ek0lqjwlBYZ92muFnO6OCHFY3v11NIvNGsOeJUkXRDzwN6Rvmumyji0ukoJfOMqJMbN0U2hm7xmv07yiJxJ8sw-0A9ojmYwUU-ctFqJLipzNVeuX6R-4uJ5L9ryIOu6Mbe4XTWtWdtV_J-yr6f-bLmezpAb8gOkvTslrxqsZds30c4EC5-9kWZIm-cV_mMdx402QAet7SomTZOnUfmfvoziLNL8mPjFmTMQ", "e": "AQAB", "alg": "RS256", "kid": "199d08d2-9971-4979-a78d-e6f7a544f296" }] }
A questo punto c'è ascritto che "n" è la chiave pubblica, ma non capisco in che formato sia, quindi non capisco come caricare la chiave pubblica per fare poi il check della firma. La mia domanda era sostanzialmente quella, comunque appena mi danno l'accreditamento procederò con gli e-service per vedere se online trovo altra documentazione
Salve, in php è possibile avere un codice di esempio per effettuare questa verifica della firma? Grazie
In ogni caso qualsiasi feedback è il benvenuto, in particolare su tutto ciò che potrebbe non essere chiaro così che lo sistemiamo e lo rendiamo il più fruibile possibile!
Salve, è possibile avere qualche esempio in PHP per capire come proseguire per effettuare la verifica della firma del token? Grazie
In php non ti saprei dire perché io avevo usato c++ e quindi una funzione openssl che faceva la creazione della chiave RSA partendo da modulo ed esponente, ora non ricordo esattamente quale fosse l'avevo trovata cercando in openssl
Buongiorno vi scrivo per chiedervi una info perché non ho trovato una pagina della guida a riguardo, ma se c'è scrivetemi pure il link così me lo vado a leggere. Ho visto che le chiavi pubbliche per la verifica dei jwt sono per esempio all'indirizzo https://interop.pagopa.it/.well-known/jwks.json https://selfcare.pagopa.it/.well-known/jwks.json ho visto che si ottengono dati di questo tipo { "keys": [{ "kty": "RSA", "n": "qU2Bp7xgkXBQI2w2PZ5LZGo34TIjoir-ul0x4jZ_d9hN6q-zQpmAqIxjrfHLwtTqNNug5majcgOw7mYZoeN92SZU3DrGepS1UkwYHOQEPH5OvUZ3260Ek0lqjwlBYZ92muFnO6OCHFY3v11NIvNGsOeJUkXRDzwN6Rvmumyji0ukoJfOMqJMbN0U2hm7xmv07yiJxJ8sw-0A9ojmYwUU-ctFqJLipzNVeuX6R-4uJ5L9ryIOu6Mbe4XTWtWdtV_J-yr6f-bLmezpAb8gOkvTslrxqsZds30c4EC5-9kWZIm-cV_mMdx402QAet7SomTZOnUfmfvoziLNL8mPjFmTMQ", "e": "AQAB", "alg": "RS256", "kid": "199d08d2-9971-4979-a78d-e6f7a544f296" }] }
oppure anche con "x5c" e "x5t". x5c mi pare di aver capito che sia il formato X509, mentre non ho capito in che formato è n e come lo posso usare per creare la chiave pubblica per la verifica. è il modulo?