Skip to content
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

Invio della Subscription-Key con autenticazione SSL o HTTPBasic #583

Closed
pintorig opened this issue May 15, 2023 · 10 comments
Closed

Invio della Subscription-Key con autenticazione SSL o HTTPBasic #583

pintorig opened this issue May 15, 2023 · 10 comments

Comments

@pintorig
Copy link
Member

Necessità:
Nelle comunicazioni verso PagoPA si vuole aggiungere la possibilita' di inviare la Subscription-Key anche in caso di autenticazione SSL o HTTPBasic.

Soluzione:
In fase di configurazione del connettore PagoPA, consentire la configurazione della Subscription-Key in maniera indipendente dal tipo di autenticazione.

@pintorig pintorig added this to the 3.8.0 milestone May 15, 2023
@pintorig pintorig self-assigned this May 15, 2023
pintorig added a commit that referenced this issue May 15, 2023
Aggiunto supporto per la gestione della subscription-key anche con autenticazione ssl e httpbasic.
@pintorig
Copy link
Member Author

@atatarelli
Adattare l'interfaccia grafica per gestire il campo subscriptionKey.

Nella versione precedente il campo subscriptionKey si trovava all'interno dell'oggetto auth del connettore PagoPA: intermediario.servizioPagoPa.auth.subscriptionKey, attualmente invece e' stato spostato come campo opzionale all'interno connettore PagoPA: intermediario.servizioPagoPa.subscriptionKey.

Il campo e' opzionale, nella schermata di dettaglio dovra' apparire cosi:
Screenshot from 2023-05-15 15-04-46

Nella schermata di creazione/modifica si deve eliminare la voce Subscription Key dalla select Tipo Autenticazione e inserire nella form una casella di testo con label Ocp-Apim-Subscription-Key:
Screenshot from 2023-05-15 15-02-27

Realizzare l'intervento nel branch 583_subscription_key_con_auth_ssl

@mallomix
Copy link

Ciao @nardil ,

leggendo questo post vorrei porti delle domande:

In questo momento stiamo provando ad utilizzare sul nostro ambiente di TEST govpay 3.6.6 collagato all'UAT PAGOPA tramite la nuova connettività con SUBSCRIPTION KEY staccata su portal.uat.platform.pagopa.it.

Impostando quindi su Intermediari:

  1. subscription key,
  2. il nuovo endpoint https://api.uat.platform.pagopa.it/nodo-auth/nodo-per-pa/v1,
  3. principal name con il nome del soggetto CN = forwarder.uat.platform.pagopa.it
  4. Nel trustore inserito il certificato fornito da PAGOPA forwarder.uat.platform.pagopa.it

il test di recupero pagamenti fallisce con:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

visto che qui si parla di abilitare anche l'autenticazione SSL insieme alla subscription key, non vorrei che abbiamo una versione di govpay non ancora pronta per utilizzare correttamente la nuova connettività PAGOPA.
nel caso invece la versione 3.6.6 da noi utilizzata sia correttamente predisposta all'uso della nuova connettività PAGOPA, ti chiedo di indicarmi eventualmente gli errori che commetto nella configurazione dell'intermediario (endpoint? principal? )

Ti ringrazio del supporto

Saluti

@nardil
Copy link
Member

nardil commented May 25, 2023

Ciao Manlio,

l'evolutiva di questa issue e' volta appunto a rendere tutta la configurazione necessaria effettuabile tramite console. Attualmente e' necessario fare il trust del certificato pagoPA nel trustore della JVM

@mallomix
Copy link

Ciao Nardil,

scusa forse sono stato poco chiaro. L'ho fatto il trust del certificato nel trustore della JVM. Ma ricevo sempre SSLHandshake fail.
Allora mi chiedevo se ho configurato bene i 3 parametri obbligatori:

  1. pricipal (ho intuito fosse il subject del certificato analogamento a quanto fatto quando la connettività era verso GAD)
  2. endpoint (l'ho scritto sopra)
  3. subscription key (questa è quella presa dal portale uat di pagopa e quindi giusta)

@nardil
Copy link
Member

nardil commented May 25, 2023

Confermo che e' tutto corretto. Puoi verificare il trust del certificato api.uat.platform.pagopa.it e di aver riavviato la jvm

@mallomix
Copy link

Ovviamente verificato certificato e riavviato JVM con esito sempre negativo sulle chiamate ai servizi PAGOPA. A questo punto contatterò l'assistenza PAGOPA fornendo queste specifiche.
Grazie della conferma ai setting.

@nardil
Copy link
Member

nardil commented May 25, 2023

Giusto per evitare fraintendimenti: il certificato esposto dai servizi pagoPA (api.uat.platform.pagopa.it) e quello che pagoPA presenta quando opera come client (forwarder.uat.platform.pagopa.it) sono diversi.

Nel caso del gad invece il certificato client e server erano coincidenti.

@mallomix
Copy link

OK, quindi visto che PAGOPA non mi ha fornito il certificato relativo alle API https://api.uat.platform.pagopa.it , lo scarico direttamente dal browser accedendo all'endpoint e lo inserisco nel trustore.jks.

@nardil nardil removed this from the 3.8.0 milestone Jun 17, 2023
atatarelli added a commit that referenced this issue Jun 19, 2023
Invio della Subscription-Key con autenticazione SSL o HTTPBasic
@pintorig pintorig added this to the 3.7.3 milestone Jun 20, 2023
@giuseppeformaro
Copy link

Ciao,
io ho questo errore al tentativo di pagamento modello3:
WARN | org.apache.cxf.transport.servlet.ServletController:182 | ac1aaa5c-902c-4e2f-babd-d41450be8c9b | Can't find the request for https://.../govpay/frontend/api/pagopa/PagamentiTelematiciCCPservice%3Fwsdl's Observer

Servizi pagoPA
Principal: CN=forwarder.uat.platform.pagopa.it
Servizio RPT: https://api.uat.platform.pagopa.it/nodo-auth/nodo-per-pa/v1
Ocp-Apim-Subscription-Key: eac6d6dxxxxxx
Tipo autenticazione: Nessuna

Versione Govpay; 3.7.4

Non no problemi con modello1, recupero pagamenti ecc invece.

Grazie in anticipo

@giuseppeformaro
Copy link

Scusatemi non mi è chiaro se bisogna configurare:

  • Tipo autenticazione: Nessuna

Ho procedere con la stessa configurazione usata con il gad: client/server

Grazie

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants