Error StatusInvalidAuthnResponseStatement
infoFactorySRL opened this issue · 5 comments
Buongiorno,
volevo segnalare un errore che si verifica quando provo a testare il login con 2Spid test env2" selezionando come "Opzioni avanzate " la voce "Destination errata".
L'errore si riscontra nella pagina: spid/acs/ ed è il seguente
Exception Type: StatusInvalidAuthnResponseStatement
Exception Value: The Authn Response Statement is not valid
che ha origine da questa chimata session_info = response.session_info()
e credo sia in qualche modo correlato a questo IdentityPython/pysaml2#763
esatto, quella PR infatti l'ho creata io.
pySAML2 di default produrrebbe un eccezione di IndexError mentre con quel PR ottieni una eccezione specializzata.
Di fatto con Destination Errata il SP non dovrebbe dare seguito.
Dimmi cosa ne pensi
Forse per consistenza con le altre eccezioni gestite si potrebbe generare un errore 403 ?
In modo da gestire anche questo caso con la medesima pagina di errore.
Hai ragione, dovrebbe ricadere qui
https://github.com/knaperek/djangosaml2/blob/033b16c6ee626bcf485e9b06bed95b6eacaa2a30/djangosaml2/views.py#L354
E quindi sarebbe opportuno fare una PR per questa eccezione specializzata ma la relativa PR non è stata ancora unita in pysaml2 e non posso chiedere agli utenti di djangosaml2 di usare il mio fork di pysaml2.
Credo che per adesso dovremo inventarci un workaround, sentiti libero di proporre la soluzione che ritieni opportuna
buone notizie, la PR su pysaml2 è stata unita.
IdentityPython/pysaml2#763
attendo la prossima release prima di fare una successiva release di djangosaml2.
Alla fine questa issue sarebbe relativa a djangosaml2 e non a spid-django ma curo le release di entrambi, quindi ... La gestiamo anche così ;)
risolto dallo spid_validator, qui:
73e3c04
nei log adesso leggiamo
diversodaassertionconsumerserviceurl not in ['http://localhost:8000/spid/acs/']
SAML Response validation error: Destination is not valid: diversodaassertionconsumerserviceurl not in ['http://localhost:8000/spid/acs/']