Open carlobonamico opened 2 years ago
Buongiorno
Io e il mio team abbiamo rilevato un problema analogo.
Secondo le specifiche tecniche: https://docs.italia.it/italia/spid/spid-regole-tecniche/it/stabile/single-sign-on.html#esempio-di-authnrequest:~:text=higher%20digest%20algorithm.-,Assertion,-MUST, nel caso di "assertions" emesse a seguito di richieste di autenticazione per il livello SPID 1, l'elemento
Questo elemento non deve essere presente nel caso di "assertions" emesse a seguito di richieste di autenticazione per i livelli SPID 2 e SPID 3.
Quando quindi eseguiamo il flusso con validazione, dovremmo aspettarci di non vedere alcun valore nell'attributo sessionIndex.
Ma in realtà otteniamo un valore e il flusso fallisce su questa convalida.
Per Esempio:
<saml:AuthnStatement AuthnInstant="2022-07-17T11:49:32Z" SessionIndex="_6b189168-bbb7-4e27-b3f7-e9d6f0aa87a1">
<saml:AuthnContext>
<saml:AuthnContextClassRef>https://www.spid.gov.it/SpidL2</saml:AuthnContextClassRef>
</saml:AuthnContext>
</saml:AuthnStatement>
Se si esegue senza validazione, l'autenticazione passa.
Problema analogo / correlato a #32, ma su altri casi di test.
Rilevato sulle versioni 1.7.1, 1.8.1, 1.8,2.
Se il Service Provider richiede come livello minimo SPIDL2, il validator invia una risposta di autenticazione positiva SPIDL2 contenente il campo SessionIndex. Se l'applicazione implementa in maniera stringente la specifica
il test fallisce in quanto viene negato l'accesso per risposte che invece sono di esito positivo.
Gli step necessari per riprodurre il problema sono:
Nella GUI del Validator si vede che il campo sessionIndex è valorizzato e viene passato nella Response