Closed mperu92 closed 3 years ago
Il problema è nel certificato, nel suo formato. Guardate i certificati già presenti in spid-sp-test
Stampate con openssl le informazioni di debug, probabilmente dovete fare una conversione di formato prima di usarlo con xmlsec1
Si abbiamo visto i certificati, grazie mille!
Volevamo solo sapere, prendendo l'xml di esempio public-sp.xml
, all'interno dei due parametri <ds:Signature >
e l'altro all'interno del segmento <md:SPSSODescriptor >
. Qual'è l'effettiva differenza? Nel senso è lo stesso certificato?
Uno indica con quale certificato è verificabile la firma e l'altro indica con quale certificato validare lauthn request.
Effettivamente in spid-sp-test li ho rifirmati per gli scopi dei tests, non vanno bene come esempio canonico, correggerò per chiarezza.
Tu puoi avere anche più di un certificato. Nel tuo caso, per semplicità, usa un solo certificato
La risposta è sì, falli essere uguali
Ha funzionato!
Lanciando
xmlsec1 --sign....
e successivamente
spid_sp_test --metadata-url file://metadata.xml
Il tool ha runnato restituendo alla fine
Spid QA: executed 91 tests, 0 failed. 0 warnings.
A questo punto, avendo fatto questi passaggi (generazione cert, metadata signed e test passato senza errori), qual è il passaggio successivo? Dobbiamo fare ancora qualcos'altro prima di integrare nella nostra applicazione?
Grazie mille ancora
Devi testare --authn-url eppoi le response con -tr Aggiungi --extra per completezza
Chiudo questo thread Apriamome un altro eventualmente per gestire gli altri argomenti emersi
Buongiorno, stiamo provando ad implementare SPID su un nostro portale per un cliente che è un ente pubblico, ma siamo ancora nella fase di generazione / firma del certificato. Tramite questo tool, abbiamo generato i tre file (crt.pem csr.pem key.pem) Una volta ottenuti, con openssl tramite il comando
pkcs12 -export -out cert.pfx -inkey key.pem -in crt.pem
abbiamo generato il file .pfx. Una volta fatto questo, tramite uno script abbiamo ottenuto il base64 del .pfx. A questo punto, avendo i certificati ci siamo un po' bloccati perché non ci è chiarissimo il da farsi. Ci è stato suggerito di prendere come spunto un file presente all'interno di questo progetto per ente pubblicopublic-sp.xml
. Abbiamo quindi preso questo file e abbiamo modificato i dati con i nostri. Abbiamo creato il virtual enviroment di pyhton, e quindi installato spid-sp-test.Lanciando il comando
spid_sp_test --metadata-url file://cndcec_metadata.xml
o anche lanciando il comandoxmlsec1 --sign --insecure --privkey-pem key.pem --id-attr:ID urn:oasis:names:tc:SAML:2.0:metadata:EntityDescriptor cndcec_metadata.xml > cndcec_metadata_signed.xml
solo per la parte relativa alla signature, ci viene triggerato questo errore (tra l'altro l'unico)Che sembra essere relativo proprio al base64 del certificato che abbiamo generato. Ed effettivamente ci sono delle incongruenze tra l'xml di esempio e quello nostro. Nell'xml di esempio, i due parametri
<KeyInfo>
hanno base64 differenti, inoltre nel secondo parametro<KeyInfo>
all'interno del segmento<KeyDescriptor>
i base 64 sono diversi, separati da spazi, come se fossero una lista.Noi nel nostro file in entrambi i segmenti abbiamo inserito sempre lo stesso base64 che abbiamo generato. nella documentazione che abbiamo letto su https://docs.italia.it/italia/spid/spid-regole-tecniche/it/stabile/metadata.html ci viene detto che
l’elemento
che contiene l’elenco dei certificati e delle corrispondenti chiavi pubbliche dell’entità, utili per la verifica della firma dei messaggi prodotti da tale entità nelle sue interazioni con le altre (SAMLMetadata, par. 2.4.1.1)
A questo punto non sappiamo oltre a quello generato da noi, quali siano gli altri certificati dell'elenco di cui si parla. Lanciando il tool sembra proprio che l'unica failure sia proprio questa, non vengono riportati altri errori.
Questo il nostro file xml
Quali possono essere i nostri errori/mancanze che non permettono la signature del nostro xml? Grazie mille in anticipo