Purtroppo abbiamo un errore che non riusciamo a risolvere sulla validazione della request, in particolare l’ultimo punto dei test della categoria “Check Strict” :
[FAIL] The AuthnRequest must validate against XSD and must have a valid signature
stdout: Validating XSD... OK
stdout: Validating signature... FAIL
stderr: /tmp/tmp.j1daWwrsIW validates
stderr: dgst: Unrecognized flag <NULL>
stderr: dgst: Use -help for summary.
E’ evidente che sia un errore con la signature della request ma non abbiamo molte informazioni per capire dove sia il problema.
Inoltre, validando la request con questo tool Validate SAML AuthN Request Online Tool | SAMLTool.com NON vengono segnalati errori.
Buongiorno, sto eseguendo anche io i test con spid-saml-check, anche io con l’errore “[FAIL] The AuthnRequest must validate against XSD and must have a valid signature”.
Andando a controllare la finestra di esecuzione di docker, prima di questo errore mi viene segnalato “[FAIL] The Destination attribute must be a valid HTTPS url - TR pag. 8” (errore corretto dato che la macchina docker con il tool di validazione utilizza HTTP al posto di HTTPS).
Ciao Andrea,
anche io avevo quell’errore nei test in locale ma il giro funzionava e ho potuto fare i vari test.
Poi una volta configurato l’indirizzo con https si sistemerà il test.
Nel mio caso specifico docker mi dà un errore sulla firma della request, dicendo che “il digest non matcha col data” quindi ho provato a rigenerare il certificato e a firmare nuovamente il metadata ma ottengo sempre lo stesso errore.
Ho provato anche con un certificato che usiamo per un altro applicativo, ma neanche quello risolve.
La cosa strana è che usando il tool di validazione che ho citato nel primo post non ho errori, quindi non so proprio dove intervenire
Ciao,
anche io ho riscontrato lo stesso errore utilizzando lo spid-saml-check (sia con versioni vecchie, sia con l’ultima versione scaricata e installata il 26 Luglio 2021 localmente sul mio PC su docker) nella validazione delle request: The AuthnRequest must validate against XSD and must have a valid signature stderr: ./script/check-request-xsd-and-signature.sh: line 17: $’\r’: command not found stderr: ./script/check-request-xsd-and-signature.sh: line 19: $’\r’: command not found stderr: ./script/check-request-xsd-and-signature.sh: line 22: $’\r’: command not found stderr: ./script/check-request-xsd-and-signature.sh: line 25: $’\r’: command not found stderr: cat: ‘./data/https___paghepa_alma_spa_it’$’\r’’/SAMLRequest.authn’$’\r’’.request.txt’: No such file or directory stderr: ./script/check-request-xsd-and-signature.sh: line 70: syntax error near unexpected token elif' stderr: ./script/check-request-xsd-and-signature.sh: line 70: elif [ “${CTX}” == “logout” ]; then ’
Confermo che nonostante ciò il metadata è stato validato senza problemi e l’AGID mi ha inviato il certificato ufficiale con cui ri-firmare il metadata sostituendo il certificato autofirmato prima prodotto.
Ho quindi firmato il metadata con il nuovo certificato e eseguito i test con lo SPID-validator riscontrando, come già detto, solo l’errore sopra indicato.
Ora però voglio rieseguire alcuni test di autenticazione tra il mio SP e un IDP di prova:
non ho più utilizzato il spid-testenv2, in quanto non funziona più con l’ultima versione di docker ed è a fine ciclo di vita, e quindi devo utilizzare lo spid-saml-check, che nell’ultima versione integra anche un IDP di test.
In questo IDP di test però, viene eseguita una validazione della request prima dell’autenticazione e purtroppo l’errore indicato precedentemente è bloccante e mi è impossibile quindi proseguire nei test.
Potete risolvere il problema?
E’ inoltre possibile inserire utenti personalizzati nello spid-saml-check?
nel caso del binding HTTP POST deve essere presente l’elemento <Signature> contenente la firma sulla richiesta apposta dal Service Provider. La firma deve essere prodotta secondo il profilo specificato per SAML (SAML-Core, cap. 5) utilizzando chiavi RSA almeno a 2048 bit e algoritmo di digest SHA-256 o superiore.
L’errore evidenziato dovrebbere dipendere da uno o più dei seguenti casi:
Hai inviato una AuthnRequest con Binding HTTP - POST priva di firma (tag Signature).
La firma non rispetta i parametri indicati sopra.
La firma non combacia con nessuno dei certificati presenti nel metadata (tag KeyDescriptor)
Il digest della firma non combacia con il contenuto della AuthnRequest
Grazie @AGS ,
in riguardo ai primi 3 punti tutto ok, ma come faccio a sapere se il digest della firma è ok?
Ho provato alcuni tool online per generare il digest dalla firma e non ottengo un digest uguale a quello presente nella mia authnRequest, ma non sono sicuro di aver fatto le cose giuste…
Ad esempio su https://8gwifi.org/MessageDigest.jsp, dopo aver selezioanto sha256 ho incollato la firma B1mklC/58WFpRZQRg3cTXU9mRMi5aRIo6/o4E+nd1zaw29L0U6AbVpRN2rdTVvVGm92IkokgX+JA+Jw9z2JPfN4umIAFNsI0mEp1MHX3TuNnTuzGhkQ/0uHlLn/SSZnzaZLbhKjEzS+vpBup/WVFIy2O6xjEdLMG7MC9eKnC92ESIncdwbgNFOLEEUTM1liUHXvz9tMD57lbF6t3aSzGD/igOmwQ5pJYN9RtZAUqXwWn85UeGCZCNdyghxN3DDcXSwuUz8ppdr6SDi01ATdng4R6x8nnYp1fKbVRmbHiA+v8LnRBGJMqpB8NOFzn2GO+R4mM/khqGYX2lNG0lfeU0A==
ma ottengo un digest HzZhQgNFrTkhrykmG6IBKuLps/4HhgSoM00OaPTXaY0=
diverso da quello presente nella request jhUbHlPDfkotoe2d16h019MXtsb7t9gbpGsEJ/GEjKo=
Ho fatto la stesso cosa con altri esempi di authnrequest trovati nella documentazione online e il digest è comunque diverso. Sbaglio qualcosa?
In ogni caso l’errore originale dato dallo spid validator mi sembra un errore di esecuzione del codice, non una vera segnalazione di mancata validazione. Che ne dite?
riguardando meglio gli errori da te riportati, ho notato questo messaggio:
Il file request.txt dovrebbe essere il file dove viene salvata temporaneamente la tua AuthnRequest per poi essere analizzata.
Sembra che il file in realtà non venga creato e che quindi l’errore derivi dal fatto che non esiste un’AuthnRequest da analizzare e quindi una firma da validare.
Può derivare dal fatto che il sistema non riceve la AuthnRequest, oppure per problemi di permessi in scrittura.
Ti segnalo che come alternativa a spid-saml-check puoi ustilizzare anche il tool spid-sp-test.
Salve,
scusate se riesumo il thread ma ho un problema nella validazione della AuthN.
Premessa: ho generato i certificato con spid-compliant-certificates e ho firmato il metadata con spid-metadata-signer e provando a validarlo non segnala errori.
Adesso ho provato a generare la AuthN come da specifiche e visto che il portale risponde solo “Formato richiesta non corretto” ho provato ad utilizzare i servizi del spid-sp-check (incluso nello spid-saml-check ) per verificare se la richiesta AuthN inviata fosse corretta ma quando eseguo lo script spid_sp_test --metadata-url file:////spid-metadata-signer-master/metadata/metadata-out/metadata_test-signed.xml --authn-url file:///spid-saml-check/auth.html --debug ERROR restituisce l’errore
Traceback (most recent call last):
File "/usr/local/lib/python3.7/dist-packages/spid_sp_test/authn_request.py", line 389, in test_xmldsig
stderr=subprocess.PIPE,
File "/usr/lib/python3.7/subprocess.py", line 487, in run
output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command 'xmlsec1 --verify --insecure --id-attr:ID "urn:oasis:names:tc:SAML:2.0:protocol:AuthnRequest" --pubkey-pem /tmp/tmpjzt_5qz7.crt /tmp/tmpdozh9701.xml ' returned non-zero exit status 1.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/bin/spid_sp_test", line 327, in <module>
selective_run(authn_check, profile, args.list)
File "/usr/local/bin/spid_sp_test", line 32, in selective_run
method()
File "/usr/local/lib/python3.7/dist-packages/spid_sp_test/authn_request.py", line 1114, in test_profile_spid_sp
self.test_xmldsig()
File "/usr/local/lib/python3.7/dist-packages/spid_sp_test/authn_request.py", line 417, in test_xmldsig
Ho provato ad eseguire i comandi manualmente per replicare lo script e vedere se ci fosse qualche errore di esecuzione in xmlsec:
Buongiorno @iacopop ,
riprova con le ultime versioni di spid-sp-test / spid-saml-check.
Se dovessi riscontrare ancora l’errore consiglio di aprire una issue su spid-sp-test.
BUongiorno a tutti, stiamo riscontrando lo stesso problema. Metadata validato, ma authrequest in errore,
per la validazione sto utilizzando direttamente il tool online demo.