-
Notifications
You must be signed in to change notification settings - Fork 2
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
Chiarimenti verifica di un voucher da parte di un erogatore #1056
Comments
Buongiorno, ci scusiamo per il ritardo nella risposta. |
Supponiamo che io sia un ente fruitore dell'eservice A. |
Non è possibile invocare l'e-service B con il voucher staccato per l'e-service A, perchè anche se uso lo stesso client, la stessa chiave pubblica/privata e l'audience, gli altri dati cambiano, compresa la client assertion |
L'eservice B sarà esposto su una certa url che io posso recuperare dal catalogo di PDND. |
Buongiorno, grazie per lo spunto interessante. Il passaggio incriminato è questo:
È effettivamente ambiguo, ed è meglio rimuoverlo dalla documentazione. Una precisazione ovvia ma importante: il token rilasciato da PDND Interoperabilità è di autenticazione, non di autorizzazione. Dunque, per inciso: se l'erogatore usa la stessa audience per più risorse, dovrebbe avere una chiara ragione amministrativa per farlo, perché di base la risorsa che il fruitore andrà a consumare dovrebbe essere la stessa, e non dovrebbero essere necessari controlli aggiuntivi lato suo per erogare le informazioni richieste. In sostanza, dovrebbe esserci un'audience diversa per ogni servizio. Ciò detto, se l'erogatore ha necessità di distinguere e non riesce a farlo, il problema è probabilmente nel modo in cui ha organizzato i propri servizi. Affrontare il problema con verifiche aggiuntive legate alle componenti di PDND Interoperabilità non ci sembra un buon approccio in questo caso. Per intenderci: è effettivamente possibile usare il |
La sola modifica della documentazione non credo risolva il problema perchè l'audience è un campo libero, quindi idealmente posso sempre inserire un valore già esistente associato magari ad un altro eservice. Proprio perchè il il token rilasciato da PDND Interoperabilità è di autenticazione e non di autorizzazione, vi sembra un approccio errato anche la validazione del client id tramite la relativa api di interoperabilità? |
Dunque, il Grazie per lo spunto anche qui, sono d'accordo che la modifica alla documentazione non risolva di per sé. Sicuramente non è una cosa che possiamo impedire in toto, da valutare il costo/beneficio se sia utile contestualmente alla creazione dell'e-service avvertire l'erogatore che sta riutilizzando un'audience |
Capisco che non è l'uso previsto e sono d'accordo che la validazione del solo client id non risolve completamente, però, autorizzare la richiesta solo se la chiamata https://api.uat.interop.pagopa.it/1.0/clients/clientId restituisce un 200 con la relativa response e non un 403 Insufficient privileges, garantirebbe quantomeno che quel client sia associato ad un fruitore valido che ha eseguito su PDND tutti i passaggi amministrativi citati precedentemente(creazione finalità, richiesta di fruizione, ecc) |
Può essere che non abbia colto il punto, ma di base questa verifica sul client non dovrebbe essere necessaria: PDND stacca un token solamente se la catena di autorizzazioni è completa (versione di e-service attiva, richiesta di fruizione associata attiva, finalità associata attiva, client effettivamente associato a quella finalità, chiave pubblica — corrispondente alla privata con la quale è firmata l'asserzione — associata al client). L'erogatore può fare questa verifica a sua volta, come dice lei, per controprova, ma è ridondante |
Ho il timore che, senza quelle ulteriori validazioni, un ente possa fruire di un eservice senza richiedere la fruizione. |
Solo un piccolo aggiornamento: ho riportato l'esempio al team tecnico quattro giorni fa e stiamo facendo un approfondimento sul tema |
Salve,
in questa sezione https://docs.pagopa.it/interoperabilita-1/manuale-operativo/utilizzare-i-voucher, è specificato che, per la verifica di un voucher, bisogna considerare i seguenti claims: iss, exp e aud.
Inoltre, è aggiunto che DIVERSI e-service possano avere la STESSA audience.
In tal caso, limitandosi solo alla validazione dei parametri di cui sopra, come fa l'erogatore ad essere certo di autorizzare effettivamente un fruitore valido?
Non bisognerebbe validare anche il client id o il purpose id?
The text was updated successfully, but these errors were encountered: