italia / spid-sp-shibboleth

Middleware SPID basato su Shibboleth
Creative Commons Zero v1.0 Universal
13 stars 5 forks source link

Report spid quality assessment #9

Closed peppelinux closed 3 years ago

peppelinux commented 3 years ago

I seguenti errori di validazione, riproducibili sia con spid-saml-check che con spid-sp-test, richiedono un irrobustimento della configurazione di shibboleth

ERROR:spid_sp_test:Test [3] Response firmata, Assertion non firmata. (L'assertion deve essere sempre firmata, la response può essere firmata). Risultato atteso: KO: : [http status_code: 200] : FAILED
ERROR:spid_sp_test:Test [16] Attributo InResponseTo non specificato. Risultato atteso: KO: : [http status_code: 200] : FAILED
ERROR:spid_sp_test:Test [17] Attributo InResponseTo mancante. Risultato atteso: KO: : [http status_code: 200] : FAILED
ERROR:spid_sp_test:Test [18] Attributo InResponseTo diverso da ID request. Risultato atteso: KO: : [http status_code: 200] : FAILED
ERROR:spid_sp_test:Test [28] Elemento Issuer mancante. Risultato atteso: KO: : [http status_code: 200] : FAILED
ERROR:spid_sp_test:Test [43] Elemento NameID dell'Assertion non specificato. Risultato atteso: KO: : [http status_code: 200] : FAILED
ERROR:spid_sp_test:Test [44] Elemento NameID dell'Assertion mancante. Risultato atteso: KO: : [http status_code: 200] : FAILED
ERROR:spid_sp_test:Test [45] Attributo Format dell'elemento NameID dell'Assertion non specificato. Risultato atteso: KO: : [http status_code: 200] : FAILED
ERROR:spid_sp_test:Test [46] Attributo Format dell'elemento NameID dell'Assertion mancante. Risultato atteso: KO: : [http status_code: 200] : FAILED
ERROR:spid_sp_test:Test [47] Attributo Format di NameID dell'Assertion diverso da urn:oasis:names:tc:SAML:2.0:nameidformat:transient. Risultato atteso: KO: : [http status_code: 200] : FAILED
ERROR:spid_sp_test:Test [48] Attributo NameQualifier di NameID dell'Assertion non specificato. Risultato atteso: KO: : [http status_code: 200] : FAILED
ERROR:spid_sp_test:Test [49] Attributo NameQualifier di NameID dell'Assertion mancante. Risultato atteso: KO: : [http status_code: 200] : FAILED
ERROR:spid_sp_test:Test [60] Attributo InResponseTo di SubjectConfirmationData dell'Assertion non specificato. Risultato atteso: KO: : [http status_code: 200] : FAILED
ERROR:spid_sp_test:Test [61] Attributo InResponseTo di SubjectConfirmationData dell'Assertion mancante. Risultato atteso: KO: : [http status_code: 200] : FAILED
ERROR:spid_sp_test:Test [62] Attributo InResponseTo di SubjectConfirmationData dell'Assertion diverso da ID request. Risultato atteso: KO: : [http status_code: 200] : FAILED
ERROR:spid_sp_test:Test [70] Attributo Format di Issuer dell'Assertion non specificato. Risultato atteso: KO: : [http status_code: 200] : FAILED
ERROR:spid_sp_test:Test [71] Attributo Format di Issuer dell'Assertion mancante. Risultato atteso: KO: : [http status_code: 200] : FAILED
ERROR:spid_sp_test:Test [73] Elemento Conditions dell'Assertion non specificato. Risultato atteso: KO: : [http status_code: 200] : FAILED
ERROR:spid_sp_test:Test [74] Elemento Conditions dell'Assertion mancante. Risultato atteso: KO: : [http status_code: 200] : FAILED
ERROR:spid_sp_test:Test [75] Attributo NotBefore di Condition dell'Assertion non specificato. Risultato atteso: KO: : [http status_code: 200] : FAILED
ERROR:spid_sp_test:Test [76] Attributo NotBefore di Condition dell'Assertion mancante. Risultato atteso: KO: : [http status_code: 200] : FAILED
ERROR:spid_sp_test:Test [97] Elemento AuthContextClassRef impostato ad un valore non previsto. Es. specifica precedente. Risultato atteso: KO: : [http status_code: 200] : FAILED
ERROR:spid_sp_test:Test [98] Elemento AttributeStatement presente, ma sottoelemento Attribute mancante. Risultato atteso: KO: : [http status_code: 200] : FAILED
Spid QA: executed 243 tests, 24 failed.
wavewa commented 3 years ago

Salve, si può avere qualche indicazione in merito alla configurazione shibboleth per questi test, nel mio caso in particolare i test 3,61,62. Grazie

peppelinux commented 3 years ago

Questo è il comando da eseguire, al di sopra della configurazione attualmente proposta in master branch.

spid_sp_test --metadata-url https://sp.testunical.it/pymetadata_signed.xml --authn-url https://sp.testunical.it/secure/index.php --debug ERROR --extra -tr

pymetadata_signed è un metadata creato con pymetadata_gen.py.

pymetadata_get è uno script che introdurrà opportune generalizzazioni appena possibile.

spid-sp-test è un package di python installabile mediante pip

francescm commented 3 years ago

Secondo la mia impressione, sul test #3 Response firmata, Assertion non firmata. (L'assertion deve essere sempre firmata, la response può essere firmata) sarà difficile intervenire perché la policy di default XMLSigningRule richiede che il messaggio abbia una firma sicura ma non pone requisiti dove sia apposta (se cioé sulla response o sulle assertions).

peppelinux commented 3 years ago

16, 17 e 18 risolti qui https://github.com/italia/spid-sp-shibboleth/pull/15/files

Grazie Roberto!

robertogallea commented 3 years ago

In realtà ho appena verificato che la PR risolve anche 60, 61 e 62!

peppelinux commented 3 years ago

e con questo hai risolto anche il test numero 3 @robertogallea, complimenti! https://github.com/italia/spid-sp-shibboleth/commit/f559a7803780220310e05e7c53e46c828657281a

peppelinux commented 3 years ago

Secondo la mia impressione, sul test #3 Response firmata, Assertion non firmata. (L'assertion deve essere sempre firmata, la response può essere firmata) sarà difficile intervenire perché la policy di default XMLSigningRule richiede che il messaggio abbia una firma sicura ma non pone requisiti dove sia apposta (se cioé sulla response o sulle assertions).

risolto qui https://github.com/italia/spid-sp-shibboleth/commit/f559a7803780220310e05e7c53e46c828657281a

robertogallea commented 3 years ago

Faccio la proposta di chiudere questa issue e...

@peppelinux , @francescm Che ne dite?

peppelinux commented 3 years ago

ottimo, piuttosto che fare una issue per ogni test tentiamo di raggrupparli per tipologia. Procediamo @robertogallea