italia / spid-dotnet-sdk

SPID authentication library for .NET
BSD 3-Clause "New" or "Revised" License
28 stars 15 forks source link

Ambiente di test SPID con caricamento Certificato X509 da file #10

Open sviluppohermes opened 6 years ago

sviluppohermes commented 6 years ago

per far funzionare il login SPID in locale, avendo noi l'esigenza di caricare il certificato da file, è stato necessario apportare le seguenti modifiche al codice nel file X509Helper.cs ovvero è stata Creata una nuova funzione: GetCertificateFromFile(string path)

il codice è il seguente:

//Create new X509 store called teststore from the local certificate store. X509Certificate2 certificate = new X509Certificate2(); //Create certificates from certificate files. //You must put in a valid path to three certificates in the following constructors. X509KeyStorageFlags flags = X509KeyStorageFlags.Exportable; string path = ""C:/sviluppo/spid/spid-dotnet-sdk-master/Italia.Spid.AspNetClassic.WebApp/App_Data/myspidcertificate.pfx"; X509Certificate2 certificate1 = new X509Certificate2(path, "password", flags); return certificate1;

la password deve essere quella con cui abbiamo creato il certificato da riga di comando attraverso le istruzioni openssl:

  1. openssl genrsa -out rootCA.key 1024
  2. openssl req -new -x509 -days 3650 -key rootCA.key -out rootCA.crt
  3. openssl pkcs12 -export -out mycertificate.pfx -inkey rootCA.key -in rootCA.crt

tuttavia per far funzionare la chiamata è stato necessario disabilitare il check "Enable Signature Validation in Authentication Requests and Logout Requests" nella configurazione SAML del service provider.

ncarandini commented 6 years ago

Grazie per la segnalazione, faccio delle prove e aggiorno poi qui. In generale credo non sia la soluzione giusta, perché disabilitando la signature validation si perde il requisito minimo di sicurezza e chiunque potrebbe inviare la richiesta a nome di altro. Se la signature funziona ovviamente non è necessario disabilitare il controllo lato Service Provider. Vi consiglio comunque di utilizzare il server di test di Poste.it per essere poi certi che la vostra Web App funzioni con i service provider di produzione.

sviluppohermes commented 6 years ago

Scusa, abbiamo ripreso lo sviluppo di SPID. Ci sono novità per la signature? volevo chiederti anche come utilizzare il server di test di poste. Grazie

ncarandini commented 6 years ago

Per utilizzare il server di test di poste.it devi inviare il file con i metadati del tuo servizio al responsabile di poste.it, di modo che le chiamate dal tuo servizio vengano accettate. Lunedì ti aggiungo le informazioni necessarie.

sviluppohermes commented 6 years ago

ok grazie. Attendo ;)