SERVIZIO SDICOOP RICEZIONE - autenticazione e autorizzazione basata sull'utilizzo di certificati

Sono nuovo della community e non ho trovato argomenti in cui si parlava della “autenticazione e autorizzazione basata sull’utilizzo di certificati” citata tra le caratteristiche che deve avere il Servizio SdiCOOP per la Ricezione delle fatture passive, descritte nel documento http://www.fatturapa.gov.it/export/fatturazione/sdi/Specifiche_tecniche_SdI_v1.6.pdf, di cui riporto la sezione 3.2.2 di pagina 17:

Il servizio esposto ha le caratteristiche seguenti:

  • protocollo HTTPS come trasporto su canale cifrato TLS 1.2;
  • SOAP (with attachments) come standard per i messaggi;
  • MTOM (Message Transmission Optimization Mechanism);
  • WSDL (Web Services Description Language) per descrivere l’interfaccia
    pubblica del web service;
  • autenticazione e autorizzazione basata sull’utilizzo di certificati.

Con non poche difficoltà sono riuscito a realizzare i 2 Web Service SOAP per la ricezione delle fatture e per la ricezione delle notifiche, ad accreditare il canale dopo aver passato tutti i test fino ad arrivare al passaggio in produzione del canale, ma mi sono accorto che, a differenza della trasmissione delle fatture attive al SDI in cui la comunicazione viene stabilita solo in presenza del certificato client (SDI-#partitaIva-client.pem), nella ricezione delle fatture passive dal SDI manca il controllo del certificato ma i file XML vengono comunque inviati dal SDI per cui allo stato attuale sarebbe possibile ricevere file XML da chiunque!

Ho fatto svariate ricerche ma non ho ancora scoperto come deve essere effettuato questo controllo: in pratica i Web Service SOAP per la ricezione dovrebbero verificare la presenza di un certificato nella comunicazione e attestare che appartenga all’Agenzia delle Entrate.
Tra i vari certificati presenti nel kit di test fornito in fase di accreditamento del canale è presente il certificato SistemaInterscambioFatturaPA.cer con la seguente descrizione: Parte pubblica del certificato CLIENT utilizzato dal Sistema di Interscambio per invocare i servizi da voi esposti.
Qualcuno ha suggerimenti su come deve essere effettuato questo controllo sul certificato?
Grazie, Roberto

1 Mi Piace

Ciao, se il server è IIS devi ad esempio settare ssl come “required”, ed installare il certificato client nello store.

Grazie @ClaudioP per la risposta.

Il servizio è di tipo WCF, scritto in C#, ma non ho il controllo del server IIS perché è distribuito su un Servizio Cloud (versione classica) nella sottoscrizione Azure dell’azienda per cui lavoro.
Posso agire quindi solo a livello di configurazione del servizio o a livello di codice.

Nel file web.config sono attualmente impostate le seguenti configurazioni:

Ho provato a sostituire in clientCredentialType “None” con “Certificate” e a seguire le altre indicazioni trovate in https://stackoverflow.com/questions/29233037/wcf-custom-certificate-validation-doesnt-validate, ma così facendo il servizio restituisce l’errore “Le impostazioni SSL per il servizio ‘SslRequireCert’ non corrispondono a quelle di IIS ‘None’.” e non ho ancora trovato il modo di risolverlo.

Speravo quindi di trovare qualche buon’anima che ha già affrontato e risolto questo enigma :sweat_smile:

Non ti funzionerà mai allora.

IIS per il servizio deve avere su Ssl settings, il flag su Ssl required ed il checkbox su Accept.

Il certificato client di Sdi deve essere installato nello store Local\Computer, Other People.

Dai che una BS di Azure costa pochissimo :slight_smile:

Grazie ancora ma questa strada non è percorribile!
Mi sembra strano che non sia possibile completare la configurazione di un servizio WCF se non intervenendo su IIS, per la parte di trasmissione è bastato specificare il certificato nelle configurazioni della comunicazione col server :roll_eyes:

Ciao Bob, hai continuato su questa strada oppure sei dovuto passare a delle VM e configurazione IIS?

Ciao Michele, non ho ancora trovato una soluzione, ma per il momento il servizio sta ricevendo le fatture inviate da SDI nonostante il certificato non sia valido, quindi presumo che in tanti abbiano avuto il mio stesso problema e che Sogei abbia deciso di bypassare il controllo di validità del certificato!
Quando ho contattato Sogei per avere maggiori dettagli su come soddisfare questo requisito dell’accreditamento del canale non sono stati di grande aiuto, quindi dopo un po’ di tentativi andati a vuoto ho deciso di lasciare perdere…

Grazie mille Bob, magari sarò fortunato anch’io

Ciao bob,
sono bloccata sulla ricezione delle notifiche,
puoi postarmi gli screenshot della configurazione di IIS
io ho 7.0 non ho capito cosa devo mettere in Editor di configurazione, e configurazione di manyToone Mapping e relative regole, o se hai altre impostazioni particolari
Bye Francesca (Auguri di buon anno)

Ciao Francesca, mi spiace ma non riesco a esserti d’aiuto perché i Web Service SOAP che ho fatto io sono ospitati su Microsoft Azure, più precisamente si tratta di un “Servizio Cloud (versione classica)” dove non è possibile mettere mano alla configurazione di IIS direttamente ma solo tramite file Web.config.
Ti consiglio di creare un nuovo argomento sul forum per ottenere più visibilità e avere maggiori possibilità di risposta!
Buon anno anche a te :hugs: