errore SAMLResponse - Malformed request: $idp=''
Closed this issue · 7 comments
Buongiorno, ho installato spid-laravel per fare alcune prove.
Nello specifico cliccando sul pulsante "entra con spid" raggiungo senza problemi https://idp.spid.gov.it/, faccio il login ma nella risposta di autenticazione mi viene fuori questo errore. potete darmi dei chiarimenti ?
Grazie
Ciao @mirkolef,
l'errore indica che l'idp recuperato dal cookie che era stato impostato in fase di request non è stato trovato nella lista degli idp configurati.
Dovresti verificare che il cookie spid_idp
sia correttamente impostato e che il valore contenuto nel cookie corrisponda a un idp configurato.
@mirkolef Abbiamo incontrato questo errore anche noi, controlla che stai usando la stessa guard
su tutti gli endpoint. In oltre controlla che la guard che stai usando sta caricando i seguenti middlewares che sono necessari per i cookie.
'cookies_api',
'response_cookies',
'session_api',
Se setti questi parametri correttamente dovrebbe funzionare ;)
@pokono ciao, sto riscontrando anche io questo problema.
Potresti gentilmente chiarirmi quali sono le configurazioni che hai toccato e quali guard hai modificato?
Sono un po' a digiuno sull'argomento cookie et similia
Grazie in anticipo
Ho avuto lo stesso problema e prova, che ti riprova, il problema era che stavo usando un server http, invece che https. Guardando nel codice del controller SPIDAuth.php, ho visto che i cookie vengono creati con samesite none, che richiedono esplicitamente (e nel codice comunque e' messo a true), l'https. Passando ad https il problema e' scomparso. Non so se sia attinente con quanto richiesto da @mirkolef e @MarcoBevilacqua .
@chech66 noi attualmente nel controller SPIDAuth settiamo i cookie con secure => "true" e samesite "none" (anche se la policy samesite in config/session.php è 'lax')
Con altre configurazioni abbiamo riscontrato problemi sia nel recupero dei cookie (da qui il titolo della issue) sia nella persistenza della sessione, nonostante (ma forse sono io ad aver capito male) nel README sia espressamente scritto che i parametri samesite devono corrispondere.
Ciao a tutti,
come si può leggere su https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite, i cookie con SameSite
impostato a Strict
non vengono inviati dal browser quando l'origine della request è esterna al dominio.
Questo significa che nella chiamata di ritorno dall'IdP non sarebbe possibile recuperare la sessione utente precedentemente attiva. Da qui deriva l'indicazione nel readme di impostare i cookie di sessione con policy Lax
o None
.
D'altro canto, i cookie manualmente impostati da questa libreria (quindi non quelli di sessione) contengono alcune informazioni specifiche necessarie alla verifica della risposta dell'IdP e vengono successivamente eliminati. Questi cookie hanno policy SameSite: None
, il che implica anche la policy Secure
. Da qui deriva quindi la necessità di avere un SP su https
, requisito comunque imposto anche dalle regole SPID.
Ho documentato la necessità di usare HTTP nella #63.
Chiudo la issue. Riapritela pure se ci dovessero essere altre criticità su questo.
Hi @mirkolef ,
the error indicates that the idp retrieved from the cookie that was set in the request phase was not found in the list of configured idps.
You should verify that the cookiespid_idp
is correctly set and that the value contained in the cookie matches a configured idp.
where should i check this ?
please reply