italia / spid-aspnetcore

AspNetCore Remote Authenticator for SPID
https://github.com/danielegiallonardo/spid-aspnetcore
MIT License
40 stars 11 forks source link

Cookie relativo alla sessione di login mancante, e' necessario effettuare una nuova login non specificato #55

Closed MithrandirTheWizard closed 11 months ago

MithrandirTheWizard commented 1 year ago

Il componente è integrato con IdentityServer per permettere la login SPID. In configurazione sono stati specificati i metadati e l'EntityId dell'Ente su cui è possibile effettuare la login SPID. Si è riscontrato un problema con un utente SPID con gestore PosteId il quale non riesce ad accedere al sistema. Ricercando nei log è stato trovato il seguente errore:

SPID.AspNetCore.Authentication.SpidHandler[3]
Exception occurred while processing message.
System.Exception: Cookie relativo alla sessione di login mancante, e' necessario effettuare una nuova login non specificato
   at SPID.AspNetCore.Authentication.Helpers.BusinessValidation.ValidationNotNull(Object input, String nameVariable)
   at SPID.AspNetCore.Authentication.AuthenticationPropertiesExtensions.Load(AuthenticationProperties properties, HttpRequest request, ISecureDataFormat`1 encryptor)
   at SPID.AspNetCore.Authentication.SpidHandler.HandleRemoteAuthenticateAsync()
SPID.AspNetCore.Authentication.SpidHandler[4]
Error from RemoteAuthentication: Object reference not set to an instance of an object..
Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware[1]
An unhandled exception has occurred while executing the request.
System.Exception: An error was encountered while handling the remote login.
 ---> System.NullReferenceException: Object reference not set to an instance of an object.

Premetto che l'errore si presenta solo per un utente, provando con altri il problema non sussiste e l'accesso viene effettuato correttamente.

Dal codice pubblicato vedo che questo messaggio di errore è causato o dalla mancanza del cookie o dal mancato caricamento di alcune proprietà dal suddetto cookie.

È possibile che l'errore sia dovuto dal client chiamante o si deve verificare qualcosa nella configurazione?

danielegiallonardo commented 1 year ago

Salve, se l'errore si verifica soltanto per un utente e soltanto per un IdP, è probabile che l'errore non dipenda dalla configurazione, ma, appunto, dal client chiamante, che omette di inviare il cookie necessario o ne invia uno malformato (nel qual caso fallisce la operazione di Unprotect). Sarebbe opportuno indagare su questo aspetto ed eventualmente confrontare i cookie inviati dal client in oggetto e quelli inviati da un client che invece riesce ad eseguire con successo l'operazione di login.

danielegiallonardo commented 11 months ago

Chiudo per inattività